Skip to main content

効果的な攻撃対象領域分析のベストプラクティス

feature container isolation

2023年7月18日

0 分で読めます

アプリケーションの攻撃対象領域とは、悪意ある攻撃者に悪用される可能性のあるポイントの総体です。アプリケーションへのすべての侵入経路と外部への接続経路が含まれます。脆弱性の特定は脅威の軽減に不可欠です。どのアクセスポイントも攻撃の侵入口になり得るためです。

この軽減策に欠かせない攻撃対象領域分析とは、ソフトウェアシステムやネットワークに潜む潜在的な脆弱性とリスクを特定し、評価するプロセスです。

攻撃対象領域を分析する際は、悪意ある攻撃者がシステムへのアクセスや攻撃に利用できる、さまざまなコンポーネント、インターフェース、通信経路を考慮する必要があります。主な要素は次のとおりです。

  • 潜在的な脆弱性の評価

  • 攻撃ベクトルの特定

  • リスクの優先順位付け

  • 軽減策の実施

  • 継続的な監視

  • コミュニティの支援

  • ライセンスへの準拠

  • サプライチェーンセキュリティ

システムのセキュリティ態勢を見落としなく把握するには、徹底した分析戦略が必要です。この記事では、攻撃対象領域分析の効果を高めるために実践できる、いくつかのベストプラクティスを紹介します。

攻撃対象領域分析のベストプラクティス

このセクションでは、攻撃対象領域分析を実施する際のベストプラクティスを紹介します。まずは、分析の進め方を確認しましょう。

攻撃対象領域分析の進め方

分析プロセスは、主に次の2つのステップで構成されます。

  • 攻撃対象領域を洗い出す

  • 侵害の潜在的な深刻度を評価する

それぞれのステップを詳しく見ていきましょう。

攻撃対象領域を洗い出す

攻撃対象領域の洗い出しでは、アプリケーションとのさまざまな接点を調査します。API、データベース、ユーザー入力フォーム、認証ツール、その他の潜在的なサービスなどが対象です。また、マルウェア、ランサムウェア、ウイルスをシステムに侵入させるために、悪意ある攻撃者が利用する手段や経路である攻撃ベクトルも特定する必要があります。攻撃ベクトルには、メールの添付ファイル、ポップアップウィンドウ、インスタントメッセージなどがあります。

アプリケーションとユーザー、データソース、その他のアプリケーションとの間に接続経路を設ける必要があるため、脆弱性が生じることは少なくありません。こうした経路は、マイクロサービス、オープンソース、サードパーティ製コンポーネントを利用すると、さらに複雑になります。これらのコンポーネントはAPIなどのチャネルを介して通信するため、アクセスポイントが数多く存在します。適切な認証がなければ、こうした侵入・退出ポイントは攻撃対象領域の大きな部分を占めます。

オープンソースコンポーネントを取り入れる際は、適切な注意が必要です。コンポーネントが安全だと思い込まず、脆弱性がないことを確認するために一つひとつ調査しましょう。オープンソースコードが信頼できるソースから提供されていることを検証するのも、効果的な軽減策です。これらのコンポーネントに含まれる脆弱性は、すべてアプリケーションの攻撃対象領域の一部になることを忘れないでください。

洗い出しのプロセスは、データベース、ネットワーク、アプリケーションなどのカテゴリに分けて進められます。これらの領域で脆弱性を特定したら、コンポーネントがインターネットやその他の外部ソースからアクセス可能かどうかを確認しましょう。外部に公開されていないコンポーネントでも、アクセスが侵害されれば外部から到達される可能性があります。

従来、攻撃対象領域のマッピングと分析は開発サイクルの終盤に行われてきました。しかし、攻撃対象領域分析をDevOpsのワークフローに組み込めば、攻撃ポイントが新たに加わった時点で特定できるというメリットがあります。アプリケーションのアーキテクチャを確認し、さまざまな攻撃対象領域を詳細に洗い出すことができます。

攻撃の深刻度を評価する

アプリケーションの攻撃対象領域を特定したら、脅威の深刻度を評価する必要があります。深刻度の評価は、悪用される可能性と、悪用された場合に想定される影響の大きさに基づいて行います。特に一般公開されているアプリケーションでは、機密データへのアクセスや外部への露出などを基準に評価することがあります。

深刻度の評価を左右する要素の一つが、データの機密性です。クレジットカード番号、金融情報、健康情報などの機密性の高いデータが公開されれば、深刻な被害につながります。それほど機密性が高くない情報でも、機密扱いを維持すべき場合があります。最も機密性が低いのは、組織が公開を認めている情報を含む、一般公開情報です。

深刻度の評価では、悪意あるウイルスやランサムウェアからシステムを守るために使われているアクセス制御も考慮します。セキュリティ制御が強固であるほど、攻撃に対する脆弱性は低くなります。

外部に公開されたシステムは最も脆弱であるため、こうしたアプリケーションまで分析を広げることが重要です。アプリケーションを適切に保護していなければ、悪意ある攻撃者は外側の防御を突破し、システム内を自由に移動できます。侵入後は、攻撃ベクトルを仕掛ける箇所をより簡単に見つけられてしまいます。

脅威モデリング

脅威モデリングは、攻撃の深刻度を評価・分析するための有効な出発点です。攻撃が成功する可能性や、成功した場合に生じる損失など、複数の要素を考慮して個々の脅威の優先順位を決めます。

脅威モデリングでは、攻撃者の視点から資産を確認することから始めます。悪意ある攻撃者が特定の攻撃ポイントを狙う可能性を検討することで、潜在的な攻撃ポイントと攻撃ベクトルを特定し、適切に対応できます。

脅威モデリングでは、どの脆弱性から対処すべきかを優先順位付けするため、次の3つの要素を明らかにします。

  • 最も重大な脆弱性

  • 発生する可能性が最も高い脅威

  • 軽減策とその実現可能性

これらの要素を考慮することで、脅威をどれだけ容易に軽減できるかと、潜在的な攻撃ベクトルがもたらす危険性のバランスを取れます。このプロセスによって、すぐに対処できる簡単な問題を先に解決すべきか、それとも解決に時間がかかる高リスクの脅威に注力すべきかを判断しやすくなります。優先順位付けにはバランスの取れた意思決定が欠かせず、その意思決定を支えるのが脅威モデリングです。

脆弱性スキャンを導入する

脆弱性スキャナーは、コード、ネットワーク、設定などを調査し、潜在的な脆弱性を検出するテストツールです。開発ライフサイクル全体で脆弱性スキャナーを活用すれば、脆弱性がコミットされる前に自動で検出し、より簡単に修正できます。また、オープンソースのコードやパッケージをスキャンして脆弱性を調べられるため、ソフトウェアサプライチェーンの保護にも役立ちます。

Snykの脆弱性スキャン機能を使えば、ネットワークやオープンソースアプリケーションの脆弱性をスキャンできます。さらに、Snyk CodeやSnyk Open Sourceなどのツールを使うことで、コードの記述中にスキャンを行い、開発パイプラインに脆弱性スキャンを組み込めます。

脆弱性スキャンを導入すると、セキュリティを開発の早い段階から組み込むシフトレフトのアプローチが促進され、攻撃対象領域の縮小につながります。

攻撃対象領域分析のその他のベストプラクティス

脆弱性スキャンの導入や、上記の攻撃対象領域分析の手順に加えて、アプリケーションを安全に保つために実践できるベストプラクティスがあります。

カテゴリを枠組みとして攻撃対象領域をマッピングする

マッピングのプロセスをネットワーク、データベース、APIなどのカテゴリに分けると、分析を進めやすくなります。これらのカテゴリは攻撃対象領域を調査するための枠組みとなり、攻撃対象領域の発見を体系化するのに役立ちます。

手作業で行うこともできますが、Snykのような自動スキャンツールを使えば、環境をスキャンして潜在的な攻撃ポイントや攻撃ベクトルを特定できます。さらに、攻撃ポイントや攻撃ベクトルが悪用されやすくなる弱点も検出できます。

攻撃対象領域の発見を継続的に行う

コンポーネントや機能が継続的に追加され、システムは常に変化しています。そのため、システムを安全に保つには、攻撃対象領域の発見を継続して行う必要があります。

潜在的な脅威や脆弱性に先手を打つには、攻撃対象領域の発見を継続的なプロセスにすることが大切です。継続的に実施するための方法をいくつか紹介します。

  1. 定期的な脆弱性評価:システムやアプリケーションの脆弱性を定期的に評価しましょう。悪用される前に潜在的な脆弱性を特定し、対処できます。

  2. 侵入テスト:定期的に侵入テストを実施し、現実の攻撃をシミュレーションすることで、システムやアプリケーションに潜む潜在的なセキュリティ上の弱点を特定しましょう。

  3. 継続的な監視:システムやアプリケーションを継続的に監視し、潜在的なセキュリティ脅威をリアルタイムで検出しましょう。

  4. 従業員のトレーニング:潜在的な攻撃対象領域の特定や不審なアクティビティの報告など、サイバーセキュリティのベストプラクティスについて従業員に定期的なトレーニングを実施しましょう。

  5. 業界の動向を把握する:新たな攻撃手法や脆弱性など、サイバーセキュリティの最新の動向や進展を常に把握しましょう。

サプライチェーンの保護に取り組む

サプライチェーンセキュリティは見過ごされがちですが、非常に重要です。サプライチェーンの保護とは、ベンダーやサプライヤーなど、他の組織との連携を通じて持ち込まれる脆弱性に注意を払うことです。たとえば、悪意ある攻撃者が公開ソフトウェアリポジトリにあるコードに脆弱性を仕込み、そのコードを利用するあらゆる組織の攻撃対象領域を拡大させる可能性があります。

サイバーセキュリティコミュニティに参加する

サイバーセキュリティコミュニティへの参加は、セキュリティの動向や潜在的なリスクに関する情報を得る有効な手段です。OWASP、OpenSSF、SANS Institute、ISC2などの組織は、組織間の情報交換を促進し、新たな問題やハッキングの手法に関する注意喚起に役立っています。

ライセンスへの準拠を徹底する

ライセンスに準拠していることを確認することも、攻撃対象領域の縮小につながります。ライセンスへの準拠とは、ライセンスの条件に沿ってソフトウェアを導入することです。ライセンスに準拠していれば、ライセンサーから提供されるセキュリティパッチで脆弱性を修正できます。しかし、ライセンスの条件に沿って製品を導入していない場合、パッチが正しく適用されない可能性があります。

また、オープンソースアプリケーションが、ライセンスを必要とする別のアプリケーションを利用している場合もあります。その場合は自分でライセンスを取得する必要があります。取得しなければ、セキュリティ上の脆弱性だけでなく、訴訟のリスクも生じます。

Snykによる攻撃対象領域分析

デジタル化の進展とクラウドサービスの導入拡大に伴い、IT組織は拡大し続ける攻撃対象領域をどう保護するかという課題に直面しています。脆弱性を軽減する作業を考慮しなくても、組織の攻撃対象領域を特定するだけで大変な作業です。攻撃ポイントと攻撃ベクトルは増え続け、悪意ある攻撃者はかつてないほど頻繁かつ巧妙に脆弱性を悪用しています。

攻撃対象領域を保護するには、インフラ全体を継続的にスキャンする必要があります。最適なスキャンシステムは、人工知能と機械学習を取り入れて自動化され、ITコミュニティの知見を活用して実行可能なアクションにつなげます。

Snykは、オープンソースコンポーネントに含まれるサードパーティ依存関係の問題を検出し、開発者が攻撃対象領域を保護するためのベストプラクティスを取り入れられるよう支援します。強力な機能について詳しく知るには、Snykのリソースをご覧になり、ライブデモをお試しください。

開発者に愛され、セキュリティチームから信頼される。

Snykの開発者ファーストのツールは、ガバナンスやコンプライアンスのニーズに応える、統合された自動化セキュリティを提供します。

カテゴリー: