F5 GLOSSARY

SQLインジェクション

SQLインジェクションとは、データベースと連動して動作するWebアプリケーションの脆弱性を利用し、不正にSQLを書き換えて、サイト内への不正アクセス、クレジットカードなどの情報を不正に入手、あるいは破壊しようとする攻撃のことです。Webアプリケーションがデータベースに引き渡す情報を、Webページ内のフォームで入力させるWebアプリケーションがターゲットになります。攻撃者はフォーム入力文字列に、データベース操作を行うSQL文を紛れ込ませます。それがそのままの形でデータベースに送られるWebアプリケーションであれば、攻撃者はその背後にあるデータベースを、自由に操作することが可能になります。

SQLインジェクションは、フォーム入力文字列のサニタイズ(入力された文字列をそのまま使うのではなく、攻撃に使用される可能性のある文字列を削除または変更する処理)を行うことで防止できます。しかし全てのアプリケーションでこの対応を行い、問題なく動作することを確認するには、大変な労力が必要になります。また運用段階でSQLインジェクションの脆弱性が発見された場合には、運用担当者が開発担当者に連絡して改修を依頼する必要があり、対応に時間がかかるという問題もあります。

これらの問題を解決する手段として有効なのが、Webアプリケーション ファイアウォール(WAF)の活用です。ユーザの入力文字列がWebアプリケーションに渡される前に、WAFでサニタイズを行うことで、WAF経由でリクエストを受ける全てのWebアプリケーションで、SQLインジェクションのリスクを回避できるようになります。

F5ではWAF機能を提供する製品として「F5 BIG-IP」を提供しています。


< Return to the glossary