はじめに
こんにちは。FFRI リサーチエンジニアの中川です。
今回は RISC-V 普及に伴う半導体のサプライチェーンへの攻撃の脅威の可能性について取り上げます。
半導体のサプライチェーンは多くのステークホルダーが絡む非常に複雑なものになっており、サプライチェーン攻撃の脅威が以前から指摘されてきました。例えば、設計・製造段階における悪意のあるモジュールの埋め込み、回路情報の盗用などです。
RISC-V 普及に伴い、これまで考えられてきた半導体のサプライチェーンへの攻撃のリスクが高まる可能性について、この記事では見ていきます。
最初に RISC-V についての概要を説明し、半導体のサプライチェーンの概要・過去に発生したサプライチェーン攻撃の事例を紹介し、RISC-V の普及に伴いサプライチェーンへの攻撃のリスクが高まる可能性について説明します。
RISC-V について
過去にこのエンジニアブログでも取り上げていますが、再度 RISC-V について簡単に説明します (過去、RISC-V での JIT-ROPやアンチ逆アセンブルを取り上げています。)。
RISC-V とは以下のような特徴を備えていることから近年注目を集めている Instruction Set Architecture (ISA) です(ISA とは簡単にいえば CPU で実行可能な命令の一覧です。)。 - オープンかつロイヤリティフリー: ISA の利用に際して制約がほとんどない - モジュラーでカスタマイズ可能: 用途に応じて専用の命令を追加することが可能 - スクラッチから設計されたシンプルな構成: 互換性維持のためだけに残された命令がなく、必要最小限の命令のみ定義
4--5 年ほど前まではアカデミック領域における採用事例が主でしたが、近年になって商用での利用事例も出始めています。例えば、NVIDIA は GPU のマイクロコントローラーとして RISC-V の採用を発表、Western Digital は HDD のコントローラーとして RISC-V の採用を発表しています。
中でも注目すべきは中国における採用事例です。Alibaba が自社開発 RISC-V CPU を発表したことで話題になりました。その他、禁輸措置を受けたことで話題になった Huawei が Arm 脱却の手段として、RISC-V も視野に入れていることもニュースとなりました。
RISC-V のハードウェア実装
RISC-V は ISA ですので、どのようにハードウェアとして実装するのかは仕様書には書かれていません。これまでに大学・企業によって実装が複数提案され、中には公開されているものもあります。こうした公開された実装はオープンソースハードウェアと呼称されます。公開されている実装のうち代表的なものを以下に示します。
- カリフォルニア大学バークレー校 (UCB) による実装
- チューリッヒ工科大学 (ETH Zurich) による実装
- Western Digital による実装
上に挙げた実装をベースとして、実際に System-on-a-Chip (SoC) として製造される例も出ています。RISC-V CPU の評価ボード HiFive1 に搭載されている Freedom E310 は Rocket をベースに設計されています。
また、Google が Pixel Visual Core のコントロールユニットとして RISC-V の実装の一つである RISCY をベースとしたプロセッサを試作したとの発表も出ています [1]。その他、先程触れた Alibaba の自社開発 RISC-V はその実装が将来的に GitHub で公開されることが噂されています。
このように、大学発の実装だけでなく、企業発の実装もオープンソースハードウェアとして公開されているケースもあります。
半導体のサプライチェーンについて
次に半導体のサプライチェーンについて説明します。今回は半導体製品の中でも SoC のサプライチェーンに焦点を当てて説明していきます。
まず、SoC 開発ベンダーが SoC の仕様を定め、仕様に従って SoC の設計を行います。このとき、自社の Intellectual Property (IP、知的財産) だけでなく、外部のベンダーから購入した IP も組み込んで使う場合もあります。設計が完了した後は、検証と合成を行い、仕様を満たしているのかの確認を行います。
(読者の中には馴染みのない方も多いと思いますので、 IP について補足説明します。半導体業界では、回路情報のことを単に IP もしくは、 IP コアと呼びます。形式としてソフト IP、ハード IP などがあり、ソフト IP は Verilog などのハードウェア記述言語によって記述された回路情報、ハード IP は物理的なレイアウトが決定済みの回路情報で、GDSII 形式などで配布されます。)
この確認が取れた後、物理的なレイアウトを決定し、ファウンドリーに製造を委託します。製造された SoC はテストを経て SoC 開発ベンダーに納入され、最終的にはエンドユーザーに届けられます。
上記ではかなり簡略化して説明していますが、工程によっては 2 次、3 次下請けの会社に委託されることもあり、関与する企業の数は相当数にのぼるケースがあります。また、サプライチェーンは国際的に構築されることが多く、サプライチェーンに関与する国の数も多くなる傾向にあります。
半導体のサプライチェーンへの攻撃の脅威
前節で触れたように、関与するステークホルダーの数が多いことから、サプライチェーン攻撃による脅威が以前から指摘されてきました。例えば、
- 製造・設計の過程でのハードウェアトロイ埋め込みによる機能障害・情報漏えい
- 製造過程での中古半導体の導入による機能障害
などが指摘されています。
これらの脅威は実際に発生しています。以下のその実例を示します。
軍用機の氷結検知機構電子モジュールに疑わしい半導体部品が搭載 米国の軍用機の氷結検知機構の電子モジュールに使われている Field (FPGA) として中古品のものが導入されていたということが明らかになっています [2]。この問題に関して、米国の上院軍事委員会によるヒアリングが実施されています。
監視レーダーへのキルスイッチの埋め込み イスラエルがシリア核施設の攻撃を行う際に、監視レーダーの半導体に埋め込まれたキルスイッチを動作させた上で行ったとの報告がなされています [3]。
このように、半導体のサプライチェーンへの攻撃により、国防面においてセキュリティ上の問題を引き起こしているケースがあります。
RISC-Vの普及に伴って現れるサプライチェーン攻撃
さて、ここで RISC-V に話を戻しましょう。RISC-V では IP がオープンソースハードウェアとして公開されることを説明しました。また、このオープンソースハードウェアとして公開されている IP を利用し、改良したものを SoC として製造している事例についても説明しました。
こうした半導体業界におけるオープンソースハードウェアの導入は新たなサプライチェーン攻撃の脅威となることが考えられます。例えば、オープンソースハードウェアとして公開されているハードウェアにハードウェアトロイの導入、キルスイッチの埋め込みなどです。
ソフトウェアにおいて、オープンソースソフトウェアに対する攻撃の実例が既にあります。昨年、JavaScript のパッケージの一つ event-stream
に攻撃コードが埋め込まれていたという報告がありました [4]。これは Python パッケージ PyPI においても同様の事例が報告されています [5]。
ハードウェアにおいてもオープンソースハードウェアが活発に利用されることにより同様の脅威が発生する可能性があります。
その他、現状ではそこまで活発に利用されていないですが、ハードウェア開発においてもパッケージマネージャーが活発に利用されることになると、パッケージマネージャーのリポジトリの汚染によるサプライチェーン攻撃なども考えられます。
過去、ソフトウェアにおいてオープンソースソフトウェアの積極的な導入によりオープンイノベーションが起きましたが、RISC-V を契機としてハードウェアにもオープンイノベーションが起きることが予測されます。こうしたオープンイノベーションは開発コミュニティの拡大をもたらし、品質の高い IP の提供に貢献することが期待されますが、その一方で新たな脅威を生むことが考えられます。
おわりに
RISC-V と半導体のサプライチェーンの概要について説明し、将来的にオープンソースハードウェアが積極的に導入されることによる新たな脅威の可能性について説明しました。今後、こうしたサプライチェーン攻撃への対策が必要になります。こうした未来の脅威への対策技術の研究開発をFFRIでは行っています。
参考文献
[1] Evaluation of RISC-V for Pixel Visual Core, Matt Cockrell, https://content.riscv.org/wp-content/uploads/2018/05/13.15-13.30-matt-Cockrell.pdf
[2] Chop shop electronics, John Villasenor and Mohammed Tehranipoor, https://ieeexplore.ieee.org/document/6607015
[3] The Hunt For The Kill Switch, Sally Adee, https://ieeexplore.ieee.org/abstract/document/4505310
[4] Details about the event-stream incident, npm Inc., https://blog.npmjs.org/post/180565383195/details-about-the-event-stream-incident
[5] SupPy Chain Malware - Detecting malware in package manager repositories, Robert Perica and Antonio Zekić, https://blog.reversinglabs.com/blog/suppy-chain-malware-detecting-malware-in-package-manager-repositories