Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SELinux_Status_PoC_20170516

849 views

Published on

OSSセキュリティ技術の会 第一回勉強会
面 氏御提供

Published in: Software
  • Be the first to comment

  • Be the first to like this

SELinux_Status_PoC_20170516

  1. 1. 最近の SELinux の状況 Kazuki Omo( 面 和毅 ): ka-omo@sios.com OSS/Security Evangelist SIOS Technology, Inc.
  2. 2. 2 Who am I ? - Security Researcher/Engineer (19 years) - SELinux/MAC Evangelist (14 years) - Antivirus Engineer (3 years) - SIEM Engineer (3 years) - Linux Engineer (17 years)
  3. 3. 3 アジェンダ 1. 最近の SELinux のトピック 2. 幾つか PoC と SELinux 3. まとめ
  4. 4. 1. 最近の SELinux のトピック
  5. 5. 5 1. 最近の SELinux のトピック 1. CIL 2. SELinux + Container 3. FileSystem 4. Labeled Network 5. SELinux+SCAP 6. SELinux+Android
  6. 6. 6 1. CIL (type sendconfig_t) (roletype system_r sendconfig_t) (typeattributeset entry_type sendconfig_exec_t) (allow init_t sendconfig_exec_t (file (read execute execute_no_trans open))) よりポリシを簡単に記載する。この CIL を使うことにより、 ポリシの開発が 50-70% 早くなると言われている。
  7. 7. 7 2. SELinux + Container
  8. 8. 8 2. SELinux + Container ● SELinux での rkt/runC のサポート ● OverlayFS のサポート ● Capability チェックの分離
  9. 9. 9 3. FileSystem ● Distributed File System のサポート ● Linux 4.5 からの GFS のサポート ● 完全な SELinux/ovarlayfs のサポート ● Linux v4.9 からテスト開始
  10. 10. 10 4. Network File System ● CALIPSO / RFC 5570 のサポート ● Linux v4.8 からサポート ● IPv6 でのネットワークラベリングサポート ● Solaris TX との相互運用
  11. 11. 11 5. SELinux+SCAP
  12. 12. 12 5. SELinux+SCAP
  13. 13. 13 6. SELinux+Android CVE-2016-2060 は SEAndroid なら大丈夫でした。
  14. 14. 14 6. SELinux+Android Android(KitKat: v4.4) で SELinux Enforcing が有効に ・ 1 年で 60% の Android デバイスが KitKat+ で動作 ・現在 80% の Android デバイスが KitKat+ で動作中 Android(Lolipop: v5.0) では全て SELinux のポリシが Enforcing ・ 1 年で 18% の Android デバイスが Lolipop+ で動作 ・現在 50% の Android デバイスが Lolipop+ で動作中
  15. 15. 15 その他
  16. 16. 2. 最近の脆弱性情報の PoC と SELinux
  17. 17. 17 とりあえず、これだけ試してみます 1. ShellShock(CVE-2014-6271) 2. bind9 DoS(CVE-2016-2776) 3. kernel 特権昇格脆弱性 ( CVE-2017-6074 ) 4. Struts(CVE-2017-5638) 5. ntfs-3g の脆弱性 (CVE-2017-0358)
  18. 18. 18 覚えていますか? SHELL SHOCK!!! 2014 年 9 月 24 日  GNU bash の脆弱性情報が公開 幅広い bash のバージョンが対象 環境変数を利用してプログラムを実行できる。リモートからも。 ● JVNVU#97219505 GNU Bash に OS コマンドインジェクションの脆弱性 ● JPCERT/CC GNU bash の脆弱性に関する注意喚起 ● JPCERT/CC TCP 10000 番ポートへのスキャンの増加に関する注意喚起 ● IPA bash の脆弱性対策について (CVE-2014-6271 等 )
  19. 19. 19 2-1. ShellShock の脆弱性 デモを見ましょう ls -l total 8 -rwxr-xr-x 1 root root 94 Jan 22 06:36 test.cgi cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin リモートから何でも
  20. 20. 20 現在の結果 脆弱性 SELinuxで 緩和? 理由 ShellShock ◯ bind9 DoS kernel特権昇格 Struts ntfs-3g
  21. 21. 21 2-2. bind9 の脆弱性 (CVE-2016-2776)
  22. 22. 22 2-2. bind9 の脆弱性 (CVE-2016-2776) デモを見ましょう msf auxiliary(namedown) > exploit [*] Sending bombita (Specially crafted udp packet) to: 172.16.148.130 [+] Exploit Success (Maybe, nameserver did not replied) [*] Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution completed msf auxiliary(namedown) > exploit リモートから落とせます!!
  23. 23. 23 現在の結果 脆弱性 SELinuxで 緩和? 理由 ShellShock ◯ DoS ✖ 原理的に無理 kernel特権昇格 Struts ntfs-3g
  24. 24. 24 2-3. linux kernel 特権昇格脆弱性 ( CVE-2017-6074 ) ● 報告日: 02/22/201 ● 広範囲なバージョン (11 年前の 2.6.18(Sep 2006) 以降 )
  25. 25. 25 2-3. linux kernel 特権昇格脆弱性 ( CVE-2017-6074 ) デモを見ましょう Ubuntu の Kernel 用の PoC が公開されているため ・ Ubuntu で PoC を試す ・ Ubuntu + SELinux で緩和できるか見てみる
  26. 26. 26 現在の結果 脆弱性 SELinuxで 緩和? 理由 ShellShock ◯ DoS ✖ 原理的に無理 kernel特権昇格 ◯ Struts ntfs-3g
  27. 27. 27 2-4. Struts2 の脆弱性 ( CVE-2017-5638 ) ● 日本郵便株式会社 ● 都税クレジットカード支払サイト ● 沖縄電力 ● 住宅金融支援機構 ● メガネ販売店 JINS 03/06/2017 公開 あちこちがヤラれました
  28. 28. 28 2-4. Struts2 の脆弱性 ( CVE-2017-5638 ) デモを見ましょう CentOS + Tomcat + Struts2( 脆弱性あるバージョン ) で ・ SELinux が Permissive の時の動作 ・ SELinux が Enforcing の時の動作 を見る。
  29. 29. 29 2-4. Struts2 の脆弱性 ( CVE-2017-5638 ) SELinux が Enforcing の時に ・自分の ID を確認 ・ /etc/shadow などにアクセス「出来る」事を確認 ・理由を考察 seinfo -ttomcat_t -x の出力結果を見る
  30. 30. 30 2-4 Struts2 の脆弱性 seinfo -ttomcat_t -x の出力結果 [root@cent7enc ~]# seinfo -ttomcat_t -x tomcat_t can_change_object_identity -- 省略 -- can_load_kernmodule corenet_unconfined_type corenet_unlabeled_type devices_unconfined_type domain files_unconfined_type filesystem_unconfined_type kern_unconfined selinux_unconfined_type storage_unconfined_type unconfined_domain_type dbusd_unconfined sepgsql_unconfined_type tomcat_domain userdom_filetrans_type xserver_unconfined_type unconfined!!
  31. 31. 31 2-4. Struts2 の脆弱性 ( CVE-2017-5638 ) Bugzilla に報告しました (Bug 登録 -> 修正 ) ・ SecureOSS Sig の Blog に載せてなかった理由
  32. 32. 32 現在の結果 脆弱性 SELinuxで 緩和? 理由 ShellShock ◯ DoS ✖ 原理的に無理 kernel特権昇格 ◯ Struts ▲ ポリシに問題有り (報告済み)
  33. 33. 33 2-5. ntfs-3g の脆弱性 (CVE-2017-0358) ● 報告日: 02/01/201 ● Debian/Ubuntu のみ
  34. 34. 34 2-5. ntfs-3g の脆弱性 (CVE-2017-0358) デモを見ましょう Ubuntu 用の PoC が公開されているため ・ Ubuntu で PoC を試す ・ Ubuntu + SELinux で緩和できるか見てみる
  35. 35. 35 これまでの結果 脆弱性 SELinuxで 緩和? 理由 ShellShock ◯ DoS ✖ 原理的に無理 kernel特権昇格 ◯ Struts ▲ ポリシに問題有り (報告済み) ntfs-3g ✖ ポリシに問題有り (ubuntuはSELinux非推奨)
  36. 36. 36 3. まとめ
  37. 37. 37 まとめ 1. SELinux は未だどんどん開発が進んでいる 2. SELinux は海外では使うのが当たり前 3. SELinux で守れる範囲を把握しよう 4. SELinux で守れるはずなのに守れないこともある → 守れる範囲を把握(次のセッションに続きます)
  38. 38. 38 脆弱性の無くなる その日まで 闘将!! SELinux!!
  39. 39. 39 Thank You!!!

×