Web攻撃とは
Web攻撃とは、Webアプリの入力を悪用したり利用者のブラウザを狙ったりする攻撃で、対策を組み合わせて防ぎます。

Webへの攻撃は、入力を命令として解釈させたり、利用者のブラウザを悪用したりします。どの段階で信頼できないデータが使われるかを見ます。
基本の仕組み

検索語をSQL文字列へ直接つなぐと、入力に含まれる記号等で命令の意味を変えられるおそれがあります。プレースホルダを使って命令と値を分けることが、SQLインジェクションの対策です。
クロスサイトスクリプティングはブラウザ上で不正なスクリプトを実行させる攻撃で、出力先に応じたエスケープ等を行います。CSRFはログイン中の利用者に意図しない操作を送らせる攻撃で、トークンなどにより正当な要求かを確認します。
WAFはHTTP等のWeb通信を検査し、攻撃の検知・遮断を助けますが、アプリ側の修正に代わる万能策ではありません。事故発生時にはCSIRT等が調査・連絡・封じ込め・復旧を調整し、原因分析と再発防止へつなげます。
攻撃と対策の対応

SQLインジェクションにはプレースホルダ等による値とSQL文の分離、XSSには出力先に応じたエスケープ、CSRFにはトークン等による要求の検証を使います。入力値検証だけで全攻撃を防げると考えず、対策を攻撃の入り口に合わせます。
OSコマンドインジェクションは入力をOSのコマンドとして実行させ、ディレクトリトラバーサルは「../」などでファイルのパスを操作し、公開していないファイルを読ませます。シェルを経由しない実行や、ファイル名を固定の候補から選ばせる設計で防ぎます。
| 攻撃 | 主な対策 |
|---|---|
| SQLインジェクション | プレースホルダ |
| XSS | 出力時のエスケープ |
| CSRF | トークン等の要求検証 |
| OSコマンドインジェクション | シェルを呼ばない実行・入力の検証 |
| ディレクトリトラバーサル | パスを直接指定させない設計 |
試験に出る
- SQLインジェクションはプレースホルダで命令と値を分けて防ぐこと。
- クロスサイトスクリプティングは出力先に応じたエスケープで防ぐこと。
- CSRFはトークンなどで正当な要求かを確認すること。
- WAFは検知・遮断を助けるが、アプリ側の修正に代わる万能策ではないこと。
- 事故時はCSIRT等が調査・封じ込め・復旧を調整すること。
重要な言葉
- SQLインジェクション
- 入力をSQL命令として解釈させる攻撃。
- クロスサイトスクリプティング
- ブラウザ上で不正なスクリプトを実行させる攻撃。
- CSRF
- ログイン中の利用者に意図しない操作を送らせる攻撃。
- WAF
- Web通信を検査し、攻撃の検知・遮断を助ける仕組み。
確認問題
確かめようTLSで暗号化すればSQLインジェクションも防げる?
いいえ。経路の暗号化と、アプリの入力・命令の扱いは別の問題です。
SQLインジェクション対策にはプレースホルダが有効である。
TLSで暗号化すれば、SQLインジェクションも防げる。
入力をSQL命令として解釈させる攻撃への対策は?
ログイン中の利用者に意図しない操作を送らせる攻撃は?
Webへの攻撃は、入力を命令として解釈させたり、利用者のを悪用したりします。どの段階でが使われるかを見ます。
検索語をSQL文字列へ直接つなぐと、入力に含まれる記号等で命令の意味を変えられるおそれがあります。を使って命令と値を分けることが、の対策です。
はブラウザ上で不正なスクリプトを実行させる攻撃で、出力先に応じたエスケープ等を行います。はログイン中の利用者に意図しない操作を送らせる攻撃で、トークンなどにより正当な要求かを確認します。
はHTTP等のWeb通信を検査し、攻撃の検知・遮断を助けますが、アプリ側の修正に代わる万能策ではありません。事故発生時には等が調査・連絡・封じ込め・復旧を調整し、原因分析と再発防止へつなげます。
出典・参考資料
試験の公式案内と、この記事の参考にした学習資料です。
編集:Pinternet Works · 更新日:
教材の編集方針・訂正について
