付録 C: Internet of Things の検証要件

この章はもともとメインブランチにありましたが、OWASP IoT チームが行った成果があり、この主題に関して二つの異なるスレッドを維持することは意味がありません。4.0 リリースでは、これを付録に移動し、これを必要とするすべての人には、むしろメインの OWASP IoT プロジェクト を使用するように強く要請します。

管理目標

組込みデバイスおよび IoT デバイスは以下である必要があります。

  • 信頼できる環境でセキュリティ管理を実施することで、デバイス内のセキュリティ管理をサーバ内にあるものと同じレベルに保ちます。

  • デバイスに保存されている機密データはセキュアな要素としてハードウェア支援のストレージを使用してセキュアに処理されます。

  • デバイスから転送されるすべての機密データはトランスポート層セキュリティを使用します。

セキュリティ検証要件

#
説明
L1
L2
L3
導入バージョン

C.1

USB, UART などのアプリケーション層のデバッグインタフェースが無効化されている、または複雑なパスワードで保護されている。

4.0

C.2

暗号鍵および証明書が個々のデバイスごとに一意である。

4.0

C.3

適用可能である場合、ASLR や DEP などのメモリ保護制御が組込みおよび IoT オペレーティングシステムにより有効化されている。

4.0

C.4

JTAG や SWD などのオンチップデバッグインタフェースが無効化されている、または使用可能な保護メカニズムが有効化され適切に構成されている。

4.0

C.5

デバイス SoC や CPU で Trusted Execution が利用可能な場合、Trusted Execution が実装され有効化されている。

4.0

C.6

機密データ、秘密鍵および証明書が Secure Element, TPM, TEE (Trusted Execution Environment) 内にセキュアに保存されている、または強力な暗号化を使用して保護されている。

4.0

C.7

ファームウェアアプリがトランスポート層セキュリティを使用して転送中のデータを保護している。

4.0

C.8

ファームウェアアプリがサーバ接続のデジタル署名を妥当性確認している。

4.0

C.9

ワイヤレス通信が互いに認証されている。

4.0

C.10

ワイヤレス通信が暗号化されたチャネルを介して送信されている。

4.0

C.11

禁止されている C 関数の使用が適切で安全な同等の関数に置き換えられている。

4.0

C.12

各ファームウェアがサードパーティコンポーネント、バージョン、公開脆弱性をカタログ化したソフトウェア部品表を保守している。

4.0

C.13

サードパーティのバイナリ、ライブラリ、フレームワークを含むすべてのコードがハードコードされたクレデンシャル (バックドア) についてレビューされている。

4.0

C.14

アプリケーションおよびファームウェアコンポーネントがシェルコードラッパーやスクリプトを呼び出すことによる OS コマンドインジェクションの影響を受けない、またはセキュリティ制御が OS コマンドインジェクションを防止する。

4.0

C.15

ファームウェアアプリが信頼できるサーバへのデジタル署名をピン留めしている。

4.0

C.16

改竄防止や改竄検出機能がある。

4.0

C.17

チップ製造元により提供される利用可能な知的財産保護技術が有効化されている。

4.0

C.18

セキュリティ管理策がファームウェアのリバースエンジニアリングを妨げている (冗長なデバッグシンボルの削除など) 。

4.0

C.19

デバイスがロード前にブートイメージの署名を妥当性確認している。

4.0

C.20

ファームウェア更新プロセスが time-of-check vs time-of-use 攻撃に脆弱ではない。

4.0

C.21

デバイスがコード署名を使用してインストール前にファームウェアアップグレードファイルを妥当性確認している。

4.0

C.22

デバイスが有効なファームウェアの古いバージョンにダウングレードできない (アンチロールバック) 。

4.0

C.23

組込みデバイス上での暗号論的にセキュアな疑似乱数生成器を使用している (チップ提供の乱数生成器など) 。

4.0

C.24

ファームウェアが所定のスケジュールに従って自動ファームウェア更新を実行できる。

4.0

C.25

デバイスが改竄の検出や無効なメッセージの受信時にファームウェアおよび機密データを消去している。

4.0

C.26

デバッグインタフェース (JTAG, SWD など) の無効化をサポートするマイクロコントローラのみが使用されている。

4.0

C.27

樹脂開封やサイドチャネル攻撃からの堅牢な保護を提供するマイクロコントローラのみが使用されている。

4.0

C.28

機密のトレースがプリント回路基板の外層に露出していない。

4.0

C.39

チップ間通信が暗号化されている (メインボードとドーターボードの通信など) 。

4.0

C.30

デバイスがコード署名を使用して実行前にコードを妥当性確認している。

4.0

C.31

メモリに保持されている機密情報が不要になるとすぐにゼロで上書きされている。

4.0

C.32

ファームウェアアプリがアプリ間の分離にカーネルコンテナを利用している。

4.0

C.33

-fPIE, -fstack-protector-all, -Wl,-z,noexecstack, -Wl,-z,noexecheap などのセキュアなコンパイラフラグがファームウェアビルド用に構成されている。

4.0

C.34

マイクロコントローラにコード保護が構成されている (適用可能である場合) 。

4.0

参考情報

詳しくは以下の情報を参照してください。

Last updated

Was this helpful?