平成28年度 春期 午前 問37
セキュリティ
SQLインジェクションの問題
SQL インジェクション攻撃の説明として,適切なものはどれか。
- アWeb アプリケーションのデータ操作言語の呼出し方に不備がある場合に,攻撃者が悪意をもって構成した文字列を入力することによって,データベースのデータの不正な取得,改ざん及び削除をする攻撃
- イWeb サイトに対して,他のサイトを介して大量のパケットを送り付け,そのネットワークトラフィックを異常に高めてサービスを提供不能にする攻撃
- ウ確保されているメモリ空間の下限又は上限を超えてデータの書込みと読出しを行うことによって,プログラムを異常終了させたりデータエリアに挿入された不正なコードを実行させたりする攻撃
- エ攻撃者が罠を仕掛けた Web ページを利用者が閲覧し,当該ページ内のリンクをクリックしたときに,不正スクリプトを含む文字列が脆弱な Web サーバに送り込まれ,レスポンスに埋め込まれた不正スクリプトの実行によって,情報漏えいをもたらす攻撃
答えと解説を見る
✓ これが正解アWeb アプリケーションのデータ操作言語の呼出し方に不備がある場合に,攻撃者が悪意をもって構成した文字列を入力することによって,データベースのデータの不正な取得,改ざん及び削除をする攻撃
解説
入力から命令文を紛れ込ませてデータベースを操る攻撃です。
Webアプリケーションでは、利用者が入力した文字列を組み立ててデータベースへの命令文を作ることがよくあります。この組み立てのやり方に不備があると、利用者の入力に含めた文字列が命令の一部として解釈されてしまい、本来意図していない検索や更新が実行されます。攻撃者は、この隙間を狙って命令文の断片を入力に混ぜ込み、保管されている情報を不正に取り出したり、書き換えたり、消去したりします。だから、データ操作言語の呼出し方に不備がある場合に、悪意をもって構成した文字列を入力することで不正な取得や改ざんや削除を行う攻撃と述べた肢が当たりました。判定の軸は、その攻撃が入力の文字列を命令の一部として解釈させることを狙っているかどうかの一点です。ここで扱っているのは、アプリケーション側の組み立ての不備を突いてデータの保管庫に直接手を伸ばす脅威の位置付けです。
ほかの選択肢はなぜ違うのか
- イWeb サイトに対して,他のサイトを介し…:ウェブサイトに対して他のサイトを介して大量のパケットを送りネットワークのトラフィックを異常に高めてサービスを提供不能にする攻撃だと述べています。狙っているのはサービスを止めることで、命令文の解釈を歪めて保管された情報を操る働きとは目的が違いました。
- ウ確保されているメモリ空間の下限又は上限を…:確保されているメモリ空間の下限や上限を超えて書込みと読出しを行い、プログラムを異常終了させたり不正なコードを実行させたりする攻撃だと述べています。狙っているのはメモリ領域の境界で、アプリケーションでの命令文の組み立ての不備とは別の場所を突いていました。
- エ攻撃者が罠を仕掛けた Web ページを利…:攻撃者が罠を仕掛けたページを利用者が閲覧し、ページ内のリンクをクリックしたときに、不正スクリプトを含む文字列が脆弱なウェブサーバに送り込まれ、応答に埋め込まれた不正スクリプトの実行によって情報漏えいをもたらす攻撃だと述べています。狙っているのは応答に混ざったスクリプトの実行で、データベースへの命令文の組み立てとは別の経路でした。
この問題の用語
- SQLインジェクション入力欄にデータベースへの命令を混ぜ込み、想定していない操作をさせる攻撃。入力をそのまま命令に組み込まないことが対策です。
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。多くの人が同時に使うことを前提にしています。
- 改ざん保管や送信の途中で、内容を許されずに書き換えること。完全性が損なわれますが、電子署名などを使えば起きたことを見つけられます。
- 情報漏えい守るべき情報が、許されていない相手の手に渡ってしまうこと。故意の持ち出しだけでなく、紛失や誤送信でも起こります。
出典:平成28年度 春期 基本情報技術者試験 午前 問37
同じ用語が出る問題
- 令和6年度 科目A 問9:ペネトレーションテストの問題(改ざん)
- 令和元年度 秋期 午前 問40:SHA-256に関する問題(改ざん)
- 平成31年度 春期 午前 問38:メッセージ認証符号に関する問題(改ざん)
- 平成25年度 春期 午前 問60:機密性に関する問題(情報漏えい)
- 平成24年度 秋期 午前 問40:SQLインジェクションの問題(SQLインジェクション)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)