|
企業や組織のホームページやショッピングサイトなどでデータベースを利用したWebアプリケーションを公開している場合には、SQLインジェクションへの対策が大切です。SQLインジェクションは、Webサーバーを経由したデータベース接続を利用した攻撃方法です。

SQLインジェクションへの対策を行っていないWebサイトでは、例えばログオン画面でパスワードの欄に不正なデータベース命令を実行するための文字列を入力することで、パスワードを知らなくてもそのユーザーとしてログオンし、クレジットカード番号などの個人情報を取得されてしまうことがあります。また、別の方法によって、データベースに格納されているデータを一括で取り出されてしまったり、データが不正に改ざんされたりすることもあります。最近は、このような手法による個人情報の漏洩事件が相次いで発生しています。
また、SQLインジェクションを利用した特殊な命令によって、サーバー上のファイルを書き換えることで、Webページが改ざんされてしまう事件も発生しています。書き換えられたWebページでは、多くの場合、訪問者には分からないような状態(表面上は正規サイトがそのまま表示される)で、ユーザーを悪質なWebサイトに誘導したり、iframeタグで埋め込んだ別のWebサイトからウイルスに感染させたりすることが多いようです。
自社のWebサーバーでデータベースと連携したプログラムを利用している場合には、開発担当者または委託先の業者に必ず以下のような対策を講じるように依頼してください。
●Webサーバー上のプログラム(スクリプト)でSQLインジェクション対策(不正な入力値による処理を防ぐなど)を行うこと。
●Webサイトにシステムから表示されるエラーメッセージをそのまま表示しないようにすること(攻撃者に対してヒントを与えてしまうことになるため)。
●システムで利用するデータベースアカウントに対しては、最低限の権限だけを設定すること。
●定期的にアクセスログから攻撃数を検出し、攻撃内容の解析を行うこと。
●定期的にWebサイト全体の脆弱性検査を行うこと。
外部の業者に開発、運用を依頼している場合には、SQLインジェクションの対策状況について、しっかりと確認しておくことが大切です。また、ツールを利用して外部からの侵入テスト(ペネトレーションテスト)を実施したり、専門の業者にテストや診断を依頼する方法もあります。
何よりも大切なことは、常に情報セキュリティに関する情報を収集して、新しいハッキング方法が公開された場合には、利用しているサーバーで必要な対策を迅速に実施することです。
事例19:SQLインジェクションでサーバーの情報が・・・
(2009年3月作成)
|