基本情報技術者試験

SQLインジェクション攻撃の説明はどれか|基本情報技術者試験過去問解説

こんにちは、フルスタックエンジニアのryuです。

今回の記事は基本情報技術者試験過去問解説です。SQLインジェクション攻撃の問題について解説します。SQLインジェクションはinputなどの入力にSQL文を入力し、外部から不正にデータベースを操作する攻撃です。SQLインジェクション攻撃について詳しく解説します。

サーバー構築を実践で身につけるInfraAcademy

※本ページには、プロモーション・アフィリエイトリンクが含まれています

SQLインジェクション攻撃の説明はどれか

今回の記事では、以下の問題について解説します。

SQLインジェクション攻撃の説明はどれか。

ア:Webアプリケーションに問題があるとき,悪意のある問合せや操作を行う命令文をWebサイトに入力して,データベースのデータを不正に取得したり改ざんしたりする攻撃

イ:悪意のあるスクリプトを埋め込んだWebページを訪問者に閲覧させて,別のWebサイトで,その訪問者が意図しない操作を行わせる攻撃

ウ:市販されているDBMSの脆弱性を利用することによって,宿主となるデータベーサーバを探して自己伝染を繰り返し,インターネットのトラフィックを急増させる攻撃

エ:訪問者の入力データをそのまま画面に表示するWebサイトに対して,悪意のあるスクリプトを埋め込んだ入力データを送ることによって,訪問者のブラウザで実行させる攻撃

出典:平成29年秋期 問39

答えは、『ア』の「Webアプリケーションに問題があるとき,悪意のある問合せや操作を行う命令文をWebサイトに入力して,データベースのデータを不正に取得したり改ざんしたりする攻撃」です。

SQLインジェクションについてさらに詳しく解説していきます。

SQLインジェクション攻撃とは?

ここからは、SQLインジェクション攻撃について解説します。

SQL文で不正にDBを操作する攻撃

SQLインジェクション攻撃とは、WebサイトのインプットなどからSQL文を入力し、不正にデータベースなどを操作する攻撃のことです。

そもそもSQLとは、データベースを操作するためのコマンドです。データを入力したり、削除したり様々なことができます。このSQL文を不正に実行するのがSQLインジェクションです。

イメージはこちらのようになります。

では、SQLインジェクションをされないようにするにはどのようにすればよいのでしょうか?SQLインジェクションの対策方法について解説します。

SQLインジェクションの対策

SQLインジェクションの対策方法は以下のものがあります。

  • エスケープ処理でSQLを実行されないようにする
  • WAFの導入
  • DBの権限を適切に設定する

SQLインジェクションの対策方法はいくつかありますが、まずはWebサイトのインプットなどからSQLを実行できないようにします。エスケープ処理などをWebサイトに実装します。

また、WAF(Web Application Firewall)を導入して、SQLインジェクションをブロックすることもできます。WAFはWebサイトへアクセスする手前に設置するもので、Webサイトへの攻撃全般を防ぐ役割があります。

最終的に攻撃された場合でも、権限を適切に設定しておけば、情報流出が最小減で抑えられます。権限が適切でない場合、DBの全データにアクセスされる可能性があります。

SQLインジェクションへの詳細な対策はこちらのサイトをご覧ください。

安全なウェブサイトの作り方 – 1.1 SQLインジェクション:IPA 独立行政法人 情報処理推進機構

過去問解説まとめ

今回の記事では、以下の問題について解説しました。

SQLインジェクション攻撃の説明はどれか。

ア:Webアプリケーションに問題があるとき,悪意のある問合せや操作を行う命令文をWebサイトに入力して,データベースのデータを不正に取得したり改ざんしたりする攻撃

イ:悪意のあるスクリプトを埋め込んだWebページを訪問者に閲覧させて,別のWebサイトで,その訪問者が意図しない操作を行わせる攻撃

ウ:市販されているDBMSの脆弱性を利用することによって,宿主となるデータベーサーバを探して自己伝染を繰り返し,インターネットのトラフィックを急増させる攻撃

エ:訪問者の入力データをそのまま画面に表示するWebサイトに対して,悪意のあるスクリプトを埋め込んだ入力データを送ることによって,訪問者のブラウザで実行させる攻撃

出典:平成29年秋期 問39

答えは、『ア』でした。その他の選択肢の解説は以下の通りです。

  • イ→クロスサイトリクエストフォージェリの説明
  • ウ→ワームの説明
  • エ→クロスサイトスクリプティングの説明

当ブログでは、このようなネットワークに関する内容や基本情報技術者試験の過去問解説をしているので興味のある方は引き続きご覧ください。

参考書を読む人
基本情報技術者試験過去問解説まとめ 午前問題過去問解説 基本情報技術者試験の過去問題を詳しく解説します。エンジニアの経験から実践を交えながら解説します! ...

ABOUT ME
ryu@InfraAcademyというインフラ学習サービス運営
大手企業→上場ベンチャー→スタートアップでエンジニアをしていました。 インフラエンジニア歴10年以上。 Linuxやネットワークの学習ができるサービスInfraAcademyを運営中。
RELATED POST