やっぱDoS攻撃てかスパムが原因か

ファンブログの「コメント・トラックバック機能に関するお知らせ」

http://fanblogs.jp/fanbloginfo/archive/118/0より

 

2013年07月19日
日頃よりファンブログをご利用いただき、誠にありがとうございます。

ファンブログでは、負荷対策の一環として
一時的に、コメント・トラックバックを非表示および、機能を停止させていただいております。
問題が解決しましたら、再開させていただきます。

ご利用中の会員様におかれましては、大変ご迷惑をおかけいたしますが、
何卒ご理解賜りますよう、お願い申し上げます。

最近のファンブログの不調の原因はスパムの過剰アクセス

やっぱ原因はDoS攻撃か。てか、これはDos攻撃とはいわんな。スパムが原因か。

DoS攻撃 – Wikipediaより

<blockquote”>DoSはネット上のトラフィック(通信量)を増大させ、通信を処理している回線やサーバの処理能力(リソース)を占有することによって、システムを使用困難にしたり、ダウンさせたり、過負荷によってサーバの機材そのものを誤動作させたり破壊したりする。 例えていうと、「ターゲットのもつ電話機に無言電話やいたずら電話を大量に発信して、ターゲットが正常に電話機を使用(受・発信)できないような状態にすること」であると考えると理解しやすい。

実は、昨年の暮れに、このブログの各カテゴリーの最新記事を取得して表示するというスクリプトを作ったんだけど、ちゃんと動いたんでヤバいかなと思っていた。でも、さすがにそれは書かなかった。ヤバいから。

なぜ、ヤバいかというと、そのスクリプトは各カテゴリー毎のページをそれぞれ読み込んでデータを取得するというものだった。スレッドのような手法で並列処理を行い、1秒間の間に、同じファンブログから10~20個のページを取得させていたわけだけど、見事に動作した。つまり、1秒間に何十回アクセスしてもちゃんと返事が来るということです。

ちなみに、似たようなスクリプトをここで動かしているけど、うまくデータを取得しないことが多い。それは何度もアクセスすると拒否されるからです。

こないだ公開した「ファンブログからWordPressへデータを完全移行するスクリプト」も姐さんが使ったら15分弱で全記事、全コメント、全トラックバック、全画像を取得完了したそうな。

その総取得数、 記事 982、コメント 3332、トラックバック 23、画像数 889あって、コメントとトラックバックは1ページから複数取得する可能性があるけど、記事と画像は1個取得する度に1アクセス必要です。それが、わずか15分で完了した。

ちなみに、コメントとトラックバックは、それぞれ記事とは違うページから拾っています。

それの何がヤバいのか

本来は、アクセスがいくらあっても返事をしてくれるということは、いいことなんだけど、それをスパムに狙われるとヤバいことになる。

姐さんがスクリプトを動かした際に、ファンブログにアクセスしたのは少なく見積もって2000回以上。それだけのアクセスを15分間しつづけて拒否されなかったわけだ。

15分で2000回なんだから、1時間(3600秒)あれば8000回以上のアクセスが出来ることになる。それだけのアクセスを途中で拒否せず、受けつづけたとしたら?1日に20万アクセス近くいくことになる。

もしも10個のスパム業者がファンブログに対して、それを実行すれば1日に200万アクセスいくことになる。スパム業者が100社だったら?

おかしなアクセスは、どこかで拒否しないとアクセス過多になる。

関連記事「スパムが多いとアクセス障害が発生する

今回、ファンブログがコメントとトラックバックを封鎖したのは、アクセス過剰なスパム対策なんじゃないだろうか。というのはあくまで想像ですが。真相は闇の中。

ファンブログからWordPressへデータを完全移行するスクリプト」を初心者でも使えるようにしようと方法を考えていたんだけど、これで必要なくなったかな。スキルのある人だけが使えればいいか。

この下は、ひとりごと

ファンブログのログインIDとパスワードはA8.netと同じなんだよね。しかもA8.netのパスワード設定欄にはパスワードは何文字から何文字までにしてくださいって書いてある。もし、ログインIDとhttp://fanblogs.jp/xxxxxxxx/のxxxxxxxxを同じにしてしまっている人はヤバいかも。

たとえば、パスワードに使えるのが数字だけで5桁だときまっていたら、00000~99999まで順番に入力すれば確実にクリアできる。入力回数が無制限で、何回失敗してもやりなおせるなら短時間で突破できるだろう。それはアルファベットが入っても、桁数が増えても、入力回数が増えるだけで同じ事。ログインIDを公表しているような状態で何回でもアタック出来たのなら。。。

A8.netのログインIDとhttp://fanblogs.jp/xxxxxxxx/のxxxxxxxxを同じにしてしまっている人は、この際、移転するなり、一旦退会して再入会した方が無難な気がする。

銀行口座を書き換えれば足がつくのでやらないでしょうが、退会ボタンを押せば報酬をゼロにすることは出来る。


数字10個、アルファベット大文字26個、小文字26個。これだけで62個。それの桁数乗。

二桁なら62×62=3844

三桁なら62×62×62=238328

実質的には無理だと思うけどね。

以上、無責任なひとりごとでした。

記事が真っ白表示な時は再保存!

2014年1月22日にA8.netのファンブログはSeesaa Blogのシステムをベースにして生まれ変わりました。よってファンブログ関連の記事は今では当てはまらない可能性があります。新しいファンブログのカスタマイズは別ブログ「ファンブログ テック」で詳しく書いていますので、そちらをご覧ください。

表示が変な時は、とにかく、ログインして管理パネルからサーバーにアクセス。何でもいいから再保存!サーバーに刺激を与えれば直ることがあります。

今見たら、このブログの記事ページが真っ白に表示されていました。

ファンブログの「管理画面」にある「コンテンツ設定」の「機能選択・並び替え」ページで「保存ボタン」を押したら、表示されるようになりました。

管理画面

このやり方は、かこのブログ「パート派遣主婦のぐーたら(長いので以下省略)」で、サイドバーが表示されなかった時の対処法として教えてもらいました。以下省略というか、ファンブログが開けないので正式名称を確認できない。なので、記事のURLではなくメインページにリンクしています。

他にもどこかのコメント欄で、消えたサイドバーが「記事を再保存したら直った」とか、「スキンを再保存したら直った」とか、書かれていますが、探せないのでリンクは省略。

とにかく、ログインして管理パネルからサーバーにアクセスして、何でもいいから再保存!サーバーに刺激を与えれば直る可能性があります。

記事やコメントで人に知らせるときは「どこに書いてある」とか言っても、そこを開けなければおしまいなので、この記事や「パート派遣主婦の(長いので以下省略)」へのリンクや紹介はいらないから、やり方を直接書いてください。

そろそろ末期か。書いた記事のバックアップは取っておいた方がいいんじゃないかな。

沈みゆく泥舟

沈みゆく船の上に残る決意をしたとします。

それは、個人の意志なので否定するつもりはありません。船と運命を共にするという気持ちを持つのも、ひとつの考え方です。

でもファンブログは船じゃないし。「読者がいる」ブログだし。

タクシーに乗ったとします。そうしたら運転手にこう言われたとします。

「この車、最近よく壊れるので途中で動けなくなるかもしれません」

お客は、それでもそのタクシーで出発しますか?降りませんか?そもそも、そんなタクシーで営業するなと思いませんかね。

ブログというのは「読者」というお客が来るサービスです。

お客が来てもページを開けない、読めない。

運良く開いて記事を読んでも、関連記事は開けない。リンク切れしているみたいです。実際は存在するのに開けないページはまるでリンクが切れているように思います。

コメントしてもエラーで送信できない。

読者は、それでもそのブログを読みますか?読むのやめませんか?そもそも、そんなブログで公開するなと思いませんかね。

それでも、そのブログを続けるという意志は「読者」を無視した行為

「愛着があるブログだから」調子の悪いファンブログに残るというのは、作者の都合です。なぜ愛着があるのか考えましょう。それは「読者がいるから」ではないのですか。

その読者に対して、ストレスを貯めるファンブログで更新を続けるのは「読者を無視した行為」にはならないでしょうか。

最近、ふたつの出来事がありました。

ひとつは、コメント欄。頻繁にログアウトを繰り返すファンブログで、ログインしていない状態ではコメントできない設定にしているブログがありました。「これでは、読者はコメント出来ませんね。そして、移転してファンブログを退会した読者はコメントしなくていいということですね」という趣旨の事を伝えたら、そのブログはコメント設定を直してくれました。

もうひとつはプロフィール設定。

もらったコメントの名前のリンクをクリックしても開けないページがありました。プロフィールを公開していないからです。それを伝えたら「自分は知っててそうしているので、直す意志はない」という内容の返事でした。そのブログはすでに移転済みでファンブログを残しているのは実験や被リンク効果のためのようです。

読者が開けないのを承知でそうしているそのブログは、読者にまったく感謝の気持ちがないんだと思いました。

振り返って我が身を思う

実は自分自身、ファンブログからは移転するつもりでいるし、移転後のファンブログは、ファンブログ専用記事と、人気動向調査に使えるアフィリエイト記事だけを残せばいいかと思っていました。実際、今もどんな記事に人気があるのかを調べて、それをフィードバックした別サイトを作るのにファンブログは利用しています。

ブログ移転後は、ファンブログからは一切リンクを張らないつもりでした。ファンブログの読者が来ないようにするために。

でも、それは読者を無視した行為なんだなと。

それを気づかせてくれた、今回の相手、プロフィール欄を閉じた彼には感謝しています。

姐さん、それちゃいますわ ~apt-cache search の使い方~

姐さんのリポート「WordPress完全移行スクリプトキタ-!

スクリプトを書いた本人としては、自分で説明を書くのは大変なので、こういう記事を書いてもらえると非常に助かります。しかし現在、玉砕中とのこと。

姐さん、それちゃいますわ

姐さんへお願いがあります。正しい京ことばが分かりまへんドス。もしこの記事がお役に立ったら、校正してください。

自分はファンブログからWordPressへすべてのデータを移動する手順で、こう書いとります。

コマンドを打ってすぐにエラーが出るかもしれません。その場合は Python のライブラリに mechanize か sqlite3 がないので import 出来ないからです。もしなかったらその2つをインストールしてください。そうすれば動きます。

ただのmechanizeではなく、Pythonライブラリのmechanize関連モジュールを入れんといけません。

apt-getでPythonのライブラリを探す

aptで入れるものを探すときは、apt-cacheにsearchオプションを入れて実行します。ちなみにapt-cacheはスーパーユーザーでなくても実行出来るのでsudoはなくても構いません。

試しにpython関連のものをapt-cacheで探してみます。

$apt-cache search python

これを実行すると死ぬほど出てきます。嫌になるほど出てきます。これでは探しようがありませんがな。

そこで、この実行結果をパイプに通して、grepコマンドでmechanizeという文字列を含む行を抽出します。

$apt-cache search python | grep mechanize

実行結果には次の1行だけが出てきました。

python-mechanize – stateful programmatic web browsing

探していたのはこれです。これをapt-get installで入れればよろし。今度はsudoが必要です。

$sudo apt-get install python-mechanize

これで「Python のライブラリに mechanize か sqlite3 がないので import 出来ないからです。もしなかったらその2つをインストールしてください。」のひとつはクリアしました。

次にsqlite3のpythonモジュールも、同じやり方で探してみます。

$apt-cache search python | grep sqlite3

表示された結果を見ると、それらしいのがない。そこでsqlite3の3を取って、ただのsqliteで再実行してみます。

$apt-cache search python | grep sqlite
libghc6-hsql-sqlite3-dev – SQLite driver of the HSQL library for GHC6
libghc6-hsql-sqlite3-doc – API documentation of the hsql-sqlite3 library for Haskell
libghc6-hsql-sqlite3-prof – SQLite driver of the HSQL profiling library for GHC6
python-pysqlite1.1-dbg – python interface to SQLite 3 (debug extension)
python-pysqlite2 – Python interface to SQLite 3
python-pysqlite2-dbg – Python interface to SQLite 3 (debug extension)
python-pysqlite2-doc – Documentation for python-pysqlite2
python-sqlite – python interface to SQLite 2
python-sqlite-dbg – python interface to SQLite 2 (debug extension)
python-sqlitecachec – A fast metadata parser for YUM

10個も見つかりましたが、欲しいのは”Python interface to SQLite 3″です。(開発しないのでdebug版は不要です)

aptの困るのは、こういう風に”Sqlite 3″みたいなdescriptionを書かれたときです。大文字使ったり、スペース開けたり、こっちは”sqlite3″で探してんだから、その通り書け、ふざけんな!と。ほんと名前が分からないのがaptでインストールする時の悩みです。だったら自分の記事にも詳しく書いておけって?すいません。

これもインストールします。

$sudo apt-get install python-pysqlite2

これで、スクリプトが動くようになりました。後は姐さんのリポート「WordPress完全移行スクリプトキタ-!」を詳しくお読みください。

ところで姐さんの画像認証は壊れてない?

何度やっても送れないコメント(送れないのでだんだん文面が長くなった)

>ただでさえ先週階段から転落して満身創痍なのにふざけんな、
そういう面白いことをなぜ記事にしないかな。こういう難しい記事にさりげなく書くから
誰にも「お大事に」と言ってもらえず、ご愁傷様です。

とりあえず沈みゆく泥舟からデータの救出しておくといいね。
ファンブログの独自タグの問題はデータさえあれば、どうにでもなる。

ただでさえコメント出来ない状況で認証エラーはイラつきますな。

ファンブログに見る完璧なセキュリティとは?

2014年1月22日にA8.netのファンブログはSeesaa Blogのシステムをベースにして生まれ変わりました。よってファンブログ関連の記事は今では当てはまらない可能性があります。新しいファンブログのカスタマイズは別ブログ「ファンブログ テック」で詳しく書いていますので、そちらをご覧ください。

サーバーにとって重要なセキュリティとはなんでしょうか。
情報を漏洩させないことです。

情報を漏洩させないためには不正アクセスを防がなくてはなりません。

そのためにはパスワード管理は大切です。
予測しやすいパスワード、例えば固有名詞などを使うのは避けるべきです。

仮にログインIDが「inali」で
パスワードが「寿司」だったりしたらすぐに予測されてしまいます。

しかし、得てしてブログユーザーというのはそのような安易なパスワードを設定しがちです。
では、サーバーサイドではどのような対策をとればいいでしょう。

もしも正しいパスワードを入力してもログインできないサーバーがあったとします。
これほど完璧なセキュリティ処理は、他に考えられません。

残念なことに、そのような完璧な対策を施したサーバーは今まで存在しませんでした。
しかし、私たちが使っているファンブログは、それを成し遂げようとしているのです。

素晴らしいではないですか。

正確なパスワードを入力しても
滅多にログインできないのですから、不正アクセスのされようがありません。

最近では公開済みのブログ記事すら、見られない事も多くなっています。

ですので、ついうっかり読まれてはいけないことを書いてしまったとしても安心です。
誰にも見られてしまう心配がないのです。

そもそも、簡単に新しい記事を公開できる状態ではないので、
見られて困ることを公開してしまう心配もありません。

これほどまでに情報管理を徹底したサーバーは他に類を見ません。
それが、私たちの素敵なブログ、「ファンブログ」です。