スパム送信者のブラックリストをP2P的に共有する『GOBLIN』

Posted by
ぴろり
Posted at
2005/10/19 23:50
Trackbacks
関連記事 (0)
Post Comment
コメントできます
Category
MovableType カテゴリ
 GOBLIN は、送信者のリモートアドレスを記録したブラックリスト(以下、BList)を参照し、 およびを拒否する的試みです。 GOBLIN の特徴として、この BList をサイト間で 的に共有し、 他サイトにある BList を利用して自サイトの BList を更新・強化するという点が挙げられます。 新出の送信者のは、GOBLIN の似非 ネットワークを伝播しながら、 直接の共有関係にないサイトの BList にも連鎖的に反映されていきます。
この記事をはてなブックマークに追加する この記事のはてなブックマーク数 | この記事をlivedoorクリップに追加する この記事のlivedoorクリップ数 | この記事をYahooブックマークに追加する この記事のYahoo!ブックマーク数 | この記事をdel.icio.usに追加する

GOBLIN って何?

 MovableType 3.2 には強力な対が標準で添付しており、 公開されている DNS 式ブラックリスト(DNSBL)を参照して手軽に対策を行うことができます。 また、Bulkfeeds では 独自の DNSBL と、ブラックリストへのフィードバックが行えるような仕組み を公開されており、 ユーザのレポートによってを収集・蓄積するという興味深い方法が用いられています。
 これら DNSBL によるブラックリスト参照は、一種の クライアント・サーバ・モデル と見ることができますが、ここに一度、悪意のある偽のが登録されてしまうと、 それを参照する全ての環境が同様に影響を受けてしまうと云う中央管理型のデメリットも考えられます。 (そのためか、これらの BList への登録は最終的には人手に頼っているようです)
 そこで、この BList をサイト間で 的に扱ってみようという考えのもと、 +αを作成し、 これを GOBLIN(ゴブリン) と命名しました。 を採用することの効果はイマイチ見えていませんが(ぉぃぉぃ)、 広く普及することで何かしら新しい BList の形態となれば面白いと考えています。

 ちなみに GOBLIN は 『General Open-ended BlackList Inheritance Network (汎用的な公開されたブラックリストの継承ネットワーク)』という一部無理矢理なフレーズのアクロニムです。

もうちょっとマシな命名でもあれば良かったんですが。

ブラックリストの共有

 各々のサイトは、自分が信頼した他サイトのブラックリストを参照し、そのを自サイトのリストと結合します。 また自サイトのリストを公開することで、他サイトからも同様に参照されるようにしておきます。
 ここで、悪意のある偽の(デタラメに作成されたリストなど)を ネットワークに紛れ込ませないために、 自サイトが参照するリストは、そのサイト管理者が選択したものだけです。 サイト管理者は、リストを公開しているサイトの著名度やその内容を吟味した上で、 そのサイトの公開するリストが信頼できるものかを判断します。 例えば、誰かが悪意のあるリストを ネットワークに紛れ込ませようとしても、 一朝一夕で作られた実の無いエントリが乱発されたようなサイトの公開するリストは信頼を得られず、 参照されにくいことでしょう。

ブラックリスト伝播の模式図

 また、ブラックリストの参照するレベルである"共有 POP 数(仮称)"を設定することで、 自サイトが直接参照していないリストを広範囲かつ間接的に参照することができます。 共有 POP 数を大きく設定すると、離れたサイトにあるリストを得ることができますが、 その分、途中で紛れ込んだ悪意のあるリストを拾う可能性も大きくなります。 逆に、共有 POP 数を小さく設定することで、自サイトが信頼したサイトに近い範囲のリストのみ 参照するようになります。

の導入

 アーカイブに含まれる mt-goblin.pl をエディタで開き、設定値を環境に合わせて変更した後、 plugins ディレクトリにコピーします。 後述のブラックリストに記載された IP からの投稿とを拒否することができます。

ブラックリストの書式

 ブラックリストは単純なテキスト形式で、禁止したい IP を 一行に一つずつ羅列していきます。 また、他サイトのブラックリストから参照・追加された IP は、タブ区切りでその参照 URL の履歴を残しています。 下は共有 POP 数が 2 の場合のブラックリストの例です。

 作成したブラックリストは他サイトから参照できるよう に公開することが望ましいです。 以下のようなステッカーでも作って目立つところに貼っておきましょう。 (もちろん、自サイトのブラックリストを公開する/しないの選択は自由です)

Ready to share my GOBLIN
GOBLIN 0.10 What's GOBLIN ?

ブラックリストの更新

 アーカイブに含まれる goblin.pl をエディタで開き、設定値を環境に合わせて変更します。 修正後、適当なディレクトリにアップロードした後、実行パーミッションを与えておきます。

 goblin.pl スクリプトになっているので、 シェルから実行するか、あるいは cron などで定期的に実行しリストを更新するよう設定します。 また、拡張子を に変更することで、からリストの更新作業を行えます。 この場合、パスワード認証を掛けるなどして第三者がアクセスできないようにしておきましょう。
 スクリプトを実行すると、BListList で指定された他サイトのリストを取得し、 BListPath で指定された自サイトのリストを更新にかかります。

GOBLIN
0.11 new '05/11/15 2770 bytes 3.1 以降
更新用 スクリプトを含む

 フィルタおよびフィルタは夫々、 Movable Type で言及リンクのない TrackBack ping を弾くプラグインMTBanASCII: コメントSPAM対策を MT3 に移植 より、コードを参考にさせて頂きました。

舞台裏

 MT の管理画面からブラックリストの更新作業が行えると便利。 あと、他サイトのブラックリストを参照する段も、 HEAD リクエストで内容が更新されていた場合のみを取得するとか。 とにかく広く使ってもらえない限りは ネットワークの意味が無いのもツライところ(´・ω・`)

この記事を読んだ人はこんな記事も読んでいます ?

その他の関連する記事


関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

コメントを投稿する

 (必須/公開)
 (必須/非公開)
 
 (必須)
コメントスパム防止のため投稿前に ランダムな数字 ? を入力してから投稿してください。お手数ですがご協力のほど宜しくお願いいたします。