Webアプリケーションの脆弱性を悪用する攻撃からWebサイトを保護するソリューションとして、WAFの導入が進んでいます。
本稿では、オープンソースのWAFであるModSecurity のCore Rule Set(CRS)から「WAFのルール」について解説します。
WAF(Web Application Firewall)とは
WAF(ワフ:Webアプリケーションファイアウォール)は、Webアプリケーションの脆弱性を悪用した「個人情報の窃取」や「Webサイト改ざん」などのサイバー攻撃からWebサイトを保護するツールです。
Webアプリケーションを利用するユーザーは、HTTP通信によって情報をやり取りします。ユーザーが書き込みや参照などの操作をすると、要求(リクエスト)がWebサイトに送られ、その結果(レスポンス)をユーザーに返します。このとき、データベースを不正に操作するような通信が紛れていると、情報漏えいなどの事件につながる恐れがあります。
WAFは、HTTP通信の内容を1つ1つ検査し、SQLインジェクションやクロスサイトスクリプティングなどのウェブアプリケーションの脆弱性を悪用した不正なアクセスをブロックします。
ModSecurityとは
ModSecurityは、Apache HTTP ServerやNginx、Microsoft IISのモジュールで、Webサーバーのモジュールとしてインストールするホスト型WAFです。オープンソースで開発されているため、ライセンスにしたがえば無償で利用できることが大きなメリットです。
しかし、商用製品とは異なり、ModSecurityには専門業者によるサポートが無いため、自社で導入や運用を行う必要があります。
Core Rule Set(CRS)
ModSecurityには、攻撃を検出するためのルールセットであるCore Rule Set(CRS)が準備されています。HTTP通信の内容を1つ1つパターンマッチングを行い、正規のユーザーからのアクセスは許可し、不正なアクセスは遮断(ブロック)や、攻撃を検出しても記録(ロギング)のみといったアクションを行います。
なお、CRSはOWASPによってメンテナンスが行われており、Webアプリケーションのセキュリティに関する情報を基に設計・開発されています。2024年1月時点の最新バージョンは 3.3.5 です。
CRSは、要求と応答の脅威カテゴリごとにルールを有効にできます。また、URI、ヘッダー、Cookie、リクエストボディ、応答本文などの対象を指定することが可能です。ルールセット内には、偽陽性が発生した場合に個々のルールを無効にするオプションがあります。
偽陽性とは、本来「正常な HTTP 通信」であるにもかかわらず、「不正な HTTP 通信」と判定されるエラーです。偽陽性が生じると、利用者の正当な HTTP 通信が WAF で遮断されることになります。防御力はもちろんのこと、偽陽性が少ないということは、WAFの導入・運用において重要なポイントとなります。
要求ルールセット
要求ルールセットは、Webサーバーに対するHTTP要求を検査し、不正アクセスがないかを判定するために用いられます。
CRSには不正アクセスを判定するルールのほかにも、WordPressなどのCMS環境における偽陽性を抑止する除外ルールも準備されています。
- Scanner detection (スキャナ検出)
- Protocol enforcement (プロトコル強制)
- Protocol attack (プロトコル攻撃)
- Local file inclusion (ローカルファイルインクルージョン)
- Remote file inclusion (リモートファイルインクルージョン)
- Remote code execution (リモートコード実行)
- PHP injectionPHP (インジェクション)
- Cross-site scripting (クロスサイトスクリプティング)
- SQL injection (SQL インジェクション)
- Session fixation (セッション固定)
- Session Java (Java攻撃)
- IP Reutation(IP評価)
- Method Enforcement(メソッド強制)
- DOS Protection(DOS保護)
- Deserialization nodejs(nodejs攻撃)
- Multipart attack(マルチパート攻撃)
CRSを活用することで、SQLインジェクションやクロスサイトスクリプティング(XSS)、OSコマンドインジェクションなどのWebアプリケーションの脆弱性を悪用する攻撃からWebサイトを保護することができます。
応答ルールセット
応答ルールセットには、以下のようなものがあります。
- Data leakages (データ漏洩)
- SQL data leakages (SQL データ漏洩)
- Java data leakages (Java データ漏洩)
- PHP data leakages (PHP データ漏洩)
- IIS data leakages (IIS データ漏洩)
応答ルールセットは、Webサーバーからの応答をチェックして、応答に存在すべきでない情報(SQLエラーやphpinfoの情報など)がないかを検査します。
まとめ
本稿では、ModSecurityのCore Rule Set(CRS)をもとに、WAFの役割とルールについて簡単にご紹介しました。
WAFを活用したWebサイトのセキュリティ対策を検討するにあたり、オープンソースWAFを検討するのは一つの案です。ModSecurityには、無料ながら自由度が高いというメリットがあります。WAF導入によるセキュリティ対策の強化を検討している場合は、低コストでWAFを導入・運用する場合の一つの選択肢として、ModSecurityの導入も考えておきたいところです。
とはいえ、ある程度専門的な知識がなければ、運用することが難しいのも事実です。実際「一度はModSecurity によるセキュリティ強化を試みたものの、使いこなすのが難しく、サポート面が心配」といった事情から、当社にご相談いただくこともあります。必要に応じた商用製品のWAF導入は、結果としてコスト低減につながることがあります。
- カテゴリ:
- WAF
- キーワード:
- セキュリティ対策