本文へ移動

基本情報技術者試験 · 学習ガイド

Web攻撃と防御の組合せ

Web攻撃とは

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

エルくんが固定SQLテンプレートを留め具で固定し、入力42のカードを値専用の受け皿へ入れる図。
考え方の例:入力値をSQLの命令文へ直接つなげず、パラメータとして渡します。図はSQLインジェクションへの対策の一つを示します。

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

基本の仕組み

基本の仕組みの図解。正方形の中央に仕切りを置き、左の「SQL命令」と右の「値」を分離する。検索語から値への矢印を描き、値を受け取る場所を「プレースホルダ」と示す。
覚えること:プレースホルダで命令と値を分ける

検索語をSQL文字列へ直接つなぐと、入力に含まれる記号等で命令の意味を変えられるおそれがあります。プレースホルダを使って命令と値を分けることが、SQLインジェクションの対策です。

クロスサイトスクリプティングはブラウザ上で不正なスクリプトを実行させる攻撃で、出力先に応じたエスケープ等を行います。CSRFはログイン中の利用者に意図しない操作を送らせる攻撃で、トークンなどにより正当な要求かを確認します。

WAFはHTTP等のWeb通信を検査し、攻撃の検知・遮断を助けますが、アプリ側の修正に代わる万能策ではありません。事故発生時にはCSIRT等が調査・連絡・封じ込め・復旧を調整し、原因分析と再発防止へつなげます。

攻撃と対策の対応

攻撃と対策の対応の図解。SQLインジェクションへの対策を、左の「入力値」と右の「SQL文」の対応で示す。両者を仕切りで分け、入力値からSQL文内の「プレースホルダ」へ対応を示す矢印を引く。入力値をSQL文へ直接書き込む矢印は描かない。
覚えること:プレースホルダ等で値とSQL文を分離

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 · 更新日:

教材の編集方針・訂正について