2003年12月に仕様が公開されたLinuxカーネル2.6は、安全性を高めるためにSELinux(Security-Enhanced Linux)を採用している。SELinuxとはいったいどのようなものなのか、4月9日に東京国際フォーラムで開催された「第1回セキュアOSカンファレンス」で、日立ソフトウェアエンジニアリング技術開発本部研究部の中村雄一氏が講演した。
SELinuxはLinuxの安全性を高めるためのカーネルモジュールだ。米国国家安全保障局(NSA)で開発され、GPLで配布されている。既存のLinuxディストリビューションに追加する形で導入することができ、プログラムの改変も必要ない。
日立ソフトウェアエンジニアリング技術開発本部研究部の中村雄一氏 |
2000年に公開された当時はカーネル2.2用のパッチとして提供されていたが、12月に仕様が確定したカーネル2.6では標準機能として採用された。また、2005年にはRed HatがEnterprise Linuxでサポートする予定となっている。
中村氏はまず、ファイアウォールなど従来のセキュリティ技術とセキュアOSの違いについて説明した。「従来のセキュリティ技術がいかに侵入を止めるかに注力していたのに対し、セキュアOSは侵入された後に着目した」(中村氏)。セキュアOSではアクセス制御を強化して管理者権限をなくし、侵入を無力化するという。「侵入者は権限が足りないために何もできない」(中村氏)
LinuxベースのセキュアOSは SELinux以外にもLIDS、DTEなどがあるが、細かいアクセス制御ができる点が特徴だと中村氏は話す。強制アクセス制御(Mandatory Access Control:MAC)によってセキュリティ管理者以外はセキュリティ設定を変えられないようにする機能や、ユーザー別のアクセス制御(RBAC)によって管理者権限を分割し、ウェブ管理専用ユーザーなどが設定できる機能を備える。また、プロセスごとのアクセス制御機能(Type Enforcement:TE)もあり、セキュリティホールを利用されても一部のファイルを閲覧される程度の被害で済むという。
中村氏はSELinuxがワームの攻撃を防いだ事例として、OpenSSLの脆弱性を利用してApacheに感染するSlapperワームを挙げた。SlapperワームはApacheに接続し、バッファオーバーフローを利用してシェルを起動させ、攻撃プログラムを実行する。しかしSELinuxではApacheがシェルの実行権限を持たないため、ワームの被害を受けないのだという。
同様に10種類のワームを使ってセキュリティホールのあるアプリケーションを攻撃した実験では、8件が被害がなく、残りの2件もアプリケーションが停止する程度の被害にとどまったと中村氏は紹介した。
SELinuxは監査ログ機能も備えており、管理者や攻撃者の行動をすべてログに保存する。このため内部犯行の抑止効果が期待でき、侵入された場合も証拠が残るという。
ただしSELinuxでも対処できない問題もある。中村氏によると、DoS攻撃などの侵入以外の攻撃や、限定された権限内での操作を悪用された場合は対応ができないという。また、OSそのものにセキュリティホールがある場合も同様だ。「全てのリスクに100%対処できるものではない」(中村氏)として、ファイアウォールなどとの併用は欠かせないと警告した。
CNET Japanの記事を毎朝メールでまとめ読み(無料)
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」
ZDNET×マイクロソフトが贈る特別企画
今、必要な戦略的セキュリティとガバナンス