ITU-Tが定めたFAX通信規格「T.30」に存在する脆弱性を利用すれば、ターゲットのFAX番号を知っているだけでバッファオーバーフローを引き起こし、デジタル複合機（MFP）を乗っ取ることができる。さらにランサムウェア「WannaCry」でも使われた脆弱性攻撃ツールなどを組み合わせれば、複合機を踏み台にしてオフィスネットワーク内のPCやサーバーにも侵入を拡大し、機密データを盗み出すことなども可能になる――。

2018年8月12日、米国ラスベガスで開催されたハッカーイベント「DEF CON 26」では、こうした攻撃手法を紹介する講演「What the Fax!?」が行われた（講演タイトルはネットスラング「WTF＝What the Fuck」のもじりだ）。講演を行ったCheck Point Software Technologiesのセキュリティリサーチャー、ヤニフ・バルマス氏とエイヤル・イトキン氏は、この攻撃手法は数多くの複合機において有効であり、メーカーおよびユーザーは早急に対応すべきだと強調した。

FAXはまだオフィスで現役、そして社内LANにもつながっている。それならば……

「ピッピッ……ピーーーーヒョロロロロロ……ヒョロロロロロ……」

講演冒頭、FAX送信時の“例の音”を流して会場の爆笑を誘ったバルマス氏は、現在のFAXマシンはコピー機／プリンター／スキャナーの機能を統合したデジタル複合機へと進化していること、そして電話回線だけでなくEthernet（LAN接続）、USB、Bluetoothなど多様な接続インタフェースが用意されていることを説明する。

もっとも、今となっては電子メールなど、あらゆる面でFAXに勝るコミュニケーション手段はいくらでもある。インターネット世代、モバイル世代は「今どきFAXなんて使ってないだろう」と考えがちだが、実際にバルマス氏がグーグル検索してみると「3億件以上」のFAX番号がヒットしたという。FAXによる書類のやり取りが慣習として根付いており、ほかの手段に切り替わっていない業界や地域も多い。その代表が日本である。

「たとえば船舶の世界では海図をFAXでやりとりしている。また銀行や行政機関の中には、申請手続きを郵便かFAXに限定しているところもある。それよりも驚きなのは日本だ。日本では、9割以上の企業がいまだにFAXを現役で利用しているらしい」（バルマス氏）

日本が名指しされたので調べてみたところ、総務省の統計資料「平成18年度（2006年度）通信利用動向調査」が見つかった。それによると、国内事業所におけるFAX保有率は「97.8％」。10年以上前のデータであり、さすがに現在はここまで高い割合ではないと信じたいところだが、筆者自身もつい先日、あるサービスの手続きで「受け付けはFAXのみ」という体験をしたばかりだ。コンビニにある高機能な複合機からFAX送信できたため事なきを得たが、果たしてこれが先進的な生活なのかどうか……。

それはさておき、FAXをさまざまなやり取りに利用する企業や業界はまだまだ多い。そして現在のオフィスでは、多くのFAXがデジタル複合機に機能統合されており、FAX回線と同時に社内ネットワークにもつながっている。「それならば、FAX回線経由で社内ネットワークに侵入できる可能性もあるのではないか」――。そう考えたバルマス氏とイトキン氏は、さっそく調査を開始した。

HPのビジネス複合機で調査開始、FAX通信規格の脆弱性を発見

まずは複合機の構造を調査し、攻撃の可能性を探るところから始めたい。バルマス氏とイトキン氏は、調査対象として米HP Inc.のビジネス複合機「Officejet Pro」を選択した。価格が安く入手しやすいことはもちろん、HPが米国プリンター市場で約4割のシェアを持つ大手であることもその理由だったという。

両氏は入手した複合機をさっそく解体して、基板をチェックした。基板上には「JTAG（CPUや基板などのデバッグ用ポート）」や「SERIAL DEBUG（カーネルやアプリケーションのログを出力する汎用ポート）」などとプリントされたポートがある。このポートに接続できるか試したところ、JTAGは無効化されていたが、SERIAL DEBUGインタフェースは生きているようだ。

両氏はファームウェアを足がかりにして侵入する方法を検討しており、デバッグができればファームウェアでどのようにデータが扱われるかなどの詳細がわかるはずだと考えていた。何とかしてSERIAL DEBUGポートを使いたいところだが、ここにシリアル接続して「dir」や「read」といったコマンドを打っても「error: I don't understand」という応答しか返ってこない。どうやら何らかの機能制限がかかっているらしい。

調査を重ねた結果、2017年7月にセキュリティベンダーのSenrioが、XMLライブラリである「Genivia gSOAP」の古いバージョン（Ver.2.7～2.8.47）で、soap_get関数にスタックオーバーフローの脆弱性があることを発表していた。併せてエクスプロイト「Devil's Ivy」も公開されている（CVE-2017-9765）。

今回の調査対象であるOfficejet Proにもこの脆弱性が存在し、Devil's Ivyを使って2GB以上のXMLファイルをTCP/53048ポート経由で送信すると、バッファオーバーフローが発生して権限昇格（システム権限の奪取）が狙えることがわかった。

ちなみに、ファームウェアはHPのダウンロードサイトから入手した。「これまでHPが販売してきた全製品の全ファームウェアが掲載されていた。とにかくすごい数で、目的のファームウェアを探すだけで2週間かかったよ」と、バルマス氏は苦笑する。

解析環境が整ったところで、両氏は本格的に内部構成を調べ始めた。調査対象のOfficejet ProではThreadXベースのリアルタイムOSを使っていること、メインCPUは32ビットのARMプロセッサであり、CPUとLCD画面を制御するMCU（マイクロコントローラーユニット）との通信のために共有メモリ領域を使っていること、T.30プロトコルに基づくカラーFAXの送受信をサポートしていることなどがわかった。

T.30は、ITU-Tが定めるFAX通信規格の1つだ。1976年に最初のエディション（バージョン）がリリースされ、その後アップデートを繰り返すなかで1995年にはカラーFAXの拡張規格も追加されている。T.30が最後にアップデートされたのは2007年だ。

今回の調査過程で、このT.30で定めるカラーFAX通信について重要な事実が判明した。カラーFAXではJPEGデータを送受信するが、受信側端末ではJPEGデータをサニタイズ（無害化処理）することなく、受信したデータをそのままJPEGファイルとして保存するのだ。受信側がサポートしていないJPEGマーカー（データ構造のラベルの1つ）が含まれていれば、その部分は破棄したり受信をスキップしたりする処理が実装されていてしかるべきだが、そうはなっていない。

ここに攻撃者が付け入る隙が生じている。攻撃対象のFAX番号がわかっていれば、不正なコードを仕込んだJPEGデータを作成してFAX送信するだけで、そのファイルをノーチェックでターゲットの複合機内に格納できるわけだ。これは攻撃者にとって大きなチャンスとなる。