主要なLinuxディストリビューションの「Linux Unified Key Setup-on-disk-format」(LUKS)に、セキュリティホールが存在することが明らかになった。LUKSはLinuxで使われているハードディスク暗号化のための標準的な仕組みだ。LUKSは多くの場合、「cryptsetup」というユーティリティを使用してセットアップされている。この脆弱性はcryptsetupに存在するもので、かなり深刻度が高く、影響を受けるLinuxディストリビューションには、「Debian」、「Ubuntu」、「Fedora」、「Red Hat Enterpise Linux」(RHEL)、「SUSE Linux Enterprise Server」(SLES)が含まれる。
このようなコードを書くべきではない。システムに問題が発生したらrootシェルに戻るというのは、よいアイデアではない。
セキュリティレポートCVE-2016-4484には、このセキュリティホールを利用すると、攻撃者は「対象システム上でinitramfs(initial RAM file system)のrootシェルを獲得できる。この脆弱性を悪用するには特別なシステムや構成を必要としないため、影響範囲が大きい。攻撃者はハードディスクのコピー、修正、破壊を行えるのに加え、ネットワークをセットアップしてデータを盗むこともできる。この脆弱性は、特に図書館、ATM、空港の端末、実習室などの、ブートプロセスが保護されており(BIOSとGRUBでパスワードを使用)、入力装置がキーボードとマウスしかない環境で深刻な影響がある」と説明されている。
問題なのは、この脆弱性があまりにも簡単に悪用できることだ。システムを起動して、Enterキーを押し続け、しばらく待つ。そのまま1分半も経てば、BusyBoxのrootシェルにアクセスできてしまう。これであらゆることは思いのままだ。皮肉なのは、ハードディスクを暗号化しなければ、この脆弱性の影響を受けることもないということだろう。
問題の根源は「/scripts/local-top/cryptroot」ファイルにある。このスクリプトは、ハードウェア障害の回数が上限に達すると(x86アーキテクチャの場合は30回)、rootアクセスが得られるようになっている。
この脆弱性を利用しても、暗号化されたユーザーのパーティションにアクセスすることはできないが、破損させることはできる。
「大した問題ではない。悪用するにはコンソールが必要だし、マシンに物理的にアクセスできるなら、どちらにせよシステムを破る方法はいくらでもある」と主張する人もいるだろう。しかし問題はクラウドだ。
クラウド環境では、この攻撃を利用して「『物理アクセス』が得られなくても、遠隔からこの脆弱性を悪用」することができる。この脆弱性が存在するUbuntuは、クラウドでもっとも多く利用されているOSであり、非常に深刻な影響が及ぶ可能性も否定できない。
Linuxの配布元がこの問題を修正するまでに、時間はかからないはずだ。しかしそれまでの間は、頭痛の種を1つ抱えることになる。腕に覚えのあるLinux管理者は、パッチの公開を待たずに、設定ファイルを修正すべきだ。
この問題を修正する方法の例。
このセキュリティホールは、西スコットランド大学で計算機科学の講師を務めるHector Marco Gisbert氏が発見したものだ。同氏はセキュリティカンファレンス「DeepSec 2016」でこの脆弱性に関する情報を発表した。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。