外部からの脅威に対し ファジング の導入を! ~ さらなる脆弱性発見のためのセキュリティテスト ~ 2017 年 5 月 10 日独立行政法人情報処理推進機構技術本部セキュリティセンター小林桂 1
内容 ネットワークに繋がる機器たち ファジングとは ファジングによる効果 まとめ 2
ネットワークに繋がる機器たち ~ 注目されている IoT~ さまざまな機器が通信機能を持ち ネットワークに繋がる時代 ネットワークに繋るため 攻撃を受けるリスクが増加する インターネット IoT:Internet of Things 3
ネットワークに繋がる機器たち ~ 出荷後の脆弱性対策事例 ~ 自動車も繋がる時代 ハッキングによる乗っ取りのリスクも 事例 クライスラー ハッキング対策で140 万台リコールソフト更新し遠隔操作防ぐ http://www.nikkei.com/article/dgxlasgm25h19_v20c15a7mm0000/ ハッキング対策のため 自社のコネクテッドカー 140 万台をリコール 米国の著名ハッカーが米専門誌と共同で行った クライスラー車を乗っ取る実験の結果を受けて 遠隔操作を防ぐためソフトウェアを更新した 4
ネットワークに繋がる機器たち ~ 従来のテストを補う ファジング ~ 従来よりも厳重なセキュリティテストの必要性 テスト工程で できるだけ不具合を取り除きたい - ソフトウェア品質を向上させたい - 脆弱性対応 修正対応のコストを削減したい バグや脆弱性を見つけるセキュリティテストとして導入を推奨するのが ファジング 5
ファジングとは ~ どのようなセキュリティテストか ~ ソフトウェアのバグや脆弱性を探すブラックボックステストの一種 異常データを自動生成し 検査対象に入力する 製品の応答や動作を監視して 異常データによって問題が発生しないかを検査する ファジングのイメージ ( まずは正常な動作を確認 ) GET/ HTTP/1.1 Host: 192.168.219.10 User-Agent: Mozilla/5.0 正常な HTTP リクエスト ファジング対象正常なレスポンス ( 例 : ルータの管理画面の表示 ) 6
ファジングとは ~ どのようなセキュリティテストか ~ ソフトウェアのバグや脆弱性を探すブラックボックステストの一種 ツールにより 異常データを自動生成し 検査対象に入力 製品の応答や動作を監視して 異常データによって問題が発生しないかを検査する ファジング実行時 ファジングツールがインストールされた PC GETGETGETGET / HTTP/1.1 Host: 192.168.219.10 AAAAAAAAAAAAA User-Agent: Mozilla/5.0 / HTTP/1.1 G,E,T/ Host: HTTP/1.1 192.168.219.10 Host: User-Agent: 192.168.219.10 Mozilla/5.0 User-Agent: Mozilla/5.0 自動生成された大量の異常データ ファジング対象動作を確認し 問題 ( 異常終了など ) が発生しないか検査する 7
ファジングとは ~ 別のものに置き換えてみると ~ 自動販売機をテストする場合 お金を入れたら飲み物が出る 飴玉をいれたら どうなるか 正常な動作を確認 一般的な動作テスト ( 機能テストなど ) 異常な入力を確認ファジング 8
ファジングとは ~ テスト手法としてのファジングの位置づけ ~ ファジングでは 一般的な機能テストやセキュリティテストでは発見が難しいバグや脆弱性などを検出できる ファジングによるテスト 機能テスト仕様に基づく動作をすることをテストする 機能テスト 従来のセキュリティテスト 従来のセキュリティテスト一般的な攻撃に対する対策が行われていることをテストする ファジングによるテスト様々な入力データに対し 異常が発生しないことをテストする 9
ファジングとは ~ ファジングがテストできる対象 ~ 入力形式が定められていれば あらゆる製品をテスト可能 入力データ ファジング対象 ファイル 文書 音楽 画像 etc ソフトウェア 文書作成ソフト 音楽再生ソフト 画像表示ソフト etc 通信 パケット TCP/IP UPnP 無線 etc 通信機器 ルータ テレビ Bluetooth etc パラメータ その他 実行オプション URL etc C: test.exe hoge コマンド Web サイト etc 10
ファジングによる効果 ~ ファジングが活用された事例 ~ 米マイクロソフトではファジングによる自動テストを行い Office 製品のバグを 1,800 件発見 https://www.microsoft.com/en-us/sdl/default.aspx Adobe Systems では Flash Player の脆弱性をテストするためにファジングを実施 https://blogs.adobe.com/security/tag/fuzzing ファジングにより 世界的に利用されているオープンソース暗号ライブラリ OpenSSL の脆弱性 (Heartbleed) を検出 https://www.synopsys.com/software-integrity/security-testing/fuzz-testing.html Google がオープンソースソフトウェア向けファジングツール OSS-Fuzz を発表 https://github.com/google/oss-fuzz 11
ファジングによる効果 ~ ファジングの導入事例 1~ 米マイクロソフトではファジングによる自動テストを行い Office 製品のバグを 1,800 件発見 http://www.computerworld.com/article/2516563/security0/microsoft-runsfuzzing-botnet--finds-1-800-office-bugs.html 米マイクロソフトでは 自社製品である Office 2010 に対してファジングによるセキュリティテストを行った ファジングにより バグを 1,800 件発見した 同社の製品開発のライフサイクルにはファジングが組み込まれている 12
ファジングによる効果 ~ ファジングの導入事例 2~ Microsoft 社の導入事例 同社では Windows Server 2003 の開発時から 製品開発のライフサイクルにファジングを導入していた 導入の意図は品質の向上 マイクロソフト社のソフトウェア開発ライフサイクル https://www.microsoft.com/en-us/sdl/ 13
ファジングによる効果 ~ ファジングの実施時間の目安 1~ ファジングの適切な実施量は ファジング対象やツールによって異なり 実施者が最適解を検討する必要がある ファジングにおけるテスト日数と問題発見数の関係 ファジングを継続すると 次第に発見数の増加が少なくなる 発見数と 工数を考慮し 最適値を見つけよう ファジング開始直後は日数あたりの発見数が多い傾向がある 詳細は 製品の品質を確保する セキュリティテスト に関するレポート を参照 https://www.ipa.go.jp/files/000009390.pdf 14
ファジングによる効果 ~ ファジングの実施時間の目安 2~ ファジングの適切な実施量について水準を定める取組みも fuzzqual testing framework http://www.peachfuzzer.com/wp-content/uploads/peach-fuzzer-fuzzqual-framework.pdf Peach Fuzzer 社が定める 効果的なファジングの実施量を提示したガイドライン テストケースの数を基準に 製品の品質レベルを規定 製品ごとに適切なファジング実施量の目安を提示 Fuzzqual が定めるファジング実施量のベンチマーク (fuzzqual testing framework より引用 ) 15
まとめ ~ ファジング活用のご提案 ~ ファジングを活用すると 従来のテストから網羅性を高めて 製品の品質確保に効果がある 一般的なテストでは発見が困難な脆弱性を発見できる 大手ソフトウェア企業を中心に活用実績がある ファジングの実施量は 日数あたりの発見数で判断する 安全な製品を提供していくためにファジングの導入をご検討ください 16
まとめ ~ もっと ファジング を知りたい方は ~ IPA の ファジング 関連資料をご活用ください ファジング活用の手引き ファジング実践資料( 実践編 UPnP 編 テストデータ編 ) スマートテレビの脆弱性検出のレポート 製品の品質を確保する セキュリティテスト に関するレポート 組み込み製品の脆弱性対策映像コンテンツ組込み製品の脆弱性が及ぼす影響 ~ 製品開発企業はどうすれば~ 組込み製品の脆弱性対策に ~ 知ってみようファジング~ JPEG テスト支援ツール ifuzzmaker 17
情報セキュリティマネジメント試験 IT 利 部 の情報セキュリティ管理の向上に役 つ国家試験あらゆる部 で必要な 情報セキュリティ管理の知識を体系的に習得できます 受験をお勧めする 個 情報を扱う全ての 業務部 管理部 で情報管理を担当する全ての 試験実施 年 2 回実施 ( 春期 秋期 ) 春期 : 4 第三 曜 秋期 :10 第三 曜