ホーム > 企業・組織の対策 > 情報管理担当者の情報セキュリティ対策 > SQLインジェクションへの対策
多くの企業や組織のホームページやショッピングサイトは、データベースを利用したWebアプリケーションが使われています。このような場合には、Webサーバを経由したデータベース接続を利用した攻撃方法であるSQLインジェクション攻撃への対策が大切です。
SQLインジェクションへの対策を行っていないWebサイトでは、例えばログイン画面でパスワードの欄に不正なデータベース命令を実行するための文字列を入力することで、パスワードを知らなくてもその利用者としてログインし、クレジットカード番号などの個人情報を取得されてしまうことがあります。また、別の方法によって、データベースに保存されているデータを一括で取り出されてしまったり、データが不正に改ざんされたりすることもあります。最近は、このような手法による個人情報の漏洩(ろうえい)事件が相次いで発生しています。

また、SQLインジェクションを利用した特殊な命令によって、サーバ上のファイルを書き換えることで、Webページが改ざんされてしまう事件も発生しています。書き換えられたWebページでは、多くの場合、訪問者には分からないような状態(表面上は正規サイトがそのまま表示される)で、利用者を悪質なWebサイトに誘導したり、iframeタグで埋め込んだ別のWebサイトからウイルスに感染させたりすることが多いようです。
自社のWebサーバでデータベースと連携したプログラムを利用している場合には、開発担当者または委託先の業者に必ず以下のような対策を講じるように依頼してください。
また、ウェブアプリケーションファイアウォール(WAF)を利用するのも、有効なSQLインジェクション対策となります。
WAFとは、Webアプリケーションのやり取りを把握・管理することによって不正侵入を防御することのできるファイアウォールのことで、従来のファイアウォールがネットワークレベルでの管理であるのに対し、WAFはWebアプリケーションのレベルで管理を行います。WAFでは、プログラムに渡される入力内容などを直接に検査することで、不正と見なされたアクセス要求を遮断することができます。WebブラウザとWebサーバを仲介するかたちで、Webブラウザとの直接的なやり取りをWAFが受け持つことで、SQLインジェクションなどの不正な要求に対して、「攻撃」と見なして通信を遮断することができます。

外部の業者に開発、運用を依頼している場合には、SQLインジェクションの対策状況について、しっかりと確認しておくことが大切です。また、ツールを利用して外部からの侵入テスト(ペネトレーションテスト)を実施したり、専門の業者にテストや診断を依頼したりする方法もあります。
何よりも大切なことは、常に情報セキュリティに関する情報を収集して、新しい攻撃方法が公開された場合には、利用しているサーバで必要な対策を迅速に実施することです。