ダイナミック ARP インスペクション(DAI) - Cisco › ... › dynamic-arp-inspection.pdfARP パケットを検証するセキュリティ機能です。DAI は、IP
組込み開発におけるセキュリティ対策 及び試験手法に関する...
Transcript of 組込み開発におけるセキュリティ対策 及び試験手法に関する...
アジェンダ
背景
組込みシステムセキュリティの一例
CC(Common Criteria)認証とセキュリティ
セキュリティ特性試験対象の攻撃の概要
セキュリティ特性試験の問題
セキュリティ試験手法の構築
攻撃者モデル
セキュリティ試験 実施方法の例
まとめ
2
背景
• 社会的に重要な役割を担っている多くの産業において,セーフティとセキュリティの双方が必要不可欠である
• 組込みシステムは,これらの安全性を確保する役割を担う一方で,高いセキュリティが求められている
3
医療
航空・宇宙
鉄道
自動車
リスクの顕在化
• 近年,セキュリティがセーフティに与える影響が指摘され始め,当該システムの潜在的なリスクが明らかになりつつある.
4
自動車の攻撃実験(1)
自動車の攻撃実験(2)
医療機器の攻撃実験
スマートホームの攻撃実験
• 米国の研究者が,車体に受信装置を取り付け,車外から電磁波を照射することで,「走行中の自動車を停止」,「車載パネルに任意の文字列を表示」等が可能であることを示した(2010年)
出典:Experimental Security Analysis of a Modern Automobile, IEEE Symposium on Security and Privacy
出典:http://www.forbes.com/sites/andygreenberg/2013/07/24/hackers-reveal-nasty-new-car-attacks-with-me-behind-the-wheel-video/
• 米国のセキュリティ専門家が,車載ソフトウェアをリバースエンジニアリングして攻撃し,「ハンドルの不正操作」「走行中の自動車の停止」等が可能であることを示した(2013年)
• 米国のセキュリティ専門家が,糖尿病患者向けの医療機器「インスリン・ポンプ」をハッキングし,注入量を不正に変更可能であることを示した(2012年)
出典:http://go.bloomberg.com/tech-blog/2012-06-27-insulin-pump-hacker-medical-device-maker-come-to-the-table/
• 照明,暖房,ドアの施錠,監視カメラ等を自動化するホームオートメーションの脆弱性を利用し,他人の住居の「消費電力情報を不正に取得」,「家電を不正に操作」(2013年)
出典:http://www.forbes.com/sites/kashmirhill/2013/07/26/smart-homes-hack/
組込みシステムセキュリティの一例
• 組込みシステムの1つであるスマートカードやHSM等の類似デバイスでは,様々なセキュリティ対策が施されている
• スマートカードでは,CC(Common Criteria)認証スキームに基づく,セキュリティ評価を広く活用されている
5
攻撃
攻撃
攻撃
・内部認証・外部認証・アクセス制御・鍵管理・自己診断・PIN照合・セキュア通信・耐サイドチャネル攻撃等
通信路の傍受
サイドチャネル攻撃
なりすまし
鍵の解析
CC認証とセキュリティ
• CC認証では,PP(Protection Profile)で定義されたセキュリティ要件に基づき,製品が正しく製造されているかが評価の主眼
6
実現したいサービス
セキュリティ要件定義(Protection Profile)
セキュリティ基本設計方針(Security Target)
設計・製造・試験(ADVクラス,ATEクラス等)
脆弱性分析(AVA_VAN)
サービス要件
セキュリティに関わる要求仕様
セキュリティ機能要件セキュリティ保証要件
要件に基づく一貫した設計・製造・試験の実施
ライフサイクル(ALCクラス)
安全利用のためのガイダンス(AGDクラス)
CC認証のスコープ
セキュリティ要件が正しく反映されているか
評価保証レベル(EAL1~7)高い評価保証レベル≒評価の厳密さ
≠セキュリティ
資産の特定・脅威分析・リスク分析等
CC認証とセキュリティ
7
実現したいサービス
セキュリティ要件定義(Protection Profile)
セキュリティ基本設計方針(Security Target)
設計・製造・試験(ADVクラス,ATEクラス等)
脆弱性分析(AVA_VAN)
ライフサイクル(ALCクラス)
安全利用のためのガイダンス(AGDクラス)
①サービスに関わる脅威やリスクを正しく抽出できているか?
②要件が漏れなく,製品に反映されているか?
④攻撃に対して耐性があり,製品として本当に安全か?
③開発環境から機密情報が漏洩する等の問題が発生しないか?
SafSec等
AVAクラス:セキュリティ特性試験
Attack Tree等
ISMS認証等
ATEクラス:セキュリティ機能試験
セキュリティ特性試験対象の攻撃の概要
• 正規のインタフェースを利用した攻撃に加え,より高度なサイドチャネル攻撃等の物理的な攻撃が脅威となっている
• 特に,スマートカードやコンシューマ向け機器等の場合,攻撃者により製品を直接的に解析,攻撃されるリスクがある
8
ICチップ
電流・電圧
電磁波処理時間
受動的な攻撃 能動的な攻撃
レーザーの照射
電圧操作
※電力解析(SPA/DPA)/電磁波解析(EMA)/タイミングアタック等 ※故障注入攻撃等
• 情報システムと異なり組込みソフトウェアでは,レーザー照射等による物理的な不正アクセスに対するセキュリティ対策が必要
• 安全の確保には,セキュリティ機能/セキュリティ対策の有効性を検証し,安全性を客観的に評価・検証することが重要
大幅な改修による手戻りの発生
セキュリティ特性試験の問題
• セキュリティ機能は,ソフトウェア開発工程におけるホワイトボックス/ブラックボックス試験,製品へのブラックボックス試験により,セキュリティ機能の有効性を検証可能
• セキュリティ特性は,製造されたICに対して疑似攻撃を実行することにより,セキュリティ対策の有効性を検証可能
9
開発者(ソフトウェア)
半導体工場
製品(IC)
セキュリティ機能試験(ブラックボックス)
改修
セキュリティ特性試験
パッチ対応による品質低下
※大幅な改修は発生し難い
セキュリティ機能試験(ホワイトボックス/ブラックボックス)
脆弱性発見!
脆弱性発見!
【本提案の目的】物理的攻撃への耐性を検証するセキュリティ特性試験をソフトウェア開発工程で実施可能とすることで,該当する脆弱性の早期発見を可能にする
※本提案では,論理的対策により防御される能動的な攻撃に対する試験を対象とする.
セキュリティ試験手法の構築
1. ソフトウェア上で擬似攻撃を実現するためのモデル化
2. 攻撃手法のレベルを表現可能なセキュリティレベルの設定
3. 擬似攻撃実施方法の構築
10
攻撃のモデル化
• 既存の攻撃に基づき,本提案がスコープとする組込みソフトウェアに対する能動的攻撃を分類すると,以下の2つに大別できる
【①処理のバイパス】処理実行中の故障注入等によるセキュリティ機能・処理のバイパス
【②メモリの改竄】処理実行中に,メモリに対する故障注入等による,メモリ上のデータの改変
能動的な攻撃の理解 (例①)
• PIN認証処理において,故障注入攻撃により,セキュリティ機能(PIN認証/エラーカウンタ更新)をバイパスする.
11
【認証機能のイメージ】
ICカード
①ユーザPINの入力
②カード内の認証情報の参照
④機密情報へのアクセスを許可
③照合
④’エラーカウンタの更新
終了
1 2 3
4 5 6
7 8 9
0
PIN:1234
1 2 3
4
1234
スマートカード
PIN:1234
カード内認証情報1234
照合O.K.
NG
PIN:1230
スマートカード
PIN:1230
カード内認証情報1234
照合
能動的な攻撃の理解 (例①)
• PIN認証処理において,故障注入攻撃により,セキュリティ機能(PIN認証/エラーカウンタ更新)をバイパスする.
12
【認証機能のイメージ】
①ユーザPINの入力
②カード内の認証情報の参照
④機密情報へのアクセスを許可
③照合
④’エラーカウンタの更新
終了
1 2 3
4 5 6
7 8 9
0
1 2 3
スマートカード
PIN:1230
カード内認証情報1234
O.K.
NG
PIN:1230
0
故障を注入して処理の誤りを発生させる
照合の結果に関わらず,照合成功時の処理に移行
能動的な攻撃の理解 (例①)
• PIN認証処理において,故障注入攻撃により,セキュリティ機能(PIN認証/エラーカウンタ更新)をバイパスする.
13
【認証機能のイメージ】
①ユーザPINの入力
②カード内の認証情報の参照
④機密情報へのアクセスを許可
③照合
④’エラーカウンタの更新
終了
PIN:1234
O.K.
NG
PIN:1230
照合成功
照合失敗
【計測した電力波形のイメージ】
高出力 繰り返し処理高出力
低出力
【処理の推定1】(1)高出力=データ読み出し(2)“成功”,“失敗”に差が無い同一の処理→PINの参照処理
【処理の推定2】(1)繰り返し処理=PINの照合(2)波形の違い=照合失敗のタイミング※3番目のPIN照合で失敗
【処理の推定3】(1)高出力=データ読み出し(2)”成功”,“失敗”で異なる処理→エラーカウンタの更新処理
【攻撃箇所の特定】 エラーカウンタが更新される前にバイパス! 更新処理が無効化され,何度も攻撃が可能に!!
能動的な攻撃の理解 (例②)
• 認証処理等で利用されるCRT-based-RSA-Cryptosystemに対する故障注入攻撃によりメモリを改変し,鍵を推定する
14
CRT-based-RSA
平文
署名
【復号(署名)処理】
x
秘密鍵 qps ,,
pxE s mod1 qxE s mod2 (1)
(2))(mod0
)(mod1
qa
pa
)(mod1
)(mod0
qb
pb
を満たすa,bを計算(予め計算しておいても良い)
NEbEaE mod21 (3)
E
ブラックボックス(カード内で演算) 攻撃者
[攻撃step1]サイドチャネル攻撃(故障注入攻撃)により,演算結果 を に改竄1E 1E
1E
1E
E 故障が出力に伝搬
E
)ˆ(
))(modˆ()(
11
2121
EEa
NEbEaEbEaEE
)ˆ( EE a は q の倍数であり, と N の最大公約数を
求めることにより,秘密鍵qおよび を推定できる.sp,
E
[攻撃step2]攻撃者は正規の出力と,故障を含む出力 より,秘密鍵 を推定
E
Esqp ,,
攻撃者モデル(①処理のバイパス)
• バイパス攻撃に関わる攻撃者の能力は以下の通り.
15
バイパス位置
バイパス回数(故障注入可能回数)
バイパス実行間隔 n, (n-1), ... , 3, 2, 1 step
1, 2, 3 , ... , (n-2), (n-1), n 回
開始~終了 特定位置~終了 特定位置~特定位置
攻撃者の能力 高低
攻撃者の能力に関わるパラメータ
通常プロセス
通常プロセス
クリティカルプロセス
クリティカルデータ
通常プロセス
通常プロセス
クリティカルプロセス
クリティカルデータ
通常プロセス
通常プロセス
クリティカルプロセス
クリティカルデータ
クリティカルプロセス/データ
モジュール
通常プロセス
通常プロセス
クリティカルプロセス
クリティカルデータ
「クリティカルプロセス」:サービス実施上,重要な機能を実現するモジュールが保証すべき処理
「クリティカルデータ」:サービス実施上,重要なデータ及びクリティカルプロセスで使用するデータ
•受動的な攻撃による特徴的な処理のみ攻撃者は把握可能(特定位置の把握,攻撃は困難)
•故障による影響時間の制御が困難•攻撃の影響範囲の限定は困難
•故障注入による影響時間の制御が困難•故障注入回数≒攻撃機材のコスト
•故障注入による影響が一定時間生じる•短期間でのバイパスには高い能力が必要
攻撃者モデル(②メモリの改竄)
• メモリの改竄攻撃に関わる攻撃者の能力は以下の通り.
16
攻撃者の能力 高低
変更可能な変数
パラメータ
変更可能データ長
変更可能な値
1, 2, 3 , ... , (n-2), (n-1), n 種類
変更頻度 1, 2, 3 , ... , (n-2), (n-1), n 回
n bit, ... , 1ページ, ... , 変数長, ... , 1Byte, ... , 1 bit
[0 → 1][1 → 0 ]
データ長1bit
データ長1Byte
データ長 変数長
…
[メモリ上の値 → all 0][メモリ上の値 → all 1] [メモリ上の値 → 乱数値] [メモリ上の値 → 任意のデータ]
[メモリ上の値 → all 0][メモリ上の値 → all 1]
[メモリ上の値 → 乱数値] [メモリ上の値 → 任意のデータ]
※クリティカルデータに対して実施
0 1 1 0 1 0 0 1
0 1 1 0 1 0 0 1
ICチップ
変数B(メモリ)
変数A(メモリ)
レーザー
レーザー
0 1 1 1 1 0 0 1
1 1 1 1 1 1 1 1
攻撃者モデル(②メモリの改竄)
• データ改竄攻撃に関わる攻撃者の能力は以下の通り.
17
【変更可能な値】 → 攻撃者が攻撃により変更したいメモリの値
•攻撃者にとって有利な任意のデータへの変更は困難
【変更可能データ長】 → 攻撃者が攻撃対象とするデータの長さ
•故障注入により,隣接するメモリへの影響が考えられるため,特定のより小さなデータ(例:1bit)に対する限定的な改変は困難
【変更頻度】 → 攻撃者が故障を注入する回数
•複数の故障注入による影響時間の制御が困難
【変更可能な変数】 → 攻撃者が故障を注入可能なメモリ箇所
•変更可能な変数の増加に伴い,故障注入のための機器に関わる攻撃コスは増加•複数個所への故障注入には,攻撃箇所の特定と短期間での正確な機器操作が必要
依存関係
モデルに基づくセキュリティ試験の実施
1. 攻撃の最新動向に基づき,試験で確認する攻撃者の能力(モデルにおけるパラメータ)を設定
2. 試験対象となるソースコードにおいて,サービス実施上,重要な機能及びデータを特定
3. クリティカルプロセス/データを特定
4. パラメータに基づき試験を実施し,対策の有効性を検証
18
クリティカルプロセスfor(i = 0; i < length; i++){
if( data == c_data)
}
通常プロセス
通常プロセス
:ブレークポイント
・「検証対象の処理の前と,バイパス先に」,また,「改竄耐性の検証を実施するクリティカルデータ(c_data, length)を用いた処理の前に」,ブレイクポイントを設置
プログラムを実行し,停止後,(Case1) バイパス検証の場合には,プログラムカウンタを検証位置に変更し,再度実行(Case2) クリティカルデータを改竄し,再実行
期待するセキュリティバイオレーションが返されるかを確認
提案手法で検証可能な範囲
• 提案手法を用いることにより,能動的な攻撃の中で,未知の攻撃を除く論理的擬似攻撃を実行可能となる.
19
能動的な攻撃
物理的疑似攻撃試験でカバーする範囲
未知の攻撃
処理のバイパス攻撃 メモリの改竄攻撃
論理的疑似攻撃試験でカバー可能な範囲
本提案の試験手法でカバー可能な範囲
・試験対象とするプロセス,メモリの種類等の組み合わせによりカバレッジが変化
・組み合わせにより,現時点で実現不可の高度な物理的疑似攻撃についても試験を実施可能
まとめ
• 従来,製品に対してのみ実施可能であったセキュリティ特性試験をソースコードに対して実施する試験手法について提案
• 組込みソフトウェアのセキュリティは論理/物理の双方の攻撃への対策が必要不可欠
• 物理的な攻撃に対しても,製品のセキュリティを検証する仕組みが必要
• セキュリティとセーフティとトレードオフの関係になる可能性があり,攻撃者モデル等の基準に基づく対策,検証が重要
• 今後,組込みソフトウェアに対する提案手法による検証,および,IC等に対する物理的疑似攻撃による検証の双方を比較評価することにより,手法の詳細な有効性評価を実施
20