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

  多くの企業や組織のホームページやショッピングサイトは、データベースを利用したWebアプリケーションが使われています。このような場合には、Webサーバ経由でのデータベース接続を利用した攻撃方法であるSQLインジェクションへの対策が必要です。

  SQLインジェクションへの対策を行っていないWebサイトでは、例えばログイン画面でパスワードの欄に不正なデータベース命令を実行するための文字列を入力することで、パスワードを知らない攻撃者が正当な利用者としてログインし、クレジットカード番号などの個人情報を窃取したりすることがあります。
また、別の方法によって、データベースに保存されているデータを一括で取り出されてしまったり、データが不正に改ざんされたりすることもあります。最近は、このような手法による個人情報の漏洩(ろうえい)事件が相次いで発生しています。

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

  また、SQLインジェクションを利用した特殊な命令によって、サーバ上のファイルを書き換えることで、Webページが改ざんされてしまう事件も発生しています。書き換えられたWebページでは、多くの場合、訪問者には分からないような状態(表面上は正規サイトがそのまま表示される)で、利用者を悪質なWebサイトに誘導したり、iframeタグで埋め込んだ別のWebサイトからウイルスに感染させたりすることが多いようです。

  自社のWebサーバデータベースと連携したプログラムを利用している場合には、開発担当者または委託先の業者に必ず以下のような対策を講じるように依頼してください。

  • Webサイトシステムから表示されるエラーメッセージをそのまま表示しないようにすること(攻撃者に対してヒントを与えてしまうことになるため)。
  • 定期的にアクセスログから攻撃数を検出し、攻撃内容の解析を行うこと。

  また、ウェブアプリケーションファイアウォール(WAF)を利用するのも、有効なSQLインジェクション対策となります。
  WAFは、Webアプリケーションのやり取りを把握・管理することによって不正侵入を防御することのできるファイアウォールのことで、従来のファイアウォールネットワークレベルでの管理であるのに対し、WAFはWebアプリケーションのレベルで管理を行います。WAFでは、プログラムに渡される入力内容などを直接に検査することで、不正と見なされたアクセス要求を遮断することができます。WebブラウザWebサーバを仲介するかたちで、Webブラウザとの直接的なやり取りをWAFが受け持つことで、SQLインジェクションなどの不正な要求に対して、「攻撃」と見なして通信を遮断することができます。

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

  外部の業者に開発、運用を依頼している場合には、SQLインジェクションの対策状況について、しっかりと確認しておくことが大切です。また、ツールを利用して外部からの侵入テスト(ペネトレーションテスト)を実施したり、専門の業者にテストや診断を依頼したりする方法もあります。

  何よりも大切なことは、常に情報セキュリティに関する情報を収集して、新しい攻撃方法が公開された場合には、利用しているサーバで必要な対策を迅速に実施することです。