ADASシステムのセキュリティ進化

## コネクテッドカーを取り巻く現状と課題

近年、自動車は「Software Defined Vehicle (SDV)」へと進化し、自動運転や先進運転支援システム（ADAS）の普及に伴い、センサー、アクチュエーター、コンピューティング能力が飛躍的に向上しています。
消費者は、音声操作、ジェスチャーコントロール、最新のアプリケーションといった、より高度な機能を期待するようになっています。
これにより、自動車業界には新たな収益機会が生まれています。

一方で、ソフトウェアの複雑化は、攻撃対象領域の拡大を招き、コネクテッド化は、攻撃の規模を拡大させる可能性を高めています。
自動車に対するサイバー攻撃は、物理的な安全を脅かすだけでなく、ブランドイメージや企業収益にも深刻な影響を与える可能性があります。

## 法規制とコンプライアンス
自動車のサイバーセキュリティに関する法規制は、世界中で強化されています。

UNECE WP.29: 世界60か国以上で型式認証の法的要件となるR155/156は、ソフトウェアアップデートと車両サイバーセキュリティの積極的な解決を義務付けています。

ISO 21434: 車両サイバーセキュリティリスクを管理するための推奨事項を定めています。

中国の法律: 「自動車サイバーセキュリティに関する技術的要求事項（2024）」、「データセキュリティ法（DSL）（2021）」、「個人情報保護法（PIPL）（2012）」など、複数の法律が存在します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3973392/a84f296c-78a6-45e2-b22f-2e52b5fa173c.png)


## TEE（Trusted Execution Environment）の役割
このような状況下で、TEE（Trusted Execution Environment）は、自動車のセキュリティを強化するための重要なソリューションとして注目されています。

TEEは、カスタムコードやデータを隔離し保護するための安全な領域を提供します。
ハードウェアセキュリティ、ハードウェアRoot of Trust、高性能、セキュアなTrusted Application (TA)の実行能力などのメリットがあります。

### TEEによる次世代ハードウェアとソフトウェアの統合
TEEは、次世代のコネクテッドカーにおいて、以下のような役割を果たします。

- SOC（System on Chip）のセキュリティ強化

- アーキテクチャの簡素化と柔軟性の向上

- ハードウェア互換性の問題を回避

- コード/IP保護

- コスト削減とパフォーマンス向上

- 暗号化技術の柔軟性とアップデート可能性

- サプライチェーンのリスク軽減

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3973392/963bd97a-d55f-4308-a2e1-048846ddc17d.png)


## 車両セキュリティアーキテクチャ設計

OTA (Over-The-Air) アップデート、PKI (公開鍵基盤)、T-BOX、IVI (In-Vehicle Infotainment)、ADASなどのコンポーネントにおいて、TEEを活用したセキュリティ対策が不可欠です。
例えば、TEEは、暗号化スタックと鍵を隔離し、通信やストレージを保護するために使用できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3973392/dfc75d99-3a9b-4f79-a61c-54c0d12cb5be.png)


## TEEを使用したADASが必ず安全であるとは限りません

最近、HardenedLinuxの開発者がARMプラットフォームに[関する研究を行いました](https://github.com/hardenedlinux/tzram-audit/blob/master/trust-but-verify.png)。ARM TrustZoneは、メモリを2つの世界に分割するように設計されています：リッチ実行環境（REE、Linux/Androidなど）を実行する非セキュアワールドと、信頼できる実行環境（TEE OS）を実行するセキュアワールドです。これは、自動車、モバイル、ハードウェアウォレットなどの産業で広く展開されています。主なポイントは以下の通りです：

- **Linuxカーネル**は非セキュアEL1（NS.EL1）で実行されます。
- **TEE OS**はセキュアEL1（S.EL1）で実行されます。
- **セキュアモニター**（例：ARM Trusted Firmware、ATF）はセキュアEL3（S.EL3）で実行されます。
- **Linuxカーネル**はセキュアモニターにSMC（Secure Monitor Call）命令を発行し、セキュアモニターはリクエストをTEE OSにルーティングします。
- **ARMコアアーキテクチャ**には、デフォルトでMMUのセキュリティ拡張がありません。これは、SoCベンダーがTZASC（TrustZone Address Space Controller）用の専用IPを統合しない限り、2つの世界間のメモリ隔離が効果的でないことを意味します。
- セキュアな取り扱いが必要な周辺機器は、セキュアワールドによって管理されなければなりません。したがって、SoCはTZPC（TrustZone Protection Controller）用の追加IPを統合する必要があります。このアプローチは、MMU、IOMMU、EPC、SGX、またはTDXを使用するx86_64エコシステムとは大きく異なります。
- **ARMリファレンスモデル**では、セキュアワールドと非セキュアワールドの同じ物理アドレス（例：非セキュア物理アドレスnp:0x1000とセキュア物理アドレスsp:0x1000）が、メモリシステム全体の異なる場所を指すことができます。しかし、ほとんどのSoCベンダーはこの複雑さを避ける傾向があります（すなわち、np:0x1000とsp:0x1000は同じ場所を指します）。
- **x86と比較して**、ARM TEEはシステム管理モード（SMM）により類似しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3973392/6da32ace-7747-434a-98a2-be8b7288afcf.png)


## まとめ
ADASシステムのセキュリティは、コネクテッドカーの普及とともにますます重要になっています。
TEEは、自動車のセキュリティを強化するための有効なソリューションであり、法規制への対応、サイバー攻撃からの保護、そして安全な自動車社会の実現に貢献します。


https://github.com/hardenedlinux/grsecurity-101-tutorials/blob/master/embedded_platform_security.md

https://dl.acm.org/doi/fullHtml/10.1145/3538969.3538995

https://hardenedlinux.org

https://hardenedvault.net