良い知らせと悪い知らせがある。良い知らせは、Linuxカーネルの開発者らがセキュリティホールの有無を綿密にチェックしていること。悪い知らせは、脆弱性が次から次へと見つかっているというものだ。
幸い、開発者らは脆弱性が発見され次第、パッチをリリースしている。
最新の脆弱性3件にはCVE-2016-8655とCVE-2016-6480、CVE-2016-6828という共通脆弱性識別子が割り当てられている。3件のうちで最も深刻なのはCVE-2016-8655だ。この脆弱性が悪用されると、ローカルユーザー(仮想環境やクラウド環境でLinuxインスタンスを使用するリモートユーザーも含まれる)によるシステムのクラッシュや、管理者権限での任意のコードの実行が可能になる。
この脆弱性は、ハッカーであり、セキュリティ研究者でもあるPhilip Pettersson氏によって発見された。これを悪用すれば、Linuxカーネルのpacket_set_ring関数内で競合状態を発生させることができる。競合状態は、システムが1つ1つの処理を、それぞれの完了を待って順番に実行していくのではなく、複数の処理を同時に実行しようとした際に発生する。
CVE-2016-8655を悪用するにはまず、ローカルユーザーとして、ネットワークネームスペース上でCAP_NET_RAW権限を備えたAF_PACKETソケットを生成できなければならない。すべてのディストリビューションではないものの、多くのLinuxディストリビューションでは、権限のないネームスペースを用いてこういったことが実現できる。Pettersson氏は、権限のないネームスペースは「これまでに発見されてきたセキュリティ脆弱性のことを考えると、すべてのLinuxディストリビューションにおいてデフォルトで無効化されるべき」理由があると確信している。
この攻撃の影響を受けるOSには、「Debian」や「Fedora」「Red Hat Enterprise Linux(RHEL)7」「Ubuntu」の最新バージョンも含まれている。
Pettersson氏はこの脆弱性を利用し、「Supervisor Mode Execution Protection」(SMEP)と「Supervisor Mode Access Prevention」(SMAP)によるシステム保護を有効化した「Ubuntu 16.04」上で、管理者権限を持つシェル(root shell)の起動を実証している。
2つ目の脆弱性であるCVE-2016-6480も競合条件に関連するが、1つ目の脆弱性ほど深刻なものではない。これはAdaptecの「AACRAID」コントローラドライバを用いることで、ローカル環境からシステムをクラッシュさせる攻撃が可能になるというものだ。
3つ目の脆弱性であるCVE-2016-6828は、Linuxカーネル上のTCP再送キューを取り扱うコードに存在している。同脆弱性は、標的となるサーバをクラッシュさせたり、任意のコードを実行するために悪用される可能性がある。とは言うものの、Pettersson氏の発見した脆弱性に比べると簡単に悪用できるものではないため、深刻度はそれほど高くない。
いずれにせよ、早急にLinuxシステムにパッチを適用し、被害者にならないようにするべきだ。パッチは現在、すべての主要Linuxディストリビューションで利用可能になっている。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。