とりあえず、脳内のダンプ。

1) access_log から単位時間x秒(例えばx=3600とか)にアクセスしたIPアドレスのリストを作る
2) アクセスがy回以上で、かつリターンコード200だったアクセスをピックアップする(206や304を含めるかどうかは要検討)
(yの初期値はx=3600でディレイ1秒だとy=3600だから、それに近い秘密の値(チューニング可能が望ましい))
3) ホワイトリストを見て、2)のリストから除外する(公式もの: 2ちゃんねる検索とか)
4) リストアップされたIPアドレスは、z秒間 .htaccess の deny リストに掲載される