14
Wiki スパムの傾向と対策 Date : 2005.08.01 Usage : UnixUser200510月号向け記事の構成検討 Author: 塚本牧生 <[email protected]>

Wikiスパムの傾向と対策

Embed Size (px)

DESCRIPTION

Composition idea made before magazine article is written. Explanation of behavior of spam robot and proposal of counter measures against this.

Citation preview

Page 1: Wikiスパムの傾向と対策

Wikiスパムの傾向と対策

Date : 2005.08.01Usage : UnixUser2005年10月号向け記事の構成検討Author: 塚本 牧生 <[email protected]>

Page 2: Wikiスパムの傾向と対策

構成

� 概要(2~3ページ)� 実装例(3~4ページ)� まとめ(1ページ)

Page 3: Wikiスパムの傾向と対策

概要

� Wikiスパムとは� Wikiスパムの種類を説明� スパムロボットを知る

� クローラ化したロボットの挙動を提示

� スパム対策を考える� 被害までの流れと、各ステップで取れる対策

� Wikiスパムに対抗する� 「Wikiスパムに対抗する」を紹介� 対策法を列挙

Page 4: Wikiスパムの傾向と対策

Wikiスパムとは

� 広い意味でWikiスパムを定義する� コンテンツ改ざん�人が - わざと(荒らし)/誤操作で。

�ロボットが - スパム投稿の結果として。

� スパム(狭義の)�ロボットが – 宣伝、SEO目的で。

� Wikiスパム対策� 「人が」は良いコミュニティ作りと誤操作防止で対応できる。

� ここでは特にロボット(ツール)対策を考える。

Page 5: Wikiスパムの傾向と対策

スパムロボットを知る

� 「掲示板荒らし」の時代とは違う。� ページを取得しフォームから投稿。

� 投稿時のmethodはPOST。� Hiddenフィールドの値もちゃんと送信。�cookie、reffererを送ってくるものも少なくない。

� 「今時のスパムロボット」対策が必要。

xxxxx.xxxxxxxxxxx.net - - [28/Jul/2005:22:25:40 +0900] "GET /visit/index.cgi?Linux%A5%B6%A5%A6%A5%EB%A5%B9%2FPerl HTTP/1.1" 200 34383 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)“xxxxx.xxxxxxxxxxx.net - - [28/Jul/2005:22:25:43 +0900] "POST /visit/index.cgi HTTP/1.1" 302 310 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"xxxxx.xxxxxxxxxxx.net - - [28/Jul/2005:22:25:44 +0900] "GET /visit/index.cgi?Linux%a5%b6%a5%a6%a5%eb%a5%b9%2fPerl HTTP/1.1" 200 34556 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"

GETで巡回しながらフォームを探す

投稿はPOST、hiddenフィールドの日本語の値も送信

投稿結果からの

リダイレクトにも対応

Page 6: Wikiスパムの傾向と対策

スパム対策を考える

� ミサイルのタイムラインモデル(AsO, 塚本, 2005.07)� スパマの各アクションタイミングでのスパム対策を考える。

� 誰かの閲覧、クローラのアクセスまでが勝負。

開戦 索敵

アクセス フォーム検索

フォームを隠す

偽フォームをおく

発射

スパム投稿

着弾 爆発(=被害発生)

書き変え完了

ロボットを排除する

・Cookieなどスパムを排除する

すばやく修正する

・更新通知メール

・履歴と「戻す」機能

(誰かが閲覧)

(クローラ巡回)

(サーバ側処理)

投稿者を認証する

ロボットを排除する

・CAPTCHA

照準

(迎撃)

ブラックリスト

(IPアドレス、禁止URL、禁止Word、…)

更新 更新

適用

Copyright by AsO@麻生電子科学研究所 and 塚本 牧生Licensed under CC-Wiki 0.5 (http://creativecommons.org/licenses/by-sa/2.5/)

Page 7: Wikiスパムの傾向と対策

実装例

� ブラックリスト� ルールベースでのスパム対策の実装例を示す。

� 更新通知メール� 手作業での対応のサポートツール実装例を示す。

� フォームを隠す&ダミーフォームを作る� ロボットの行動パターンを考えた対策例を示す。

Page 8: Wikiスパムの傾向と対策

実装例:ブラックリスト

� ブラックリストページと、その解析部分を作る。

� 投稿内容をブラックリストと照らし合わせる。

投稿:スタート コメント:スタート

do_comment

do_write・凍結状態で編集権限がなければ拒否

・編集可能なページ以外であれば拒否

・・・・スパムチェックスパムチェックスパムチェックスパムチェックででででNGであればであればであればであれば拒否拒否拒否拒否

・保存

・メールでの更新通知

完了

Page 9: Wikiスパムの傾向と対策

実装例:更新通知メール

� 更新通知メールを作る

� ブラックリスト追加用のページを作る� ブラックリスト追加ページへのリンクをメールに載せる。

Date: Tue, 21 Feb 2006 01:15:04 +0900 (JST)From: [email protected]: [email protected]: [Wiki] UpdatedPageName--------REMOTE_ADDR = 172.28.19.172ADD_FILTER = http://yourwiki.example.com/index.cgi?addfilter=172.28.19.172--------UpdatedPageName--------= [[#rcomment]]+ - 2006-02-21 (Tue) 01:15:03 ''[[spammer]]'' : ○○が特価で販売!= - 2006-02-20 (Mon) 22:52:32 ''[[管理者]]'' : 更新メールの内容です。

Date: Tue, 21 Feb 2006 01:15:04 +0900 (JST)From: [email protected]: [email protected]: [Wiki] UpdatedPageName--------REMOTE_ADDR = 172.28.19.172ADD_FILTER = http://yourwiki.example.com/index.cgi?addfilter=172.28.19.172--------UpdatedPageName--------= [[#rcomment]]+ - 2006-02-21 (Tue) 01:15:03 ''[[spammer]]'' : ○○が特価で販売!= - 2006-02-20 (Mon) 22:52:32 ''[[管理者]]'' : 更新メールの内容です。

Page 10: Wikiスパムの傾向と対策

実装例:フォームを隠す

� ロボットには見えない編集フォームa. ページ全体をXML+XSLT化b. JavaScriptでフォーム生成

Page 11: Wikiスパムの傾向と対策

実装例:ダミーフォームを作る

� 人間には見えないトラップフォーム� CSSで非表示化� トラップフォームからの投稿者はブラックリストに追加

Page 12: Wikiスパムの傾向と対策

まとめ

� 「Stemming the menace of wiki spamming」(News Forge, 2005.06)の紹介。� 訳文 : Wikiスパムに対抗する (JAPAN.LiNUX.COM, 2005.06)

� スパム対策の考え方� 機械的に排除できるものは自動で排除

� ルールベースなので精度に限界がある。

� ルールを厳しくすれば一般利用者が不便になる。

� 機械のチェックをすり抜けたものは手作業で排除。� 人手なので対応できる規模に限界がある。

� Wikiシステムとしては、ルールベースのフィルタツールと、手作業を楽にするサポートツールの実装を考える。

Page 13: Wikiスパムの傾向と対策

参考:Wikiスパムに対抗する� 現在のWikiスパム関連の情報がまとまった記事。

� 初出 : Stemming the menace of wiki spamming(News Forge, 2005.06)� 訳文 : Wikiスパムに対抗する (JAPAN.LiNUX.COM, 2005.06)

� 主な対抗策

� 認証

� .htaccessによる認証など … 投稿者を限定する� CAPTCHA(画像認証)など … ロボットを排除する

� スパムの検出

� ブラックリストとホワイトリスト(投稿者のIPアドレス、単語、URLなど)� 内容分析。SpamAssasinの流用などが検討されている。� 行動に基づくバンリスト。

� その他

� スパムページを探し削除する。� リンクに「nofollow」属性を付ける(SEO効果をなくす)。� 使われていないゴーストWikiを停止する。

Page 14: Wikiスパムの傾向と対策

参考 : スパム被害までの時間軸(詳細版)

� 「Wikiスパムに対抗する」などを反映

フォームを隠す

・XML+XSLTで生成・JavaScriptで生成偽(罠)フォームをおく

・CSSでブラウザには不可視化

ロボットを排除する

・Cookie・Refferer検証・Hidden値検証・GET拒否・多重投稿拒否

・連続投稿拒否

・投稿間隔設定

スパムを検出する

・ブラックリスト

・ベイジアンフィルタ

すばやく修正する

・更新通知メール

・履歴と「戻す」機能

・時間モデレーション

ブラックリストを更新する

・専用更新画面

・通知メールにURL

投稿者を限定する

・認証

・TypeKey認証ロボット排除

・CAPTHA

ブラックリスト

(IPアドレス、禁止URL、禁止Word、…)

更新 更新

適用

開戦 索敵

アクセス フォーム検索

発射

スパム投稿

着弾爆発(=被害発生)

書き変え完了

(誰かの閲覧)

(クローラ巡回)

(サーバ側処理)

照準

(迎撃)