FAXの標準規格に脆弱性が発覚、研究者は「複合機経由で社内LANにも侵入できる」ことを実証

独自開発ソフトの脆弱性も発見、エクスプロイトに利用

さらに調査を進めたバルマス氏とイトキン氏は、Officejet Proが搭載するJPEGパーサーの脆弱性に行き当たった。JPEGパーサーは、受信した画像データを印刷する際に画像の幅と高さを知るために起動するソフトウェアだ。

「（調査対象となったOfficejet Proでは）独自開発のJPEGパーサーを搭載していた。そして、独自開発のソフトウェアには脆弱性がつきものだ。案の定、今回のケースでも脆弱性が見つかった」（イトキン氏）

両氏が発見したJPEGパーサーの脆弱性は2つある。1つは、攻撃者が作成した不正なJPEGデータによって、本来受け入れられる容量以上のCOMマーカー（コメントを指すマーカー）が送り込まれてバッファオーバーフローが発生する脆弱性だ（CVE-2018-5925）。もう1つは、DHTマーカー（JPEG圧縮をデコードする際に使うハフマンテーブルの定義データを指すマーカー）を解析するとき、想定されているローカルスタックバッファの256バイトを超える容量のデータが送り込まれてバッファオーバーフローが起きるという脆弱性である（CVE-2018-5924）。

バッファオーバーフローを引き起こすためのメインCPU上のポインタを見つけるため、またリモートコード実行に使うために、両氏は独自のデバッガ「Scout Debugger」を開発した。そのうえで、上述したDHTマーカーの脆弱性を突くエクスプロイトを作成し、ローダーと一緒にJPEGファイル内に埋め込んだ。

ここまで準備できれば、あとは不正なJPEGファイルをFAX送信するだけで攻撃が実行できてしまう。JPEGファイルはノーチェックでOfficejet Proに格納され、エクスプロイトによってバッファオーバーフローが引き起こされる。その後、埋め込まれたローダーがインターネット経由でScout Debuggerをダウンロードし、エクスプロイトと共にメモリ上に展開。これにより、デバッガを介してリモートからの攻撃指示を受け付けるようになる。たとえば下のデモ動画にあるように、Officejet ProのLCD画面に任意の画像を表示させるような攻撃もできる。

さらに怖いのは、この複合機を踏み台として社内ネットワークに侵入できることだ。攻撃対象の複合機を介して「Eternal Blue」や「Double Pulsar」といった攻撃ツールを送り込み、LAN内のPCを感染させれば、それらのマシンも乗っ取ることができる。講演中のデモでは、Officejet Proを介して乗っ取ったPCでWindowsの「電卓」アプリをリモートから起動させ、そうした攻撃が実行可能であることを証明した。もちろん現実の攻撃となれば、企業からの機密データの漏洩などに直結するだろう。

あらゆるメーカーの複合機に影響が波及、最も効果的な対策は……？

バルマス氏とイトキン氏は、今回発見した脆弱性を今年5月にHP Inc.に通報しており、HPにおける実証実験やパッチ開発にも協力した。パッチは8月1日に公開されている。

同脆弱性の影響を受けるHPの複合機／プリンタモデル一覧はHPのカスタマーサポートページ（https://support.hp.com/jp-ja/document/c06102518/）で確認できる（FAX機能を搭載しないプリンタも対象になっている）。該当のモデルを使っている場合は、サポートページの指示に従って早急にファームウェアアップデートを行うべきだ。

また、この脆弱性はそもそもT.30プロトコルに起因するものであり、T.30のカラーFAXに対応する複合機であればメーカーを問わず（HP以外の複合機でも）影響を受ける可能性がある。メーカーからパッチが提供された場合は速やかに適用すべきであり、パッチが適用できない場合はファイアウォールなどで複合機とその他のネットワークを分離するのも1つの手だと、バルマス氏は語る。

もっとも、一番効果的であり、両氏も口を揃えて勧める別の対策がある。これだ。

「Stop Using Fax！」（FAXを使うのはもうやめろ！）