脆弱性管理
効果的な脆弱性対策を開発します。
概要
このテクニカルペーパーでは、脆弱性スキャン、ペネトレーションテスト、コード脆弱性スキャンなど、さまざまな脆弱性管理手法について説明します。このホワイトペーパーでは、インシデントによるサービスの中断後に可用性とアクセスを回復するプロセスについても説明します。
データ保護ポリシー(DPP)の要件
の一部として アマゾンのデータ保護ポリシー (DPP) (DPP) では、開発者は脆弱性スキャンを少なくとも半年に1回、ペネトレーションテストは毎年、新しいコード、機能、または製品のリリース前にコード脆弱性スキャンを実施する必要があります。また、数時間以内に可用性と個人識別情報 (PII) へのアクセスを回復できるようにする必要があります。これは PII を含む機密データの漏洩を防ぐためです。すべての SP-API 開発者は、公開されている Web サイト、インターフェイス、サーバー、新機能などの脆弱なポイントが、リリース前であっても、期待されるレベルのセキュリティと保護を受けていることを確認する必要があります。
脆弱性管理
開発者は、脆弱性を検出して修正するための計画またはランブックを作成して維持する必要があります。開発者は、脆弱性スキャンを実施して適切に修正することにより、PII を含む物理ハードウェアを技術的な脆弱性から保護する必要があります。開発者は、少なくとも180日ごとに脆弱性スキャンを実施し、少なくとも365日ごとにペネトレーションテストを実施し、各リリースの前にコードの脆弱性をスキャンする必要があります。さらに、開発者はテスト、変更の検証、変更の承認を行い、それらのアクションを実行できるユーザーへのアクセスを制限することで、ストレージハードウェアへの変更を管理する必要があります。開発者は、物理的または技術的な問題が発生した場合に、PIIの可用性とアクセスを適時に回復するための適切な手順と計画を立てる必要があります。
脆弱性スキャン
脆弱性スキャンは、アプリケーションが実行されているインスタンスまたはソフトウェアに対するホストアクセス、弱点、およびネットワークギャップを特定、発見、分析、報告するプロセスです。
セキュリティの観点から、一般公開されているデバイス/インスタンスが悪者から保護されていることを確認することが不可欠です。理想的なシナリオでは、脆弱性スキャナーツールでスキャンを実行して、リスク要因と、ネットワーク内で発生する可能性のある攻撃ベクトル(ソフトウェアおよびハードウェア資産を含む)を特定/分類できます。
オープンウェブアプリケーションセキュリティプロジェクトによると、脆弱性のトップ10は次のとおりです (オワスプ) 2021 および関連する共通弱点列挙 (CWE) の場合:
CWE | 脆弱性ポイント | 簡単な説明 |
---|---|---|
A01 | 壊れたアクセス制御 | ユーザーがアクセスできないはずのアクションを実行する。 |
A02 | 暗号化の失敗 | 暗号慣行の欠如または弱さ。 |
A03 | 注入 | ハッカーはネットワーク内でデータを挿入して操作することができます。 |
A04 | 安全でない設計 | ネットワーク設計段階での計画不足。 |
A05 | セキュリティマイクロコンフィグレーション | データベース、ライブラリ、またはサーバーのセキュリティ設定が設定されていないため、脆弱性が生じる可能性があります。 |
A06 | 脆弱で時代遅れのコンポーネント | レガシーバージョンまたはサポート対象外のバージョンのソフトウェアまたはオペレーティングシステム。 |
A07 | 識別と認証の失敗 | ユーザーアクセス制御と認証情報管理の欠如。 |
A08 | ソフトウェアとデータの整合性の障害 | インテグリティ違反に対する保護はありません。 |
A09 | 安全なロギングとモニタリングの失敗 | 監視サービスがないため、侵害や外部からの攻撃を特定することは困難です。 |
A10 | サーバーサイドリクエストフォージェリ (SSFR) | ネットワークセキュリティをバイパスするリクエストを送信するようにアプリケーションに強制する、ユーザーによって提供された未確認の URL。 |
を参照してください OWASP — 脆弱性スキャンツール 無料および有料のスキャンツールの一覧をご覧ください。
スキャンが完了したら、開発者はセキュリティへの影響のレベルに応じて脆弱性に優先順位を付け、それに応じて脆弱性を修正する必要があります。
-
外部脆弱性スキャン: 外部スキャンは、ポート、ウェブサイト、ネットワーク、アプリケーションなどの外部/公開ポイントの脆弱性をチェックすることを目的としています。
-
内部脆弱性スキャン: 内部スキャンにより、プライベートネットワーク内で発生する可能性のあるセキュリティギャップを可視化できます。
-
侵入型スキャンと非侵入型スキャン: 非侵入型スキャンは、ネットワークトラフィックやデータベースのバージョンなどの特定のターゲットをスキャンしますが、脆弱性を利用せずに情報をチェックするだけなので、サービスレベルには影響しません。侵入型スキャンは、脆弱性を最高レベルで悪用し、見つかった脆弱性についてより多くの洞察を提供することを目的としていますが、サービスレベルを妨げることもあるため、管理された環境で使用してください。
Amazon Inspector
アマゾン・インスペクター はスケーラブルな脆弱性管理ツールで、ワークロードや意図しないネットワークへの露出をスキャンして、EC2 インスタンスを実行しているオペレーティングシステムに脆弱性がないことを確認します。
Amazon Inspector では、最新の共通脆弱性と暴露 (CVE) ファクターを使用し、Java、Python、Node.js などのさまざまなコーディング言語をチェックして、ほぼリアルタイムで脆弱性発見レポートを作成できます。Amazon Inspector を使用する開発者は、PCI、ISO、CSA STAR 証明書などのプログラムのコンプライアンス検証に使用できます。
Amazon Guard
アマゾンのセキュリティチームが開発しました アマゾンの SP-API ガード AWS インスタンスで実行され、セキュリティコンプライアンスの確認と評価を行うアプリケーションとして アマゾンのDPP。SP-API Guard は、1 日以内に見つかったセキュリティギャップの推奨レポートを S3 バケットに提供します。これにより、見つかった脆弱性に対する推奨ソリューションを提供しながら、手作業によるデータセキュリティ評価や修復計画の時間を削減できます。
侵入テスト
ペネトレーションテスト(ペンテスト)は、シミュレート/制御された環境で、アプリケーションやネットワークのさまざまなポイントに脆弱性がないかどうかを確認する方法です。これは、どの脆弱性が攻撃者によって悪用される可能性があるかを確認するために行われます。
ペンテストは次の段階で構成されています。
-
計画段階: チームは、テスターのペンテストの目標と範囲を設定します。すべての関係者が今後のテストについて知っておく必要があります。
-
スキャン/ディスカバリーステージ: ペンテスターがネットワーク認識とコード検査のプロセスを開始します。
-
ペネトレーションステージ: ペンテスターは、SQL インジェクション、クロスサイトスクリプティング、バックドアなどのさまざまな種類の攻撃を使用してネットワーク/インスタンスにアクセスして、脆弱性を悪用しようとします。
-
分析/報告段階: ペンテスターは、ネットワークセキュリティを侵害するために取られた措置と発見された脆弱性に関する詳細情報を含むレポートを作成します。ペンテスターは、レポートに「推奨処置」セクションを含める必要があります。
-
修復/クリーンアップ段階: 担当チームが率先して、ペンテストの完了後に報告された脆弱性の修正に取り掛かります。
脆弱性を確実に修復またはパッチするための追加のセキュリティ手順として、開発者は修正段階の後に2回目のテストを実行して、取り残された項目や放置された項目がないことを確認します。
OWASPはペネトレーションテストガイドも提供しています(ワスプザップ) アプリケーションレベルでペンテストを適用する方法や、ファイアウォールやポートなどのネットワークコンポーネントについて詳しく知りたい開発者向け。
コード脆弱性スキャン
コード脆弱性スキャンは、新しい機能/製品がリリースされる際のリスクを軽減することを目的としています。開発者は、以下のコードスキャンツールを使用することで、コードをデプロイする際にエラー、技術的な問題、またはセキュリティ上の欠陥がないことを確認できます。
-
静的アプリケーションセキュリティテスト (SAST): コードを実行せずにコードを確認できます。SAST はコードがどのように記述されているかをチェックして、コード内のセキュリティ上の問題を指摘します。
-
動的アプリケーションセキュリティテスト (DAST): SAST とは対照的に、DAST は悪意のあるペイロードインジェクションによる攻撃をシミュレートして、実行中のアプリケーションのコードをチェックします。DAST は、開発者が実行中のアプリケーション内の脆弱性を特定するのに役立ちます。
-
インタラクティブアプリケーションテスト (IAST): IAST はテスト環境全体でアプリケーションの機能をチェックします。これにより、リリース前に脆弱性に対処することで、起こり得るダウンタイムやサービスの中断を減らすことができるため、実装とスケーラビリティが容易になります。
これらのツールは、OWASPが定める基準に従い、アプリケーションのセキュリティをセキュリティリスクの上位10項目と照合する必要があります。開発者はコードをスキャンして、製品の発売後にサービスに影響したり中断したりするセキュリティ上の欠陥を特定、分類、優先順位付けする必要があります。
災害復旧計画
アプリケーションユーザーがインシデント(技術的または物理的)の影響を受けないようにするには、開発者は、リカバリ時間目標(RTO)とリカバリポイント目標(RPO)を考慮して、PIIデータへの可用性とアクセスを短時間で回復する方法に関するアクションを含む計画を立てる必要があります。AWS では、次のようなガイダンスを提供しています。 クラウドアプリケーションの RTO および RPO 目標の設定。
-
エトロ: 開発者がアプリケーションユーザーに通常のサービスレベルを戻すのにかかる時間。これは、アプリケーションの機能に不可欠なネットワークインスタンス/サービス内に冗長性を持たせることで実現できます。
-
プロ: 開発者がデータを復元できる時点、つまり、インシデント発生後に失っても許容されるデータの量です。この目標の基本的な側面は、異なる場所に 1 つ以上のデータのバックアップを作成し、可能であればそれらのバックアップを週 2 回実行することです。
開発者は、リカバリ戦略を使用し、目標 (RTO と RPO) を満たすようにテストすることが求められます。 AWS レジリエンスハブ は RTO と RPO の目標を設定するのに役立つ AWS のサービスで、それらの目標に照らしてアプリケーションを分析します。
結論
脆弱性管理は重要なセキュリティ標準です。脆弱性スキャンとペネトレーションテストは、ネットワーク環境とアプリケーションインスタンス内で発生する可能性のあるリスクを特定して軽減するのに役立ちます。開発者は DPP 要件に従い、少なくとも年に 1 回は脆弱性スキャンとペンテストを実施する必要があります。このような評価を実施することで、開発者はセキュリティの成熟度を高め、規制や業界のベストプラクティスなど、直面する可能性のある標準に準拠できるようになります。
開発者は、機能または製品のリリース前にコードスキャンを実行する必要があります。新しいリリースにセキュリティ上の欠陥がなく、データが公開されないように、隔離された管理された環境でテストを行う必要があります。
バックアップ、スナップショット、またはイメージを用意しておくと、インシデントによるPIIデータの損失による影響を軽減できます。アプリケーションサービスの耐障害性を確保することで、PII データへのアクセスと可用性を回復するのにかかる時間を短縮できます。
Updated 23 days ago