SQLインジェクションという名称を最近耳にする方も多いのではないでしょうか。
「SQL(データベース言語)インジェクション(注入)」という言葉の示す通り、プログラムに不正なSQLという言語を注入しデータベースを攻撃します。
この攻撃を受けると情報漏えいやデータの改ざんなどのリスクが伴います。もし個人情報が流出すれば、犯罪に巻き込まれる可能性や企業の社会的な信頼を失うことにもなりかねません。
そこで、今回はSQLインジェクションの攻撃方法と対策を解説していきます。
Webアプリの入力フォームから不正プログラムを実行してしまう!
ユーザー情報取得のためのURLにアクセスしSQL文を打ち込むことで不正にプログラムを実行します。プログラムを実行することによりユーザー情報を抜き取られるという事態も発生しています。
最近多くなっているSQLインジェクションの被害としては、企業などのWebサイト改ざんが挙げられます。
これは攻撃者によってWebサイトに載っているデータが書き換えられたり削除されたりすることを意味します。また、攻撃者が悪質なコンピューターウイルスをWebサイトに埋め込むことにより、公式Webサイトを閲覧しているにも関わらず、埋め込まれたウイルスに閲覧者のデバイスが感染してしまうという事例も増加しています。
こうした被害をユーザー側で防ぐことは難しいため、Webサイトを公開している企業側で対策する必要性があります。
SQLインジェクションの被害として代表的なものが、情報漏えいです。昨今、顧客データの流出といったニュースを耳にする機会が増えてきたのではないでしょうか。
企業が一般公開していない機密情報や個人情報を盗み出されてしまえば情報漏えい事故になりますし、クレジットカード情報を蓄積している場合は、クレジットカード番号や名義も漏えいすることがあります。盗み出された情報を転売するなど、さらに悪用される二次被害も考えられます。
また、情報漏洩が起こると会社の社会的信頼が落ちるので、ビジネスを継続していくことが困難になるケースも考えられます。
主な4つの対策
「エスケープ」「POD」「DBログ監視」「WAF」
➀エスケープ処理を行う
「;」や「’」などを普通の信号として認識させ、プログラム実行をブロックします。
➁PODを使用する
特殊記号を使用不可に設定し、プログラム実行をブロックします。
➂DBサーバーのログを監視・解析する
SQL文の送信がないかを常時監視・解析します。
➃WAFを使用する
Webアプリ用のファイアウォールを導入する方法です。