オープンソースソフトウェアは市販のソフトウェアよりも安全である。このように考える人は多く、最近はハードウェア開発にも同様の理論を当てはめようという動きが見られるようになりました。しかし、先月行われた第36回Chaos Communication Congress（36C3）では、アンドリュー・”バニー”・ホアン（Andrew “bunnie” Huang）氏、ショーン・”xobs”・クロス（Sean “xobs” Cross）氏、トム・マーブル（Tom Marble）氏が、オープンソース開発の採用でハードウェアの信頼問題を十分に解決できるだろうかとの疑問を提起しました（リンク先はいずれも英語）。スピーカーとして登壇したのはホアン氏です。

信頼面でのハードウェアとソフトウェアの違い

オープンソースソフトウェアの安全性は、その開示性だけでなく、認証のために広く利用されているツールにもかかっています。要は、エンドポイントで実行されているプログラムが公開されたソースコードに忠実であることを保証するためのツールです。たとえば、プログラマーはソフトウェアにデジタル証明書で署名し、システムはコンピューター上でそのソフトウェアを実行する前に、この証明書をチェックします。

しかし、ハードウェアとなると話が変わります。ハードウェアにはハッシュやデジタル署名のようなものはありませんから、ハードウェアについて公開された情報と照合して信頼性を検証する術が利用者側にありません。デバイスやチップが最後にチェックを受けるのは工場です。工場でのチェックからデバイスが使われるまでの時間が長いほど、中間者攻撃が成功する確率は高まります。

どのような問題が起こりうるのか

一般的に言って、工場を離れてから使われ始めるまでの間に、チップやデバイスには何が起きてもおかしくありません。まず、ファームウェアがすり換えられる可能性があります（もちろん、ファームウェアは実質的にソフトウェアの問題ですから検証できますが、それでも検証に当たってはハードウェアに依存せざるを得ません）。そんなわけで、この講演では厳密にハードウェアに関連する問題（コンポーネントのすり替え、改竄、埋め込み）に焦点が当てられています。

コンポーネントの追加

近ごろの不正モジュールは、充電ケーブルのUSBコネクターにすっぽり収まります。当然ながら、多数のコンポーネントで構成される高度な機器は、取り付けるスペースが多いので、もっと簡単に改竄できます。明るい話としては、追加されたチップを比較的見つけやすいということくらいです。

コンポーネントのすり替え

すり替えに使われる一番単純な方法は、刻印の改竄です。たとえば、こんな実例があります。不審な動作をするマイクロコントローラーを目視確認したところ、STMicroelectronics社の正しい刻印がされていましたが、実は別のメーカーのものでした。このときの不正は高価なコンポーネントを安物にすり替えるというものでしたが、すり替えられたコンポーネントに何が入っていてもおかしくありません。

チップの改竄

いったん工場から出荷されたチップを改竄するのは不可能だと思われがちですが、そんなことはありません。1つのチップに見えるものは、多くの場合、実際は複数の超小型回路が1つのパッケージにまとまったものです。経験豊富な人であれば、小さなシリコンのかけらを付け足し、既存の接続先につなぐことができます。

事実、必要な道具は比較的安価で、簡単に手に入ります（登壇者によると、中国製の微細溶接機は中古で7,000ドルほど）。とはいえ、改竄されているかどうかはX線にかければすぐに分かります。ウエハーレベルCSP（WL-CSP）を改竄する場合はもっと費用がかさみますが、こちらはX線で見破れません。

集積回路（IC）の改竄

自社分野に特有のタスクに適したチップを自社内で設計し、製造を外注するのが一般的で、チップを自社生産する余裕があるのは大企業だけです。このような状況ですから、委託条件を遵守しながら最終製品に変更を加える手段はいくらでもあります。それだけでなく、チップやデバイスが設計者の手を離れた後、元々の仕様と最終製品をわざわざクロスチェックする人はなかなかいません。

ハードウェアが改竄される可能性があるのは、どの時点か

講演の中では、改竄シナリオがいくつか提示されました。かなり難易度の高いもの（貨物の輸送途中で改竄を加えるという極端な例）から比較的やさしいものまで、さまざまです（リンク先は英語）。ざっくり言うと、誰でも商品を購入し、改竄した上で販売元へ返品できますし、この商品が販売元からそのまま再販される可能性があります。また、メーカーの梱包部門や通関業者などの関係者は、調達のさまざまな段階で堂々と製品に触れることができますから、その気になれば製品を改竄できます。どう考えても、オープンソースハードウェアの使用がセキュリティを向上させることはありません。

結論

講演の終盤でホアン氏は、エンドユーザーがチップやデバイスの安全性を検証できるようになるには、ハードウェア生産にどのような変更を加えればよいかを考察しました。この取り組みの根本原理や、チップの改竄に関する技術的詳細に関心のある方は、講演の録画（英語）を参照することをお勧めします。

ハードウェアを危険なものに改造する方法は多数ありますが、お金や手間のかからない方法も少なくありません。また、何といっても、攻撃の複雑さと検知の難しさに直接的な相関関係がない点には注意が必要です。企業ユーザーの皆様には、こういった脅威の存在を常に念頭に置くこと、また、エンドポイントセキュリティ製品だけに頼るのではなく、高度な脅威や標的型攻撃を回避可能なソリューションを導入して企業インフラを保護することを推奨します。