第8回 Multi Level Securityで機密ファイルを管理する
古田 真己サイオステクノロジー株式会社
インフラストラクチャービジネスユニット
Linuxテクノロジー部
OSSテクノロジーグループ
2006/11/28
システムへのログインと実行ドメインの確認
再起動が完了したらログインしてみます。ポリシー修正が行われたことで、gdmからログインするとセキュリティコンテキストは正しく「user_u:user_r:user_t:SystemLow」となりました。
図21 ポリシー修正後のセキュリティコンテキストを確認する |
今回の目的のためには、さらに作業が必要です。
運用に合わせたポリシーの修正と変更
いままでは「Permissive」モードで動作させていましたが、実際の運用には「Enforcing」モードで使用可能である必要があります。試しにこの状態で「Enforcing」モードに切り替えると、VNCの接続が切れ、二度と接続できなくなります。
[root@localhost ~]# newrole -r secadm_r Authenticationg root. パスワード(P): [root@localhost ~]# setenforce 1 |
図22 rootユーザーでsshからログインした後モードを切替える |
ここからは、VNCサーバに合わせて新しくポリシーを追加してやる必要があります。手で一からVNC接続用のポリシーを記述することも可能ですが、とても時間がかかりますし、セキュリティを厳しく設定するには、SELinuxを熟知していることが必要で、実際の運用ではなかなかそこまでは手が回りません。せっかくですから今回は「audit2allow」コマンドを使用することで、バイナリポリシーモジュールを生成して解決してみましょう。
●audit2allowコマンドによるバイナリポリシーモジュールの自動生成
第5回「Referenceポリシーの作成と動作テスト」にて、新しくなったaudit2allowコマンドでポリシーモジュールを生成できることを紹介しました。具体的には以下のようにします。
1.auditログから生成する場合
[root@localhost ~]# ausearch -m AVC|audit2allow -M my_policy |
図23 バイナリポリシーモジュールの自動生成(audit) |
2.syslog(/var/log/messages)から生成する場合
[root@localhost ~]# audit2allow -M my_policy < /var/log/messages |
図24 バイナリポリシーモジュールの自動生成(syslog) |
今回はログを確認しやすく、取り扱いやすいという理由から2.のsyslogの情報からポリシーを生成してみます。
まずは「/var/log/messages」ファイルを強制的にローテートして空にします。
[root@vmfc5-nat ~]# chkconfig auditd off [root@vmfc5-nat ~]# service auditd stop ← syslogからSELinuxのアクセス拒否ログを得るため、「auditd」は停止する [root@vmfc5-nat ~]# ls -l /var/log/messages -rw------- 1 root root 797 Nov 13 23:38 /var/log/messages [root@vmfc5-nat ~]# logrotate -f /etc/logrotate.d/syslog [root@vmfc5-nat ~]# ls -l /var/log/messages -rw------- 1 root root 50 Nov 13 23:38 /var/log/messages [root@vmfc5-nat ~]# cat /var/log/messages Nov 13 23:38:14 vmfc5-nat syslogd 1.4.1: restart [root@vmfc5-nat ~]# reboot |
図25 auditdの停止とログの強制ローテート・再起動 |
次に、「reboot」して再起動を行ってから再度VNC経由で一般ユーザーとしてログインし、OpenOffice.orgを起動してみます。そのとき、発生するSELinuxのすべてのアクセス拒否ログは「/var/log/messages」に出力されます。
これを使用してaudit2allowでポリシーモジュールを作成します。
図26 audit2allowでの自動ポリシー生成 |
このとき、生成されるポリシーは非常に大きなサイズになります。これは前回再起動してから行われた動作がすべて反映されたものだからです。
[root@localhost ~]# ls -l vnc_fileserver.* -rw-r--r-- 1 root root 17899 Nov 13 23:50 vnc_fileserver.mod -rw-r--r-- 1 root root 17915 Nov 13 23:50 vnc_fileserver.pp -rw-r--r-- 1 root root 7531 Nov 13 23:50 vnc_fileserver.te |
図27 自動生成で生成されたポリシーファイル |
生成されたポリシーは次のようにインストールできます。
[root@localhost ~]# semodule -i vnc_fileserver.pp [root@localhost ~]# semodule -l vnc_fileserver 1.0 |
図28 バイナリポリシーモジュールのインストールと確認 |
インストールされたポリシーは再起動後も有効になります。あとは「Enforcing」モードで起動して動作を確認してみてください。
【ポリシー生成の注意】 「/var/log/messages」に記録されるSELinuxのアクセス拒否ログは、ほとんどの場合、本当に正しく拒否されるべきものを含んでいます。従って、今回の例では無条件のポリシーを作成しインストールしましたが、本来は拒否ログの1つ1つについて、妥当性を評価する必要があります |
重要ドキュメントとユーザーの管理
ユーザーの管理にはMCSのときと同じく「semanage」コマンドを使用します。例えば、SystemLowからUnclassfiedまでを取り扱うユーザー、engineer1は次のように追加します。
[root@localhost ~]# groupadd engineers [root@localhost ~]# useradd engineer1 -g engineers [root@localhost ~]# semanage login -a -s staff_u -r SystemLow-Unclassified engineer1 [root@localhost ~]# semanage login -l Login Name SELinux User MLS/MCS Range __default__ user_u SystemLow engineer1 staff_u SystemLow-Unclassified root root SystemLow-SystemHigh |
図29 ユーザーengineerの追加と設定 |
このようにしてポリシーと管理用の設定を整え、SELinuxのセキュリティ上の保証と、実際に業務に必要な動作の許可を設定していきます。MLSでは今回説明したように、MCSに加えてさらにセキュリティ階層ごとのアクセス制御が実現できるため、NDA関連文書や、人事、経理などの重要度の高いデータをこのようなサーバ上でのみ取り扱うこととすれば、情報の漏えい、データの改ざんが防げるはずです。
今回はMLSでのソリューション例とその設定方法について解説しました。これはいままでの内容のまとめにもなっていたかと思います。ぜひ、もう一度復習してみてください。
4/4 |
Index | |
Multi Level Securityで機密ファイルを管理する | |
Page1 FC6のリリースとSELinux |
|
Page2 社内機密ファイルの運用・管理をMLSで実現 インストールとRaw Hideへのアップデート サーバ側接続環境のセットアップ |
|
Page3 実際の動作をテストする セキュリティコンテキストを調整する |
|
Page4 システムへのログインと実行ドメインの確認 運用に合わせたポリシーの修正と変更 重要ドキュメントとユーザーの管理 |
Profile |
古田 真己(ふるた まさき) サイオステクノロジー株式会社 インフラストラクチャービジネスユニット Linuxテクノロジー部 OSSテクノロジーグループ 学生時代にUNIXマシン欲しさ、触りたさに秋葉原へ通い詰める。秋葉原でAT互換機や中古UNIXマシンの販売などを経て、IT業界に転職。その後Linuxのエンタープライズ分野での性能評価や、構築案件などを経験し、2004年にテンアートニ(現・サイオステクノロジー)入社。RedHat Linuxのサポート業務、構築案件に取り組んできた。 現在はサイオステクノロジーでSELinuxの調査・研究、ビジネスでの普及活動に注力している。 |
Security&Trust記事一覧 |
- Windows起動前後にデバイスを守る工夫、ルートキットを防ぐ (2017/7/24)
Windows 10が備える多彩なセキュリティ対策機能を丸ごと理解するには、5つのスタックに分けて順に押さえていくことが早道だ。連載第1回は、Windows起動前の「デバイスの保護」とHyper-Vを用いたセキュリティ構成について紹介する。 - WannaCryがホンダやマクドにも。中学3年生が作ったランサムウェアの正体も話題に (2017/7/11)
2017年6月のセキュリティクラスタでは、「WannaCry」の残り火にやられたホンダや亜種に感染したマクドナルドに注目が集まった他、ランサムウェアを作成して配布した中学3年生、ランサムウェアに降伏してしまった韓国のホスティング企業など、5月に引き続きランサムウェアの話題が席巻していました。 - Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とは (2017/7/10)
代表的なマルウェア解析方法を紹介し、自社のみに影響があるマルウェアを「培養」するために構築した動的解析環境について解説する - 侵入されることを前提に考える――内部対策はログ管理から (2017/7/5)
人員リソースや予算の限られた中堅・中小企業にとって、大企業で導入されがちな、過剰に高機能で管理負荷の高いセキュリティ対策を施すのは現実的ではない。本連載では、中堅・中小企業が目指すべきセキュリティ対策の“現実解“を、特に標的型攻撃(APT:Advanced Persistent Threat)対策の観点から考える。
|
|