6月2~4日に株式会社IDGジャパンの主催で行われた「LinuxWorld Expo/Tokyo 2004」のワークショップにおいて、「SELinuxの紹介と動向」をテーマに日立ソフトウェアエンジニアリング株式会社 技術開発本部研究部の才所秀明氏が講演した。
■ 不正アクセスの根本は、rootの特権が大きすぎること
|
日立ソフトウェアエンジニアリング株式会社 技術開発本部研究部 才所秀明氏
|
|
侵入が半数を占める不正アクセス被害
|
不正アクセスを行う際には、通常はまずポートスキャンや脆弱性検査ツールにより攻撃対象を調査し、バッファオーバーフローに代表されるセキュリティホールから侵入、そして権限昇格によりroot権限の奪取へと至る。rootさえ奪ってしまえば、全リソースにアクセスできるわけだ。IPAの調査によれば、Web改ざん、バックドアの設置、破壊、情報漏えいといった実際の被害のあった不正アクセスのうち約半分を侵入による攻撃が占めている。
同氏は、「従来の対策は、root権限を奪取されないようにするものだった」とした同氏は、「不要なサービスを止めるなどにより侵入可能な箇所を減らすことは、用途によりできることが限られる」とし、また「ファイアウォールやIDSも確かに有効だが、シグネチャに基づいて既知の攻撃パターンを遮断するだけになる」とした。
さらに「迅速なセキュリティホールをふさぐために必要なパッチ適用を、継続的に実施するにはコストがかかる。またパッチが存在していること自体、それは既知の攻撃ということ」とし、これらの対策では「未知の攻撃を防ぐことができず、完全ではない」とした。そしてこれらの根本には、「rootの特権が大きすぎ、奪取が破壊に直結する」ことがある。
■ 強制アクセス制御と最小特権に基づくSELinux
|
通常のLinuxにおける任意アクセス制御(DAC)
|
|
強制アクセス制御(MAC)の仕組みを提供するLSM
|
そこでセキュアOSでは、回避不能なアクセス制御(強制アクセス制御)と、Admin権限であっても全リソースでなく、管理対象に応じた必要最小限の権限を付与する(最小特権)考え方に基づいている。
通常のLinux OSでは、一般ユーザー権限でのアクセス要求に対してパーミッションチェックの後に実行に移す一方、root権限下ではこれを経ずにすべてのリソースにアクセスできる任意アクセス制御(DAC)の仕組みとなっている。
LSM(Linux Security Module)は、Linux Kernel 2.6より標準で採用されており、セキュアOSモジュールをLinuxに実装する上では欠かせないもの。LSMはアクセス要求に対するパーミッションチェックの際に、セキュアOSモジュールにセキュリティチェックを依頼、この結果を受けてアクセスを許可する強制アクセス制御(MAC)の仕組みを提供している。また、たとえroot権限でもチェックの回避は不能となっている。「この処理で、パフォーマンスに数~10%の影響が出るが、メリットを考え合わせれば実用上問題ない範囲」。
このチェック処理を受け渡すモジュールとして、各種のセキュアOSがあり、SELinux(Security Enhanced Linux)は、NAS(アメリカ国家安全保障局)が開発し、GPLに基づいて配布されている。すべてのプロセス、ユーザーに対して最小限の権限に設定されており、監査ログ出力の機能も有している。
また既存のLinux OSとの互換性も高く、Turbolinuxが今秋のリリースへ向けて現在開発中の次期OS“Celica”、またRed Hatの次期バージョンRed Hat Enterprise Linux Ver.4で、対応が予定されている。同氏は「Linux標準を用いているため、ディストリビューションサポートが大きく、デファクトになる可能性が高い」との見方を示した。
■ 4つに大別されるSELinuxのアクセス制御機能
|
プロセスごとにアクセス制御を行う「TE」
|
|
ユーザーごとにアクセス制御を行う「RBAC」
|
|
権限昇格によるドメインの遷移も制御する
|
SELinuxのアクセス制御機能は大きく4つに分かれている。先のMACのほか、プロセス(Type Enforcement:TE)やユーザー(Roll Back AC:RBAC)ごとのアクセス制御、そして権限昇格の制御(ドメイン遷移)となる。
TEは、ドメインとタイプの間のパーミッションにアクセスベクタをつける形で設定する。「通常のパーミッション対象はファイルのみだが、TEでは、ソケットや共有メモリ、ポートに対しても設定できる」とのことだ。これにより例えサーバー内の一部、例えばApacheの権限を奪われても、「ゾーンファイルに対しては権限がないため、改ざんされない」という。またデフォルトではすべて拒否に設定されており、同氏は「設定を忘れるとサーバーが動かないこともあるが、設定をサボってもセキュリティは確保させる意味で、良い設定の仕方だ」と述べた。
RBACは、サーバー内のWeb、メーリングリストなどの管理対象ごとに専用の管理者権限を作成するもの。実際にはユーザーに管理者ロールのユーザーシェルを与え、例えばWebの管理権限だけをTEで設定する。ユーザーはログイン時に与えられたロールを選択し、これに応じたユーザーシェルが起動されることになる。これにより「管理者の操作ミスや悪意に基づいた被害を最小化する」という。
通常のLinuxではログインユーザーからrootへとドメインを変更できる。「システム起動時にはドメイン遷移がどうしても必要になる」が、SELinuxでドメインを変えたい場合には、ログインの再にあらかじめ記述した権限のみへの変更を許可している。このため「余計な権限昇格ができない」ものとなっている。
このほか監査ログの機能では、「TE設定以外の操作を試みた場合にはそのログを保存する。これはある意味では当たり前で、重要なリソースへのアクセスが許可された際のログも保存できる。このため攻撃者の痕跡、管理者の行動も細かく監査できる」とした。
同氏はOpenSSLの脆弱性を利用して、Apacheni感染するSlapperワームを例に、「まずSSL処理でのバッファオーバーフローのバグを付いてシェルを起動することができない」とし、「権限設定によってはその後の/tmpへの攻撃プログラム書き込みも拒否される。また攻撃プログラムのコンパイルと実行も不可能」と、SELinuxの安全性を検証した。
■ SELinux導入は管理コストを削減につながる
次に同氏はSELinuxの導入効果について触れた。通常のサーバーシステムを構成するときには、Web、Mail、DNSなどそれぞれの役割ごとにサーバーを用い、ファイアーウォールやIDSといったセキュリティ機器も複数導入する。これは「サーバーごとに役割を与えれば、もし侵入されても他に被害が及ばない」ためで、同氏の所属する日立ソフトでも推奨しているという。SELinuxを用いることで「複数のサーバーを統合できる」という。これは、たとえ1台のサーバーに各種のインフラを集中しても、それぞれの管理権限を分割できるため、影響が局所化できるためだ。
また「パッチ適用は必要だが」としながら同氏は「それがリアルタイムでなくても侵入を未然に防ぐことが可能になる」と述べ、これらの要因は、「管理コストを削減することにつながる」と語った。
セキュアOSであるSELniuxでも、対処できないことは存在する。例えば「DoS攻撃やメールの不正中継などの侵入以外の攻撃」がそれにあたるとした。またWebアプリケーションの脆弱性を利用した、権限内での悪用にも対応でききないとした。しかし「セキュリティの世界に100%はあまりないはず。いままで対処できなかったものを防げる点で、非常に有用」と語った。
なお日立ソフトでは、「GUIでチェックボックスによりポリシー設定が行えるツール「SELinux/Aid」をIPA委託開発により、GPLで配布している」とのこと。このほか監査ログ解析、ポリシー監査の機能も備えているという。また同社のSSO製品をSELinuxに対応させることで、「不正侵入を防御し、セキュリティを高めた」製品も提供している。またコミュニティへも積極的に参加し、普及活動も行っている。さらに「アプリケーションのポリシー、管理ユーザー権限にノウハウが必要になる」ことから、SELinux関連のSIサービスも提供しているとのこと。
■ URL
LinuxWorld Expo/Tokyo 2004
http://www.idg.co.jp/expo/lw/
日立ソフトウェアエンジニアリング株式会社
http://www.hitachi-sk.co.jp/
Security-Enhanced Linux(英文)
http://www.nsa.gov/selinux/
日立ソフトのSELinuxサイト
http://www.selinux.hitachi-sk.co.jp/
( 岩崎 宰守 )
2004/06/07 11:16
|