基本情報技術者試験「代表的な攻撃手法」の問題
利用者の入力をWebページに無検証で出力する不備を悪用し、第三者が用意した不正なコードを被害者のブラウザ上で動作させる攻撃はどれか。
アクロスサイトスクリプティング(XSS)
イSQLインジェクション
ウDoS攻撃
エクロスサイトリクエストフォージェリ(CSRF)
正解
ア.クロスサイトスクリプティング(XSS)
クロスサイトスクリプティング(XSS)は、利用者入力を検証・エスケープせずページに出力する不備を悪用する。攻撃者のスクリプトが被害者のブラウザ上で実行されCookie窃取等が起きるため正しい。
?選択肢ごとの解説
ア ○クロスサイトスクリプティング(XSS)は、利用者入力を検証・エスケープせずページに出力する不備を悪用する。攻撃者のスクリプトが被害者のブラウザ上で実行されCookie窃取等が起きるため正しい。
イ ×SQLインジェクションは入力値を悪用してデータベースへの問合せ文を改ざんする攻撃であり、ブラウザ上でのスクリプト実行を狙うXSSとは標的が異なる。
ウ ×DoS攻撃は大量の通信や負荷でサービスを停止・低下させる攻撃であり、スクリプトをブラウザで実行させる手口ではない。
エ ×CSRFはログイン済み利用者に意図しない要求を送らせる攻撃であり、攻撃者スクリプトを被害者ブラウザで実行する点が主眼のXSSとは仕組みが異なる。
✎くわしく
XSSは出力時のエスケープ不足が原因で、対策は出力エンコードや入力検証、Content Security Policyである。SQLインジェクションはDB問合せ、CSRFはセッション悪用、DoSは可用性侵害と、それぞれ標的層と対策が異なる。
✓本番での押さえどころ
試験のコツ
『XSS=ブラウザでスクリプト』『SQLインジェクション=DB問合せ改ざん』『CSRF=意図しない要求』と標的で区別する。
覚え方
XSSは『他人(攻撃者)の台本(Script)を被害者の舞台(ブラウザ)で演じさせる』とイメージする。
よくある誤り
XSS・SQLインジェクション・CSRFはWeb攻撃として並ぶため混同しやすい。『どこで何を実行/改ざんするか』で切り分ける。
セキュリティの他の問題
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0071