BugTrack/2200
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* [spam] URI spamフィルタ (Part 1) とブロック機構: 概要 [...
- ページ: [[BugTrack2]]
- 投稿者: [[henoheno]]
- 優先順位: 重要
- 状態: 提案
- カテゴリー: 本体新機能
- 投稿日: 2006-11-18 (土) 23:48:10
- バージョン:
#contents
** 関連: [#dc60ad85]
- [[BugTrack/772]] [SPAM] Wiki SPAMming
- [[開発日記/2006-11-04]] (official/dev) 内容ベースのspam...
- [[開発日記/2006-11-12]] spam.php: 冒険者向け: 現状の組...
- [[BugTrack2/207]]: [spam] badhost: A list of URI redire...
- [[BugTrack2/208]]: [spam] badhost: list of Jacked sites...
** 修正 [#pd14f285]
- [[cvs:lib/spam.php]]
- [[cvs:lib/spam_pickup.php]]
- [[cvs:spam.ini.php]]
//- [[cvs:domain.ini.php]]
spamフィルタのコンセプト実装について、実現している部分を...
+ ''URIの計測機構'' - URI追加型スパム(下記)の「ハイパーリ...
-- URIの直書きによる外部リンク生成要求の個数 (記法を問わ...
-- HTML Anchor タグ、phpBB BBCode ないしその派生記法によ...
+ ''上記フィルタを利用したブロック機構''
-- (comment、pcomment、bugtrack、trackerなど、特定のシチ...
-- ブロックされた側には、改行コード一つのみが送信されます。
+ ''ブロック内容の通知機構'' - ブロックした投稿内容につい...
Subjectの例 ('[blocked]' が挿入される):
[PukiWiki] [blocked] 自作プラグイン/csv2newpage.inc.php
** 概要: URI追加型スパム [#a9766872]
他のWebアプリケーション(特に、第三者でも投稿できるHTMLフ...
このスパム行為の発信者には、ある程度明確な傾向があります...
*** URIに関する工夫 [#l00a18d6]
単純な(文字列比較や、正規表現による)フィルタを回避できる...
単純な例: メッセージとURI
buy foobar http://example.org/buy/foobar
buy foobar http://example.org#buy_foobar
buy http://victim.example.org/go?http%3A%2F%2Fnasty.exa...
order foobar HTTP://EXAMPLE.ORG/BUY/FOOBAR
URIに使用されるドメイン名にはいくつかの傾向があります。
- 既存のサイトの一部 (サブドメイン・ディレクトリ) を借用...
- レンタルWebスペースやブログレンタルサイトのようなサービ...
- 独自にスパム用のドメインを取得したもの -- ドメイン名は...
いずれも、取得したドメインについては、(開設されてから閉鎖...
*** メッセージに関する工夫 [#d2d1dd0b]
ひな型と、その時追加したいURIを組み合わせ、生成したデータ...
特定の記法を解釈するWebアプリケーションを狙って、何らかの...
例: URIを(同時に)単一の方法で羅列
[ url=http://example.org/buy/foobar]Buy Foobar[/url]
[ url=http://example.org/buy/foobar]Buy Foobar[/url]
[ url=http://example.org/buy/foobar]Buy Foobar[/url]
また、複数のWebアプリケーションでも(羅列したURIの)どれか...
例: 同じURIを(同時に)複数の方法で羅列
Nice site! Check about foobar
http://example.org/buy/foobar
<a href=" http://example.org/buy/foobar ">buy foobar</a>
[ url=http://example.org/buy/foobar]Buy Foobar[/url]
AnchorタグやBBCodeなどの記法を用いたuri spamの特徴として...
<a href= http://example.org >buy example</a> <= "</a>...
<a href="http://nasty.example.com">visit http://nasty.ex...
<a href=\'http://nasty.example.com/\' >discount foobar</a>
[ url]http://nasty.example.com/[/url]
[ url=http://nasty.example.com]visit http://nasty.exampl...
ターゲットとしたサイトごとに適切な記法を使わない点につい...
*** 自動投稿に関する工夫 (対象、頻度、分量に関する工夫) [...
着実な積み重ねによって、ターゲットとしたサイトを侵食する...
例えば:
- プログラムを使ってスパムを投稿させます。
-- 投稿対象として認識したサイトは次回以降も活用します。
-- ターゲットのサイトの大元(ネットワークプロバイダ)や、発...
- 管理側へ対策として:
-- データの量や頻度を非常に大きくする事があります。
-- 管理側に気付かれないようにURIを追加する方法があるなら...
-- 複数のIPアドレスから投稿を行わせます。
--- 異なるIPアドレスからのリトライ、ないし多重投稿を行わ...
--- 一度利用したIPアドレスは数日~数週間後に再利用する事...
-- 投稿した内容が掲載されているかを確認し、異常があれば確...
** URI追加型スパムのブロックについて [#d04277c7]
上記のような特徴をもっている自動スパムに対して、従来型の...
- IPアドレスによるブロック:
-- (静的) ホスト単位の拒否: 次からは異なるIPアドレスで投...
-- (静的) ネットワーク単位の拒否: 強いが、反動も大きい (...
-- (動的) リアルタイムブロックリスト(RBL)の利用 -- 有効性...
- NGワードによるブロック:
-- 内容と、機能の柔軟性次第。また更新が必要 (メンテナンス...
「URI追加型スパム」は、(投稿テストを除き)基本的に必ずURI...
--------
* コメント: URIが既に含まれている場合の挙動 [#m138a078]
- 今最新のCVSでspam.php関連を評価させて頂いていますが、適...
-- こんにちは :) 仰る通りで、現状は融通の利かない防御壁し...
--- 例えばそれが本当に不要なスパムの場合、仮にそのような...
-- 回避用のハックとしては、例えば、「とある IPアドレスか...
-- edit 周りの解決策としてはご指摘されている様に、現状のe...
-- originalのcheckよけとして、function check_uri_spamの&b...
--- 'original' をチェック対象から外してしまう、というのは...
--- ($varsの改変なんてやらないで)POSTされた内容として全て...
--- 最大の問題は、'original' の有効性/無効性について確証...
--- いろいろとコメントありがとうございます。&br;とりあえ...
- 具体的に困るのは、むしろ対策後で、たとえばspam.ini.php...
- 'original' については、ほぼ現状のデータ構造に依存した無...
-- [[cvs:lib/pukiwiki.php]] (1.21)
-- [[cvs:pukiwiki.ini.php]] (1.149)
- official に「edit時に限り 'original' を対象にしない修正...
-- [[official:WebTrack]] に記述したほうがいい? -- &new{...
-- [[official:WebTrack/84]] -- &new{2009-03-07 (土) 15:1...
//#comment
--------
* コメント: ブロック結果とそのバリエーション [#k68b8f3f]
- 追加のアイデアとしてもう一つ。発信者がスパムを登録する...
- spam-botが登録後にリロードしてくるようになるだけの気も...
- 本当は一定時間維持できたら良いんですけど・・・。ますま...
- 結果のあしらい方は内部の処理と独立しているので、表現方...
- 他の例: (1)即座に exit() する(最初こうでした)。 (2)即座...
- N秒動作を停止する。攻撃側の足をひっぱるのかと思いきや、...
//#comment
--------
* コメント: goodhostに対する処理 (無視したい対象に対する...
- うちで動かしているwikiでMenuBarやtopページのリンクがご...
-- ホワイトリストであらかじめ問題のないサイトを列挙してお...
-- 具体的にはnon_uniquriのチェック直前に、$pickupsをuri_p...
-- こんにちは :) 現時点のspam_uri_pickup() は前処理として...
-- さて、wikipediaについては '.wikipedia.org' を goodhost...
-- 既存のspam排除ルールの場合、MenuBarの全リンクをeditで...
-- 実現/維持のためのコストを案じておられ、wikipedia のURI...
-- blocklist(spam.ini.php)に書かれているgoodhostのルール...
-- 実例の提示をありがとうございます。goodhost については...
-- goodhostについては了解です。InterWiki化はのんびりと進...
-- [[CVS版]] を対象に、この件のフォローを盛り込みました。...
--- [[cvs:lib/spam.php]] (r1.32)
--- [[cvs:spam.ini.php]] (r1.76)
-- この処理を追加したせいで後続の処理におかしい所が出たと...
-- ところでInterWikiのつけ方の案ですが、こんな感じはどう...
現在: CV:[[塩沢兼人:http://ja.wikipedia.org/wiki/%E5%A1%...
案1 : CV:[[塩沢兼人>Wikipedia:塩沢兼人]] -- 汎用的だがま...
案2 : [[CV:塩沢兼人]] -- 最短。意外と...
//#comment
--------
* コメント [#pd172587]
- JavaScriptにある乱数を生成させて、PHP側でも同じアルゴリ...
-- ありますよ。 -- &new{2007-01-17 (水) 09:45:38};
-- 別のアイデアの提案ですね。 JavaScriptで駆動できるとい...
-- このアイデアのポイントはおそらくJavaScriptの方ではなく...
-- response や digest を生成する部分を、JavaScriptやflash...
--- なるほど。秘匿性の面で不安が残ると言うことですか。 --...
- [[BugTrack2/200]] の現状の感触。「URIの計測およびパター...
- 最近のラグナロク系Wikiのスパムを見ると''URL改変型''が多...
-- お疲れ様です。しかし [[BugTrack2/53]] に書いたのと同じ...
-- うーん。私の場合[[RO>http://ro.logue.be/]]と[[FF11>htt...
- わざわざ新しいページを作るのもアレかな?という事でこち...
foreach(array_keys($array) as $uri) {
$_uri = & $array[$uri];
array_rename_keys($_uri, $parts, TRUE, $default);
$offset = $_uri['scheme'][1]; // Scheme's offset = URI...
foreach(array_keys($_uri) as $part) {
$_uri[$part] = $_uri[$part][0]; // Remove offsets
}
}
foreach(array_keys($array) as $uri) {
$_uri = & $array[$uri];
if ($_uri['scheme'] === '') {
unset($array[$uri]); // Considererd harmless
continue;
}
unset($_uri[0]); // Matched string itself
$_uri['area']['offset'] = $offset; // Area offset for ...
}
となっていて、各uriの検索オフセットではなく最終のuriで得...
//#comment
終了行:
* [spam] URI spamフィルタ (Part 1) とブロック機構: 概要 [...
- ページ: [[BugTrack2]]
- 投稿者: [[henoheno]]
- 優先順位: 重要
- 状態: 提案
- カテゴリー: 本体新機能
- 投稿日: 2006-11-18 (土) 23:48:10
- バージョン:
#contents
** 関連: [#dc60ad85]
- [[BugTrack/772]] [SPAM] Wiki SPAMming
- [[開発日記/2006-11-04]] (official/dev) 内容ベースのspam...
- [[開発日記/2006-11-12]] spam.php: 冒険者向け: 現状の組...
- [[BugTrack2/207]]: [spam] badhost: A list of URI redire...
- [[BugTrack2/208]]: [spam] badhost: list of Jacked sites...
** 修正 [#pd14f285]
- [[cvs:lib/spam.php]]
- [[cvs:lib/spam_pickup.php]]
- [[cvs:spam.ini.php]]
//- [[cvs:domain.ini.php]]
spamフィルタのコンセプト実装について、実現している部分を...
+ ''URIの計測機構'' - URI追加型スパム(下記)の「ハイパーリ...
-- URIの直書きによる外部リンク生成要求の個数 (記法を問わ...
-- HTML Anchor タグ、phpBB BBCode ないしその派生記法によ...
+ ''上記フィルタを利用したブロック機構''
-- (comment、pcomment、bugtrack、trackerなど、特定のシチ...
-- ブロックされた側には、改行コード一つのみが送信されます。
+ ''ブロック内容の通知機構'' - ブロックした投稿内容につい...
Subjectの例 ('[blocked]' が挿入される):
[PukiWiki] [blocked] 自作プラグイン/csv2newpage.inc.php
** 概要: URI追加型スパム [#a9766872]
他のWebアプリケーション(特に、第三者でも投稿できるHTMLフ...
このスパム行為の発信者には、ある程度明確な傾向があります...
*** URIに関する工夫 [#l00a18d6]
単純な(文字列比較や、正規表現による)フィルタを回避できる...
単純な例: メッセージとURI
buy foobar http://example.org/buy/foobar
buy foobar http://example.org#buy_foobar
buy http://victim.example.org/go?http%3A%2F%2Fnasty.exa...
order foobar HTTP://EXAMPLE.ORG/BUY/FOOBAR
URIに使用されるドメイン名にはいくつかの傾向があります。
- 既存のサイトの一部 (サブドメイン・ディレクトリ) を借用...
- レンタルWebスペースやブログレンタルサイトのようなサービ...
- 独自にスパム用のドメインを取得したもの -- ドメイン名は...
いずれも、取得したドメインについては、(開設されてから閉鎖...
*** メッセージに関する工夫 [#d2d1dd0b]
ひな型と、その時追加したいURIを組み合わせ、生成したデータ...
特定の記法を解釈するWebアプリケーションを狙って、何らかの...
例: URIを(同時に)単一の方法で羅列
[ url=http://example.org/buy/foobar]Buy Foobar[/url]
[ url=http://example.org/buy/foobar]Buy Foobar[/url]
[ url=http://example.org/buy/foobar]Buy Foobar[/url]
また、複数のWebアプリケーションでも(羅列したURIの)どれか...
例: 同じURIを(同時に)複数の方法で羅列
Nice site! Check about foobar
http://example.org/buy/foobar
<a href=" http://example.org/buy/foobar ">buy foobar</a>
[ url=http://example.org/buy/foobar]Buy Foobar[/url]
AnchorタグやBBCodeなどの記法を用いたuri spamの特徴として...
<a href= http://example.org >buy example</a> <= "</a>...
<a href="http://nasty.example.com">visit http://nasty.ex...
<a href=\'http://nasty.example.com/\' >discount foobar</a>
[ url]http://nasty.example.com/[/url]
[ url=http://nasty.example.com]visit http://nasty.exampl...
ターゲットとしたサイトごとに適切な記法を使わない点につい...
*** 自動投稿に関する工夫 (対象、頻度、分量に関する工夫) [...
着実な積み重ねによって、ターゲットとしたサイトを侵食する...
例えば:
- プログラムを使ってスパムを投稿させます。
-- 投稿対象として認識したサイトは次回以降も活用します。
-- ターゲットのサイトの大元(ネットワークプロバイダ)や、発...
- 管理側へ対策として:
-- データの量や頻度を非常に大きくする事があります。
-- 管理側に気付かれないようにURIを追加する方法があるなら...
-- 複数のIPアドレスから投稿を行わせます。
--- 異なるIPアドレスからのリトライ、ないし多重投稿を行わ...
--- 一度利用したIPアドレスは数日~数週間後に再利用する事...
-- 投稿した内容が掲載されているかを確認し、異常があれば確...
** URI追加型スパムのブロックについて [#d04277c7]
上記のような特徴をもっている自動スパムに対して、従来型の...
- IPアドレスによるブロック:
-- (静的) ホスト単位の拒否: 次からは異なるIPアドレスで投...
-- (静的) ネットワーク単位の拒否: 強いが、反動も大きい (...
-- (動的) リアルタイムブロックリスト(RBL)の利用 -- 有効性...
- NGワードによるブロック:
-- 内容と、機能の柔軟性次第。また更新が必要 (メンテナンス...
「URI追加型スパム」は、(投稿テストを除き)基本的に必ずURI...
--------
* コメント: URIが既に含まれている場合の挙動 [#m138a078]
- 今最新のCVSでspam.php関連を評価させて頂いていますが、適...
-- こんにちは :) 仰る通りで、現状は融通の利かない防御壁し...
--- 例えばそれが本当に不要なスパムの場合、仮にそのような...
-- 回避用のハックとしては、例えば、「とある IPアドレスか...
-- edit 周りの解決策としてはご指摘されている様に、現状のe...
-- originalのcheckよけとして、function check_uri_spamの&b...
--- 'original' をチェック対象から外してしまう、というのは...
--- ($varsの改変なんてやらないで)POSTされた内容として全て...
--- 最大の問題は、'original' の有効性/無効性について確証...
--- いろいろとコメントありがとうございます。&br;とりあえ...
- 具体的に困るのは、むしろ対策後で、たとえばspam.ini.php...
- 'original' については、ほぼ現状のデータ構造に依存した無...
-- [[cvs:lib/pukiwiki.php]] (1.21)
-- [[cvs:pukiwiki.ini.php]] (1.149)
- official に「edit時に限り 'original' を対象にしない修正...
-- [[official:WebTrack]] に記述したほうがいい? -- &new{...
-- [[official:WebTrack/84]] -- &new{2009-03-07 (土) 15:1...
//#comment
--------
* コメント: ブロック結果とそのバリエーション [#k68b8f3f]
- 追加のアイデアとしてもう一つ。発信者がスパムを登録する...
- spam-botが登録後にリロードしてくるようになるだけの気も...
- 本当は一定時間維持できたら良いんですけど・・・。ますま...
- 結果のあしらい方は内部の処理と独立しているので、表現方...
- 他の例: (1)即座に exit() する(最初こうでした)。 (2)即座...
- N秒動作を停止する。攻撃側の足をひっぱるのかと思いきや、...
//#comment
--------
* コメント: goodhostに対する処理 (無視したい対象に対する...
- うちで動かしているwikiでMenuBarやtopページのリンクがご...
-- ホワイトリストであらかじめ問題のないサイトを列挙してお...
-- 具体的にはnon_uniquriのチェック直前に、$pickupsをuri_p...
-- こんにちは :) 現時点のspam_uri_pickup() は前処理として...
-- さて、wikipediaについては '.wikipedia.org' を goodhost...
-- 既存のspam排除ルールの場合、MenuBarの全リンクをeditで...
-- 実現/維持のためのコストを案じておられ、wikipedia のURI...
-- blocklist(spam.ini.php)に書かれているgoodhostのルール...
-- 実例の提示をありがとうございます。goodhost については...
-- goodhostについては了解です。InterWiki化はのんびりと進...
-- [[CVS版]] を対象に、この件のフォローを盛り込みました。...
--- [[cvs:lib/spam.php]] (r1.32)
--- [[cvs:spam.ini.php]] (r1.76)
-- この処理を追加したせいで後続の処理におかしい所が出たと...
-- ところでInterWikiのつけ方の案ですが、こんな感じはどう...
現在: CV:[[塩沢兼人:http://ja.wikipedia.org/wiki/%E5%A1%...
案1 : CV:[[塩沢兼人>Wikipedia:塩沢兼人]] -- 汎用的だがま...
案2 : [[CV:塩沢兼人]] -- 最短。意外と...
//#comment
--------
* コメント [#pd172587]
- JavaScriptにある乱数を生成させて、PHP側でも同じアルゴリ...
-- ありますよ。 -- &new{2007-01-17 (水) 09:45:38};
-- 別のアイデアの提案ですね。 JavaScriptで駆動できるとい...
-- このアイデアのポイントはおそらくJavaScriptの方ではなく...
-- response や digest を生成する部分を、JavaScriptやflash...
--- なるほど。秘匿性の面で不安が残ると言うことですか。 --...
- [[BugTrack2/200]] の現状の感触。「URIの計測およびパター...
- 最近のラグナロク系Wikiのスパムを見ると''URL改変型''が多...
-- お疲れ様です。しかし [[BugTrack2/53]] に書いたのと同じ...
-- うーん。私の場合[[RO>http://ro.logue.be/]]と[[FF11>htt...
- わざわざ新しいページを作るのもアレかな?という事でこち...
foreach(array_keys($array) as $uri) {
$_uri = & $array[$uri];
array_rename_keys($_uri, $parts, TRUE, $default);
$offset = $_uri['scheme'][1]; // Scheme's offset = URI...
foreach(array_keys($_uri) as $part) {
$_uri[$part] = $_uri[$part][0]; // Remove offsets
}
}
foreach(array_keys($array) as $uri) {
$_uri = & $array[$uri];
if ($_uri['scheme'] === '') {
unset($array[$uri]); // Considererd harmless
continue;
}
unset($_uri[0]); // Matched string itself
$_uri['area']['offset'] = $offset; // Area offset for ...
}
となっていて、各uriの検索オフセットではなく最終のuriで得...
//#comment
ページ名: