2021年1月14日

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

SQLインジェクションとは何?

SQLインジェクション(英: SQL Injection)とは、アプリケーションのセキュリティ上の不備を意図的に利用し、アプリケーションが想定しないSQL文を実行させることにより、データベースシステムを不正に操作する攻撃方法のこと。
出典:Wikipedia

多くのWebサーバーにはデータベースがインストールされています。
データベースを利用しているWebサイトはSQLという命令文を使いデータベースに照会し、その結果の情報をWebサーバーへ返していきます。
利用者は意識することはないと思いますが、Webページを介して間接的にデータベースを利用していることになります。

関節的なデータベース利用例)
・会員サイトへ情報登録をする。
・通販サイトでクレジットカード情報を登録し、買い物をする。
・Webサービスに登録していたメールマガジンの宛先を変更する。

このSQLインジェクションとはWebサイトからデータベースへの命令文であるSQLを不正に操作し、攻撃者によるデータの取得・改ざん・消去、Webサーバーの管理権限奪取といったことを可能にしてしまいます。

対象となるケース

データベースを利用するWebサイトは通販サイトや会員サイトに限らず、お問い合わせフォームの入力情報を格納する、Webサイトのコンテンツ=内容を格納する、といったこともスタンダードな利用方法です。
つまり、このSQLインジェクションによる攻撃によって被害を受ける可能性のある対象は通販サイトや会員限定サイトに限らず、多くのWebサイトということになります。

SQLインジェクションが引き起きる要因

SQLインジェクションが生じてしまうのは、サーバーの仕様、Webページからデータベースへの命令文の組み立て方法など、複合的に条件が重なることが要因です。
攻撃者はテクノロジー向上とともに手法を変えていきますので、サーバーの仕様要件が低い場合や立ち上げから年月の経過したWebサイト、バージョンの低いCMSを運用している場合などは漏えいや改ざんのリスクが高まり、要注意です。

まとめ

このSQLインジェクションにより想定される被害は以下の情報が確認されています。

・格納されている個人情報の流出・改ざん・削除
・身代金の要求
・Webサイトの内容の改ざん
・サーバー権限の乗っ取り


これらの被害を受けると多額の損害賠償の発生、株式価格の下落、企業の社会的な信用の失墜に帰結していきます。
未然に被害を防ぐためにも、Webサイト診断の積極的な活用が求められます。