変更要約: 初版
4.2脅威と攻撃手法(マルウェア・Webアプリ攻撃・ソーシャルエンジニアリング)
マルウェアの種別(ウイルス・ワーム・トロイの木馬・ランサムウェア・スパイウェア)、標的型攻撃・フィッシング、Webアプリケーションを狙うSQLインジェクション・XSS・CSRF、サービス妨害のDoS/DDoS攻撃、通信を狙う中間者攻撃、パスワード攻撃(総当たり・辞書攻撃・パスワードリスト攻撃)、人の心理を突くソーシャルエンジニアリング、取引先を経由するサプライチェーン攻撃を学びます。
対策を正しく選ぶには、まず攻撃手法が「何を悪用するか」を見分ける必要があります。マルウェアはソフトウェアそのものの脆弱性や不注意な実行を悪用し、Webアプリ攻撃はアプリの入力処理の不備を悪用し、ソーシャルエンジニアリングは人間の心理や慣習を悪用します。悪用される対象が異なれば有効な対策も異なるため、この節では代表的な攻撃手法を「何を悪用するか」という切り口で整理します。
4.2.1マルウェアと標的型攻撃
- ウイルス=他のプログラムファイルに寄生して自己複製し、宿主プログラムの実行に伴って感染を広げる。ワーム=単独のプログラムとして自己複製し、ネットワークを通じて自律的に他端末へ拡散する(宿主不要)。トロイの木馬=無害なプログラムを装って侵入し、自己複製せずにバックドア設置等の不正動作を行う。
- ランサムウェア=ファイルを暗号化する等して利用不能にし、復旧と引き換えに金銭を要求するマルウェア。スパイウェア=利用者に気づかれずに個人情報や操作履歴を収集し外部へ送信するマルウェア。いずれも感染経路(メール添付・不正サイト・USBメモリ等)を断つ対策が有効。
- 標的型攻撃=特定の組織・個人を狙い、業務に関係すると見せかけたメール等で不正なファイルを開かせる攻撃。不特定多数を狙う従来型の攻撃より検知が難しく被害が長期化しやすい。フィッシング=実在の組織を装った偽サイト・メールで認証情報等をだまし取る攻撃。URLやドメインの真正性確認が有効な対策。
4.2.2Webアプリ攻撃・DoS・中間者攻撃・パスワード攻撃
- SQLインジェクション=入力欄に不正なSQL文を注入し、データベースを不正に操作・閲覧する攻撃。プレースホルダを使ったプレースバインド(バインド機構)や入力値のエスケープ処理が対策。XSS(クロスサイトスクリプティング)=Webページに不正なスクリプトを注入し、閲覧者のブラウザ上で実行させる攻撃。入力値のサニタイジング/エスケープが対策。
- CSRF(クロスサイトリクエストフォージェリ)=ログイン中の利用者に、意図しないリクエストを別サイト経由で送信させる攻撃(例:罠サイトを開くと本人の権限で送金処理が実行される)。ワンタイムトークン(毎回異なるトークンをフォームに埋め込み検証)が対策。XSSは「悪意あるスクリプトを注入」・CSRFは「利用者の権限を悪用したリクエスト偽造」という違いを区別すること。
- DoS攻撃=大量のリクエストや異常な通信で対象サーバの処理能力を枯渇させ、サービスを利用不能にする攻撃。DDoS攻撃=複数の端末(多くはマルウェアに感染したボットネット)から分散してDoS攻撃を仕掛け、対策(送信元IPの遮断等)を困難にする。中間者攻撃(MITM)=通信の当事者になりすまし、間に割り込んで盗聴・改ざんを行う攻撃。通信の暗号化(TLS等)と証明書検証が対策。
- パスワード攻撃=総当たり攻撃(ブルートフォース)(考えられる全組み合わせを試す)/辞書攻撃(辞書の単語や既知の弱いパスワードを試す)/パスワードリスト攻撃(他サービスの漏えいで得た認証情報の使い回しを狙う。パスワードの使い回しが最大の弱点)。対策はアカウントロックアウト・多要素認証・パスワードの使い回し禁止。
ウイルス(寄生)・ワーム(単独増殖)・トロイの木馬(自己複製なし)の違い、SQLインジェクション対策=プレースホルダ/XSS対策=サニタイジング/CSRF対策=ワンタイムトークンの対応、DDoSはボットネットによる分散攻撃、パスワードリスト攻撃は他サービス漏えい情報の使い回しを狙うが最頻出です。
あるECサイトが立て続けに複数の攻撃を受けたケースを追って、攻撃手法の見分け方を確認しましょう。まず商品検索欄に' OR '1'='1のような文字列を入力すると全商品情報が漏れる不具合が見つかった場合、これは検索処理が入力値をそのままSQL文に組み込んでいたことが原因のSQLインジェクションで、根本対策は入力値をSQL文の一部として解釈させないプレースホルダ(バインド機構)の導入です。次に、商品レビュー欄に投稿されたスクリプトが他の閲覧者のブラウザで実行されCookie情報が盗まれる被害が発生した場合、これはレビュー欄の表示処理が入力値をそのままHTMLとして出力していたことが原因のXSSで、対策は表示時に<script>等のタグをエスケープするサニタイジングです。さらに、ログイン中の会員が悪意あるサイトを閲覧しただけで、意図せず配送先住所が変更されてしまう被害が起きた場合、これは正規のリクエストがログイン中の会員の権限をそのまま悪用されて偽造されたCSRFで、対策はフォーム送信のたびに変化するワンタイムトークンをサーバ側で検証することです。最後にサイト全体が突然応答しなくなり調査すると、世界中の無数のIPアドレスから同時多量のアクセスが来ていたことが判明した場合、これはボットネットによるDDoS攻撃であり、単一IPの遮断では防ぎきれないため、CDNやWAFによるトラフィックの分散・フィルタリングが現実的な対策になります。このように同じ「Webサイトへの攻撃」でも悪用される仕組みが異なれば対策もまったく異なるという点が、この分野の理解の核心です。
| 攻撃手法 | 悪用する仕組み | 代表的な対策 |
|---|---|---|
| SQLインジェクション | 入力値をSQL文にそのまま組み込む処理 | プレースホルダ(バインド機構) |
| XSS | 入力値をそのままHTML出力する処理 | サニタイジング/エスケープ |
| CSRF | ログイン中利用者の権限 | ワンタイムトークン |
| DDoS攻撃 | ボットネットによる分散アクセス | CDN/WAFによる分散・フィルタリング |
ひっかけ: 「ワームはウイルスと同じく他のプログラムに寄生して感染する」は誤りです。ワームは単独のプログラムとして自己複製し宿主を必要としない点がウイルス(他のプログラムに寄生)との違いです。また「XSSとCSRFはどちらも悪意あるスクリプトを注入する攻撃」も誤りで、XSSはスクリプト注入・CSRFは利用者の権限を悪用したリクエスト偽造であり、注入の有無が異なります。「DoS攻撃とDDoS攻撃は同じ意味」も不正確で、DDoSは複数端末からの分散攻撃という点がDoSと異なる特徴です。
4.2.3この節のまとめ
- ウイルス=寄生/ワーム=単独増殖/トロイの木馬=自己複製なし。ランサムウェア・スパイウェアは目的で区別
- SQLインジェクション対策=プレースホルダ/XSS対策=サニタイジング/CSRF対策=ワンタイムトークン
- DDoS=ボットネットによる分散DoS。パスワードリスト攻撃はパスワード使い回しを悪用、対策は多要素認証
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. あるマルウェアは単独のプログラムとして自己複製し、他のプログラムに寄生することなくネットワークを通じて自律的に他の端末へ拡散した。このマルウェアの分類として最も適切なものはどれか。
Q2. Webサイトの入力フォームに悪意あるSQL文の断片を入力することで、データベースの内容を不正に取得された。この攻撃に対する根本的な対策として最も適切なものはどれか。
Q3. ログイン中の利用者が攻撃者の用意した罠サイトを閲覧しただけで、意図しない送金リクエストが利用者本人の権限で正規サイトへ送信されてしまった。この攻撃への対策として最も適切なものはどれか。

