Comments
Description
Transcript
組み込みシステムにおける セキュリティ対策技術 および研究動向
組み込みシステムにおける セキュリティ対策技術 および研究動向 (独)産業技術総合研究所 セキュアシステム研究部門 制御システムセキュリティ研究グループ長 古原 和邦 (こばら かずくに) 製品設計講座:古原 ICSインシデント/脆弱性報告件数 ICS-CERT “Year in Review” より ICS: Industrial Control System 製品設計講座:古原 2 背景 • 攻撃者の興味がPCから非PCへ拡大 – 産業用制御システム、自動車、医療機器 • 理由: – 実社会との接点 => インパクトの大きさ – 対策が十分でない場合が多い – 仕組みやアルゴリズムが暴かれ参入が 容易に • 興味本位から実利へ – 金銭、サイバースパイ、恐喝、サイバー テロ 製品設計講座:古原 3 対象システムの探索 http://shodanio.wordpress.com/2014/02/18/introducing製品設計講座:古原 shodan-maps/ 4 製品設計講座:古原 4 組込システム周りに存在する潜在リスク 設定/操作系 • 認証方式の甘さ(デフォルトパスワード、パスワードリ セット、短すぎるパスワードなど)による侵入と不正操作 組込システム • • • • • • 通信路 組込システム 盗聴 改ざん リプレイ なりすまし 本体(開発/実行/運用時) 中間侵入 • セキュリティホール • 侵襲型/非侵襲型攻撃 DoS – サイドチャネル攻撃 • 複製/模倣品 ファームウェア/起動・設定ファイル • 内容の解析による脆弱性の発見、ファームウェア中に記述されて いる鍵やパスワード情報などの漏えい • 改ざんによる不正な挙動の仕込み(トロイの木馬) 製品設計講座:古原 5 潜在リスク 開発/実行/運用時 への対応策 設定/操作系 • 利用者認証/鍵共有強化 • パスワード/鍵管理 • • • • • セキュアコーディング コンパイラーによる対策 コード解析/自動生成 ファジング 実行環境による対策 • ESP, ASLRなど • 侵入検知/防御 通信路 • 暗号化 • 改ざん/再送検出 • 相手認証/鍵共有 本体 • 耐タンパー性 ファームウェア/起動・設定ファイル • サイドチャネル攻撃対策 • 暗号化 • 耐クローン性 • 改ざん検出/生成者認証 • PUF • MAC/デジタル署名の付与 MAC: Message Authentication Code PUF: Physically Unclonable Function 製品設計講座:古原 ESP: Executable Space Protection ASLR: Address Space Layout Randomization 6 情報セキュリティ対策の難しい点 • とにかくセキュアにすること自体はそれほど 難しくない。 • 必要最低限の対策群の特定 – コスト、使い勝手、性能、互換性、利用環境、 運用体制、ライフサイクルなどを考慮しながら 最適なものを • 進化する攻撃の予想と対応 – 対策を取るとそれを迂回する攻撃が出てくる • 将来予想される攻撃の変化も考慮に入れる必要が ある。 • リスクアセスメント/リスクコントロール 製品設計講座:古原 7 リスクへの対処方法:リスクコントロール • 予防策を講じる v 予防策 – 発生確率と影響を抑える(損失予防・抑止) • 事後の対応策を準備する – 不測事態対応計画(Contingency Plan) – 検知、損失軽減、回復 • リスク保有 v 事後 対応 – リスクファイナンス(損失にそなえる資金) • リスク移転 – 保険、アウトソーシングなど • リスク回避 – リスクの生じる可能性のあるサービスは行わない – 関連する情報資産を保有しない 製品設計講座:古原 8 一般的なリスクアセスメント • (情報資産を含む)資産の洗い出し • 優先的に管理・保護すべき資産と そのランクの決定 • 機密性・完全性・可用性の評価 • 脅威と脆弱性の特定 • 資産リスクの評価 • リスク管理方針の決定 • リスク管理策の決定 製品設計講座:古原 視覚的 に検討 9 脅威の進展と対策の視覚化 線の太さで起こしやすさ/頻度を表現 v アクティブチェックリストとし 濃さで重篤度を表現 て利用 v v 予防策 軽微な脅威 予防策 脅威の初 期段階(兆 候、原因) 中程度の脅 威 脅威の 中段階 v 事後 対応 重篤な脅威 v v 製品設計講座:古原 事後 対応 v 予防策 監視 10 通常のチェックリスト vs. アクティブチェックリスト 通常の チェックリスト アクティブ チェックリスト 目的 全ての項目が満た 満たされない場合の されていることの確 影響の特定と代替案 認 の検討 項目 基本的に全て満た されるべき よく分からない チェックを付 けられない 場合の影響 製品設計講座:古原 満たされない項目が あってもよい 明確 11 検討すべき項目 • 脅威と対策の全体像 業界で協調しな がら抜けのない ものを作成 • 対策方針 – 各対策導入の是非 – 最適な対策の組み合わせ – 残留リスクを許容できるか 製品設計講座:古原 各社の状況 に応じ最適 なものを 12 一般的な組み込みシステムの 情報セキュリティリスクとその対策例 v 耐タン パー性 v v 生成者 認証 侵襲型/非 侵襲型攻撃 耐クロー ン性 製品設計講座:古原 通信路の盗 聴/改ざん 暗号鍵 特定 パスワード の推測 /特定 v 情報漏え い 機能改変 ファームウェ アの改ざん/ 解析 生体認証の 迂回 暗号化・改ざん 検出・再送検出 乗っ取り/ 権限昇格 なりすまし セキュリティ ホール v 相手認証/ 鍵共有 v 開発/実行 時の対策 不正操作 DoS v 事後 対応 機能停止 海賊版/模倣品 13 盗聴と改ざんへの対応: 暗号化と改ざん検出 通信路 • 暗号化 • 改ざん/再送検出 • 相手認証/鍵共有 ファームウェア/起動・設定ファイル • 暗号化 • 改ざん検出/生成者認証 • MAC/デジタル署名の付与 製品設計講座:古原 14 暗号技術 • 暗号化 – 共通鍵暗号、公開鍵暗号 • 改ざん検出 – MAC、デジタル署名 • 生成者認証 – デジタル署名 • 相手認証/鍵共有 – AugPAKE [RFC6628] – LR-AKE • 鍵管理 15 暗号技術の比較 共通鍵暗号、MAC 処理速度 速い 公開鍵暗号、デジタル 署名 遅い (100~1,000倍 程度) 比較的容易 鍵共有/鍵 大変 • 配布時の盗聴 管理 • 公開鍵や署名検証 鍵は見られてもよい • 相手からの鍵漏洩 • 数 MAC: Message Authentication Code 製品設計講座:古原 16 最も単純な構成:マスター鍵方式 (全てのデバイスに共通の鍵を入れる) 欠点: 一箇所から鍵が漏えいするとシステム全体のセキュリ ティが破綻する。 製品設計講座:古原 17 アプリ用鍵と鍵更新用鍵の分離 各種アプリや通信 用の暗号鍵/MAC 鍵/署名鍵など デバイス毎に個別: アプリ鍵や通信鍵の 更新用に利用 製品設計講座:古原 各種アプリ/ 通信用鍵 モジュール 鍵更新用鍵 18 本体での対応 本体 • 耐タンパー性 • サイドチャネル攻撃対策 • 耐クローン性 • PUF 製品設計講座:古原 19 侵襲型/非侵襲型攻撃対策 耐タンパー性 • モジュール内から鍵などの重要な情報を取り出 すことが困難な性質 – 漏えい電磁波、消費電力などのサイドチャネル情 報を使った攻撃への耐性 各種アプリ/ 通信用鍵 モジュール 鍵更新用鍵 攻撃者 製品設計講座:古原 20 サイドチャネル攻撃 (消費電力/漏えい電磁波解析) 1. 入力データ 3. 消費電力や漏えい電磁波が鍵に依存 2 1 100 200 300 400 2. 鍵と入力に 依存した処理 500 1 2 3 4. 大量の波形を解析することで鍵に関する情報を得られる。 5. 得られやすさは実装方法、対策の有無の他、環境などにも依存。 6. 対策の効果を比較検討可能な共通の環境が必要。 製品設計講座:古原 21 産総研での研究:鍵の保護レベル 評価ボード(対消費電力解析用) FPGA低消費 電力環境版 SASEBO-GIII (28-nm Kintex-7 FPGA) SASEBO-R/-G/-B/-GII (discontinued) スマートカード I/O対応FPGA LSI、スマートカード評価用 SASEBO-W for smartcards, and daughter board for LSIs. 製品設計講座:古原 MiMICC (Miniture Measurement IC Card) FPGA 廉価版 ZUIHO experimental board for education and training. (90-nm Spartan-3A FPGA) 22 産総研での研究: 漏えい電磁波解析耐性計測環境 オシロスコープ プローブ LPF Kintex-7 without heat spreader is mounted. 製品設計講座:古原 50dB amplifier 23 産総研での研究: PUFを用いたコピー困難な識別子 コピー/模倣された電子回路 本物の電子回路 5. 回路はコピーで きても物理的な特 性の違いにより同 じ response を生 成できない。 3. 不正コピー/模倣 2. 本物 Response: 0100111001 Challenge: 0101110011 4. 偽物 Response: 0100111001 Response: 1100001111 1. テスト時まで非公開かつ使い捨て (鍵を生成し使い回すことも可能) PUF: Physically Unclonable Function 製品設計講座:古原 24 PUFを応用した漏洩やサイドチャネル攻撃に 強い鍵共有方式 • 毎回(攻撃者が指定できない)異なる鍵を共有させ ることにより、漏えいやサイドチャネル対策を安価 に実現可能 PUF : Physical Unclonable Function PUF 2. 攻撃者が意図的に 同じ鍵を再生させるこ とは困難 PUF 1. 正規のモジュール間では(毎回異なる)共通の鍵が共有される 製品設計講座:古原 25 分野別M2M市場規模予測 「M2M市場は2018年に1兆円超え、B2CのECは20兆円に 野村総研がICT市場の予測データを公開」 http://it.impressbm.co.jp/articles/-/10749 2013.11 26 ハードウェアセキュリティの予想 市場規模 金融・決済系 エネルギー、 セキュリティ、 自動車、医療 など 未対策 なデバイス 現在 低コスト/ 低セキュア 用途:真贋判定、 鍵生成/共有 将来 27 開発/実行時での対応 本体(開発/実行/運用時) • セキュリティホール 製品設計講座:古原 バッファオーバーフロー の基本原理 A[1] B[0] 正しいリターンアドレス 製品設計講座:古原 A[0] 1. Aに大きなサイズ のデータを書き込む A[0] A[1] 攻撃コード 攻撃コードのアドレス 2. 関数から戻る際に攻撃 コードにジャンプする。 スタック領域 29 ESP: Executable Space Protectionの原理 スタック領域 A[1] B[0] 正しいリターンアドレス 製品設計講座:古原 A[0] 1. Aに大きなサイズ のデータを書き込む A[0] A[1] 攻撃コード 攻撃コードのアドレス 2. 関数から戻る際に攻撃 コードにジャンプする。 書き込み可能領域の コードは実行させない 30 ESPを回避する攻撃 ESPにより書き込み可能領域 のコードは実行されない Return-to-libc Return Oriented Programming 1. Aに大きなサイズ のデータを書き込む A[0] A[1] 適当なデータ 実行可能なプログラム 2. 関数から戻る際に実 行可能なプログラムの アドレスにジャンプ 攻撃コードのアドレス 製品設計講座:古原 31 データ配置のランダム化 ASLR: Address Space Layout Randomization 実行環境が書き込める 領域のコード実行を防止 実行可能なプログラム 1. Aに大きなサイズ のデータを書き込む A[0] A[1] 3. アドレスが異なり、実 行失敗 適当なデータ 攻撃コードのアドレス 製品設計講座:古原 2. 関数から戻る際に実 行可能なプログラムの アドレスにジャンプ 32 スタック領域 A[1] B[0] 改ざん検出子 正しいリターンアドレス 製品設計講座:古原 A[0] 1. Aに大きなサイズ のデータを書き込む A[0] A[1] 攻撃コード 検出子も改ざんされる 2. 関数から戻る際に検出子が 改ざんされていないことを確認 コンパイラーによる対応: リターンアドレス破壊検出 攻撃コードのアドレス 33 開発/運用時の対策 開発者側による対策 (ソースコードを入手で きる場合) v ESP: Executable Space Protection 利用者側に ROP: Return-Oriented よる対策 Programming ASLR: Address Space Layout Randomization v コンパイラーによる対応 ASLR バッファオー バーフロー 通信、ファイ ルの読み込 ませなど 攻撃 製品設計講座:古原 Return-tolibc, ROP v ソースコード の解析修正/ セキュアコー ディング/ コード自動 生成 攻撃 コードの 挿入 挿入した 攻撃コー ドの実行 v v 乗っ取り 成功 ESP バイナリ解析/ ファジング 34 ファジングテスト 製品設計講座:古原 35 設定/操作系への対応 設定/操作系 • 認証方式の甘さ(デフォルトパスワー ド、パスワードリセット、短すぎるパス ワードなど)による侵入と不正操作 製品設計講座:古原 36 認証迂回手段の例 • 例1) • 例2) XXXX Controller ID: Password: Challenge: 852048145 – 一定回数パスワードを 間違えると、 • 正規の利用者がパスワ ードを忘れてしまったと判 断して!? – パスワードを上書きでき るようになる。 この値のハッシュ値が管理者パス ワードとなっている(ID不要) パスワードを忘れても困らないように マニュアルで迂回方法が説明してある場合もある。 製品設計講座:古原 37 生体認証の迂回(1/2) • 某スマホの指紋認証の迂回 http://gigazine.net/news/20130924-how-to-hack-iphone-5s-touchid/ 製品設計講座:古原 38 生体認証の迂回(2/2) • 産総研での研究 – ウルフパターンおよび生体認証技術の評価 ウルフパターンの例 製品設計講座:古原 39 複数のデバイスを管理する場合 1. 各機器には長い個別 のパスワードを設定 2. 各機器に設定 した長いパスワー ドを に 分散保存 管理者A の短い パスワード 管理者B の短い パスワード : 利用者には短いパスワードを許可しな がら、サーバー、クライアントいずれからの漏えいに も耐性を持たせたAIST発の相互認証/鍵管理基盤 製品設計講座:古原 40 まとめ • 組込システム周りに存在する一般的な情報セキュリティリスク – – – – – ファームウェア/起動・設定ファイルなどの解析、改ざん 設定/操作系における認証方式(多くの場合パスワード認証)の甘さ 通信路の盗聴、改ざん、なりすまし、リプレイ、中間侵入、DoS 本体からの鍵漏えい、部品などの複製 開発/運用時のセキュリティホール • 対策 – 暗号化、改ざん検出、ユーザ認証、機器認証 – 耐タンパー性、サイドチャネル解析耐性評価 – 耐クローン性、物理複製困難関数(PUF: Physically Uncloanable Function) – バッファオーバーフロー対策、ファジングテスト • リスクアセスメント/リスクコントロール – アクティブチェックリスト 製品設計講座:古原 41