CVS更新 -- henoheno

BugTrack2/200: [spam] URI spamフィルタ (Part 1) とブロック機構

(※このコードは現状のCVS版でも自動的に有効になるわけではありません。試したい場合は 開発日記/2006-11-12 を参考にして下さい)

  • cvs:lib/spam.php (1.3-1.5)
    * Added uri_array_implode()
    * Added is_badhost()
    * Added generate_glob_regex(), enables globbing
    * Added check_uri_spam_method()
    * Added pkwk_spamnotify()
    * uri_pickup(): user:pass => userinfo (See RFC3986)
    * uri_pickup(): Enabled port 0 to 9, fragment
    * spam_uri_pickup_preprocess(): Domain exposure for Google
    * scheme_normalize(): ttp => http, ttps => https
    * Multi-metrics: quantity, area(total, anchor, bbcode), non_uniq, badhost
    * Mail summerized data (why blocked)
    * Cleanup, renaming functions etc

Multi-metrics

  • URIを複数の観点から評価する様になりました。評価方法としきい値は、実行する場面によってあらかじめ指定する事ができます。
    • quantity: URIの単純な物量によりブロックする (例: 8個以上はNG)
    • area total: 下にあげるarea関係のURIの個数(の総数)によりブロックする
      • area anchor: HTML anchor タグの影響下にあるURIの個数によりブロックする (例: 2個までOK)
      • area bbcode: BBCodeタグの影響下にあるURIの個数によりブロックする (例: 一つも許さない)
    • non_uniq: 同一のURIが N個以上重複している時にブロックする (例: 4回まで重複利用してよい)
        例: 正規化後のURIを比較するため、
            以下のURIは全て同一であるとみなされます (この場合3回重複)
        http://foobar.example.com/unknown/../foobar
        http://foobar.example.com:80/foobar
        HTTP://FOOBAR.EXAMPLE.COM/foobar
        ttp://foobar.example.com////foobar
    • badhost: 管理者の定める特定のホストに対するURIをブロックする (例: *.example.comを禁じる)

Domain exposure

  • このように意図を隠したURIを
    http://www.google.nl/pda?q=pukiwiki+1.4.8+site:nasty.example.com
  • 2つのURIに変換します (後者を残すかどうかは任意)。結果的に、例えば怪しいドメインを badhost のチェックに回すことができます。
    http://nasty.example.com/?refer=www.google.nl
    http://www.google.nl/pda?q=pukiwiki+1.4.8+
  • Googleをターゲットにしたそのようなspamを見かけたので土台を作っておきましたが、この機構は正規表現だけで実現できるように(汎用的に)作ってあるので、他のURIに対しても使えます(多分)。

Mail summerized data (why blocked)

  • メールでフィードバックを与える部分であるところの、Mail summerized data (why blocked) の部分がうまく動いていない模様...なので、現状、今までとの際立った違いは見られないでしょう。 このようなフッタがメールに追加されます。(r1.5)
    BLOCKED: Blocked by: quantity(19), area=>anchor(6), area=>bbcode(6), non_uniq(12)
    ※示されたそれぞれが閾値をオーバー。カッコ内は検出された個数

ブロック結果

ブロックされた結果の挙動は全て同じです。攻撃側に情報を与えないため、送信した側には理由を教えません。


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-11-27 (月) 00:17:12
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.204 sec.

OSDN