これは要導入検討ですね。 Webアプリケーションをセキュアに開発するのは基本ですが、それでも人が作るものである以上バグを含んでしまうのは致し方ありません。そこで未知の不具合を含めて防衛するための手段を考えなければなりません。 その一つとして、さらに外部からのアタックに対して考えられる手段がWebアプリケーションファイアウォール、通称WAFです。各種Webサーバに組み込めるオープンソースのWAF、それがModSecurityです。 デモが用意されておりインジェクションを起こそうと試みることができます。

特徴

ModSecurityの特徴として、多彩なWebサーバに対応しているというのがあります。Apache/nginx/IISサーバに対してインストールが可能です。また、以下のような特徴があります。

HTTPトラフィックのロギング

通常、Webサーバのログではリクエストボディは保存されません。そして攻撃者はそこに不正なデータを載せてきます。ModSecurityではそうしたデータを適切に保存する一方、機密データを保存することがないようパスワードやクレジットカード番号などを指定してマスクできるようになっています。

リアルタイム監視

リアルタイムにトラフィックを監視し、不審なイベントを感知します。Webサーバへの侵入検知ツールとしても活用できます。攻撃を感知した場合、3つの処理が可能になっています。

ネガティブセキュリティ

IPアドレス、セッションおよびユーザアカウントごとに異常処理を行うスコアを検出し、しきい値を越えたリクエストはログインやアクセス自体を拒否します。

ポジティブセキュリティ

正常な要求を全て定義し、それ以外のリクエストを全て弾くというものです。

バーチャルパッチ

脆弱性が知られている場合、それが実際に適用されるまでの間外部からパッチを当てることができます。

利点

Webサーバの組み込みであるため、独自のソフトウェアやハードウェアを追加するのに比べて以下の利点があります。

  • 既存ネットワークへの変更が不要
  • 単一障害点を増やさない
  • ロードバランシング、スケーリングが可能
  • オーバーヘッドが小さい
  • 暗号化およびGzip圧縮などもそのまま使える

ModSecurityは実際の運用に際してルールを設定する必要があります。柔軟にできるのですが、コアルールセット(CRS)と呼ばれるプロジェクトがTrustwave社のSpiderLabsが作成しています。そのルールを使うと、

  • HTTPの保護
  • 一般的なWeb攻撃からの保護
  • ボット、クローラ、スキャナなどの悪意ある行動を検出
  • トロイの木馬の保護
  • サーバエラーの隠蔽

などが使えるようになります。

外部からの攻撃は多様化し、自動化されて毎日行われています。そうした中でWebサーバやフレームワーク、プログラミング言語の脆弱性など自分たちで作った部分以外のセキュリティリスクも存在します。そうした中でセキュリティインシデントを起こさないためにもModSecurityの導入は必須ではないでしょうか。 ModSecurityはApache License 2.0製のオープンソース・ソフトウェアです。 ModSecurity: Open Source Web Application Firewall SpiderLabs/ModSecurity