ファジングでIoT機器のセキュリティ対策 ~第3回 ソフトウェアテストの新常識:ファジング入門
いま業界でホットなファジングは古くて新しいアプローチ
サイバーセキュリティ界隈でも「ファジング」という言葉をよく耳にするようになりましたが、これをただのトレンドと考えるのは短絡的です。開発現場では、セキュリティの脆弱性はゼロにできないという認識から、実際のサイバー攻撃を想定したテストが不可欠であり、このニーズに応えるものとしてファジングが注目されています。ファジングは、各種ガイドラインや規格の要件の一つとして明記されることも増えています。
ファジングは、検査対処のソフトウェアに対し、ハッカーの視点からセキュリティの問題を発見するための新たな手法として登場しました。では、ファジングは新しい発明なのでしょうか? その答えは「はい」でもあり、「いいえ」でもあります。
市場には多くのファジングツール(ファザー)が出回り、アプリケーション・セキュリティやDevOpsの分野で話題となっていますが、ファジングの原点は決して新しいわけではありません。ファジングという言葉が最初に使われたのは1988年、ウィスコンシン大学のBarton Miller氏のクラスプロジェクトでのことです。とはいえ、このテスト手法自体は1950年代から「ランダムテスト」や「モンキーテスト」として知られており、長い歴史を持っています。
サイバーセキュリティの強化に不可欠なファズテスト
ファジングとは、アプリケーションのセキュリティを外から内へと探る「ブラックボックステスト」の一種です。ソースコードを直接見ることなく、ランダムな値を与えながら、ハッカーが行うように潜在的な侵入経路を探ります。
現代のファズテストは、予期せぬ形式や順序でデータをアプリケーションに投入し、その反応を分析することで、脆弱性を探し出す自動化プロセスです。このテストは、システム障害を引き起こす可能性のある不正なデータ、いわゆる「ファズ」を大量に送り込んで行われます。
ファジング自体は新しい概念ではありませんが、組織がハッカーの視点を採用することの重要性を認識し始めたことで、近年その価値が再評価されています。特にゼロデイ攻撃など、未知の脆弱性に対する防衛策として、ファズテストはサイバーセキュリティの強化に不可欠なプロセスの一つとされています。開発者は、ファジングを利用して、製品開発の早い段階から品質を保証し、安全性の高いコードを構築できます。
ファズテストの手法~テストの計画・設計から報告・修正まで
ファズテストは、以下の5つのステップで行われることが一般的です。
- テストの計画と設計:
・テストの目的を定め、どのソフトウェアやシステムの部分をテストするかを決定
・テストケースとテストデータ(ファズ)を生成するための基準を設定 - テストデータの生成:
・ファズジェネレータを用いて、無効な入力、予期しない入力、またはランダムなデータを生成
・これらのテストデータは、システムに異常を引き起こす可能性あり - テストの実行:
・生成されたファズを対象のソフトウェアやシステムに入力し、システムの反応を観察
・自動化されたファズテストツールが、このプロセスを繰り返し実行し、異常な挙動やクラッシュを検出 - 結果の分析:
・テストの結果を収集し、分析することで脆弱性やバグを特定
・システムがファズにどのように反応したかを詳細に記録 - 報告と修正:
・検出された問題についての報告書を作成
・この情報を用いて、開発チームが脆弱性を修正
ハッカーが時間をかけて丁寧に脆弱性を探すのとは対照的に、ファズテストは多数のテストケースを迅速に自動生成し、大量のデータを用いて潜在的なセキュリティホールを発見します。これにより、未知の脆弱性を発見する可能性が高くなります。
またファズテストは、ソースコードの有無にかかわらず実施可能です。ソフトウェアだけでなく、ハードウェアやネットワーク機器などの、さまざまな対象に適用できるので、アプリケーション・セキュリティの強化と、ハッカーによる悪用を防ぐための重要な手段となっています。
自社に最適なファザー、4つの選定ポイントとは?
さまざまなプロバイダーが、いろいろな機能を備えたファザーを提供していますが、ファザーに求めるべき重要なポイントは4つあります。
1.コードカバレッジ
コードカバレッジとは、ソフトウェアのコードのうち、ファザーによって実行されたコードの量を指します。対象となるコードが増えるほど、テストはより徹底的に行われることなります。ただし、多くのコードをテストするだけではテスト完結とはなりません。ソースコードのどの部分が実行されるのかが分からなければ、テストがどれほど徹底されている把握できません。ソースコードのどのセクションがテストされたかを知らせるファザーがあれば理想的です。
2.クラッシュの分類
ファズテストの役割は、潜在的なクラッシュを発見するだけでは終わりません。クラッシュを見つけたら、通常はコードを修正することになります。ただし、1秒あたり数十万のテストケースが実行される可能性があるため、各クラッシュを個別に処理することは不可能です。クラッシュを分類するファズテスターを使い、クラッシュに優先順位を付け、同様のバグを持つクラッシュを特定することで、より効率的に問題を解決できます。
3.スピード
脆弱性の検出はスピードが命です。信頼できるファザーであるには、1秒あたりできるだけ多くの攻撃の負荷テストをサポートできる必要があります。ランダムな入力を必要とするダムファジングであっても、インテリジェントな入力を利用するスマートファジングであっても、アプリケーション・セキュリティの脆弱性を発見するには、1秒あたりできるだけ多くのテストケースを実行できるファザーを入手することが重要です。
4.複数のプロトコルのサポート
現在、市場には250以上のファザーがあり、そのバリエーションは多岐にわたります。拡張可能なベンダー、および自社開発プロトコルのサポートを提供するファザーもありますが、そうでないものもあります。ファザーは、既存のプロトコルに加え、将来のプロトコルもサポートする必要があります。
ファジングの5つのメリットでセキュリティを強化
ハッカーの技術進化とともに、より効果的なセキュリティテストツールの必要性が求められます。
セキュリティテストツール例:
組織がサイバー犯罪の先を行くためには、ソフトウェア開発ライフサイクルのすべての段階でファジングを積極的に推進するサイバーセキュリティ戦略が効果的です。以下は、ファジングをペネトレーションテストに追加する5つの利点です。
1.費用対効果の高いセキュリティテスト
他のセキュリティテスト手法との比較において、ファズテストのコスト対効果の比率は、予算が限られている企業に最適です。ファジングは、ハッカーにより悪用される可能性のあるソフトウェアのバグを発見できるようにすることで、コスト効率の高いセキュリティテスト・ソリューションを提供します。
2.ゼロデイ脆弱性を防止
企業にとって大きな脅威の引き金となるゼロデイ脆弱性ですが、組織のブラックボックステストの一部としてファジングが正常に実行された場合、ファジングはゼロデイ脆弱性の可能性を効果的に減らすことに役立ちます。
3.SDLCの初期段階でコーディングエラーを発見
ソフトウェア開発ライフサイクル (SDLC) のさまざまな段階でファズテストを組み込むことにより、開発または品質保証 (QA) 段階でほとんどのコーディングエラーを発見できるので、運用環境で発見するよりもはるかに低コストで済みます。
4.セキュリティテストの結果を改善
ファズテストは、それ単体では包括的なセキュリティテスト・ソリューションではないかもしれませんが、ブラックボックスセキュリティテスト戦略の一部として導入すると、確実にセキュリティテストの結果を向上させることができます。
5.潜在的なセキュリティ脆弱性がすべて調査されていることを確認
ファジングの概念は、すべての潜在的な抜け穴が調査、またはテストされ、未知の脆弱性が発見されるように機能します。
まとめ
人工知能と機械学習が進化するにつれ、最終的にはファズテストでもその影響が感じられるようになります。将来的には、ツールをより使いやすく、よりインテリジェントにするために、人工知能と機械学習を統合するファザーがさらに増えると言われています。これは、一般的には良いアイデアです。その一方で、ハッカーにとっても、大規模なセキュリティの弱点を発見する際に、これらのツールの使用が容易になるという懸念もあります。今後、企業では最短の時間枠で徹底的なテストを実行する、より高速かつ詳細なツールが必要になるでしょう。https://www.ubiquitous-ai.com/products/iot-security-verification/
参考:ファジングでIoT機器のセキュリティ対策を万全に!の過去記事はこちらから
ファジングでIoT機器のセキュリティ対策を万全に! – JAPANSecuritySummit Update
永井 玲奈(Rena Nagai)
株式会社ユビキタスAI SPQA事業部 長年、組込みソフトウェアの営業・製品マーケティングに携わる。現在はユビキタスAIでIoT機器セキュリティ検証サービス事業の営業およびプロダクトマーケティングを担当。医療機器、車載製品、民生品などあらゆる機器を製造する大手製品ベンダーの多岐に渡るセキュリティ課題解決に取り組む。
https://www.ubiquitous-ai.com/
「ファジングでIoT機器のセキュリティ対策を万全に!」の最新話は、メールマガジンにてもご案内致しています。是非JAPANSecuritySummit Updateのメールマガジンにご登録ください。
メールマガジンの登録はこちらからお願いします。