あるセキュリティ研究者が「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発の記事をシーネットネットワークスジャパン編集部が日本向けに編集したものです。 原文へ