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