あるセキュリティ研究者が「Linux」カーネルの脆弱性を突くゼロデイコードをリリースした。コードはLinuxのセキュリティ保護を迂回できるという。

 この脆弱性を悪用するソースコードは,Dailydaveメーリングリスト上の研究者Brad Spengler氏によって,先週公開された。Spengler氏によると,このコードはLinuxのバージョン2.6.30および2.6.18の脆弱性を悪用し,32ビット版と64ビット版の両方に影響を及ぼす。2.6.18カーネルは,「Red Hat Enterprise Linux 5」で使用されている。

 このエクスプロイトコードは,メインラインカーネルにおけるNULLポインタデリファレンスに対する保護を迂回し,root権限を掌握する,とSpengler氏は書いた。

 さらに,このコードは,カーネルの外側で動作しているアプリケーションに対してSecurity-Enhanced Linux(SELinux)がまだ機能していると信じ込ませながら,auditやSELinux,AppArmor,Linux Security Moduleといったセキュリティ機能を無効にする任意コード実行を試みる。

 Spengler氏はソースコードに関連するメモの中で,OSの追加機能としてSELinuxを実装している場合,セキュリティが弱くなると述べた。SELinuxはカーネルに適用可能な修正セットで,セキュリティポリシー群を提供することによって,本来はカーネルをより強固なものにする。

 「これらのエクスプロイトコードに関して言えば,SELinuxを有効にすることによって,実際にはシステムのセキュリティが弱体化してしまう」とSpengler氏は書いた。

 セキュリティトレーニング組織であるSans Instituteは,このエクスプロイトコードを「興味深い」と称した。Sans InstituteのインシデントハンドラーであるBojan Zdrnja氏は米国時間7月17日,ブログ投稿記事の中で,このエクスプロイトコードはLinuxのコンパイラを使ってセキュリティ機能を突破している,と述べた。

 「Linuxコンパイラにより,ソースコードには存在していなかった脆弱性がバイナリコードにもたらされる」とZdrnja氏は書いた。「これによって,カーネルは0x00000000でのデータの読み書きを試みるようになる。攻撃者は,これをユーザーランドにマッピングすることにより,システムを乗っ取ることができる」(Zdrnja氏)

 Spengler氏はソースコードに関するメモの中で,管理者は-fno-delete-null-pointer-checksを使ってカーネルをコンパイルすることで,これを回避できると述べている。

この記事は海外CBS Interactive発の記事をシーネットネットワークスジャパン編集部が日本向けに編集したものです。 原文へ