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.
© Hitachi, Ltd. 2017. All rights reserved.
2017/12/07
株式会社 日立製作所
OSSソリューションセンタ
満 充師
Okinawa Open Days 2017
そろそろSELinux を有効...
© Hitachi, Ltd. 2017. All rights reserved. 1
1. SELinuxの概要
2. SELinuxの基礎
3. 設計と設定
4. SELinux利用拡大へ向けた支援
SELinuxの概要1
© Hitachi, Ltd. 2017. All rights reserved.
1-1. よくある状況
2
・・・そうだ、SELinux切ろう
Nginx入れたけど、エラー起きるなぁ・・・
エラーログ見てconf直して、restart.....
© Hitachi, Ltd. 2017. All rights reserved.
1-2. 現在の課題
3
SELinuxとかfirewalldとか、有効にした方が良いと
は理解しているけど、そもそも何かわからない。
セミナーやドキュメント...
© Hitachi, Ltd. 2017. All rights reserved.
1-3. SELinuxを有効にした方が良い理由
4
・ゼロデイ攻撃
⇒OSS利用と同時に脆弱性発見時のリスクが上昇
・IoTの拡大により、攻撃対象、入り口が...
© Hitachi, Ltd. 2017. All rights reserved. 5
SELinux(Security-Enhanced Linuxの略)
アメリカ国家安全保障局(NSA)がGPLで提供している、
Linuxのカーネルに強制...
© Hitachi, Ltd. 2017. All rights reserved.
1-5. 処理イメージ(SELinuxが無効な場合)
6
出典:セキュアOSの紹介と最新動向(日本セキュアOSユーザ会)
<http://www.asahi-...
© Hitachi, Ltd. 2017. All rights reserved.
1-6. 処理イメージ(SELinuxを有効にした場合)
7
出典:セキュアOSの紹介と最新動向(日本セキュアOSユーザ会)
<http://www.asah...
© Hitachi, Ltd. 2017. All rights reserved.
DACのみの場合
8
任意アクセス制御(DAC)
root権限が奪取される
⇒rootは制限なしにシステム全体を利用可能
強制アクセス制御(MAC)
プログラ...
© Hitachi, Ltd. 2017. All rights reserved.
(例)Sambaのアクセス制御
1-8. タイプ:Type Enforcement(TE)
9
プロセス:権限の名前である「ドメイン」という権限名が付与
リソ...
© Hitachi, Ltd. 2017. All rights reserved. 10
1. SELinuxの概要
2. SELinuxの基礎
3. 設計と設定
4. SELinux利用拡大へ向けた支援
SELinuxの基礎2
© Hitachi, Ltd. 2017. All rights reserved.
2-1. SELinux を使うために必要なパッケージ
11
RHELなら、標準でSELinuxを有効に出来る。
※設定変更などのためには追加ソフトが必要
#...
© Hitachi, Ltd. 2017. All rights reserved.
2-2. SELinux を有効にする方法(動作モード)
12
SELinuxの有効には、3つの動作モードがある
SELinuxモード 説明
disabled...
© Hitachi, Ltd. 2017. All rights reserved.
2-3. SELinux を有効にする方法
13
SELinuxの動作モードの確認と設定方法
 動作モードの静的設定:リブートが必要
# vi /etc/s...
© Hitachi, Ltd. 2017. All rights reserved.
2-4. SELinuxが有効時のお作法
14
SELinuxが有効な状態のときの操作方法。
タイプなどがおかしくなるのを防ぐ。
 mvではなく、cpを使う...
© Hitachi, Ltd. 2017. All rights reserved.
2-5. タイプの確認方法
15
基本は、コマンドオプションで -Z をつける
# id
uid=0(root) gid=0(root) groups=0(r...
© Hitachi, Ltd. 2017. All rights reserved. 16
1. SELinuxの概要
2. SELinuxの基礎
3. 設計と設定
4. SELinux利用拡大へ向けた支援
設計と設定3
© Hitachi, Ltd. 2017. All rights reserved.
3-1. SELinuxの設計
17
SELinuxの設計=セキュリティポリシーの設計
・どのプロセスが、どのリソースにアクセスできるよう
にするか?
・リソ...
© Hitachi, Ltd. 2017. All rights reserved.
3-2. セキュリティポリシーの修正
18
ポリシーの修正は、ログを見て修正を繰り返す
テスト
エラー内容の
確認
設定追加
再テスト
Permissiveモ...
© Hitachi, Ltd. 2017. All rights reserved.
3-3. テストの実施
19
 動作テストは、全ての機能や作業を実施する
 Permissiveモードになっているか確認する
テストを中断せず、アクセス拒...
© Hitachi, Ltd. 2017. All rights reserved.
3-4. エラー内容の確認方法
20
 テスト中に停止した場合の切り分け
ログは、/var/log/audit/audit.logに出力
⇒ツールでエラー(...
© Hitachi, Ltd. 2017. All rights reserved.
3-5. ツール①: audit2allow
21
audit2allowコマンドで必要なアクセス権を表示
# ausearch -m AVC --start...
© Hitachi, Ltd. 2017. All rights reserved.
3-6. ツール②: SETroubleShoot
22
SETroubleShoot:syslogに出力される
情報量がかなり多い。
audit2allow...
© Hitachi, Ltd. 2017. All rights reserved.
# sealert -l 6ea22166-be22-4603-9be9-3d71320799bc
SELinux is preventing vsftpd ...
© Hitachi, Ltd. 2017. All rights reserved.
3-8. アクセス拒否への対策
24
SELinuxのセキュリティポリシーの設定方法は、
基本的に3パターン
対策 長所 短所
1
Boolean
(ブール値...
© Hitachi, Ltd. 2017. All rights reserved.
3-9. ポリシーの追加の例
25
対策 設定方法
1
Boolean
(ブール値)
# setsebool -P ftpd_full_access 1
※ち...
© Hitachi, Ltd. 2017. All rights reserved.
3-10. 再テスト
26
新しいポリシーを追加したら再テスト
テスト
/再テスト
エラー内容の
確認設定追加
© Hitachi, Ltd. 2017. All rights reserved. 27
rootユーザでログインして、/etcを表示:
RHELにvsftpを導入して、FFFTPで接続
Enforcing:Permissive:
rootユ...
© Hitachi, Ltd. 2017. All rights reserved.
Sample:ftpの制限の違いの確認
28
表示されるディレクトリ(cron.daily)と
表示されないディレクトリ(cron.d)の差を確認
# ps ...
© Hitachi, Ltd. 2017. All rights reserved.
Sample:アクセス拒否の確認
29
# ausearch -m AVC | grep 'cron.d' | audit2allow -a
#!!!! Th...
© Hitachi, Ltd. 2017. All rights reserved.
Sample:セキュリティポリシーの追加
30
audit2allowの結果を確認:
対策 指示内容 判定
1
Boolean
(ブール値)
ブール値:
ft...
© Hitachi, Ltd. 2017. All rights reserved. 31
1. SELinuxの概要
2. SELinuxの基礎
3. 設計と設定
4. SELinux利用拡大へ向けた支援
SELinux利用拡大へ向けた支援4
© Hitachi, Ltd. 2017. All rights reserved. 32
SELinuxは昔に比べて使いやすくなっている。
多くのOSSのポリシーを標準装備
RHELは、SELinux Enforcingでテスト、出荷
SEL...
© Hitachi, Ltd. 2017. All rights reserved. 33
4-2. SELinuxやOSSセキュリティ技術の情報発信
 OSSセキュリティ技術の会
協力:サイオステクノロジー、情報セキュリティ大学院大学、日立...
© Hitachi, Ltd. 2017. All rights reserved. 34
SELinuxをより使いやすくするための足掛かりとして、
以下のツールを2017/11/13に公開
https://github.com/Hitachi...
© Hitachi, Ltd. 2017. All rights reserved. 35
ドメインがアクセスできるディレクトリやファイルの一覧
を取得するツール
従来は、sesearchやsemanageコマンド、Attributeがあ
れば...
© Hitachi, Ltd. 2017. All rights reserved. 36
SELinuxに関する情報を取得し、ブラウザで表示するツール
情報取得ツールとWeb表示用DB構成ツールは別ツールのため、本番
環境など占有できないマシ...
© Hitachi, Ltd. 2017. All rights reserved.
おわりに
37
SELinux を有効にすることを
是非お試しください。
© Hitachi, Ltd. 2017. All rights reserved.
■Red Hatは,米国およびその他の国でRed Hat, Inc. の登録商標
もしくは商標です。
■Linux(R) は、米国およびその他の国における L...
39
Upcoming SlideShare
Loading in …5
×

of

そろそろSELinux を有効にしてみませんか? Slide 1 そろそろSELinux を有効にしてみませんか? Slide 2 そろそろSELinux を有効にしてみませんか? Slide 3 そろそろSELinux を有効にしてみませんか? Slide 4 そろそろSELinux を有効にしてみませんか? Slide 5 そろそろSELinux を有効にしてみませんか? Slide 6 そろそろSELinux を有効にしてみませんか? Slide 7 そろそろSELinux を有効にしてみませんか? Slide 8 そろそろSELinux を有効にしてみませんか? Slide 9 そろそろSELinux を有効にしてみませんか? Slide 10 そろそろSELinux を有効にしてみませんか? Slide 11 そろそろSELinux を有効にしてみませんか? Slide 12 そろそろSELinux を有効にしてみませんか? Slide 13 そろそろSELinux を有効にしてみませんか? Slide 14 そろそろSELinux を有効にしてみませんか? Slide 15 そろそろSELinux を有効にしてみませんか? Slide 16 そろそろSELinux を有効にしてみませんか? Slide 17 そろそろSELinux を有効にしてみませんか? Slide 18 そろそろSELinux を有効にしてみませんか? Slide 19 そろそろSELinux を有効にしてみませんか? Slide 20 そろそろSELinux を有効にしてみませんか? Slide 21 そろそろSELinux を有効にしてみませんか? Slide 22 そろそろSELinux を有効にしてみませんか? Slide 23 そろそろSELinux を有効にしてみませんか? Slide 24 そろそろSELinux を有効にしてみませんか? Slide 25 そろそろSELinux を有効にしてみませんか? Slide 26 そろそろSELinux を有効にしてみませんか? Slide 27 そろそろSELinux を有効にしてみませんか? Slide 28 そろそろSELinux を有効にしてみませんか? Slide 29 そろそろSELinux を有効にしてみませんか? Slide 30 そろそろSELinux を有効にしてみませんか? Slide 31 そろそろSELinux を有効にしてみませんか? Slide 32 そろそろSELinux を有効にしてみませんか? Slide 33 そろそろSELinux を有効にしてみませんか? Slide 34 そろそろSELinux を有効にしてみませんか? Slide 35 そろそろSELinux を有効にしてみませんか? Slide 36 そろそろSELinux を有効にしてみませんか? Slide 37 そろそろSELinux を有効にしてみませんか? Slide 38 そろそろSELinux を有効にしてみませんか? Slide 39 そろそろSELinux を有効にしてみませんか? Slide 40
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

4 Likes

Share

Download to read offline

そろそろSELinux を有効にしてみませんか?

Download to read offline

SELinuxの初級編です。そろそろ標準でSELinuxを有効にして使って欲しいですね。

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

そろそろSELinux を有効にしてみませんか?

  1. 1. © Hitachi, Ltd. 2017. All rights reserved. 2017/12/07 株式会社 日立製作所 OSSソリューションセンタ 満 充師 Okinawa Open Days 2017 そろそろSELinux を有効にしてみませんか?
  2. 2. © Hitachi, Ltd. 2017. All rights reserved. 1 1. SELinuxの概要 2. SELinuxの基礎 3. 設計と設定 4. SELinux利用拡大へ向けた支援 SELinuxの概要1
  3. 3. © Hitachi, Ltd. 2017. All rights reserved. 1-1. よくある状況 2 ・・・そうだ、SELinux切ろう Nginx入れたけど、エラー起きるなぁ・・・ エラーログ見てconf直して、restart.... まだエラー出る、パーミッションかなぁ エラーログに理由が出ない・・・ 実行ユーザ変えて見るか・・・・
  4. 4. © Hitachi, Ltd. 2017. All rights reserved. 1-2. 現在の課題 3 SELinuxとかfirewalldとか、有効にした方が良いと は理解しているけど、そもそも何かわからない。 セミナーやドキュメントが少ない 機能自体がこなれてなくて使いづらい 設定の仕方も調査の仕方もわからない。
  5. 5. © Hitachi, Ltd. 2017. All rights reserved. 1-3. SELinuxを有効にした方が良い理由 4 ・ゼロデイ攻撃 ⇒OSS利用と同時に脆弱性発見時のリスクが上昇 ・IoTの拡大により、攻撃対象、入り口が増加 ・イントラ内部からの攻撃、内部犯行への対応も必要 侵入することを防げない状況が発生している SELinuxなどセキュアOSを使うと、侵入された後の 被害を緩和することができる。
  6. 6. © Hitachi, Ltd. 2017. All rights reserved. 5 SELinux(Security-Enhanced Linuxの略) アメリカ国家安全保障局(NSA)がGPLで提供している、 Linuxのカーネルに強制アクセス制御機能等を付加するもの RHEL、CentOS、Fedoraのカーネルに標準実装。 ディストリビューションの種類ではありません。 ※Linux Security Modules (LSM)上に実装されて、切り替え て使うことが出来る。 同種類のセキュリティ強化の機能 AppArmor、TOMOYO Linuxなど 1-4. SELinuxはLinuxのセキュリティ強化の機能
  7. 7. © Hitachi, Ltd. 2017. All rights reserved. 1-5. 処理イメージ(SELinuxが無効な場合) 6 出典:セキュアOSの紹介と最新動向(日本セキュアOSユーザ会) <http://www.asahi-net.or.jp/~jg3h-snj/documents/20090516_OSC2009Shimane_Shinji.pdf> インターネット HTTPD DB Sendmail/bin/sh OS 機密 文書 kernel 認証 攻撃 シェルの起動 攻撃 攻撃 他のサービス への攻撃 不正アクセス 攻撃 kernel破壊 SPAMなど 通常アクセス 脆弱性 ①HTTPDで認証が通れば機密文書にアクセス可 ②脆弱性を突いて/bin/shが攻撃されシェルが不正に起動 ③不正起動シェルにて機密文書に不正アクセス ④攻撃を受けた/bin/shから他のサービスに攻撃 ⑤攻撃を受けたSendmailからSPAMメール配信 ⑥脆弱性を突いてkernelが攻撃されkernelが破壊 ① ② ③ ④ ⑤ ⑥ ④
  8. 8. © Hitachi, Ltd. 2017. All rights reserved. 1-6. 処理イメージ(SELinuxを有効にした場合) 7 出典:セキュアOSの紹介と最新動向(日本セキュアOSユーザ会) <http://www.asahi-net.or.jp/~jg3h-snj/documents/20090516_OSC2009Shimane_Shinji.pdf> インターネット HTTPD DB Sendmail/bin/sh OS 機密 文書 kernel SELinux セキュリティ・ ポリシー・ ファイル 認証 ブロック ブロック 脆弱性 通常アクセス セキュリティ・ ポリシー・ ファイルに 定義あり セキュリティ・ ポリシー・ ファイルに 定義が無いため 実行できない ① ② ⑥ ①HTTPDで認証が通れば機密文書にアクセス可 ②脆弱性を突いて/bin/shが攻撃されシェルが不正に起動 ③不正起動シェルにて機密文書に不正アクセス ④攻撃を受けた/bin/shから他のサービスに攻撃 ⑤攻撃を受けたSendmailからSPAMメール配信 ⑥脆弱性を突いてkernelが攻撃されkernelが破壊 起き ない セキュリティ・ポリシーファイルに 定義が無いため実行できない
  9. 9. © Hitachi, Ltd. 2017. All rights reserved. DACのみの場合 8 任意アクセス制御(DAC) root権限が奪取される ⇒rootは制限なしにシステム全体を利用可能 強制アクセス制御(MAC) プログラムやrootが乗っ取られる ⇒セキュリティポリシーで許可された範囲のみ利用可能 Kernel Network Data/File root root DAC MACによる制御 Kernel Network Data /File root rootDAC Data1 Data2 8080 8081 SecurityPolicy 1-7. 強制アクセス制御(MAC)機能
  10. 10. © Hitachi, Ltd. 2017. All rights reserved. (例)Sambaのアクセス制御 1-8. タイプ:Type Enforcement(TE) 9 プロセス:権限の名前である「ドメイン」という権限名が付与 リソース:「タイプ」が、追加で付与 TEは、プロセスがアクセスするリソース毎にパーミッション を設定し、アクセス制限を行う。 プロセス ドメイン リソース タイプ リソースリソース smbd_t samba_share_t パーミッション read,write read 読み込み write 書き込み create 生成 getattr 属性の取得 lock ファイルのロック append 追記 rename 名前の変更 execute 実行 パーミッションSambaプロセス Sambaでアクセスする ディレクトリ filesystem ファイルシステム file ファイル dir ディレクトリ fd ファイル識別子 lnk_file シンボリックリンク socket ソケット tcp_socket TCPソケット msg メッセージキュー system システム関連 パーミッションを設定できるリソース ※リソースによって設定項目は変わる パーミッションの 対象リソースと操作項目の 拡大、権限の細分化
  11. 11. © Hitachi, Ltd. 2017. All rights reserved. 10 1. SELinuxの概要 2. SELinuxの基礎 3. 設計と設定 4. SELinux利用拡大へ向けた支援 SELinuxの基礎2
  12. 12. © Hitachi, Ltd. 2017. All rights reserved. 2-1. SELinux を使うために必要なパッケージ 11 RHELなら、標準でSELinuxを有効に出来る。 ※設定変更などのためには追加ソフトが必要 # パッケージ名 備考 1 policycoreutils- python SELinuxの操作および管理用のsemanage、audit2allow、 audit2why、chcatといった各種ユーティリティを提供 2 setroubleshoot- server SELinuxがアクセスを拒否した際に作成される拒否メッセー ジを、sealertユーティリティで表示可能な詳細な記述に変 換する 3 setools-console ポリシー分析およびクエリ、監査ログモニタリングおよび レポーティング、ファイルコンテキスト管理用の数多くの ユーティリティとライブラリを提供 4 policycoreutils- devel カスタムSELinuxポリシーおよびポリシーモジュール作成用 のユーティリティを提供 5 lsof 現在オープン中のファイル情報リストを表示するユーティ リティを提供 ※SELinux用パッケージではないが、ポートを使用している プロセスを確認する際に必要となる 6 policycoreutils-newrole ロール変更のためのnewroleコマンドを提供
  13. 13. © Hitachi, Ltd. 2017. All rights reserved. 2-2. SELinux を有効にする方法(動作モード) 12 SELinuxの有効には、3つの動作モードがある SELinuxモード 説明 disabled SELinux が無効化。 DAC ルールのみが適用される。 permissive SELinux ポリシーが適用されるが、 実際のアクセス拒否は行わずにログに記録のみ。 enforcing SELinux ポリシーが適用される。 SELinux は SELinux ポリシールールに基づいて アクセスを拒否する。 基本はpermissiveで構築テストする
  14. 14. © Hitachi, Ltd. 2017. All rights reserved. 2-3. SELinux を有効にする方法 13 SELinuxの動作モードの確認と設定方法  動作モードの静的設定:リブートが必要 # vi /etc/selinux/config SELINUX=enforcing ・・・・disabled,permissive,enforcing  動作モード設定:disabledからの注意点 SELinuxのタイプ割当を再整理するため、 touch /.autorelabel を実行してからリブート  動作モード一時的な設定:再起動まで有効 # setenforce enforcing ・・・・permissive,enforcing ※ 0,1 でも可能  動作モード確認コマンド: # getenforce Enforcing
  15. 15. © Hitachi, Ltd. 2017. All rights reserved. 2-4. SELinuxが有効時のお作法 14 SELinuxが有効な状態のときの操作方法。 タイプなどがおかしくなるのを防ぐ。  mvではなく、cpを使う  mvしたなら、restorecon {ファイル名}のコ マンドを実行する  SELinuxをdisabledにしない。 確認する場合は、Permissiveで実施 # setenforce permissive で一時的に変更できる
  16. 16. © Hitachi, Ltd. 2017. All rights reserved. 2-5. タイプの確認方法 15 基本は、コマンドオプションで -Z をつける # id uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 # ps -eZ system_u:system_r:ftpd_t:s0-s0:c0.c1023 931 ? 00:00:00 vsftpd system_u:system_r:sshd_t:s0-s0:c0.c1023 946 ? 00:00:00 sshd # ls -Z drwxr-xr-x. root root system_u:object_r:system_cron_spool_t:s0 cron.d drwxr-xr-x. root root system_u:object_r:bin_t:s0 cron.daily  ドメイン  タイプ(ファイルコンテキスト)  ユーザ
  17. 17. © Hitachi, Ltd. 2017. All rights reserved. 16 1. SELinuxの概要 2. SELinuxの基礎 3. 設計と設定 4. SELinux利用拡大へ向けた支援 設計と設定3
  18. 18. © Hitachi, Ltd. 2017. All rights reserved. 3-1. SELinuxの設計 17 SELinuxの設計=セキュリティポリシーの設計 ・どのプロセスが、どのリソースにアクセスできるよう にするか? ・リソースへのアクセス権限は、どうするか? read,write,exec,open,etc... 机上でゼロから作成するのは難しい。 ・著名なOSSは、標準でセキュリティポリシーが 用意されている。 ・ツールが変更指針を出してくれる。 ⇒試行して修正対象箇所を洗い出す
  19. 19. © Hitachi, Ltd. 2017. All rights reserved. 3-2. セキュリティポリシーの修正 18 ポリシーの修正は、ログを見て修正を繰り返す テスト エラー内容の 確認 設定追加 再テスト Permissiveモードで動作させる ログの出力内容から対策を考える ポリシーを追加する Permissiveモードで再テストして、 アクセス拒否の状況を確認する
  20. 20. © Hitachi, Ltd. 2017. All rights reserved. 3-3. テストの実施 19  動作テストは、全ての機能や作業を実施する  Permissiveモードになっているか確認する テストを中断せず、アクセス拒否のメッセージを確認す ることが出来る。 複数の機能が混在している場合、設定した後の見直しな どの手戻りを防ぐ。
  21. 21. © Hitachi, Ltd. 2017. All rights reserved. 3-4. エラー内容の確認方法 20  テスト中に停止した場合の切り分け ログは、/var/log/audit/audit.logに出力 ⇒ツールでエラー(アクセス拒否)を抽出して対処 ①Permissiveモードになっているか確認する ⇒Permissiveなら設定ミスか、パーミッション ②Enforcingモードなら、Permissiveで再テスト  SELinuxのログ確認 ツール:audit2allow, SETroubleShoot
  22. 22. © Hitachi, Ltd. 2017. All rights reserved. 3-5. ツール①: audit2allow 21 audit2allowコマンドで必要なアクセス権を表示 # ausearch -m AVC --start 10/27/16 16:30:00 --end 10/27/16 17:10:00 | audit2allow -a #============= ftpd_t ============== #!!!! This avc can be allowed using the boolean 'ftpd_full_access' allow ftpd_t admin_home_t:file { create getattr lock open write }; #!!!! This avc can be allowed using the boolean 'ftpd_full_access' allow ftpd_t self:capability dac_override; 簡易スイッチの 紹介 ポリシー変更の指針 コマンド: ausearch -m AVC --start {日時} --end {日 時} | audit2allow -a
  23. 23. © Hitachi, Ltd. 2017. All rights reserved. 3-6. ツール②: SETroubleShoot 22 SETroubleShoot:syslogに出力される 情報量がかなり多い。 audit2allowと併用がお勧め Nov 20 10:16:29 nvm000806 setroubleshoot: SELinux is preventing vsftpd from getattr access on the file /root/sebool_before-upgrade. For complete SELinux messages. run sealert -l 6ea22166-be22-4603-9be9-3d71320799bc Nov 20 10:16:29 nvm000806 python: SELinux is preventing vsftpd from getattr access on the file /root/sebool_before-upgrade.#012#012***** Plugin catchall_boolean (89.3 confidence) suggests ******************#012#012If you want to determine whether ftpd can login to local users and can read and write all files on the system, governed by DAC.#012Then you must tell SELinux about this by enabling the 'ftpd_full_access' boolean.#012You can read 'None' man page for more details.#012Do#012setsebool -P ftpd_full_access 1#012#012***** Plugin catchall (11.6 confidence) suggests **************************#012#012If you believe that vsftpd should be allowed getattr access on the sebool_before-upgrade file by default.#012Then you should report this as a bug.#012You can generate a local policy module to allow this access.#012Do#012allow this access for now by executing:#012# ausearch -c 'vsftpd' -- raw | audit2allow -M my-vsftpd#012# semodule -i my-vsftpd.pp#012 /var/log/messagesへの出力例 詳細表示用の コマンド
  24. 24. © Hitachi, Ltd. 2017. All rights reserved. # sealert -l 6ea22166-be22-4603-9be9-3d71320799bc SELinux is preventing vsftpd from getattr access on the file /root/sebool_before-upgrade. ***** Plugin catchall_boolean (89.3 confidence) suggests ****************** If ftpd がローカルユーザーにログインでき、DAC により管理されているシステムにあるすべてのファイルを読み書きできるかどうか を指定します。 がしたい Then 'ftpd_full_access' boolean を有効にすることにより、 これを SELinux に伝える必要があります。 詳細情報については、'None' man ページをご覧下さい。 Do setsebool -P ftpd_full_access 1 ***** Plugin catchall (11.6 confidence) suggests ************************** If vsftpd に、 sebool_before-upgrade file の getattr アクセスがデフォルトで許可されるべきです。 Then バグとして報告してください。 ローカルのポリシーモジュールを生成すると、 このアクセスを許可することができます。 Do allow this access for now by executing: # ausearch -c 'vsftpd' --raw | audit2allow -M my-vsftpd # semodule -i my-vsftpd.pp Additional Information: Source Context system_u:system_r:ftpd_t:s0-s0:c0.c1023 Target Context unconfined_u:object_r:admin_home_t:s0 Target Objects /root/sebool_before-upgrade [ file ] Source vsftpd Source Path vsftpd Port <Unknown> Host nvm000806 Source RPM Packages Target RPM Packages Policy RPM selinux-policy-3.13.1-102.el7.noarch Selinux Enabled True Policy Type targeted Enforcing Mode Permissive Host Name nvm000806 Platform Linux nvm000806 3.10.0-514.el7.x86_64 #1 SMP Wed Oct 19 11:24:13 EDT 2016 x86_64 x86_64 Alert Count 5 First Seen 2017-08-02 11:44:09 JST Last Seen 2017-11-20 10:16:24 JST Local ID 6ea22166-be22-4603-9be9-3d71320799bc Raw Audit Messages type=AVC msg=audit(1511140584.25:22660): avc: denied { getattr } for pid=12505 comm="vsftpd" path="/root/sebool_before-upgrade" dev="dm-0" ino=100663385 scontext=system_u:system_r:ftpd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file 3-7. ツール②: SETroubleShoot 23 詳細表示を実行
  25. 25. © Hitachi, Ltd. 2017. All rights reserved. 3-8. アクセス拒否への対策 24 SELinuxのセキュリティポリシーの設定方法は、 基本的に3パターン 対策 長所 短所 1 Boolean (ブール値) パラメタ一つで設定で きるので簡単 想定外の部分まで許可される 可能性がある 2 タイプの割当 対象のタイプを変更す るだけなので簡単 複数のソフトウェアが利用す るものは、タイプを変更する と、片方が使えなくなること もある。 3 ポリシー追加 細かく設定できる ゼロから作るのは大変 影響範囲などの調査も大変 状況に応じて、対策手段を考える
  26. 26. © Hitachi, Ltd. 2017. All rights reserved. 3-9. ポリシーの追加の例 25 対策 設定方法 1 Boolean (ブール値) # setsebool -P ftpd_full_access 1 ※ちょっと例が良くないですが・・・ 2 タイプの割当 /etc/cron.d のタイプ system_cron_spool_t を bin_tに変更する。 # chcon -t bin_t /etc/cron.d 3 ポリシー追加 # ausearch -c 'vsftpd' --raw | audit2allow -M my- vsftpd # semodule -i my-vsftpd.pp
  27. 27. © Hitachi, Ltd. 2017. All rights reserved. 3-10. 再テスト 26 新しいポリシーを追加したら再テスト テスト /再テスト エラー内容の 確認設定追加
  28. 28. © Hitachi, Ltd. 2017. All rights reserved. 27 rootユーザでログインして、/etcを表示: RHELにvsftpを導入して、FFFTPで接続 Enforcing:Permissive: rootユーザでも制限されている 表示されないディレクトリが存在(制 限される。) audit cron.d dhcp などが 表示されない 直接アクセスも できない Sample:SELinuxが有効なときの簡単な例
  29. 29. © Hitachi, Ltd. 2017. All rights reserved. Sample:ftpの制限の違いの確認 28 表示されるディレクトリ(cron.daily)と 表示されないディレクトリ(cron.d)の差を確認 # ps -efZ | grep ftp system_u:system_r:ftpd_t:s0-s0:c0.c1023 931 ? 00:00:00 vsftpd  vsftpdのドメインを確認: # ls -Z drwxr-xr-x. root root system_u:object_r:system_cron_spool_t:s0 cron.d drwxr-xr-x. root root system_u:object_r:bin_t:s0 cron.daily  SELinux上のファイルコンテキストを確認: ファイルのタイプが異なる
  30. 30. © Hitachi, Ltd. 2017. All rights reserved. Sample:アクセス拒否の確認 29 # ausearch -m AVC | grep 'cron.d' | audit2allow -a #!!!! This avc can be allowed using the boolean 'ftpd_full_access' allow ftpd_t system_cron_spool_t:dir { getattr open read search }; #!!!! This avc can be allowed using the boolean 'ftpd_full_access' allow ftpd_t system_cron_spool_t:file getattr; audit2allowを実行すると、権限追加が必要と指摘 # grep cron.d audit.log type=AVC msg=audit(1499764558.065:58): avc: denied { getattr } for pid=1040 comm="vsftpd" path="/etc/cron.d" dev="dm-0" ino=67379157 scontext=system_u:system_r:ftpd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:system_cron_spool_t:s0 tclass=dir type=AVC msg=audit(1499766876.896:268): avc: denied { open } for pid=1163 comm="vsftpd" path="/etc/cron.d" dev="dm-0" ino=67379157 scontext=system_u:system_r:ftpd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:system_cron_spool_t:s0 tclass=dir audit.logの記載内容: ブール値の設定 アクセス許可設定
  31. 31. © Hitachi, Ltd. 2017. All rights reserved. Sample:セキュリティポリシーの追加 30 audit2allowの結果を確認: 対策 指示内容 判定 1 Boolean (ブール値) ブール値: ftpd_full_access を有効にする 想定外の部分まで許可される 可能性があるのでNG 2 タイプの割当 指示なし /etc/cron.d をftpdがアクセ ス可能なタイプ bin_tなどへ 変更すれば対処可能。 ⇒影響範囲が広くNG 3 ポリシー追加 ドメインftpd_tに、 system_cron_spool_t へのアクセス権限を付与 する アクセスできる対象を絞り込 みたいので、採用
  32. 32. © Hitachi, Ltd. 2017. All rights reserved. 31 1. SELinuxの概要 2. SELinuxの基礎 3. 設計と設定 4. SELinux利用拡大へ向けた支援 SELinux利用拡大へ向けた支援4
  33. 33. © Hitachi, Ltd. 2017. All rights reserved. 32 SELinuxは昔に比べて使いやすくなっている。 多くのOSSのポリシーを標準装備 RHELは、SELinux Enforcingでテスト、出荷 SELinuxに対応しているソフトウェアも増加 有効化、即、エラーは減少 4-1. 現在のSELinuxについて
  34. 34. © Hitachi, Ltd. 2017. All rights reserved. 33 4-2. SELinuxやOSSセキュリティ技術の情報発信  OSSセキュリティ技術の会 協力:サイオステクノロジー、情報セキュリティ大学院大学、日立製作所 ・第一回勉強会 2017/5/16 「闘将(たたかえ)!! SELinuxの巻」 日立からは、中村雄一が、最近のセキュリティ事情とSELinuxについて講演 ・第二回勉強会 2017/11/29 「新世代のOSS認証基盤」 日立からは、茂木昴士が、「Keycloak入門」について講演 ・連載:IoT時代の最新SELinux入門(日経BP社): ■その他講演など ・OSSセキュリティナイター 2017/7/26 [企業システムにSELinuxを適用するときの検討事項について ] ・OSC・エンタープライズ 2017/12/8 [企業システムにSELinuxを適用するときの検討事項について ] 講演や雑誌記事で情報の公開を推進中
  35. 35. © Hitachi, Ltd. 2017. All rights reserved. 34 SELinuxをより使いやすくするための足掛かりとして、 以下のツールを2017/11/13に公開 https://github.com/Hitachi/selinux-info-viewer ■SELinux Type Enforcement Lookup ドメイン(プロセス)がアクセスできるディレクトリやファイル の一覧を取得するツール ※検証や考慮点の把握に有効 ■SELinux Information Viewer SELinuxに関する情報を取得し、ブラウザで表示するツール ※情報取得後の突き合わせに有効 https://github.com/Hitachi/selinux-te-lookup ツールは MIT License です、自由に使ってください 使い勝手を良くするための改変や機能追加など歓迎します 4-3. 日立で公開しているツール
  36. 36. © Hitachi, Ltd. 2017. All rights reserved. 35 ドメインがアクセスできるディレクトリやファイルの一覧 を取得するツール 従来は、sesearchやsemanageコマンド、Attributeがあ れば展開するなど複雑な操作が必要であったが、コマンド 1つで取得することが可能となります 例)ftpd_tドメインのプロセスが書き込みできるディレクトリの一覧を取得 # sudo python selinux-te-lookup.py 'ftpd_t' --perm write --class 'dir' --only-ok # cat result.csv File-Context-Pattern,File-Context-Target-Type,File-Context-Label,Matched-File-Path,File-Type,File-Label, SAME-SELinux-Type /dev/shm,directory,system_u:object_r:tmpfs_t:s0,/dev/shm,d,system_u:object_r:tmpfs_t:s0,OK /run,directory,system_u:object_r:var_run_t:s0,/run,d,system_u:object_r:var_run_t:s0,OK /run/.*,all files,system_u:object_r:var_run_t:s0,/run/netreport,d,system_u:object_r:var_run_t:s0,OK /run/.*,all files,system_u:object_r:var_run_t:s0,/run/sysconfig,d,system_u:object_r:var_run_t:s0,OK /run/.*,all files,system_u:object_r:var_run_t:s0,/run/tmpfiles.d,d,system_u:object_r:var_run_t:s0,OK : https://github.com/Hitachi/selinux-te-lookup 4-4. SELinux Type Enforcement Lookup
  37. 37. © Hitachi, Ltd. 2017. All rights reserved. 36 SELinuxに関する情報を取得し、ブラウザで表示するツール 情報取得ツールとWeb表示用DB構成ツールは別ツールのため、本番 環境など占有できないマシンについても、ビューワで設定を参照する ことが可能 4-5. SELinux Information Viewer https://github.com/Hitachi/selinux-info-viewer
  38. 38. © Hitachi, Ltd. 2017. All rights reserved. おわりに 37 SELinux を有効にすることを 是非お試しください。
  39. 39. © Hitachi, Ltd. 2017. All rights reserved. ■Red Hatは,米国およびその他の国でRed Hat, Inc. の登録商標 もしくは商標です。 ■Linux(R) は、米国およびその他の国における Linus Torvalds 氏 の登録商標です。 ■SELinuxは米国及びその他の国におけるNational Security Agencyの登録商標です。 ■HITACHIは、株式会社 日立製作所の商標または登録商標です。 ■記載の会社名、製品名などは、それぞれの商標もしくは登録商標 です。 38 他社所有商標に関する表示
  40. 40. 39
  • ShotaroGotanda

    Aug. 31, 2020
  • RyusukeOkimatsu

    Mar. 7, 2019
  • zoba0713

    Jan. 15, 2019
  • donarudo

    Dec. 7, 2018

SELinuxの初級編です。そろそろ標準でSELinuxを有効にして使って欲しいですね。

Views

Total views

3,517

On Slideshare

0

From embeds

0

Number of embeds

795

Actions

Downloads

23

Shares

0

Comments

0

Likes

4

×