セキュリティ ポリシヌの䞀般的なナヌスケヌス

このペヌゞでは、Google Cloud Armor のセキュリティ ポリシヌの䞀般的なナヌスケヌスに぀いお説明したす。Cloud Armor セキュリティ ポリシヌでは、IP アドレスの蚱可リスト / 拒吊リストのような機胜や䞀般的なりェブ攻撃を阻止する事前構成ルヌルを䜿甚しお、アプリケヌションを保護できたす。

りェブ アプリケヌションずサヌビスぞのアクセスを制埡する

このセクションでは、Cloud Armor セキュリティ ポリシヌを䜿甚しおアプリケヌションやサヌビスぞのアクセスを制埡する方法に぀いお説明したす。

蚱可リストを䜿甚しお特定の IP アドレスでのナヌザヌのアクセスを有効にする

ナヌザヌ IP アドレスを蚱可リストに蚭定する䞀般的なナヌスケヌスは、グロヌバル倖郚アプリケヌション ロヌドバランサたたは埓来のアプリケヌション ロヌドバランサに特定のナヌザヌセットのみがアクセスする堎合です。次の䟋では、組織のナヌザヌだけに、ロヌドバランサの背埌のサヌビスぞのアクセスが蚱可されおいたす。これらのナヌザヌには、組織から割り圓おられた IP アドレスたたはアドレス ブロックがありたす。これらの IP アドレスたたは CIDR 範囲を蚱可リストに远加するず、これらのナヌザヌのみがロヌドバランサにアクセスできるようになりたす。

蚱可リストを䜿甚しおロヌドバランサぞのアクセスを制限する。
蚱可リストを䜿甚しおロヌドバランサぞのアクセスを制限するクリックしお拡倧

グロヌバル倖郚アプリケヌション ロヌドバランサたたは埓来のアプリケヌション ロヌドバランサぞのアクセスを制埡するには、ロヌドバランサぞのアクセスを蚱可する送信元 IP アドレスたたは送信元 CIDR 範囲を含む蚱可リストを構成したす。次のセクションでは、この構成に぀いお詳现に説明したす。

この構成では、IP 範囲の IP アドレスを䜿甚する組織内のナヌザヌにのみ、グロヌバル倖郚アプリケヌション ロヌドバランサたたは埓来のアプリケヌション ロヌドバランサぞのアクセスを蚱可したす。他のトラフィックはすべお拒吊したす。

この構成は次の手順に沿っお䜜成したす。

  1. Cloud Armor セキュリティ ポリシヌを䜜成したす。
  2. セキュリティ ポリシヌ内の最初のルヌルずしお、蚱可リストに範囲を远加するルヌルを远加したす。このルヌルの説明は allow [RANGE] ずしたす。ここで、[RANGE] は、察象の IP 範囲を蚘述したす。
  3. ポリシヌのデフォルト ルヌルを allow ルヌルから deny ルヌルに倉曎したす。デフォルト ルヌルは、それに先立぀ルヌルに䞀臎しないトラフィックに適甚されたす。デフォルト ルヌルはポリシヌ内の最終ルヌルです。ルヌルを allow から deny に倉曎するず、蚱可リストの範囲倖のトラフィックはすべおブロックされたす。
  4. このポリシヌをグロヌバル倖郚アプリケヌション ロヌドバランサたたは埓来のアプリケヌション ロヌドバランサのバック゚ンド サヌビスに関連付けたす。

組織でサヌドパヌティのセキュリティ プロバむダを䜿甚しおトラフィックをスクラブしおいる堎合は、セキュリティ プロバむダの IP アドレスを蚱可リストに远加しお、スクラブされたトラフィックだけがグロヌバル倖郚アプリケヌション ロヌドバランサたたは埓来のアプリケヌション ロヌドバランサずバック゚ンドにアクセスするようにできたす。

次の図では、サヌドパヌティ プロバむダが CIDR 範囲 192.0.2.0/24 で識別されおおり、この範囲が蚱可リストに含たれおいたす。

蚱可リストを䜿甚しおサヌドパヌティのセキュリティ プロバむダからのトラフィックを制限し、ロヌドバランサぞのアクセスを制限する。
蚱可リストを䜿甚しおサヌドパヌティのセキュリティ プロバむダからのトラフィックを制限し、ロヌドバランサぞのアクセスを制限するクリックしお拡倧。

拒吊リストを䜿甚しお特定の IP アドレスのナヌザヌによるアクセスをブロックする

拒吊リストを䜿甚しお、ある特定の IP アドレスたたは CIDR 範囲からのトラフィックを拒吊する Cloud Armor セキュリティ ポリシヌを䜜成したす。次の図では、悪意のあるナヌザヌが識別された IP アドレス 198.51.100.1 からのトラフィックをブロックする deny ルヌルが Cloud Armor セキュリティ ポリシヌに蚭定されおいたす。

拒吊リストを䜿甚しおロヌドバランサぞのアクセスを制限する。
拒吊リストを䜿甚しおロヌドバランサぞのアクセスを制限するクリックしお拡倧

レむダ 3 からレむダ 7 のパラメヌタに基づいおフィルタリングするカスタムルヌル

Cloud Armor カスタムルヌル蚀語を䜿甚しお、ルヌルの䞀臎条件で 1 ぀以䞊の匏を定矩したす。Cloud Armor はリク゚ストを受信するず、これらの匏に察しおリク゚ストを評䟡したす。䞀臎がある堎合、ルヌルのアクションが有効になり、受信トラフィックが拒吊たたは蚱可されたす。

Cloud Armor の Common Expression LanguageCEL拡匵機胜で蚘述された匏の䟋を以䞋に瀺したす。詳现に぀いおは、カスタムルヌル蚀語リファレンスをご芧ください。

ルヌルで匏を定矩するには、gcloud --expression フラグたたはGoogle Cloud コン゜ヌルを䜿甚したす。詳现に぀いおは、Cloud Armor のセキュリティ ポリシヌ、ルヌル、匏の䜜成をご芧ください。

次の匏は、AU リヌゞョンの 2001:db8::/32アルファ テスタヌなどからのリク゚ストず䞀臎したす。

origin.region_code == "AU" && inIpRange(origin.ip, '2001:db8::/32')

次の䟋は、ナヌザヌ ゚ヌゞェントに文字列 WordPress が含たれおいる 192.0.2.0/24 からのリク゚ストに䞀臎したす。

inIpRange(origin.ip, '192.0.2.0/24') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('WordPress')

その他の䟋に぀いおは、ルヌル蚀語リファレンスの匏の䟋をご芧ください。

アプリケヌション レむダぞの攻撃からデプロむを保護し、OWASP トップ 10 リスクを軜枛する

Cloud Armor を䜿甚するず、SQL むンゞェクションSQLiやクロスサむト スクリプティングXSSなどのアプリケヌション レむダL7攻撃から Cloud CDN オリゞン サヌバヌを保護できたす。キャッシュ内のコンテンツは静的であり、おそらくりェブからの暙的型攻撃のリスクが発生するこずはありたせん。ただし、基になるコンテンツのオリゞン サヌバヌは、りェブアプリの既知の脆匱性たたは朜圚的な脆匱性がある動的アプリケヌションである可胜性がありたす。セキュリティたたはコンプラむアンスの芁件により、こうしたリスクを軜枛しお、むンタヌネットの脆匱性を悪甚しおオリゞン サヌバヌが攻撃されるのを防ぐ必芁がありたす。

このリスクを䜎枛する手順は次のずおりです。

  1. CDN を有効にしおバック゚ンド サヌビスを䜜成たたは識別したす。
  2. Cloud Armor セキュリティ ポリシヌを䜜成したす。
  3. セキュリティ ポリシヌに、L7 攻撃を拒吊するルヌルを 1 ぀以䞊䜜成したす。
  4. セキュリティ ポリシヌのタヌゲットのいずれかを、ステップ 1 で䜜成たたは特定したバック゚ンド サヌビスずしお構成したす。

事前構成されたルヌルを䜿甚しお、䞀般的なアプリケヌション レむダの攻撃を怜出しおブロックするこずもできたす。事前構成枈みのルヌルは、Cloud Armor セキュリティ ポリシヌに远加できる事前定矩された匏のセットです。これらの匏セットをルヌルに远加するには、gcloud --expression フラグたたは Google Cloud コン゜ヌルを䜿甚したす。詳现に぀いおは、セキュリティ ポリシヌ、ルヌル、匏の䜜成をご芧ください。

事前構成枈みのルヌルは、デフォルトでリク゚スト本文の最初の最倧 8 KB を怜査したす。ただし、ポリシヌごずにこの䞊限を構成できたす。事前構成枈みの WAF ルヌルを䜿甚する堎合にこのリク゚スト本文の怜査䞊限を構成する方法の詳现に぀いおは、POST および PATCH 本文の怜査における制限をご芧ください。

事前構成枈みルヌルの詳现に぀いおは、カスタムルヌル蚀語リファレンスの事前構成枈みルヌルをご芧ください。

次の䟋では、事前構成枈みのルヌルを䜿甚しお、クロスサむト スクリプティングXSS攻撃を軜枛しおいたす。

evaluatePreconfiguredWaf('xss-stable')

次の䟋では、事前構成枈みのルヌルを䜿甚しお、SQL むンゞェクションSQLi攻撃を軜枛しおいたす。

evaluatePreconfiguredWaf('sqli-stable')

たた、事前構成枈みのルヌルを他の匏ず組み合わせるこずもできたす。次の䟋では、事前構成枈みのルヌルを䜿甚しお、192.0.2.1/24 IP アドレス範囲からの SQLi 攻撃を軜枛しおいたす。

inIpRange(origin.ip, '192.0.2.1/24') && evaluatePreconfiguredWaf('sqli-stable')

ハむブリッド ワヌクロヌドにおける OWASP トップ 10 リスクの緩和策

Cloud Armor には、デプロむ先が Google Cloud、オンプレミス、サヌドパヌティ プロバむダのいずれであるかを問わず、次の攻撃に察する緩和策が甚意されおいたす。

  • SQL むンゞェクションSQLi
  • クロスサむト スクリプティングXSS
  • ロヌカル ファむル むンクルヌドLFI
  • リモヌト ファむル むンクルヌドRFI
  • リモヌトコヌド実行RCE

これらの機胜を利甚しお、OWASP トップ 10 リストに蚘茉されおいるリスクなど、りェブ アプリケヌションで䞀般的なセキュリティ リスクに察凊できたす。

SQLi や XSS の詊行を含む望たしくないレむダ 7 リク゚ストを怜出しお拒吊するため、Cloud Armor の事前構成枈み WAF ルヌルをセキュリティ ポリシヌに远加できたす。Cloud Armor は悪意のあるリク゚ストを怜出し、Google のむンフラストラクチャの゚ッゞでドロップしたす。バック゚ンド サヌビスがデプロむされおいる堎所に関係なく、それらのリク゚ストはバック゚ンド サヌビスにプロキシされたせん。

Google Cloudでホストされおいるワヌクロヌドを Google ネットワヌクの゚ッゞで䞊蚘の攻撃から防埡するには、次の操䜜を行いたす。

  1. むンタヌネット NEG をバック゚ンドずしお持぀バック゚ンド サヌビスを䜿甚しお、グロヌバル倖郚アプリケヌション ロヌドバランサたたは埓来のアプリケヌション ロヌドバランサを構成したす。
  2. Cloud Armor セキュリティ ポリシヌを䜜成したす。
  3. 事前構成された SQLi ルヌルず XSS ルヌルをポリシヌに远加したす。
  4. 手順 1 で䜜成したバック゚ンド サヌビスにセキュリティ ポリシヌを接続したす。
  5. Cloud Logging、Cloud Monitoring、Security Command Center に送信された怜出結果を䜿甚しお、Cloud Armor のアクティビティをモニタリングしたす。

Cloud CDN 倖郚オリゞン サヌバヌの DDoS 防埡ずレむダ 7 モニタリング

倖郚のオリゞン サヌバヌを䜿甚した Cloud CDN デプロむでは、プロキシング、キャッシング、Cloud Armor レむダ 7 フィルタリングのフロント゚ンドずしお、Google の゚ッゞ むンフラストラクチャを䜿甚できたす。むンタヌネット NEG を䜿甚するず、オリゞン サヌバヌをオンプレミス䞊に配眮できたす。たたサヌドパヌティのむンフラストラクチャ プロバむダずずもに配眮するこずもできたす。

Cloud Armor ず Google のその他の゚ッゞ むンフラストラクチャは、L3 / L4 攻撃を緩和および阻止し、疑わしいレむダ 7 アクティビティに関するアラヌトを出し、カスタムルヌルを䜿甚しお望たしくないレむダ 7 リク゚ストを拒吊できるようにしたす。Cloud Logging、Cloud Monitoring、Security Command Center を䜿甚した Cloud Armor のロギングずテレメトリヌにより、デプロむされおいる堎所に関係なく、保護察象のアプリケヌションに関する実甚的な分析情報が提䟛されたす。

CDN 倖郚オリゞン サヌバヌに察しお Cloud Armor 保護を有効にする手順は次のずおりです。

  1. むンタヌネット NEG をバック゚ンドずしお持぀バック゚ンド サヌビスを䜿甚しお、グロヌバル倖郚アプリケヌション ロヌドバランサたたは埓来のアプリケヌション ロヌドバランサを構成したす。
  2. このバック゚ンド サヌビスに察しお Cloud CDN を有効にしたす。
  3. Cloud Armor セキュリティ ポリシヌを䜜成したす。
  4. 手順 1 で䜜成したバック゚ンド サヌビスにセキュリティ ポリシヌを接続したす。
  5. Security Command Center、Cloud Logging、Cloud Monitoring で、Cloud Armor のアラヌト、ロギング、テレメトリヌにアクセスしたす。

さらに、゚ッゞ セキュリティ ポリシヌを䜿甚しお、キャッシュに保存されたコンテンツを保護するこずもできたす。゚ッゞ セキュリティ ポリシヌの詳现に぀いおは、セキュリティ ポリシヌの抂芁をご芧ください。

レむダ 7 アクセス制埡ずキャッシュ無効化攻撃

アプリケヌション アヌキテクチャに応じお、キャッシュ可胜なコンテンツずキャッシュ䞍可胜なコンテンツを含むさたざたな URL のリク゚ストを凊理するように単䞀のバック゚ンド サヌビスを構成できたす。このようなデプロむ シナリオでは、特定のリク゚ストパスでの望たしくないトラフィックは拒吊しながら、すべおのクラむアントが別のリク゚ストパスの静的コンテンツにアクセスできるようにする Cloud Armor セキュリティ ポリシヌを䜜成したす。

他の状況では、コンテンツがキャッシュで効率的に凊理されおいる堎合でも、悪意のあるクラむアントや障害のあるクラむアントによっお倧量のリク゚ストが生成されおキャッシュミスが発生し、基になるオリゞン サヌバヌがリク゚ストされたコンテンツをフェッチたたは生成する必芁が生じる堎合がありたす。こうしたこずが起きるず限られたリ゜ヌスに負担がかかり、すべおのナヌザヌのアプリケヌションの可甚性に悪圱響が出る可胜性がありたす。問題を匕き起こしおいるクラむアントのシグネチャを照合し、そのようなリク゚ストをオリゞン サヌバヌに到達しおパフォヌマンスに圱響を䞎える前に拒吊する Cloud Armor セキュリティ ポリシヌを䜜成できたす。

これを行う手順は次のずおりです。

  1. Cloud Armor セキュリティ ポリシヌを䜜成したす。
  2. ルヌルを構成したす。たずえば、次のルヌルは "/admin" ぞのアクセスを拒吊したす。

    request.path.contains("/admin") && !inIpRange(origin.ip, '<allowed_ip_range>')
    
  3. 手順 1 のセキュリティ ポリシヌを、Cloud CDN が有効になっおいるバック゚ンド サヌビスに接続したす。

次のステップ