AbyssLukeのガイドライン(更新停止)

はてダから移転。このブログは更新されません。

俺がspam botの親ではないかという件について(追記あり)

とりあえずお詫びを入れておきます。(2010/02/19追記)

調査の結果、真のspam botの親はhyde2010jpということが判明しました。
というわけで「spam botの指令botだ」とz68k氏名指しで言っていたことはお詫びします。
ただし、ミステリアスな不審なtweetについてはreport for spamされてもおかしくないということを忘れないでください。spamを観測しているのであればbioにそう書くべきですし。いろいろと不審な点はあったのですよ。
というか「spam botの親は@abysslukeじゃない?」と名指しで言われたのはツバメ返し?ですか。
詳しくはtogetterを参照。
http://togetter.com/li/6222

以下昨日書いた文

※長いです
なんか@abysslukespam botを運営してるのではないかという疑惑がありますが、
はっきり言いましてそのようなbotは作っていません。
大量にアカウントを作成してfrom APIでパクりtweet等をすることは一切やっていません。

発端

2010/02/14

@muskabotに来ていたspam(from APIな変なbot等)を排除していて、そのfrom APIな変なbot(パクリtweet等をするbot)のfollowerなどを覗いていたら、bot制御用らしきアカウントを発見した。

これがウイルスバスターバスターbotとかを動かしている大本か! http://bit.ly/bbD1Hy [Win/Twn]

http://twitter.com/abyssluke/status/9069198359

tweetは日付に加え謎の情報があった。

制御用の情報が入ってるから、ボットネット指令アカウントだよこれ。 [Win/Twn]

http://twitter.com/abyssluke/status/9069252752

ということで、suspendを願うべく、急募を出した。

【急募】謎のボットネット指令アカウントとその手下botをreport for spamしてくれる人 ボットネット指令用らしきアカウント : http://bit.ly/bbD1Hy [Win/Twn]

http://twitter.com/abyssluke/status/9069455583

一応、bot制御用アカウントのfollowingには今回のfrom APIbotや、ウイルスバスターを嫌う人やbot(通称 ウイルスバスターバスターbot)があった。

今のfrom APIの謎のbotウイルスバスターバスターbotもz68k系列のbotnetみたいです。 [Win/Twn]

http://twitter.com/abyssluke/status/9069566119
2010/02/15

発見した次の日にbot制御用アカウントのfollowingが増えていた。

z68k系 bot netの手下増えてたのでreport for spamする作業 [Win/Twn]

http://twitter.com/abyssluke/status/9127679464
2010/02/16

さらに次の日。bot制御用アカウントに手下のbotのリストが作成されていた。

自ら認めちゃってるのかよw z68k系botnet 公式リスト http://bit.ly/cUimhk [Win/Twn]

http://twitter.com/abyssluke/status/9162303889

そのあと、誰かのwatch-spamリストにbot制御用アカウントと@abysslukeが追加されていて、リストを作成した人のtweetを軽く読み@abysslukeがspamの発信元ではないかという扱いをされていると読み取れた為思わず愚痴などを吐きながら(この後tweetをよく読み、殆どのtweetは早とちりしすぎだったという理由で削除済み)弁明。

言っておくけど俺はz68kとは無関係です。 [mb-Mvt/PSNID:abyssluke]

http://twitter.com/abyssluke/status/9179818440

一応言わせてもらう。俺は不審なfrom APIbotムスカbotのフォロワーで発見し、調べた所z68kというbot指令アカウントとその下で動いているbotを発見しただけである。 [mb-Mvt/PSNID:abyssluke]

http://twitter.com/abyssluke/status/9179907586

もうz68k過敏症になってるわ… [Win/Twn]

http://twitter.com/abyssluke/status/9180185726

spamウォッチと読めたから俺がスパマー?と誤解してしまうじゃないか。 [Win/Twn]

http://twitter.com/abyssluke/status/9180206396

もう一度言っておくけどspambot監視botなんて動いてません。 [Win/Twn]

http://twitter.com/abyssluke/status/9180425996

もう一度はいらんか。ただリストの説明文はちゃんと書いた方がいい。 [Win/Twn]

http://twitter.com/abyssluke/status/9180444979
2010/02/18

そして今日。Tweenを起動していたらこのようなReplyが飛んできた。

http://twitter.com/z68k/status/9239350560 で@abyssluke氏を名指しするまで半信半疑だったけどね。

http://twitter.com/cokeraita/status/9260484315

もしや…と思い確認したところ。

@cokeraita ボットの親は @abyssluke じゃないの?

http://twitter.com/z68k/status/9239350560

ふざけるな。

んで

発言や関連するアカウントなどを追っていたらこの記事がかなり長くなりそうなのでtogetterにまとめます。
→まとめました。 http://togetter.com/li/6222

ガーラ湯沢(bot)、更新。

d:id:abyssluke:20090728:1248771807でちらっと触れた、自分のアカウント(@abyssluke)のホームタイムラインをチェックし反応するワードがあれば「○○○と聞いて(ガラッ」と自分のアカウントにpostするbot
「AbyssLuke専用がらったー(テイルズ仕様)」 「テイルズ オブ がらったー」(2010/02/11に名称変更。クライアント名の後にバージョンが入ります。別名:ガーラ湯沢)ですが、実は昨日、今日と弄ってました。

  • 1tweetに複数、反応ワードがあった場合は複数ガラッするように(Ex:「テイルズ、ヴェスペリアと聞いて(ガラッ」)
  • Yahooの日本語形態素解析により、短縮URLなどに反応するワードが含まれていた場合などの誤爆を解消。

様々な問題もありました。日本語形態素解析で「グレイセス」が「グレイ|セス」として解釈されてしまう問題もあったのでそこは何とかしてたりします。あと正しく認識させるために単語を分割させるとか(Ex:「テイルズオブヴェスペリア」のようにスペース無しで来た場合、Yahooに投げる前に「テイルズ オブ ヴェスペリア」のようにスペースを挿入)

動作の仕組み

  1. OAuth認証で@abysslukeのhome_timelineを取得する。
  2. tweetの中に反応ワードがあるかチェックする。ただしストップワードが含まれる場合や自分の発言の場合は次のtweetをチェックする。
  3. Yahoo!の日本語形態素解析にtweetを解析してもらう。
  4. 抽出した名詞リストの中に反応ワードがあるかチェックする。マッチした場合はガラッリストに入れる。
    • "グレイセス"などは2つに分割されてしまうため、例えば"グレイ"と"セス"があった場合に「グレイセス」としてガラッする(「グレイ」が先にマッチしたあとに「セス」がマッチすればOK)。
  5. マッチしている場合はOAuth認証でガラッpostする。
  6. すべてのtweetをチェックするまで2〜5を繰り返す。

プライバシーとか動作環境とかその他

  • マッチしたtweetやガラッpostした事実等をログファイル/データベースに記録していますが、外部からは参照できない場所(wwwフォルダ外)に保存しているため、@abyssluke以外は見られません。
  • さくらのレンタルサーバ上で動作。Mac動作中は5分間隔、それ以外は不定期に動作中です。 GAE-Cronで約3分間隔で動作中です。
  • AbyssLuke専用がらったー(テイルズ仕様) テイルズ オブ がらったーはYahoo! JapanのWebサービスを利用しています。


Web Services by Yahoo! JAPAN

botとかをOAuthに対応させてみた。

Wassr版を7/31で終了することにした@muskabotだが、00分の時報(担当サーバーがPHP4なサーバーであるため。動作確認はしてないが)以外の処理をOAuthに対応させてみた。クライアント名が「Romuska Paro Ur Laputa」になっているはず。
ついでに、いつの間にか作っていた、Macの電源が付いている+ネットワークに接続されている場合に稼働する俺用がらったー(特定ワードをTL上で発見すると「○○○と聞いて(ガラッ」とPOSTする)もOAuthに対応させてみた。

ライブラリとして6月に使ってみたtwitterOAuthを使った。
from 〜を簡単にいじれるのはTwitter+OAuthかもしれないな。

@muskabotの今後について

@muskabotについて。
もしかするとサービス停止の可能性もあるかもしれない。
bot運営に対するモチベーションの低下もある。
wassr版は動作させっぱなしで放置している。

なんか@muskabot見ててつまらないなと思ってきた。
存在している価値があるか?と思ってしまう。
@bombtterのデータで生きているbotはいくらでもある。
@muskabotは追加でReplyする機能もつけたり、時報機能もつけたりしているが。
正直、(人工無能だが)@ha_ru_kaや(@bombtterのデータを使っている)@drizzlebotには勝てないと思っている。

とりあえず7月末までは動作を継続させる。それ以降は考える。
wassr版に関しては停止の方向で。Twitterダウンチェックも。一応言っておくと規約違反なんだよね(botアカウントとして申請していないので)…

    • -

//自分が所持しているドメイン(pspelp.comではない)2個の更新期限がそろそろ近づいてきたようだ。
//1個は更新、もう1個は破棄する。
//一応このドメインの管理はムームードメインだったりする(安い時に取得したドメインなので)

@muskabotで使っているサーバーのuptimeを報告するbot作った。

http://twitter.com/Asch_the_Bloody
@abysslukeが運用するbot(botと言えるのは@muskabotくらいしか無いが)で使用されているサーバーのuptimeを報告するbotを作ってみた。
ちなみにIDは適当に付けただけで変更する可能性あり。由来はTOAのアッシュより。アイコンもアッシュ。POST時のユーザー認証のIDはメールアドレス。

@muskabotの時報POST時、自分(@abyssluke)の発言収集処理(1時間おきの処理(CRONからの呼び出し)のみに限る)時に動作する。
ついでなので家のPowerMac G4のuptimeも報告(30分おき)。ただし電源が入っている&インターネットに接続されていることが前提。

まぁ自分用というより誰得。

制作者が解説する@muskabot(Reply反応文字列編)

Twitter@muskabotに、以下の言葉を含んだReplyを投げると反応するかもしれません。下に行くほど優先度大。

最終更新:2009/04/26 10:50
※一部文字列は自主規制フィルタが掛かっています。

  • 乱数
  • ムスカ
  • 大佐
  • ありがとう
  • 麻生
  • ち○こ
  • 名前は
  • 何者
  • 王家
  • 核兵器
  • ○ね
  • ○ね
  • 待って
  • まって
  • 教えて (NEW)
  • クッキング
  • 料理
  • 魔神剣
  • 天気
  • ハガレン
  • ごみ
  • ゴミ
  • よみがえらせるな
  • よみがえるな
  • 蘇るな
  • 蘇らないで
  • 何の真似だ
  • うるさい
  • うるせえ
  • うるせぇ
  • うるせー
  • ウザい
  • うざい
  • ウザイ
  • だまれ
  • 黙れ
  • 黙りな
  • @muskabot 爆発しろ
  • ムスカ爆発しろ
  • 大佐爆発しろ
  • @muskabot爆発しろ
  • ムスカbot爆発しろ
  • ムスカ大佐爆発しろ
  • ラピュタ王爆発しろ
  • ラピュタ爆発しろ
  • nullpo
  • nurupo
  • ぬるぽ
  • ヌルポ
  • バルス
  • ばるす

制作者が解説する@muskabot(Twitterからのリンク用)

※最終更新 2009/12/02 06:42
@muskabot

ムスカbot」は、天空の城ラピュタでおなじみ、「ロムスカ・パロ・ウル・ラピュタ」(keyword:ムスカ)のbotです。
Twitter上で稼働しています(TwitterIDはmuskabotです)。
Wassr版は7/31を持って終了しました。アカウントは削除済みです。

基本動作

  • @bombtterからの爆発情報を元に、「見ろ!○○がゴミのようだ!」などと発言します。
  • 00分/30分に時報動作を行います。
  • Replyを受けた場合、それに反応することがあります。

既知の不具合など

  • 爆発してから1分以上経つ/Replyに反応する文字列を入れたつもりなのに@muskabotの反応がない気がする。
    • @muskabotはレンタルサーバー上で動いています。
    • CRONで1分おきに動かしたいものですが、「ジョブの動作間隔は1時間以上間隔あけろ!」というのが現実です。
    • そのため管理するWebサイトからimgタグで呼び出して、模擬CRONみたいなことをしています。
    • なので、仕様です。反応の遅さはWebサイトのアクセス数に影響するかもしれません。
    • もしかするとレンタルサーバーが落ちている可能性もあります。
    • またはプログラムのバグか。TwitterAPIがおかしいか。
    • 自宅サーバーや専用サーバーで動かしてみたいもんです。
    • 反応までまったりお待ちください。
  • 爆発が連続して2回行われる場合があるが、その際最新の1件が優先され、古いものは取りこぼすことがある。
    • 最近bombtterの仕様が変わったのかは知りませんが爆発待ち数が多いと@muskabotが処理する前に次の爆破が実行される場合があります。
    • @muskabotのプログラムの仕様です。大佐も新しい物しか見ていないようです。
    • 改善はできますがプログラム構造が変わるので面倒→処理が滞っていると連続POSTしまくりだしやりたくない現状…
  • Replyに反応する文字列が少ない気がする/なんかReplyのつじつまがあわない。
    • 仕様です。
    • Replyに含まれる文字の中に反応する文字列があるか、部分一致で処理させています。また反応文字列の優先度も独断で設定しています。そのためつじつまが合わないことがあります。
  • @muskabotからのReplyがうるさい。
    • TwitterのReply仕様変更に伴い、例えば「. @abyssluke に伝えろ。予定通り @bombtter を爆破したと。」のようなPOSTが投稿された場合、@abysslukeと@bombtterのReplyタブにそのPOSTが入るようになりました。
    • 自分のPOSTの中に「@muskabot」が含まれていると反応する可能性があります。口は災いの(ry
    • とりあえず、上のような場合、これはTwitterの仕様です。
    • @muskabotがフォローしている人以外は@を@にするなどしたいですが、プログラム構造が(ry
      • →(2009/06/25) @は@に置換するようにしました。これで自ら@muskabotに@してReply処理された場合を除きReply飛ばないはず。
    • それ以外はムスカの仕様です。
      • ただし、確率動作にさせる予定はあります。8回Replyして2回Replyしないなど。
  • ReTweet等に反応してしまう
    • 上に書かれているTwitterの仕様です。
    • が、2009/04/29から頭に「RT @」、「ReTweet @」、「RT:」が付くReplyに関しては反応しないようになりました。ただし、バルスを除く。
    • ※「ムスカwwwwww RT @muskabot 〜」等、頭にReTweetの識別子が付いていない場合は今の所反応します。ご注意ください。
  • @muskabot自体がうるさい。
    • 仕様です。
  • @muskabotがfollow/remove返ししてこない。
    • (2009/06/30追記)「@muskabot followして」(「@muskabot followしてください」など、「@muskabot followして」がreplyの最初に来ていればOK。なので「@muskabot followしてこないでください」と言われてもfollowします)とreplyすると自動的に@muskabotからfollowします。removeも同様に「@muskabot removeして」でOKです。
      • もしかしたらOAuthへの変更以降、follow/remove処理コードを変えていないので正常に動いていない可能性(あとでなおします)。→なおしました。
      • 反応すると「@ユーザーID [R2FR*1-(F(ollow) or R(emove)))]〜」なReplyを送信します。
      • protectedな方は使えません。相互フォロー中のみ「@muskabot removeして」は可能ですが、removeされてしまうと「@muskabot followして」をしても反応しませんのでご注意ください。
    • @abysslukeが不定期的に外人やspamをチェック&ブロックしています。また上のfollowコマンドを行っていない場合のフォロー返しも同時に行っています(このような手動フォロー返しの場合は基準を設けているため、場合によってはフォロー返しを行わない可能性もあります)。
    • ちなみに、フォロー連絡のメールは切ってあります。
  • from APIじゃないけど?
    • 2009/07/28から、ほとんどの処理でOAuthに対応させました。そのためクライアント名は「Romuska Paro Ur Laputa」として投稿するようになりました。
    • 2009/08/31に、すべてOAuthに対応しました*2
  • @bombtterと@muskabotの爆発物が一致しない。
    • どうやら@bombtterの仕様変更により、@bombtter_rawで提供される情報は@bombtter_longで流れる情報も混ざっているようです。

いつかやりたいToDo

  • ReTweet等を無視する
  • Reply処理の確率での動作
  • コードを整理する(通信処理とかをclass化?)。
  • 他のbot/Webサービスから情報を得てPOSTする。
  • Reply処理の強化。
  • followingリストを取得して、フォローしている人以外のIDの@を@にする。
  • etc.

技術文書的な何か

基本編:d:id:abyssluke:20090419:1240128522
Reply反応文字列編:d:id:abyssluke:20090421:1240273283

thanks

制作者について

  • 制作者は@abysslukeです。
  • 何かありましたら@abyssluke宛にReplyなどで連絡ください。
  • Skypeはたまにログインしています。

*1:Reply To Follow/Removeの略

*2:00分時報を動かしているs87.xrea.com上での処理がある日からうまく動かなくなった事が30日に判明し、さくらのサーバーへ移転すると同時にOAuth対応したのは秘密