Google Cloud における 2017 年の OWASP トップ 10 緩和策

Last reviewed 2021-05-27 UTC

このドキュメントでは、2017 年の OWASP トップ 10 で説明されている一般的なアプリケーション レベルの攻撃の防御に役立つ Google Cloud プロダクトと緩和戦略について説明します。OWASP トップ 10 は、Open Web Application Security(OWASP)Foundation によるすべてのアプリケーション オーナーが把握すべきセキュリティ リスクのトップ 10 リストです。これらのリスクに対する完全な保護を保証するセキュリティ プロダクトはありませんが、アーキテクチャに対して有効なプロダクトを適用すると、強力な多層セキュリティ ソリューションを実現できます。

2021 年の OWASP トップ 10 の緩和策オプションについては、Google Cloud における 2021 年の OWASP トップ 10 緩和策オプションをご覧ください。

Google のインフラストラクチャは、サービスを安全に構築、デプロイ、運用できるように設計されています。物理的および運用上のセキュリティ、内部脅威の検出、保存データおよび転送データの暗号化など、安全なインフラストラクチャの重要な側面が Google によって管理されます。アプリケーションを Google Cloud にデプロイすることで、これらのメリットを継承できますが、特定の攻撃からアプリケーションを保護するためには、さらなる手段を講じなければならない場合があります。

このドキュメントに掲載されている緩和策は、アプリケーションのセキュリティ リスクと Google Cloud プロダクトを基準に分類されています。ウェブ セキュリティ リスクに対する多層防御戦略を策定するうえで役立つプロダクトは数多くあります。このドキュメントでは、さまざまなプロダクトで OWASP トップ 10 リスクを軽減する方法について説明しますが、特に Google Cloud Armor と Apigee がこれらの幅広いリスクを軽減する仕組みについて詳しく説明します。ウェブ アプリケーション ファイアウォール(WAF)として機能する Google Cloud Armor と、API ゲートウェイとして機能する Apigee は、さまざまな種類の攻撃をブロックするのに特に役立ちます。これらのプロダクトはインターネットからのトラフィックが Google Cloud 内のアプリケーションに到達する前に、外部トラフィックをブロックできます。

プロダクトの概要

次の表に、トップ 10 セキュリティ リスクから防御するために利用できる Google Cloud プロダクトを記載します。

プロダクト 概要 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
アクセスの透明性 管理者のアクセスログと承認コントロールにより、クラウド プロバイダによるアクセスを可視化して制御
Apigee アプリケーション プログラミング インターフェースを設計、保護、スケーリング
Binary Authorization 信頼できるコンテナ イメージのみを Google Kubernetes Engine にデプロイできるようにする
Chronicle Detect Google のインフラストラクチャ、検出技術、シグナルを利用して、リアルタイムかつ大規模に脅威を自動的に検出
Cloud Asset Inventory プロジェクトおよびサービスのすべての Google Cloud アセットと Google Distributed Cloud Virtual アセットまたはマルチクラウド アセットの表示、モニタリング、分析
Sensitive Data Protection 特に機密性の高いデータを検出、分類、保護
Cloud Load Balancing SSL プロキシまたは HTTPS ロードバランサがネゴシエートする暗号をコントロール
Cloud Logging リアルタイムでのログの管理とスケーラブルな分析
Cloud Monitoring Google Cloud サービスとさまざまなアプリケーションやサードパーティ サービスから指標、イベント、メタデータを収集して分析
Cloud Source Repositories チームのコードを一元的に保存、管理、追跡
Container Threat Detection コンテナ イメージの状態を継続的にモニタリングし、すべての変更を評価し、リモート アクセスの試行をモニタリングして、ランタイム攻撃をほぼリアルタイムに検出
Event Threat Detection 組織の Cloud Logging ストリームをモニタリングして、ほぼリアルタイムで脅威を検出
Forseti Inventory アーキテクチャのスナップショットを収集して保存
Forseti Scanner カスタム定義のポリシーに従って在庫データをスキャンし、予期しない偏差についてのアラートを発する
Google Cloud Armor 一般的な攻撃ベクトルを防御するために Google のネットワークのエッジにデプロイされたウェブ アプリケーション ファイアウォール(WAF)
Google Cloud のセキュリティに関する公開情報 Google Cloud プロダクトに関連する最新のセキュリティに関する公開情報
Identity-Aware Proxy(IAP) ID とコンテキストを使用して、アプリケーションや VM へのアクセスを保護
Identity Platform Identity and Access Management 機能をアプリケーションに追加し、ユーザー アカウントを保護して、ID 管理をスケーリング
Key Management Service Google Cloud で暗号鍵を管理
ReCAPTCHA Enterprise 不正行為やスパムからウェブサイトを保護
Secret Manager API キー、パスワード、証明書、その他のセンシティブ データを保存
Security Command Center セキュリティ分析と脅威インテリジェンスの一元的な可視化によって、アプリケーションの脆弱性を表面化させる
Security Health Analytics(SHA) Security Command Center で利用可能な脆弱性の検出結果を生成
Titan セキュリティ キー (Google の設計によるファームウェアとともに)ハードウェア チップが組み込まれたフィッシング耐性のある 2FA デバイスにより、キーの整合性を検証して、価値の高いユーザーを保護
VPC Service Controls マルチテナント型 Google Cloud サービスのリソースを分離して、データ漏洩のリスクを軽減
VirusTotal 不審なファイルや URL を分析し、マルウェアのタイプを検出し、セキュリティ コミュニティと自動的に共有
Web Security Scanner Security Command Center で利用可能な脆弱性の検出結果タイプを生成

A1: インジェクション

SQL、NoSQL、OS、LDAP インジェクションなどのインジェクションの不具合は、信頼できないデータがコマンドまたはクエリの一部としてインタープリタに送信されたときに発生します。攻撃者の悪意のあるデータにより、インタープリタがだまされ、意図しないコマンドを実行することや、適切な認可なしでデータにアクセスすることがあります。ユーザーデータは、インタープリタに送信する前に、アプリケーションでサニタイズまたはフィルタリングすることをおすすめします。

以降のセクションでは、このリスクを軽減する際に有効な Google Cloud プロダクトについて説明します。

Apigee

ユースケース:

  • SQL インジェクションのブロック
  • NoSQL インジェクションのブロック
  • LDAP インジェクションのブロック
  • JavaScript インジェクションのブロック

Apigee は、ポリシーまたはルールをさらに処理する前に、クライアントから提供された値が構成済みの想定された値と一致することを確認するいくつかの入力検証ポリシーを提供します。受信 API リクエスト用のゲートウェイとして機能する Apigee Edge が制限チェックを実行して、ペイロード構造が許容範囲内に収まっていることを確認します。入力検証ルーティンで入力を変換して危険な文字シーケンスを削除し、安全な値に置き換えるように、API プロキシを構成できます。

Apigee プラットフォームで入力を検証するための方法がいくつか用意されています。

Container Threat Detection

ユースケース:

  • 悪意のあるスクリプトの検出
  • リバースシェル検出
  • マルウェアのインストールの検出

Container Threat DetectionMalicious Script Executed 検出機能は、システムで実行されているすべてのシェル スクリプトを分析し、悪意のあるスクリプトを報告します。これは、シェルコマンド インジェクション攻撃を検出する手段となります。シェルコマンド インジェクションが成功すると、攻撃者はリバースシェルを生成します。これによって Reverse Shell 検出機能がトリガーされます。また、マルウェアがインストールされると、Added Binary Executed 検出機能と Added Library Loaded 検出機能がトリガーされます。

Google Cloud Armor

ユースケース:

  • SQL インジェクション フィルタリング
  • PHP インジェクション フィルタリング

Google Cloud Armor は、一般的なインジェクション攻撃を、その攻撃がアプリケーションに到達する前にブロックできます。SQL インジェクション(SQLi)に対しては、Google Cloud Armor には OWASP Modsecurity コア ルールセット(このドキュメントの作成時点でバージョン 3.0.2)をベースに事前定義されたルールセットが存在します。evaluatePreconfiguredExpr('sqli-stable') ルールを単独で、または他のカスタムルールと組み合わせて使用することによって、コア ルールセットで定義されている SQLi 攻撃をブロックするためのセキュリティ ポリシーを作成できます。たとえば、URL パスフィルタを使用することで、SQLi ブロックを特定のアプリケーションに制限できます。

PHP インジェクションに対しては、別の事前構成済みルールセットが存在します。evaluatePreconfiguredExpr('php-stable') ルールを使用して、一般的な PHP インジェクション攻撃をブロックできます。

アプリケーションによっては、ルールセットの一部のルールの感度が非常に高いため、事前構成された式を有効にすると偽陽性が発生することがあります。詳細については、偽陽性のトラブルシューティングおよびルールセットを異なる感度レベルに調整する方法をご覧ください。

SQL または PHP をターゲットにした攻撃以外のインジェクション攻撃については、カスタムルールを作成して、これらのプロトコルで特定のキーワードまたはエスケープ パターンがリクエストパスまたはクエリで使用されている場合に、リクエストをブロックできます。有効なリクエストにこれらのパターンが含まれないようにしてください。また、渡されたデータを解釈する可能性がある特定のエンドポイントまたはパスに対してのみ使用されるように、これらのルールを制限することもできます。

さらに、一部のインジェクション攻撃は、リモートコード実行とリモート ファイル インジェクション用に事前構成されたルールを使用することで軽減できます。

Web Security Scanner

ユースケース:

  • SQL インジェクションのモニタリング

ウェブ アプリケーションの脆弱性をスキャンする Web Security Scanner に備わっている検出機能を使用して、SQL インジェクション攻撃をモニタリングできます。

A2: 不完全な認証

アプリケーションの認証とセッションの管理が正しく実装されていないことは珍しくないため、不完全な認証はよくある脆弱性です。攻撃者が侵害されたパスワード、鍵、セッション トークンなどの実装上の欠陥を悪用して、一時的または永続的に他のユーザーの ID を引き継ぐ可能性があります。

アクセスの透明性

ユースケース:

  • サービス プロバイダのモニタリング
  • アクセスの理由

通常、外部のベンダーからハンズオン サポートを利用する場合は、一時的な認証情報を付与して共有する必要があります。これによって、認証情報が孤立または漏洩する可能性が生じます。Access Approval は、アカウントのサポートを担当する Google 社員からのアクセス リクエストを承認または拒否できる統合サービスです。各アクセス リクエストにはアクセスの妥当性が含まれているため、各アクセスの理由(サポート チケットへの参照など)を確認できます。

Apigee

ユースケース:

  • 鍵の検証
  • トークン検証
  • OAuth ポリシー

Apigee は、この脆弱性に対する保護に役立つ VerifyApiKey、OAuth、JSON Web Token(JWT)ポリシーを提供しています。

API キー検証は、API 用に構成可能なアプリベースのセキュリティの中で最も簡単な方法です。クライアント アプリケーションはリクエストと一緒に API キーを提供し、Apigee Edge は API プロキシに関連したポリシーにより、リクエストされたリソースに対して API キーが承認状態かどうかをチェックします。

OAuth 2.0 認可フレームワークは、サードパーティのアプリケーションによる HTTP サービスへの限定的なアクセスを可能にします。サードパーティ アプリケーションがアクセス権を取得する際は、リソース所有者と HTTP サービスの間の承認のためのやり取りをリソース所有者の代わりにオーケストレートして行う場合と、自らの権限においてアクセス権を取得する場合があります。

JSON ウェブトークン(JWT)は一般的に、接続されているアプリケーションの間でクレームやアサーションを共有するために使用されます。Apigee は、3 つのポリシーを使用して JWT サポートを提供します。

Event Threat Detection

ユースケース:

  • ブルート フォース検出
  • IAM の不正使用の検出

Event Threat Detection は、Cloud Logging ストリームをモニタリングし、検出ロジックと独自の脅威の分析情報をきめ細かいレベルで適用します。Event Threat Detection は脅威を検出すると、選択したプロジェクトの Security Command Center と Cloud Logging に検出結果を書き込みます。次のイベントタイプは、不完全な認証を識別するのに便利です。

  • ブルート フォース SSH。ホスト上で成功した SSH のブルート フォースを検出します。
  • 異常な権限付与。Google Cloud 組織外の Identity and Access Management(IAM)ユーザーに付与された権限を検出します。

Google Cloud Armor

ユースケース:

  • 認証エンドポイントのアクセスを制限する
  • 不正なトークンの使用を制限する

不完全な認証リスクに分類される脆弱性に対する攻撃は、アプリケーション レベルまたは他の制御によって最も効果的に軽減されます。ただし、Google Cloud Armor を使用すると、攻撃対象領域を制限したり、既知の攻撃ベクトルをブロックしたりできます。

たとえば、アプリケーションのユーザーベースが限られていて、それらのユーザーが既知の IP アドレスや国からアクセスする場合は、アプリケーションへのアクセスをそれらの IP アドレスや国からのユーザーに制限するセキュリティ ポリシーを作成できます。このポリシーにより、これらの領域の外にあるエンドポイントからの自動スキャンを軽減できます。

他のセキュリティ メカニズムが、パスワード、鍵、セッション トークンが不正使用されたことを検出した場合は、カスタムルールを使用して、クエリ文字列にこれらのパラメータを含むリクエストのアクセスをブロックできます。以前に定義したルールをプログラムで更新するには、securityPolicy.patchRule メソッドを使用します。HTTP ロード バランシング ログに対して異常検出メカニズムを使用すると、盗難された可能性のあるトークンを識別できる可能性があります。これらのログで一般的なパスワードをスキャンして、潜在的な攻撃者を検出することもできます。

セッション固定攻撃用に事前構成された ModSecurity ルールセットを使用すると、一般的なセッション固定攻撃をブロックできます。セキュリティ ポリシーに事前定義された evaluatePreconfiguredExpr('sessionfixation-stable') ルールを追加することで、ルールセットを使用できます。

アプリケーションでクエリ文字列にパスワードの変更が含まれている場合、request.query 属性と一致するカスタムルールを使用して、一般的なパスワードの使用をブロックすることもできます。ただし、可能であれば、アプリケーションでそのようなチェックを実装することをおすすめします。

Identity-Aware Proxy(IAP)

ユースケース:

  • 一元化されたアクセス制御
  • クラウドやオンプレミスと連携
  • HTTP 接続と TCP 接続を保護する
  • コンテキストアウェア アクセス

IAP は HTTP(S) ロード バランシングと統合されるため、ID とコンテキストを使用して、アプリケーション全体に安全な認証と認可のウォールを形成できます。Identity Platform で外部ユーザーをプロビジョニングすることで、一般向けアプリケーションに対する不完全な認証を防止します(詳細は次のセクションをご覧ください)。

Identity-Aware Proxy で管理インターフェースを保護し、Identity and Access Management または Cloud Identity でプロビジョニングされたユーザーを認証することによって、管理インターフェースに対する不完全な認証を防ぐこともできます。ツールにアクセスしようとすると、認証の試行がログに記録され、認証されたユーザーがリクエストしたリソースにアクセスできるかどうかの認証チェックが行われます。

Identity Platform

ユースケース:

  • サービスとしての認証
  • 多要素認証
  • エンタープライズ SLA
  • 幅広いプロトコルのサポート
  • Google アカウントの保護に関する情報

Identity Platform は、Google Cloud の顧客 ID とアクセス管理(CIAM)プラットフォームであり、SDK と API を使用して、マルチプロトコルをサポートするサービスとして安全な認証を提供します。多要素認証、サードパーティの認証サービスとの統合、監査可能なアクティビティ追跡も提供します。

reCAPTCHA Enterprise

ユースケース:

  • 自動ログイン試行
  • コンテンツ スクレイピング
  • クレデンシャル スタッフィング
  • 不正取引
  • アカウントの乗っ取り
  • 偽のアカウント
  • 資金洗浄

reCAPTCHA Enterprise は、アクセス試行のリスクレベルをスコア付けすることで、bot やその他の形式の自動化および一括トラフィックに対して非常に効果的なフィルタリングを実現します。自動フィードバックでサイト固有のモデルを調整できます。reCAPTCHA はサイトに合わせて将来のスコアを調整します。

Security Health Analytics

ユースケース:

  • MFA / 2FA の適用
  • API キーの保護
  • API キーのローテーションの適用

Security Command Center と使用すると、多要素認証のコンプライアンスと API キーの状況のモニタリングによって、不完全な認証を防止できるようになります。不審なリクエストを特定して、そのリクエストをブロックしたり、特別な処理を行うためにフラグを設定したりできます。

Titan セキュリティ キー

ユースケース:

  • フィッシング耐性のある 2FA
  • モバイルと PC の認証

Titan セキュリティ キーには、ユーザーの本人確認とログインページの URL の確認に公開鍵暗号が使用されています。ユーザーが巧みに誘導されてユーザー名とパスワードを入力したとしても、攻撃者がアカウントにアクセスすることはできません。

Web Security Scanner

ユースケース:

  • セッション ID の漏洩

Web Security Scanner は、ウェブ アプリケーションをスキャンして、セッション ID 漏洩などの脆弱性を検出します。セッション ID 漏洩により、第三者がユーザーになりすますことや、ユーザーを一意に識別することが可能になります。

A3: センシティブ データの漏洩

センシティブ データの漏洩は、転送中に暗号化されないことや暗号化の強度が弱い場合や、誤ってセンシティブ データが漏洩した場合に発生することがあります。これらの脆弱性に対する攻撃は、通常はアプリケーションに固有であるため、軽減するには多層防御のアプローチが必要です。

Apigee

ユースケース:

  • センシティブ データを保護する

一方向 TLS と双方向 TLS を使用して、プロトコル レベルで機密情報を保護します。

Assign Message ポリシーJavaScript ポリシーなどのポリシーを使用して、クライアントに返される前にセンシティブ データを削除します。

標準の OAuth 手法を使用し、各リクエストの認証レベルを高めるために、HMAC、ハッシュ、ステート、ノンス、PKCE、またはその他の手法を追加することを検討します。

Edge Trace ツールでセンシティブ データをマスクします

Key-Value マップに保存されるセンシティブ データを暗号化します。

Cloud Asset Inventory

ユースケース:

  • 検索サービス
  • アクセス アナライザ

データ漏洩の最も一般的なベクトルの 1 つは、孤立しているか未承認の IT インフラストラクチャです。Cloud Asset 時系列データを分析すると、保守されていないサーバーや、過剰に共有されているルールを持つバケットを特定できます。

リアルタイム通知を設定して、保護が不十分であるか、未承認のリソースに対する予期しないプロビジョニングについてアラートを発します。

Cloud Data Loss Prevention API(Sensitive Data Protection の一部)

ユースケース:

  • センシティブ データの検出と分類
  • 自動データ マスキング

Cloud Data Loss Prevention API(DLP API)を使用すると、バケットやデータベースに保存されているセンシティブ データを潜在的にスキャンし、意図しない情報の漏洩を防ぐことができます。許可されていないデータが識別された場合は、自動的にフラグを設定するか、秘匿化できます。

Cloud Key Management Service(Cloud KMS)

ユースケース:

  • 安全な暗号鍵管理

マネージド サービスおよび監査対象のサービスを使用して、暗号鍵の漏洩を防ぐことができます。クラウドでホストされた鍵管理サービスを利用することで、オンプレミスと同じ方法でクラウド サービスの対称暗号鍵および非対称暗号鍵を管理できます。AES256、RSA 2048、RSA 3072、RSA 4096、EC P256、EC P384 の各規格に対応し、暗号鍵の生成、使用、ローテーション、破棄をサポートしています。

Cloud Load Balancing

ユースケース:

  • SSL / TLS 暗号のきめ細かい制御

SSL ポリシーを使用すると、ロードバランサで許可される SSL / TLS 機能と暗号を制御して、センシティブ データの漏洩を回避できます。必要に応じて、未承認または安全でない暗号をブロックします。

Google Cloud Armor

ユースケース:

  • 既知の攻撃 URL をフィルタする
  • 機密性の高いエンドポイント アクセスを制限する

一般に、センシティブ データの漏洩はソースで阻止することが望ましいものの、それぞれの攻撃はアプリケーション特有であるため、ウェブ アプリケーション ファイアウォールはデータ漏洩を広範囲に阻止するという限られた方法でのみ使用できます。ただし、アプリケーションにすぐにパッチを適用できない場合は、Google Cloud Armor カスタムルールを使用して、脆弱なエンドポイントやリクエスト パターンへのアクセスを制限できます。

たとえば、センシティブ データの漏洩に関する Juice Shop の課題は、安全でないディレクトリ トラバーサルと null バイト インジェクション攻撃によって悪用される可能性があります。次のカスタム式を使用して URL 内の文字列をチェックすることで、これらのインジェクションを緩和できます。

request.path.contains("%00") || request.path.contains("%2500")

Prometheus で使用される /metrics サブディレクトリにアクセスすることで、指標の公開の課題を解決できます。このような機密性の高いエンドポイントが公開されていて、そのエンドポイントへの直ちにアクセスを削除できない場合は、特定の IP アドレス範囲を除いて、エンドポイントへのアクセスを制限できます。次のカスタム式のようなルールを使用します。

request.path.contains("/metrics") && !(inIpRange(origin.ip, '1.2.3.4/32')

1.2.3.4/32 は、指標インターフェースへのアクセス権を付与する必要がある IP アドレス範囲に置き換えます。

誤って公開されたログファイルが Juice Shop の課題の解決に使用されます。ログの公開を回避するには、ログファイルへのアクセスを完全に禁止するルール request.path.endsWith(".log") を設定します。

Identity-Aware Proxy とコンテキストアウェア アクセス

ユースケース:

  • 機密性の高いサービスへのリモート アクセスを保護する
  • 一元化されたアクセス制御
  • コンテキストアウェア アクセス

ID とコンテキストを使用して、アプリケーションの周囲に安全な認証と認可の境界を形成します。インターネット上のどこからでも許可された個人のみにコンテキストアウェア アクセスを許可するには、内部のバグレポート、企業のナレッジベース、IAP の背後にあるメールなどのツールをデプロイします。

コンテキストアウェア アクセスを使用すると、ユーザーの ID と従来の VPN なしでのリクエストのコンテキストに基づいて、ウェブ アプリケーション、仮想マシン(VM)、Google Cloud APIs、Google Workspace アプリケーションに対して、きめ細かいアクセス制御を実施できます。ゼロトラスト セキュリティ モデルと Google の BeyondCorp の実装をベースとするコンテキストアウェア アクセスにより、ユーザーにアクセスを許可し、きめ細かい制御を行い、クラウドとオンプレミスの両方のアプリケーションとインフラストラクチャ リソースの単一のプラットフォームを使用します。

Secret Manager

ユースケース:

  • 暗号鍵
  • API キー
  • その他のシステム認証情報

Secret Manager は、API キー、サービス アカウントのパスワード、暗号アセットなどの最も重要なデータのための安全なストレージ サービスです。シークレットを一元的に保存することで、Google Cloud の認証システムと認可システム(IAM を含む)を利用して、アクセスのリクエストが有効かどうかを判断できます。

Secret Manager は、クレジット カードのトークン化や個々のユーザー パスワード ストレージなどの大規模なオペレーション向けには設計されていません。このような用途には、Identity Platform for CIAM、組織のメンバー用の Cloud Identity、または専用のトークン化ソフトウェアを使用する必要があります。

Security Health Analytics

ユースケース:

  • MFA / 2FA の適用
  • API キーの保護
  • API キーのローテーションの適用
  • コンピューティング イメージのプライバシー
  • SSH 認証鍵ルールの適用
  • セキュアブートのモニタリング
  • API アクセスのセキュリティ
  • SSL ポリシーのモニタリング
  • 無効化されたロギング
  • 一般公開バケットの ACL アラート

多要素認証のコンプライアンスAPI キーの状態をモニタリングすることで、センシティブ データが漏洩しないようにします。コンテナ イメージ ストレージ、Cloud Storage、SSL ポリシー、SSH 認証鍵ポリシー、ロギング、API アクセスなどの安全でない構成に関するアラートを取得します。

VirusTotal

ユースケース:

  • フィッシング防止

VirusTotal を使用すると、悪意のあるコンテンツの URL がユーザー入力、メール、チャット、ログ、その他のロケーションのどこで検出されたかを問わず、ユーザーまたは従業員に提示する前にスキャンできます。

VPC Service Controls

ユースケース:

  • マネージド サービス用のファイアウォール

重要なマネージド サービスをファイアウォールでラップして、サービスを呼び出すことができるユーザーと、サービスが応答できるユーザーを制御します。Cloud Functions などのサービスにおける送信境界ルールを使用して、不正な下り(外向き)通信およびデータの引き出しをブロックします。不正なユーザーと場所からマネージド データストアとデータベースへのリクエストを防止します。強力な API または被害を受ける可能性のある API の周囲に安全な境界を作成します。

ウェブ アプリケーション スキャナ

ユースケース:

  • ウェブ アプリケーションのセキュリティ リスク スキャナ
  • ソース リポジトリの可用性スキャナ

ウェブ アプリケーションでセンシティブ データが公開されないようにするには、パスワードがクリアテキストで送信されないようにしてください。公開された Git と Apache Subversion のソースコード リポジトリを確認して、被害を受ける可能性のある未加工のソースコードの漏洩を防ぎます。これらのスキャンは、特定の OWASP トップ 10 コントロールに対応するように設計されています

Web Security Scanner

ユースケース:

  • ネットワーク経由で送信された、暗号化されていないパスワード
  • 特定されているセキュリティの脆弱性

Web Security Scanner は、ウェブ アプリケーションをスキャンし、エラーと脆弱性の検出結果を報告します。リンクをたどり、できる限り多くのユーザー入力とイベント ハンドラの実行を試みます。

ユーザーのアプリケーションがパスワードをクリアテキストで送信すると、Web Security Scanner は CLEAR_TEXT_PASSWORD の検出結果を生成します。ウェブ アプリケーションに入力されたパスワードを、安全なパスワード ストレージではなく通常のブラウザ キャッシュに保存できる場合、Web Security Scanner は CACHEABLE_PASSWORD_INPUT の検出結果を生成します。

A4: XML 外部エンティティ(XXE)

XML 外部エンティティに対する攻撃では、外部エンティティを参照するときに XML プロセッサの脆弱性を悪用します。このような攻撃は、外部クライアントとの間の XML データ転送の使用を避け、XML パーサーでの XXE の処理を無効にすることで軽減できます。

このコンセプトは、外部エンティティを参照または含むことができる XML 以外のドキュメントと構成にまで拡張しています。たとえば、外部スキーマ参照を持つ JSON 構成や、外部ライブラリやイメージにバンドルされていないバイナリを pull するコンテナ構成などです。

Apigee

ユースケース:

  • LFI / RFI(ローカル ファイル インクルード、リモート ファイル インクルード)を使用して XXE 攻撃をブロックする

Apigee には、XPath を使用してデータを抽出する XML パーサーが組み込まれています。また、悪意のある XML ペイロードから保護するための XMLThreatProtection ポリシーもあります。

Apigee の ExtractVariables ポリシーを使用すれば、リクエストまたはレスポンスからコンテンツを抽出して、そのコンテンツを変数に割り当てることができます。ヘッダー、URI パス、JSON ペイロード、XML ペイロード、フォーム パラメータ、クエリ パラメータなど、メッセージの任意の部分を抽出できます。このポリシーは、メッセージ コンテンツにテキスト パターンを適用し、一致するものを検出すると、指定したメッセージ コンテンツで変数を設定します。

Google Cloud Armor

ユースケース:

  • LFI / RFI(ローカル ファイル インクルード、リモート ファイル インクルード)を使用して XXE 攻撃をフィルタする

XXE 攻撃は複雑で、形式が異なる可能性があるため、ウェブ アプリケーション ファイアウォールによる緩和策は限られています。攻撃をより効果的に緩和するには、XML パーサーにパッチを適用し、外部エンティティを無効化するとともに、公開ウェブサーバー上での XML データ転送を最小限に抑えます。ただし、アプリケーションと攻撃の種類によっては、Google Cloud Armor を使用することで、データの引き出しやその他の影響から防御できます。

具体的に XXE 攻撃を対象とした防御ルールは OWASP ModeSecurity のコアルール セットにありませんが、ローカル ファイル インクルード(LFI)ルールとリモート ファイル インクルード(RFI)ルールによって防御できる XXE 攻撃もあります。たとえば、Juice Shop XXE のデータアクセスの課題では、攻撃者がサーバー上のローカル ファイルを取得する必要があります。Google Cloud Armor セキュリティ ポリシーevaluatePreconfiguredExpr('lfi-stable') ルールを使用すると、この課題の解決策が機能しなくなります。

Web Security Scanner

ユースケース:

  • XML 外部エンティティ(XXE)

Web Security Scanner は、XXE 脆弱性などの脆弱性をモニタリングします。

詳細については、Web Security Scanner の概要をご覧ください。

A5: 不完全なアクセス制御

不完全なアクセス制御とは、クライアント側に部分的に適用されている、または実装が不十分なアクセス制御を指します。不完全なアクセス制御を軽減するには、承認されたユーザーのみがリソースにアクセスできるようにアプリケーション側で適切に適用するために必要な変更を行います。

Apigee

ユースケース:

  • アクセス制御の適用
  • データ操作の制限

Apigee は、悪意のある人物が不正な変更を行うことや、システムにアクセスすることを防ぐために、アクセス制御を実装する階層化アプローチをサポートしています。

ロールベースのアクセス制御(RBAC)を構成して、ユーザーが必要な機能と構成にのみアクセスできるようにします。暗号化された Key-Value マップを作成し、機密 Key-Value ペアを保存します。このペアは、Edge UI および管理 API 呼び出しではマスクされて表示されます。会社の ID プロバイダを使用したシングル サインオンを構成します。

ユーザーロールに応じて特定の API プロダクトを表示するようにデベロッパー ポータルを構成します。ユーザーロールに基づいてコンテンツを表示または非表示にするようにポータルを構成します。

Cloud Asset Inventory

ユースケース:

  • シャドー IT をモニタリングする
  • 古いコンピューティング インスタンス

データ漏洩の最も一般的なベクトルの 1 つは、孤立しているか未承認の IT インフラストラクチャです。リアルタイム通知を設定して、保護が不十分なリソースの予期しない実行や、古いソフトウェアの使用についてアラートを発します。

Cloud Load Balancing

ユースケース:

  • SSL / TLS 暗号のきめ細かい制御

Cloud Load Balancing で使用可能な事前定義されたグループまたは暗号のカスタムリストを割り当てることで、脆弱な SSL / TLS 暗号の使用を防ぎます。

Forseti Scanner

ユースケース:

  • アクセス制御構成のモニタリング

Google Cloud リソースを体系的にモニタリングし、アクセス制御が意図したとおりに設定されていることを確認します。ルールベースのポリシーを作成して、セキュリティ体制を体系化します。構成が予期せず変更された場合は、Forseti Scanner が通知を送信するため、既知の状態に自動的に戻すことができます。

Google Cloud Armor

ユースケース:

  • クロスオリジン リクエストをフィルタする
  • ローカル / リモート ファイル インクルード攻撃をフィルタする
  • HTTP パラメータ汚染攻撃をフィルタする

不完全なアクセス制御は、多くの場合、ウェブ アプリケーション ファイアウォールを使用して緩和することができません。アプリケーションで必ずしもすべてのリクエストに対してアクセス トークンが必要ではないか、適切にチェックされず、クライアント側でデータを操作できるためです。複数の不完全なアクセス制御に関連する Juice Shop の課題(たとえば、別のユーザー名でフィードバックを投稿する)では、一部のリクエストはサーバー側で認証されないという事実が悪用されます。課題の解決策に示されているように、この脆弱性に対する悪用は完全にクライアント側で行われるため、Google Cloud Armor を使用して軽減することはできません。

アプリケーションにすぐにパッチを適用できない場合、一部の課題はサーバー側である程度の緩和は可能です。

たとえば、ウェブサーバーでクロスオリジン リソース シェアリング(CORS)の実装が不十分であるためにクロスサイト リクエスト フォージェリ(CSRF)攻撃が可能である場合、CSRF Juice Shop の課題で示されているように、カスタムルールとともに、予期しない送信元からのリクエストをすべてブロックすることで、この問題に対処できます。次のルールは、example.com と google.com 以外を送信元とするすべてのリクエストに適合します。

has(request.headers['origin']) &&
!((request.headers['origin'] == 'https://example.com')||
(request.headers['origin'] == 'https://google.com') )

このようなルールに適合するトラフィックが拒否された場合、CSRF の課題の解決策が機能しなくなります。

サーバー側のリクエスト フォージェリ(SSRF)攻撃SSRF Juice Shop の課題など)の場合、事前構成されたリモート ファイル インクルード(RFI)またはローカル ファイル インクルード(LFI)のルールセットを使用すると、URL やパス トラバーサルのインクルードをブロックするため、このような攻撃の一部を軽減できる場合があります。たとえば、次のルールでは両方のルールセットを有効にします。

evaluatePreconfiguredExpr('lfi-stable') ||
evaluatePreconfiguredExpr('rfi-stable')

このようなルールを実装すると、SSRF の課題の解決策が機能しなくなります。

バスケット操作のチャレンジでは、チャレンジ ソリューションの手順に沿ってショップを攻撃する方法に準じた場合に確認できるように、HTTP パラメータの汚染を使用しています。パラメータ汚染は、プロトコル攻撃ルールセットの一部として検出されます。この種の攻撃をブロックするには、evaluatePreconfiguredExpr('protocolattack-stable') ルールを使用します。

Identity-Aware Proxy とコンテキストアウェア アクセス

ユースケース:

  • 一元化されたアクセス制御
  • クラウドやオンプレミスと連携
  • HTTP と TCP 接続を保護する
  • コンテキストアウェア アクセス

IAP を使用すると、ID とコンテキストを使用してアプリケーションの周囲に安全な認証と認可の壁を形成できます。Cloud Identity と IAM に基づいて構築され、一元管理できる認証と認可システムにより、一般公開アプリケーションに対する不完全な認可やアクセス制御を防ぎます。

従来の VPN を必要としないユーザーの ID とリクエストのコンテキストに基づいて、ウェブ アプリケーション、VM、Google Cloud APIs、Google Workspace アプリケーションにきめ細かいアクセス制御を適用します。クラウドと、オンプレミス アプリケーションとインフラストラクチャ リソースの両方に単一のプラットフォームを使用します。

Security Health Analytics

ユースケース:

  • MFA / 2FA の適用
  • API キーの保護
  • SSL ポリシーのモニタリング

多要素認証のコンプライアンス、SSL ポリシー、API キーの状態をモニタリングすることで、不完全なアクセス制御を防ぎます。

Web Security Scanner

ユースケース:

  • リポジトリの一般公開
  • 安全でないリクエスト ヘッダーの検証

Web Security Scanner は、ウェブ アプリケーションをスキャンして、一般公開されているコード リポジトリリクエスト ヘッダーの検証の構成ミスなどの脆弱性を検出します。

A6: セキュリティの構成ミス

セキュリティの構成ミスとは、一般的にアプリケーションの強化によって回避できるパッチが適用されていないアプリケーションの不具合、有効なデフォルトのアカウント、保護されていないファイルやディレクトリなどを指します。セキュリティの構成ミスは、たとえば、デフォルトの構成を信頼する、安全でない可能性がある部分的な構成を行う、エラー メッセージに機密情報が含まれる、適切なセキュリティ制御なしでデータをクラウドに保存する、HTTP ヘッダーの構成ミスなどといったさまざまな状況で発生します。

Apigee

ユースケース:

  • セキュリティ構成を管理する
  • セキュリティ構成をモニタリングする

共有フローを使用すれば、API デベロッパーは、ポリシーとリソースを再利用可能なグループにまとめることができます。再利用可能な機能を 1 か所に集約することにより、共有フローは整合性を保証し、開発時間を短縮して、コードをより簡単に管理するのに役立ちます。FlowCallout ポリシーを使用して個々の API プロキシ内に共有フローを含めることも、フローフックに共有フローを配置して、同じ環境にデプロイデプロイされたすべての API プロキシの共有フローロジックを自動的に実行することもできます。

Cloud Asset Inventory

ユースケース:

  • リアルタイムの通知サービス

リアルタイムの通知により、保護が不十分であるか、未承認のリソースに対する予期しないプロビジョニングについてアラートを発することができます。

Cloud Load Balancing

ユースケース:

  • SSL / TLS 暗号のきめ細かい制御

ロードバランサで使用できる事前定義されたグループまたは暗号のカスタムリストを割り当てることで、既知の脆弱な SSL / TLS 暗号の使用を防ぎます。

Google Cloud Armor

ユースケース:

  • 安全でないエンドポイントをフィルタする
  • ローカル / リモート ファイル インクルード攻撃をフィルタする
  • プロトコル攻撃をフィルタする

セキュリティの構成ミスはアプリケーション レベルで発生する可能性があるため、OWASP Foundation ではアプリケーションを直接強化し、パッチを適用して、不要な機能をすべて削除することが推奨されています。

Google Cloud Armor などのウェブ アプリケーション ファイアウォール(WAF)は、根本的な構成ミスの解決には役立ちませんが、アプリケーションの一部へのアクセスを完全にブロックすることや、特定の IP アドレスまたは国を除くすべての人へのアクセスをブロックすることができます。アクセスを制限することで、構成ミスが悪用されるリスクを軽減できます。

たとえば、アプリケーションで /admin などの共通 URL を使用して管理インターフェースを公開する場合は、認証されたインターフェースであっても、このインターフェースへのアクセスを制限できます。これを行うには、次の例のような拒否ルールを使用します。

request.path.contains("/admin") && !(inIpRange(origin.ip,
'1.2.3.4/32')

1.2.3.4/32 は、管理インターフェースへのアクセス権を付与する必要がある IP アドレス範囲に置き換えます。

一部の構成ミスは、事前定義されたローカル ファイル インクルード(LFI)またはリモート ファイル インクルード(RFI)のルールセットを使用して部分的に軽減できます。たとえば、LFI ルールセットを適用する場合、Juice Shop のクロスサイト画像処理の悪用の課題に成功しません。evaluatePreconfiguredExpr('lfi-stable') || evaluatePreconfiguredExpr('rfi-stable') ルールを使用し、LFI ルールセットと RFI ルールセットを使用してリクエストをブロックし、必要に応じてルールを調整します。課題の解決策に成功しなくなることを確認できます。

一部の HTTP 攻撃は、事前構成されたルールセットを使用して軽減することもできます。

  • HTTP 動詞の改ざんを回避するには、メソッド適用ルールセット(プレビュー)を使用します。evaluatePreconfiguredExpr('methodenforcement-stable') ルールを使用して、GETHEADPOSTOPTIONS の各メソッド以外の HTTP リクエスト メソッドを禁止します。
  • HTTP リクエスト スマグリングHTTP レスポンス分割HTTP ヘッダー インジェクション などの HTTP 解析とプロキシに対する一般的な攻撃をブロックするには、evaluatePreconfiguredExpr('protocolattack-stable') ルールを使用して、プロトコル攻撃ルールセットを使用します。

Security Health Analytics

ユースケース:

  • セキュリティ管理のモニタリングとアラート

数十のシグナルを単一のインターフェースを介してモニタリングし、アプリケーションがセキュリティのベスト プラクティスを維持していることを確認します。

Web Security Scanner

ユースケース:

  • OWASP トップ 10 向けに調整されたウェブ アプリケーション スキャナ
  • HTTP サーバーの構成
  • HTTP / HTTPS コンテンツの混在

Web Security Scanner は、コンテンツ タイプの不一致、無効なセキュリティ ヘッダー、混合コンテンツ配信などの一般的なセキュリティ エラーをモニタリングします。これらのスキャンは、特定の OWASP トップ 10 コントロールに対応するように設計されています

次の検出機能は、セキュリティ構成のミスをスキャンします。

  • INVALID_CONTENT_TYPE
  • INVALID_HEADER
  • MISMATCHING_SECURITY_HEADER_VALUES
  • MISSPELLED_SECURITY_HEADER_NAME
  • MIXED_CONTENT

これらの検出機能とその他の検出機能の詳細については、Web Security Scanner の概要をご覧ください。

A7: クロスサイト スクリプティング(XSS)

クロスサイト スクリプティング(XSS)を使用すれば、攻撃者は、ユーザーのウェブブラウザでスクリプトを実行して、ユーザー セッションを制御したり、ウェブサイトを操作したり、その他の方法でユーザーに悪影響を及ぼしたりすることができます。

Apigee

ユースケース:

  • XSS の検出

Apigee は API の XSS を防ぐために活用できる脅威保護ポリシーを提供しています。

クロスオリジン リソース シェアリング(CORS)は、すべてのブラウザで適用される同一オリジン ポリシーの一般的な実装の 1 つです。AssignMessage ポリシーを使用して CORS を実装できます。RegularExpressionProtection ポリシーまたは JavaScript ポリシーで正規表現を使用して、JavaScript やその他のインジェクション型攻撃のペイロード値とパラメータ値をチェックします。

Google Cloud Armor

ユースケース:

  • XSS パターンをフィルタする
  • プロトコル攻撃をフィルタする

XSS 攻撃を対象に事前定義されたルールセットを使用すると、一般的な XSS 攻撃をブロックできます。evaluatePreconfiguredExpr('xss-stable') ルールは単独で挿入することも、カスタムルール言語を使用して他の式と組み合わせることもできます。偽陽性のトラブルシューティングのガイダンスに沿って、ルールセットをさまざまな機密性レベルに調整します。

この事前定義ルールセットを使用すると、HTTP リクエストの POST 本文内で XSS ペイロードを使用するOWASP Juice Shop の XSS 課題(たとえば、API のみの XSS の課題)によって定義された XSS 攻撃の大半をブロックできます。

ただし、この方法ですべての XSS 攻撃をブロックできるわけではありません。一部の XSS 攻撃(DOM XSS 課題など)では、クライアント側の機能だけが使用されます。DOM XSS 課題のための課題の解決策に示されているように、攻撃を成功させるためにサーバー側で行う必要がある操作はありません。この種の攻撃は、サーバー側の呼び出しが一切行われないため、ウェブ アプリケーション ファイアウォール(WAF)では軽減できません。代わりに、クライアント側アプリケーションにパッチを適用する必要があります。

他にも、基盤となる OWASP Modsecurity コアルール セットによって捕捉されないために、事前定義された Google Cloud Armor ルールセットで軽減できない攻撃がいくつかあります。このような攻撃は一般的ではありません。たとえば、反映される XSS の課題の解決策で詳しく説明されているように、反映される XSS の課題では、URL パスに XSS ペイロードが含まれ、クエリまたは POST 本文には含まれないクエリでアプリケーションを攻撃する必要があります。解析済みの URL パスが反映されないことは、一般的な脆弱性ではありません。HTTP ヘッダーの XSS の課題では、HTTP ヘッダーの XSS の課題の解決策で説明されているように、専用 HTTP ヘッダーで XSS ペイロードを送信する必要があります。アプリケーションの脆弱性を認識している場合、このような攻撃は Google Cloud Armor のカスタムルールによって潜在的に軽減できます。

一部の XSS 攻撃は、HTTP レスポンス分割HTTP ヘッダー インジェクションなど、基盤となる HTTP サーバーの構成ミスによって有効になる場合もあります。プロトコル攻撃ルールセットを使用して、このルールセットで検出された攻撃をブロックするには、evaluatePreconfiguredExpr('protocolattack-stable') ルールを使用します。

Security Command Center Web Application Scanner

ユースケース:

  • XSS の検出

XSS の脆弱性や特定の AngularJS の構成ミスなど、一般的なセキュリティ エラーをモニタリングします。

Web Security Scanner

ユースケース:

  • クロスサイト スクリプティングのモニタリング

Web Security Scanner は、ウェブ アプリケーションの脆弱性をスキャンし、クロスサイト スクリプティング攻撃をモニタリングする検出機能を提供します。

A8: 安全でない逆シリアル化

攻撃者は、リプレイ、権限昇格、インジェクションなどのさまざまなタイプの攻撃に逆シリアル化の欠陥を利用できます。安全でない逆シリアル化は、リモートコード実行(RCE)を可能にする場合もあります。

Google Cloud Armor

ユースケース:

  • リモートコード実行をブロックする

安全でない逆シリアル化に対する攻撃のほとんどはアプリケーションに固有であるため、これらの攻撃を軽減するには、Google Cloud Armor のようなウェブ アプリケーション ファイアウォール(WAF)を使用するなど、いくつかの方法があります。OWASP では、信頼できないソースからのシリアル化されたオブジェクトを受け入れないことが推奨されています。可能な場合は、次のような拒否ルールを使用して、これらのオブジェクトを受け入れるエンドポイントを信頼できる IP アドレスのセットに制限できます。

request.path.contains("/endpoint") && !(inIpRange(origin.ip,
'1.2.3.4/32')

以下を置き換えます。

  • /endpoint: シリアル化されたオブジェクトを受け入れるエンドポイントへのパス
  • 1.2.3.4/32: インターフェースへのアクセスを維持する IP アドレス範囲

リモートコード実行(RCE)を使用する安全でない逆シリアル化に対する一般的な攻撃を軽減するには、RCE 攻撃に対して事前定義されたルールセットを使用します。evaluatePreconfiguredExpr('rce-stable') ルールを使用して、UNIX シェルと Windows シェルに対する一般的な RCE 攻撃をブロックできます。

安全でないシリアル化解除の Juice Shop の課題で説明されている RCE 攻撃は、サーバー上の Node.js で関数と正規表現を実行します。この種の攻撃は、事前定義された RCE ルールセットと対応する OWASP Modsecurity ルールによってブロックされないため、サーバー側のパッチまたはカスタムルールを使用して軽減する必要があります。

VirusTotal

ユースケース:

  • 信頼できないデータスキャン

VirusTotal の API を使用すると、マルウェア用のファイルのアップロードやスキャンが可能になります。処理を行う前に、イメージ、ドキュメント、バイナリ、その他の信頼できないデータをスキャンして、特定のカテゴリの悪意のある入力を排除できます。

Web Security Scanner

ユースケース:

  • 安全でない逆シリアル化

Web Security Scanner はウェブ アプリケーションをスキャンし脆弱性を検出します。たとえば、アプリケーションがリモート コマンド インジェクション攻撃に対して脆弱な Apache Struts バージョンを使用している場合、Web Security Scanner が STRUTS_INSECURE_DESERIALIZATION の検出結果を生成します。

A9: 既知の脆弱性のあるコンポーネントの使用

既知の脆弱性のあるコンポーネントは、一般的な攻撃ベクトルのカテゴリの 1 つです。このような脆弱性は、すべてのアプリケーション コンポーネントをモニタリングし、すばやくアップグレードすることで緩和できます。

Binary Authorization

ユースケース:

  • 信頼できるコンテナに GKE クラスタを制限する

Binary Authorization は、信頼できるコンテナ イメージのみが Google Kubernetes Engine(GKE)にデプロイされることを保証する、デプロイ時のセキュリティ制御です。Binary Authorization を使用すると、開発プロセス中に信頼できる機関によるイメージへの署名を必須にして、デプロイ時にその署名を検証できます。検証を適用することで、ビルドとリリースのプロセスで検証済みのイメージのみが使用されるようになります。

Cloud Load Balancing

ユースケース:

  • SSL / TLS 暗号のきめ細かい制御

Cloud Load Balancing で使用できる事前定義されたグループまたは暗号のカスタムリストを割り当てることで、既知の脆弱な SSL / TLS 暗号の使用を防ぎます。

Container Threat Detection

ユースケース:

  • 悪意のあるスクリプトの検出
  • リバースシェル検出
  • マルウェアのインストールの検出

攻撃者が脆弱なコンポーネントを悪用して悪意のあるスクリプトを実行した場合、Container Threat DetectionMalicious Script Executed 検出機能が検出結果を生成します。攻撃者がリバースシェルを生成した場合、Reverse Shell 検出機能が検出結果を生成します。攻撃者がマルウェアをインストールすると、Added Binary ExecutedAdded Library Loaded の検出機能が検出結果を生成します。

Event Threat Detection

ユースケース:

  • クリプトマイニングの検出
  • 不正なソフトウェアの検出
  • データの引き出し
  • 送信 DoS

Event Threat Detection では、Cloud Logging ストリームをモニタリングし、検出ロジックと脅威インテリジェンスをきめ細かいレベルで適用します。Event Threat Detection は脅威を検出すると、その検出結果を Security Command Center と Cloud Logging プロジェクトに書き込みます。次の検出ルールは、既知の脆弱性があるコンポーネントの使用の影響を検出するのに役立ちます。

  • クリプトマイニング。DNS リクエストまたは既知のマイニング アドレスへの接続に基づいて、クリプトマイニングを検出します。
  • マルウェア。マルウェアベースの DNS リクエストまたは既知の不正なアドレスへの接続を検出します。
  • 外部テーブルへの漏洩。コピー オペレーションや転送オペレーションを含む、組織外に保存されているリソースを検出します。
  • 送信 DoS。サービス拒否攻撃を試みるために悪用されている脆弱性を検出します。

Google Cloud Armor

ユースケース:

  • 未使用のアプリケーション エンドポイントへのアクセスをブロックする
  • 一般的な攻撃ベクトルをブロックする

Google Cloud Armor のようなウェブ アプリケーション ファイアウォール(WAF)は、攻撃がライブラリ固有で、事前構成済みのルールによってブロックできるか、サーバー側でパッチが適用できないことがよくあるため、このカテゴリの攻撃をブロックする単一の軽減策としては使用しないでください。アプリケーションのすべてのコンポーネントを定期的にモニタリングしてアップグレードすることが、この種の脆弱性を軽減するための唯一の選択肢です。

ただし、Google Cloud Armor では、リモートコード実行、ローカル ファイル インクルード、リモート ファイル インクルードの事前構成済みルールによって、脆弱性のあるアプリケーションに対する一般的な攻撃を軽減できます。

アプリケーション内の脆弱なコンポーネントを認識しているものの、直ちにアプリケーションにパッチを適用できない場合は、アプリケーションのこれらの部分へのアクセスをブロックして、コンポーネントが悪用されるリスクを一時的に低減できます。このような脆弱性のあるコンポーネントにアクセスし、アクセスを拒否する URL パスまたはクエリに一致するカスタムルールを作成します。特定のユーザーまたはロケーションからこれらのコンポーネントにアクセスする必要がある場合でも、特定の信頼できる送信元 IP アドレスにこれらのコンポーネントへのアクセスを許可できます。URL パスを使用するルールは、次のようになります。

`request.path.contains("/component") && !(inIpRange(origin.ip,
'1.2.3.4/32')

以下を置き換えます。

  • /component: 既知の脆弱性があるコンポーネントのパス
  • 1.2.3.4/32: インターフェースへのアクセスを維持する IP アドレス範囲

アプリケーションの一部にエンドユーザーがアクセスする必要がない特定のディレクトリやファイル形式などがある場合は、ブロックまたはブロックすることも、カスタムルールを使用してこれらのリソースへのアクセスを制限することもできます。これらのコンポーネントが将来脆弱になった場合に、プロアクティブにリスクを軽減します。

Google Cloud のセキュリティに関する公開情報

ユースケース:

  • セキュリティに関する公開情報のモニタリング
  • Google Cloud プロダクトに関する CVE

Google Cloud のセキュリティに関する公開情報は、Google Cloud に影響するセキュリティに関する公開情報の信頼できるソースです。投稿には、背景情報、CVE へのリンク、今後の対応に関する推奨事項が含まれます。

Web Security Scanner

ユースケース:

  • 古いライブラリ
  • 脆弱性と検出結果のダッシュボード

ウェブ アプリケーションに含まれる古いライブラリをモニタリングします。これらの検出結果を Security Command Center ダッシュボードでモニタリングします

A10: 不十分なロギングとモニタリング

システムでインシデントを適切にロギング、モニタリング、管理しないと、攻撃者からデータとソフトウェアに対し、より深い攻撃を長期にわたって受ける可能性があります。

アクセスの透明性

ユースケース:

  • サービス プロバイダによるアクセスのモニタリングと監査
  • アクセスの理由
  • リソースやアクセスの種類の特定

クラウド プロバイダによるアクセスを監査できなければ、それがオンプレミスからクラウドへの移行の妨げになりかねません。アクセスの透明性は、クラウド プロバイダのアクセスを検証できるようにすることで、お客様の監査コントロールをオンプレミスの状態に近づけます。関連するサポート チケットへの参照も含めて、アクセスの理由を記録できます。リソースとメソッドの識別名。どのリソースがアクセスされ、どのメソッドがどの管理者によって実行されたかを示します。Access Approval では、お客様のサービスのサポート任務にあたる Google 社員からのアクセス リクエストを確認した後、必要に応じてこれを承認または拒否できます。

Apigee

ユースケース:

  • Apigee ログを SIEM にエクスポートする
  • Apigee Monitoring UI を使用する
  • モニタリングのベスト プラクティスに従う

Apigee には、ロギング、モニタリング、エラー処理、監査ロギングを行うためのいくつかの方法が用意されています。

  • ロギング
    • ログメッセージは、MessageLogging ポリシーを使用して、Splunk やその他の syslog エンドポイントに送信できます。
    • API 分析データは、Analytics API を介して pull し、他のシステムとの間でインポートまたはエクスポートできます。
    • Edge for Private Cloud では、MessageLogging ポリシーを使用してローカル ログファイルに書き込むことができます。実行中のコンポーネントごとのログファイルも利用できます。
    • JavaScript ポリシーを使用して、ログメッセージを REST ロギング エンドポイントに同期的または非同期的に送信できます。
  • モニタリング
    • API Monitoring UI または API を使用し、API とバックエンドを定期的にモニタリングして、アラートをトリガーします。
    • ヘルス モニタリングを使用して、ターゲット サーバーのバックエンドを定期的にモニタリングします。
    • Apigee は、Edge for Private Cloud をモニタリングするための推奨事項を提供します。
    • また、Apigee は、チームが API プログラムのモニタリングに活用可能なベスト プラクティスも提供します。
  • エラー処理
    • Apigee は、API プロキシ用の強力で汎用性の高い障害処理メカニズムを提供します。Java プログラムが例外をキャッチする方法と同様に、API プロキシは障害をキャッチして、クライアントに適切なレスポンスを返す方法を決定できます。
    • Apigee のカスタム障害処理を使用すれば、エラーが発生したらいつでもメッセージログを記録する機能などを追加できます。
  • 監査ログ
    • Apigee プラットフォームは、API プロキシ、プロダクト、組織履歴に対する変更を追跡する監査ログを保持します。
    • このログは、UI を介してまたは Management API を介して入手できます。

Chronicle Detect

ユースケース:

  • 脅威の検出
  • 早期警告

セキュリティ チームは、Chronicle にセキュリティ テレメトリーを送信できるため、統一されたデータセットに強力な検出ルールを適用できます。

Sensitive Data Protection(センシティブ データの保護の一部)

ユースケース:

  • センシティブ データの自動マスキング

ログストリーム内でコンプライアンスに影響を及ぼす情報を特定し、その情報をログにアーカイブする前に、適切にマスクまたは変換を行います。たとえば、エラー メッセージやコアダンプに、クレジット カード番号やマスクする必要のある個人情報などの機密情報が含まれている場合があります。

Cloud Key Management Service(Cloud KMS)

ユースケース:

  • 暗号鍵リクエスト イベント ロギング
  • アクセスの理由

Key Access Justifications では、当該のリクエストと、そのリクエストの承認または拒否をロギングすることで、暗号鍵のすべてのリクエストを可視化できます。

Cloud Logging

ユースケース:

  • ログ集計
  • ログストレージ
  • ログ検索
  • ログの分析

Cloud Logging では、Google Cloud とアマゾン ウェブ サービス(AWS)からのロギングデータとイベントの保存、検索、分析、モニタリング、アラート発信を行えます。Cloud Logging を使用する場合は、150 個を超える一般的なアプリケーション コンポーネント、オンプレミス システム、ハイブリッド クラウド システムからロギングデータを収集するために使用できる BindPlane サービスにアクセスする必要があります。

Cloud Monitoring

ユースケース:

  • ログ モニタリング
  • イベント アラート

Cloud Monitoring を使用して、クラウドで実行されるアプリケーションのパフォーマンスや稼働時間、全般的な動作状況を確認できます。モニタリング ダッシュボード、イベント モニタリング、複数のチャネルを介したアラート機能を備えています。

Cloud Source Repositories

ユースケース:

  • コード変更アトリビューション
  • 監査ログにアクセスする

Cloud Source Repositories によって生成された Cloud Audit Logs で、リポジトリに対して行われた操作(日時など)に関する分析情報を取得します。

Error Reporting

ユースケース:

  • Cloud Logging で社内アプリケーションのエラーをキャプチャする
  • クラッシュしたコンピューティング インスタンスの外部でクラッシュ レポートを収集する

内部アプリケーション エラーは、セキュリティの問題、機能の不具合、またはセキュリティの回避の試行を示している可能性があります。Error Reporting は、運用中のクラウド サービスで発生したクラッシュを計数、分析、集計します。結果は一元化されたエラー管理インターフェースに表示され、並べ替えとフィルタリングを行えます。専用のビューには、エラーのタイムチャート、発生回数、影響を受けたユーザー数、最初または最後の発生日時、消去された例外スタック トレースといった詳細情報が表示されます。新しいエラーが発生したときにメールアラートとモバイル アラートを受け取ることもできます。

Event Threat Detection

ユースケース:

  • ブルート フォース
  • クリプトマイニング
  • IAM の不正使用
  • マルウェア
  • フィッシング

Event Threat Detection は、Cloud Logging ストリームをモニタリングし、検出ロジックと独自の脅威の分析情報をきめ細かいレベルで適用します。Event Threat Detection は、ログ内の注意すべきエントリを識別し、評価のために昇格します。Event Threat Detection は脅威を検出すると、その検出結果を Security Command Center と Cloud Logging プロジェクトに書き込みます。

Forseti Inventory

ユースケース:

  • インベントリの変更のモニタリングとアラート

Forseti Inventory によって Google Cloud リソースのインベントリ スナップショットがデータベースに作成されるので、リソースの履歴レコードを維持できます。この情報により、Google Cloud 内のすべてのリソースを理解し、リソースを節約して、コストを削減し、セキュリティの脅威にさらされる可能性を最小限に抑えるための対策を取ることができます。必要に応じてインベントリを構成でき、リソース スナップショットの更新時にメール通知を送信できます。

Google Cloud Armor

ユースケース:

  • セキュリティ ポリシー ロギング
  • モニタリング ダッシュボード
  • トラフィック異常のアラート

Google Cloud Armor リクエストログは アプリケーション ロードバランサ用 Cloud Logging の一部です。ロギング情報(どのセキュリティ ポリシー ルールがトラフィックに一致したかなど)にアクセスするには、セキュリティ ポリシーが適用されているすべてのバックエンド サービスでロギングを有効にします。プレビュー モードのルールを使用すると、その効果を適用することなく、ルールをテストし、結果をログに記録できます。

Google Cloud Armor には、セキュリティ ポリシーのモニタリング ダッシュボードも用意されており、いずれかのセキュリティ ポリシーによって、通過したトラフィックまたは拒否されたトラフィックの量の概要を確認できます。Google Cloud Armor は、許可されたトラフィックや拒否されたトラフィックの急増など、トラフィック異常に関する検出結果を Security Command Center で公開します。

Google Cloud Armor によって書き込まれる管理アクティビティ監査ログには、リソースの構成またはメタデータを変更する操作が記録されます。このサービスは、データアクセス監査ログに書き込むように構成することもできます。このログにはリソースの構成やメタデータを読み取る API 呼び出しや、ユーザー提供のリソースデータの作成、変更、読み取りを行うユーザー提供の API 呼び出しが含まれます。

Identity Platform

ユースケース:

  • 管理アクティビティ監査ログ
  • データアクセス監査ログ
  • システム イベント監査ログ
  • ポリシー拒否監査ログ
  • 認証アクティビティ ログ

Identity Platform は Google Cloud のユーザー向け Identity and Access Management プラットフォームで、デフォルトで認証アクティビティを記録します。

管理アクティビティ、データアクセス、システム イベント、拒否された認証試行など、いくつかの強力な監査ログを有効にします

Security Command Center

ユースケース:

  • アラートのモニタリング
  • 脅威の管理
  • 脆弱性スキャン レポート
  • コンプライアンス モニタリング
  • アセットのモニタリング
  • セキュリティ スキャンの検出

概要パネルには、組織の検出結果の合計数が重大度レベルごとに表示されます。脅威ダッシュボードを使用して、組織の Google Cloud リソースに存在する、有害である可能性があるイベントを確認します。Security Health Analytics の検出結果と推奨事項は、[脆弱性] タブで確認できます。

コンプライアンス ダッシュボードを使用すると、PCI-DSS、CIS Google Cloud Computing Foundations Benchmark などでの制御によるコンプライアンスを継続的にモニタリングできます。[アセット] ビューには、組織内のすべての Google Cloud リソース(アセットといいます)の詳細が表示されます。[アセット] タブでは、組織全体のアセットを表示できます。また、特定のプロジェクト内のアセットをアセットタイプまたは変更タイプでフィルタすることもできます。最後に、[検出結果] タブには、すべての組織アセットの詳細な検出結果インベントリが表示され、潜在的なセキュリティ リスクを確認できます。

次のステップ