Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

PHPでIDS

Webアプリケーション向けのIDS(Intrusion Detection System)で、PHPIDSなるものがあるようです。最近立ち上がったプロジェクトでしょうか。バージョン0.2がリリースされています。


PHPIDS enables you to see who’s attacking your site and how and all without the tedious trawling of logfiles or searching hacker forums for your domain. Last but not least it’s licensed under the LGPL!

$_GET/$_POST/$_SESSIONの値に対してパターンマッチングを行うタイプのようです。サンプルコードは以下のような感じです。なお、パターンマッチングの定義ファイルはXMLファイルとなっています。

<?php
    $storage = new IDS_Filter_Storage();
    $storage->getFilterFromXML('default_filter.xml');
    $get = new IDS_Monitor($_GET, $storage);
    $report = $get->run();
    
    if (!$report->isEmpty()) {
        // 具体的な処理コード

また、CakePHPコンポーネントのサンプルが用意されていて、こちらはロギング(DBに保存?)とメール送信を行うサンプルになっているようです。いずれにしても、全ての処理を行う前にPHPIDSの処理を噛ます、といった使い方になると思います。
mod_securityも同じようなIDSですが、アプリケーション側で柔軟な処理を行いたい場合に使えるかも知れませんね。