こんにちは!新しいプロジェクトやインフラの担当になり、「セキュリティって何から手をつければいいんだろう…」と不安になっていませんか?
世の中にはたくさんの専門用語があふれていますが、一歩ずつ紐解いていけば、実は私たちが日常生活でやっている「戸締まり」や「身元確認」と同じなんだな、と気づけるはずです。
今回は、Google Cloud(GCP)が提供する強力な守護神「Cloud Armor(クラウド・アーマー)」をテーマにして、ウェブサイトをサイバー攻撃やいやがらせ(DDoS攻撃)から守る仕組みを、一緒に優しく見ていきましょう!
—
1. 家の防犯にたとえてみる「クラウド・アーマー」の役割
皆さんが住んでいる大切な「家(ウェブサイト)」を想像してみてください。
何もしないで玄関のドアを開けっ放しにしておくと、見知らぬ泥棒(サイバー攻撃者)が勝手に入ってきて、家の中をめちゃくちゃにしてしまいますよね。さらに、悪意ある人が何千人もの仲間を引き連れて一斉に玄関のドアをドンドンと叩き続けたらどうでしょう? 家の家族(サーバー)は身動きが取れなくなり、本当に助けを求めているお客さん(正当なユーザー)を中に入ることができなくなってしまいます。これが、いわゆる「DDoS攻撃(分散型サービス拒否攻撃)」と呼ばれるものです。
この「泥棒の侵入」や「嫌がらせのドア叩き」を、あなたの家の一番遠い敷地の外(エッジサーバー)で一網打尽にしてくれる門番が、GCPのCloud Armorなんです。
—
2. Cloud Armorがやってくれる2つの大きなお仕事
Cloud Armorは、大きく分けて次の2つの方法であなたのウェブサイトを守ってくれます。
1. おそろしい数の嫌がらせを防ぐ(DDoS対策)
2. 悪い言葉や罠を見破って追い返す(WAF=ウェブアプリケーションファイアウォール保護)
それぞれの仕組みを、もう少し詳しく見ていきましょう!
—
3. OWASP Top 10ってなぁに?(泥棒の手口を知る)
ウェブの世界には、悪意ある人たちがよく使う「定番のいやがらせの手口」がいくつか存在します。その代表的なワースト10個をまとめたものを、業界では「OWASP Top 10(オワスプ・トップ・テン)」と呼んでいます。
特に有名なのが、この2つです。
- SQLインジェクション(SQLi): 検索窓などの入力欄に、データベースを破壊したりこっそり覗き見たりするための「呪文(不正なプログラム)」をこっそり混ぜ込んで送りつける手口です。家の郵便受けに、呪文が書かれた怪しい手紙を突っ込むようなイメージですね。
- クロスサイトスクリプティング(XSS): ウェブサイトの掲示板やコメント欄に、見た人が思わずびっくりしてしまうような、悪さをするプログラム(
<script>タグなど)を書き込む手口です。あなたが善意で開いたページに、こっそり罠が仕掛けられている状態になります。
Cloud Armorには、こうした悪意ある手口が飛んできたときに、「あ、この手紙は怪しいな!」「この呪文は通しちゃダメだ!」と一瞬で見抜いてブロックしてくれる「あらかじめ用意されたルール(シグネチャ)」が備わっています。
—
4. 実際にCloud Armorの設定を書いてみよう!
「難しそうだな…」と思うかもしれませんが、実務ではGCPの設定ファイルやコマンドを使って、次のようにシンプルなルールを組み立てていきます。
たとえば、「特定の怪しいリクエストをブロックしつつ、安全なアクセスだけを通す」というルールを、Google Cloudのセキュリティポリシーとして定義するイメージを見てみましょう。
# GCP Cloud Armorのセキュリティポリシー設定例(イメージ)
name: my-web-security-policy
description: "初心者向けの基本的なウェブ保護ルール"
rule:
- action: "deny(403)" # 条件に一致したらアクセスを拒否して「403 Forbidden」を返す
priority: 1000
match:
versioned_expr: "SRC_IPS_V1"
config:
src_ip_ranges:
- "192.0.2.1/32" # 例として、悪事が確認された特定の怪しいIPアドレスからのアクセスを拒否
description: "怪しいIPアドレスからのアクセスを遮断"
- action: "allow" # その他の安全なアクセスはすべて通す
priority: 2147483647 # 一番最後に評価されるデフォルトのルール
description: "デフォルト許可ルール"
このように、「どのIPアドレスを弾くか」「どんな怪しい文字( <script> やSQLの構文など)が含まれているか」をルールとして設定しておくことで、システムが24時間体制で自動的に番犬のように見張りをしてくれます。
—
5. 守りを固めるためのHTTPヘッダーの意味を知ろう
Cloud Armorのような門番だけでなく、あなたのウェブサイト自体(アプリケーション側)でも、ブラウザに対して「うちはこういうルールで安全に動いていますよ」と伝えるための「セキュリティヘッダー」という名札をつけてあげるのが大切です。
実務の現場でよく使われる代表的なヘッダーをいくつかご紹介します。
# ウェブサーバーがブラウザに返す応答ヘッダーの例
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: default-src 'self'
X-Content-Type-Options: nosniff- ブラウザが「本当は画像やテキストなのに、中身を勝手にプログラムだと勘違いして実行してしまうお節介」を禁止する設定です。
X-Frame-Options: SAMEORIGIN- 悪意ある別のウェブサイトが、あなたのサイトを透明な枠(iframe)で自分のページに重ねて、ユーザーに意図しないクリックをさせる「クリックジャッキング」という攻撃を防ぎます。
Content-Security-Policy: default-src 'self'- 「このウェブサイトの中では、信頼できる自分たちの場所にあるファイルだけを読み込んでいいですよ」と厳しく制限し、変な外部プログラムが勝手に暴れるのを防ぎます。
—
まとめ:一歩ずつ、確実なセキュリティ対策を
今回はGCP Cloud Armorを使ったDDoSとWAF保護の基礎について、身近な防犯にたとえながらお話ししました。
- Cloud Armorは、あなたのウェブサイトの敷地の外で、怪しい攻撃や大量のアクセス(DDoS)を水際で食い止めてくれる頼もしい門番であること。
- SQLiやXSSといった定番の攻撃(OWASP Top 10)は、ルールの仕組みを使ってしっかりブロックできること。
- アプリケーション側でも、HTTPヘッダーなどを正しく設定して二重・三重の守りを作ること。
セキュリティ対策に「これで完璧」というゴールはありませんが、今日知った知識を一つずつ実際のプロジェクトやインフラ構築に活かしていくことで、あなたのウェブサイトは確実に強くなっていきます。
焦らず、一歩ずつ、安全で安心なデジタル世界を作っていきましょう!応援しています!
コメント