SELinux_Updates_PoC_20170516

37
最近の SELinux の状況 Kazuki Omo( 和毅 ): [email protected] OSS/Security Evangelist SIOS Technology, Inc.

Transcript of SELinux_Updates_PoC_20170516

Page 1: SELinux_Updates_PoC_20170516

最近の SELinux の状況

Kazuki Omo( 面 和毅 ): [email protected]

OSS/Security Evangelist

SIOS Technology, Inc.

Page 2: SELinux_Updates_PoC_20170516

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)

Page 3: SELinux_Updates_PoC_20170516

3

アジェンダ

1. 最近の SELinux のトピック

2. 幾つか PoC と SELinux

3. まとめ

Page 4: SELinux_Updates_PoC_20170516

1. 最近の SELinux のトピック

Page 5: SELinux_Updates_PoC_20170516

5

1. 最近の SELinux のトピック

1. CIL

2. SELinux + Container

3. FileSystem

4. Labeled Network

5. SELinux+SCAP

6. SELinux+Android

Page 6: SELinux_Updates_PoC_20170516

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% 早くなると言われている。

Page 7: SELinux_Updates_PoC_20170516

7

2. SELinux + Container

Page 8: SELinux_Updates_PoC_20170516

8

2. SELinux + Container

● SELinux での rkt/runC のサポート

● OverlayFS のサポート

● Capability チェックの分離

Page 9: SELinux_Updates_PoC_20170516

9

3. FileSystem

● Distributed File System のサポート

● Linux 4.5 からの GFS のサポート

● 完全な SELinux/ovarlayfs のサポート● Linux v4.9 からテスト開始

Page 10: SELinux_Updates_PoC_20170516

10

4. Network File System

● CALIPSO / RFC 5570 のサポート

● Linux v4.8 からサポート

● IPv6 でのネットワークラベリングサポート

● Solaris TX との相互運用

Page 11: SELinux_Updates_PoC_20170516

11

5. SELinux+SCAP

Page 12: SELinux_Updates_PoC_20170516

12

5. SELinux+SCAP

Page 13: SELinux_Updates_PoC_20170516

13

6. SELinux+Android

CVE-2016-2060 はSEAndroid なら大丈夫でした。

Page 14: SELinux_Updates_PoC_20170516

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+ で動作中

Page 15: SELinux_Updates_PoC_20170516

15

その他

Page 16: SELinux_Updates_PoC_20170516

2. 最近の脆弱性情報の PoC と SELinux

Page 17: SELinux_Updates_PoC_20170516

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)

Page 18: SELinux_Updates_PoC_20170516

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 等 )

Page 19: SELinux_Updates_PoC_20170516

19

2-1. ShellShock の脆弱性

デモを見ましょう

ls -ltotal 8-rwxr-xr-x 1 root root 94 Jan 22 06:36 test.cgicat /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologin

リモートから何でも

Page 20: SELinux_Updates_PoC_20170516

20

現在の結果

脆弱性 SELinuxで緩和?

理由

ShellShock ◯

bind9 DoS

kernel特権昇格

Struts

ntfs-3g

Page 21: SELinux_Updates_PoC_20170516

21

2-2. bind9 の脆弱性 (CVE-2016-2776)

Page 22: SELinux_Updates_PoC_20170516

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 completedmsf auxiliary(namedown) > exploit

リモートから落とせます!!

Page 23: SELinux_Updates_PoC_20170516

23

現在の結果

脆弱性 SELinuxで緩和?

理由

ShellShock ◯

DoS ✖ 原理的に無理

kernel特権昇格

Struts

ntfs-3g

Page 24: SELinux_Updates_PoC_20170516

24

2-3. linux kernel 特権昇格脆弱性 ( CVE-2017-6074 )

● 報告日: 02/22/201● 広範囲なバージョン (11 年前の 2.6.18(Sep 2006) 以降 )

Page 25: SELinux_Updates_PoC_20170516

25

2-3. linux kernel 特権昇格脆弱性 ( CVE-2017-6074 )

デモを見ましょう

Ubuntu の Kernel 用の PoC が公開されているため

・ Ubuntu で PoC を試す・ Ubuntu + SELinux で緩和できるか見てみる

Page 26: SELinux_Updates_PoC_20170516

26

現在の結果

脆弱性 SELinuxで緩和?

理由

ShellShock ◯

DoS ✖ 原理的に無理

kernel特権昇格 ◯

Struts

ntfs-3g

Page 27: SELinux_Updates_PoC_20170516

27

2-4. Struts2 の脆弱性 ( CVE-2017-5638 )

● 日本郵便株式会社● 都税クレジットカード支払サイト● 沖縄電力● 住宅金融支援機構● メガネ販売店 JINS

03/06/2017 公開

あちこちがヤラれました

Page 28: SELinux_Updates_PoC_20170516

28

2-4. Struts2 の脆弱性 ( CVE-2017-5638 )

デモを見ましょう

CentOS + Tomcat + Struts2( 脆弱性あるバージョン ) で

・ SELinux が Permissive の時の動作・ SELinux が Enforcing の時の動作

を見る。

Page 29: SELinux_Updates_PoC_20170516

29

2-4. Struts2 の脆弱性 ( CVE-2017-5638 )

SELinux が Enforcing の時に・自分の ID を確認・ /etc/shadow などにアクセス「出来る」事を確認・理由を考察

seinfo -ttomcat_t -x の出力結果を見る

Page 30: SELinux_Updates_PoC_20170516

30

2-4. Struts2 の脆弱性 ( CVE-2017-5638 )

Bugzilla に報告しました (Bug 登録 -> 修正 )・ SecureOSS Sig の Blog に載せてなかった理由

Page 31: SELinux_Updates_PoC_20170516

31

現在の結果

脆弱性 SELinuxで緩和?

理由

ShellShock ◯

DoS ✖ 原理的に無理

kernel特権昇格 ◯

Struts ▲ ポリシに問題有り(報告済み)

Page 32: SELinux_Updates_PoC_20170516

32

2-5. ntfs-3g の脆弱性 (CVE-2017-0358)

● 報告日: 02/01/201● Debian/Ubuntu のみ

Page 33: SELinux_Updates_PoC_20170516

33

2-5. ntfs-3g の脆弱性 (CVE-2017-0358)

デモを見ましょう

Ubuntu 用の PoC が公開されているため

・ Ubuntu で PoC を試す・ Ubuntu + SELinux で緩和できるか見てみる

Page 34: SELinux_Updates_PoC_20170516

34

これまでの結果

脆弱性 SELinuxで緩和?

理由

ShellShock ◯

DoS ✖ 原理的に無理

kernel特権昇格 ◯

Struts ▲ ポリシに問題有り(報告済み)

ntfs-3g ✖ ポリシに問題有り(ubuntuはSELinux非推奨)

Page 35: SELinux_Updates_PoC_20170516

35

3. まとめ

Page 36: SELinux_Updates_PoC_20170516

36

まとめ

1. SELinux は未だどんどん開発が進んでいる

2. SELinux は海外では使うのが当たり前

3. SELinux で守れる範囲を把握しよう

4. SELinux で守れるはずなのに守れないこともある

→ 守れる範囲を把握(次のセッションに続きます)

Page 37: SELinux_Updates_PoC_20170516

37

Thank You!!!