ナズナ記

日記

3Dプリンタと情報セキュリティの話

余談

少し前、Kali Linuxで遊んでいた時の話。パソコンを2台並べてMITM攻撃をローカル環境で再現して遊んでいた。もうすでに、HTSTが浸透し始めた時期だったので大半のサイトのログイン情報は簡単には抜けない状態であった。しかし、よく利用するある動画サイトで攻撃に成功して真っ青になった思い出がある。いざ、気を付けて利用していたかと突き付けられたとき、自信がなくなってしまった。

本題

3Dプリンタ、特にコントローラ(Klipper)の安全性について、気になるツイートを見たので書いてみたいと思う。

ある有名な方が、「3Dプリンタをハッキングして、違法物(銃など)を造形して通報すればその人の人生が終わらせられる」というツイートをしていた。

私はより致命的な危険性を孕んでいると思うが、まずシステム自体の怖さ。3Dプリンタを乗っ取るまでの話をする。

乗っ取る切り口

一般的に3Dプリンタは以下のような構成であることが多いと思う。

3Dプリンタ<---[Serial]--->コントローラ<---[WiFi]--->ルータ<---[LANケーブル]--->制御端末(PCなど)

ここから、3Dプリンタを乗っ取ることを考えるとコントローラを乗っ取るのが簡単そうだ。なぜならコントローラは認証がいらないからだ。コントローラを乗っ取るにはルータか制御端末を乗っ取ればよい。

ルータを乗っ取る(LANに侵入する)手法は様々ある。WiFiの暗号化を突破する方法、ルータの脆弱性をつく方法、制御端末をウイルスなどで乗っ取る方法。制御端末を乗っ取るのはかなり容易だ。きっと、VPNなどを通してスマートフォンでプリンタの様子を見るなどしているだろう。それも対象だからだ。

乗っ取った後の話

私が危惧しているのは、3Dプリンタ、コントローラそのものに情報セキュリティ対策が一切されていないことである。(要はセッション層、プレゼンテーション層の暗号化)

コントローラのソフトウェアであるKlipperのprinter.cfg

これはコントローラの設定画面である。広く利用されているKlipperのもの。この項目は制御端末から何のログイン情報も、認証も経ず書き換えられる項目だ。max_temp、min_tempは3Dプリンタの発熱機構の上限、下限を決める。乗っ取った攻撃者がmax_temp:999、min_temp:-999にしたらどうなるだろう。きっと、その人の家を燃やすだろう。

対策

まず、最も簡単な防護策は完全にオフライン環境で運用する。もっとも簡単かつ効果的だ。WiFiももちろん接続できないし、印刷状態を遠隔で確認することもできない。SDカードやUSBメモリで印刷データを入力すること。

これは別の安全面からよくない。

だが、現状Klipperにパスワード保護などの認証するような項目はない。現状、ハッカーに震えながらLAN、端末をクリーンに保つしかないようだ。

あとがき

そもそも、LANに侵入されている時点で、な話な気はしたが3Dプリンタがなければハッカーは容易に家を燃やすことはできない。*1ハッカーに命を奪われるなんてことはMr,Robotのようなドラマの中の話だった。

3Dプリンタは情報の空間と現実の空間をつなぐ魅力的なインターフェースであるが、同時に情報の空間の攻撃が現実により強く響くインターフェースでもあるということは常に頭の片隅に置いておきたい。

*1:尤も、スマート家電などがより普及すれば、もっと広範囲の人間にとって致命的だろう