スパム対策の話」カテゴリーアーカイブ

xreaからブログへのスパム攻撃に対処との連絡

今朝、メールをチェックしたら、xreaからブログ「石川の食 美味しいもの食べたい」への攻撃に対して対応したとの連絡が入っていました。

石川の食 美味しいもの食べたいを禁止しました。200秒の間に許可された以上のコメントを送信してきました。

これは悪意のスクリプトがブログをコメントで飽和させるのを阻止するための措置です。以下のIPアドレスを禁止しました。

216.244.85.93

これが間違いである場合は、Movable Typeにログインして、ブログの設定画面に進み、IP禁止リストからIPアドレスを削除してください。

xreaが、こういう対処をしてくれるとは知りませんでした。
IPアドレス216.244.85.93は、関連サイト全てで立入禁止にしておきました。

ウイルスを検出しました Riskware(ce7ae4a90)を見つけました XREAのWordPress

2012年8月11日
「きまっし金沢の雑記帖」のページを開くと「ウイルスセキュリティZERO」で下部のバーに「ページでエラーが発生しました」の表示があってから「ウイルスを検知しました」「Riskware(ce7ae4a90)を見つけて削除しました」の表示が出るようになりました。
「きまっし金沢の雑記帖」が感染したのか不安になりました。 画像以外にアップロードしたものはないのですけど・・・・
ファイルの一部が壊れてウイルス扱いにされているのかもしれません。
今のところ原因がわかりません。
ちなみに「きまっし金沢の雑記帖」はXREAのサーバーでWordPressを使って運用されています。

WordPressの最上位の階層にあるPHPファイルをパソコンのハードディスクのデータで上書きするとブログが全く動作しなくなってしまいました。
バックアップをとらないで上書きしたので、元には戻せなくなってしまいました。迂闊な事をしました。
2ヶ月前にバックしておいたデータのPHPファイルを上書きするとなんとか復旧しました。でも、「Riskware(ce7ae4a90)を見つけて削除しました」の表示が出るのは相変わらずです。

WordPressを最新のバージョンに更新してみましたが改善しません。

時々「Couldn’t connect to database server.Couldn’t find database jimbob_stats.An unexpected problem has occured with the application.
SELECT statscurl_id FROM `statscurl` WHERE statscurl_ip = ”; 」の表示が出る事もあって、その時には「Riskware(ce7ae4a90)を見つけて削除しました」の表示は出ません。
ウイルスでは無くて、なんらかのデータが壊れているのだと思います。

2012年8月12日
「Couldn’t connect to database server.Couldn’t find database jimbob_stats.An unexpected problem has occured with the application.
SELECT statscurl_id FROM `statscurl` WHERE statscurl_ip = ”; 」の表示については、ネットを調べるとheader.phpに原因があるとのことだったのでheader.phpを入れ替えたのですが状況は改善しませんでした。

いろいろと試してみたのですが解決しなく、最後の手段として、データベースのデータを2ヶ月前にバックアップしたものと入れ替える事にしました。
とりあえず、現在のデーターベースのバックアップをとります。XREAのサーバーに入って管理メニューのデーターベースを選択します。念のため全DBをバックアップ保存しておきました。
PhpMyAdmin自動インストール(MySQL管理) でインストールのボタンをクリックします。
「PhpMyAdminはこちらに」のこちらにをクリックしてphpMyAdminを起動してログインを実行します。パスワードはXREAデータのパスワードと同一です。
エクスポートをクリックしてWordPressのデータを書き出します。
WordPressに関係するサーバーのすべてのデータをダウンロードします。
再びXREAのサーバーに入って管理メニューのデーターベースを選択します。
MySQLの追加・編集でWordPressのデータベースを選択します。DB/ユーザー名と文字コードをメモしておきます。
削除のボタンをクリックしてWordPressのデータベースを削除します。
削除したDB/ユーザー名と文字コードを削除したものと同一にして作成のボタンをクリックします。ここで作成ではなくて復旧のボタンを押すとアップロードがうまくいかないようです。
phpMyAdminを起動してログインを実行します。
インポートをクリックします。アップロードファイルは置き換える2ヶ月前のデーターベースファイルを参照して選択します。ファイルの文字セットの選択を前回メモした文字コードにします。
アップロードできる最長ファイルは50MiBですが幸い置き換えるデータは40MBだったので条件的にはセーフでした。
「制限時間が近くなったときに、スクリプト側でインポートを中断できるようにする」のチェックを外します。
残りはデフォルトのままで実行をクリックします。
特にエラーが起きなければアップロードが成功です。
ちなみに、操作上や設定上のミスもあったのかもしれませんが、アップロードは何回か失敗して、やっと何回目かで成功しました。
アップロードする直前にダウンロードしておいたデータベースファイルをアップロードするとエラーが続いたので、データベースファイルが破損していたのかもしれません。

あとはWordPressの初期画面でログインして必要事項を入力するとWordPressが正常動作しましました。
データは2ヶ月前までのものしか復旧していないので、エクスポートしたWordPressのデータをエディターで確認して、無くなったデータを投稿し直します。
これでWordPressのブログの復旧は完成しました。復旧に2日間を要しました。
とりあえず普及してよかったです。

データベースのバックアップは定期的にしておいたほうが良いですね。

メールソフトをMozilla Thunderbirdに変えた

2012年4月1日
最近、海外からの訳のわからないメールとか、本文の無いメール、逆風俗系のメールが増えてきてイヤになってしまいます。
同じメールアドレスを10年以上使っているし、ホームページでも公開してるし、通信販売や、ネット系の申し込みでも同じメールを使っているので、スパムメールの送り先として、いたるところで登録されているのだと思います。
とりあえず、1つ1つのメールに送信者を禁止するの登録をはじめたのですが、なんとかしなくては・・・・
以前、送信者を禁止するの登録に、間違えて知人のアドレスが登録されていて困ってしまったのでリスクがあるのですが。
ちなみに使っているメールソフトはOutlookExpressです。

2012年4月4日
送信者を禁止するの登録で、どれくらいチェックできるか調べるために削除済みアイテムを空にしてみました。ついでに迷惑メールトレイを見てみたら、本当に迷惑なスパムメールは全く入っていなくて、受信しても良いメールがスパムメールとして、たくさん入っていました。
本当に必要なメールは入っていなかったのですが、定期的に送られる広告メールがスパムとして判断される傾向にあるようです。
OutlookExpressはあまり賢くないです。
以前Mozilla Thunderbirdを使っていて、なかなか気に入っていたのですが、掲示板の投稿通知まで迷惑メール扱いされたり、XREAのメール(独自ドメインのアドレス)が受信できなくて使うのをやめたのです。Mozilla Thunderbirdは不必要なメールを判断して受け取らない機能もあって良いのですけど・・・・
もう一度、試してみようかな。

2012年4月7日
メール受信に使っているソフトを全部Mozilla Thunderbirdに変更しました。条件設定は、ほとんど自動的に移植してくれました。4つのメールアドレスの内、2つのメールアドレスはパスワードの入力を求められました。
XREAのメール(独自ドメインのアドレス)はやっぱり使えません。なぜかYahooメールも使えません。
Mozilla Thunderbirdは迷惑メールの登録をしていると、だんだん学習して振り分けてくれるようなので期待しています。

2012年4月9日
Mozilla Thunderbirdの迷惑メールの学習能力はなかなかのもので、ほとんどのスパムメールは迷惑扱いしてくれるようです。

2012年4月11日
XREAのメールサーバーの設定で運用方法を転送のみにして、自分がよく使うメールアドレスを指定したらMozilla Thunderbirdでも受信できるようになりました。
YahooメールもYahooメールのアカウントを削除して、新規でアカウントを追加したら使えるようになりました。自動でOutlookExpressの情報をコンバートするとうまくいかないようです。

2012年4月20日
差出人をネット関係と個人・仕事用のものとで使い分けする方法が判らなかったのですが、ネットで調べて判りました。
「ツール」「アカウント設定」でアカウント名をクリックして、アカウント設定の画面で「差出人情報を管理」をクリックすると差出人を追加できます。

まだ消されたら困るメールを迷惑メール扱いにする事があるのですが、迷惑メールを一括削除できるので、自動処理しなくても、今までより便利です。

2012年5月3日
そういえば、最近、スパムメールが激減しています。Mozilla Thunderbirdで自動削除をしない設定にしてあるはずなんですけど、自動削除しているようです。本来はスパムメールはゴミ箱に一時保存されるようですが、ゴミ箱に保存されていません。必要なメールも自動削除されているのではないかと、ちょっと心配ですが、便利です。

2012年5月13日
最近、スパムメールを目にする事が、ほとんどなくなりました。快適です。掲示板やブログの投稿通知を削除するという事も無く、なんの支障もなくスパムメールだけを排除してくれているようです。
排除したメールの確認ができない事への不気味さはありますけど。

Movable Type4.292のスパム投稿対策

2011年10月24日
Movable Type4.292にしてから英語だけのコメントが多くなったので,英語だけのコメントを排除するプラグインNotJapaneseLookupを導入しました。
コメントは認証性なので,ブログがスパムで溢れるということは無いのですが,スパムコメントなのに,コメントが来てるというメールが頻繁に届くのも困ります。

2011年10月25日
相変わらず,英語だけのコメントが多いので変だなと思って調べてみました。
スパム防止のプラグインの設定について,すべてのブログ全体のページ(システムメニュー)のプラグイン設定で設定しようとしていたのですが,細かい設定ができなくて変だなと思っていましたが,基本的にはプラグイン設定の詳細条件は各ブログごとに設定しなければいけないことに気づきました。
これでスパムコメントが減るかな?

2011年10月26日
相変わらず英語だけのコメントが届きます。NotJapaneseLookupは,あまり役に立たないようです。迷惑コメントの登録を積極的にするようにしました。

2011年10月29日
ネットで調べるとNotJapaneseLookupは漢字5,ひらがな2,句読点1の設定にしている人が多いようなので,同じ設定にしました。すると英語だけのコメントは少し減りました。でも明らかに漢字,ひらかな,句読点の無いコメントも少ないながら潜り抜けてきます。よく判りません。

2011年11月12日
NotJapaneseLookupをどのようにしても英語だけのコメントは無くなりません。他のスパム対策のプラグインが判断ポイントを上げる事により英語だけのコメントがすりぬける事もあるので,他のプラグインについてポイントを上げる設定を全部解除しました。NotJapaneseLookupについても英語だけのコメントに評価を下げるポイントを大きくしました。それでもすり抜けるコメントがあります。

2011年11月13日
ブログでのスパム対策のプラグインはMT-Akismet 1.1, Not Japanese Lookup 1.00,SpamLookup-リンク 2.11以外は全部無効にしました。あまり多くのプラグインを使うと,そのプラグインをすりぬける毎にスコアが加算されるので,1つのプラグインでスパムと判断してもすり抜けるようです。
MT-Akismet 1.1の設定は4に上げました。
Japanese Lookup 1.00の設定は全角文字10文字以上,ひらがなと5文字以上,句読点を0文字以上でないとスパムとみなすの設定してスパムとみなすと-10のスコアをつけるに設定しました。句読点を使わないで投稿する人って結構いるんです。
SpamLookup-リンク 2.11では4つ以上のリンクがある場合はスパムとみなすようにしてあります。但しリンクが無くてもスコアは加算しない設定にしました。その他の評価を上げる(スコアを加算する)設定は全て解除しました。SpamLookup-リンク 2.11は各ブログ毎での設定の他,システムメニューでの設置もあり,システムメニューでの設定が優先されるのでシステムメニューでの設置を忘れないようにします。
この設定で久しぶりに夜間のスパムコメントが無かったです。

2011年11月14日
スパムコメントは極めて少なくなりましたが,英語だけのコメントは稀にあります。

2011年11月15日
MT-Akismet 1.1の設定を5に上げたら1日間スパムコメントがありませんでした。

2011年11月23日
やっぱり英語だけのコメントは稀にあります。

掲示板のスパム投稿対策(連続投稿禁止情報の共有)

きまっし金沢関連のサイトでは掲示板はkent-webのYY-BOARDを利用してます。多くのサイトで使われているだけにスパム投稿に狙われる事も多いのが難点です。

スパム投稿対策として,YY-BOARD spam 対策改造を利用しています。これで自動投稿は防ぐことはできます。

きまっし金沢の関連サイトでは30個の掲示板を設置していますので、多くの掲示板に手動で1件ずつスパム投稿をしようとする例もあります。

基本的には投稿禁止IPを登録して全ての掲示板で禁止IPではアクセスできないようにしてますが,チェックできない時間の新たなIPでの投稿には対応できないという状態でした。
そういう訳でYY-BOARD spam 対策改造の同一IPアドレスの短時間での連続投稿禁止の機能を利用して,きまっし金沢関連の1つの掲示板に投稿した場合には一定時間たたないと他の掲示板にも投稿できないような制限を加えることが出来るように掲示板を改造してみました。実際に試してみましたが,なんとか動作しました。

まずは全ての掲示板のyyini.cgiを
# 制限投稿間隔(秒数)
# → $regCtl での投稿間隔
$wait = 120;
に設定します。
全ての掲示板のyybbs.cgiに
#IPファイルを開く
open(IN2,”$logfile2″) || &error(“Open Error: $logfile2″);
を設置します。
具体的には
local($no,$re,$dat,$nam,$eml,$sub,$com,$url,$hos,$pw,$col,$ico);
#IPファイルを開く
open(IN2,”$logfile2”) || &error(“Open Error: $logfile2″);
# 記事を展開
$i = 0;
$flag = 0;
open(IN,”$logfile”) || &error(“Open Error: $logfile”);
という具合です。
最後に全ての掲示板のyyregi.cgiを改造します。
まず
# IPログを開く
open(IN2,”$logfile2″) || &error(“Open Error: $logfile”);
@lines2 = ;
close(IN2);
# IPログのデータ書き出し
$top2 = shift(@lines2);
local($ip2,$tim2) = split(/<>/, $top2);
を追加します。
具体的には
# ファイルロック
if ($lockkey) { &lock; }
# IPログを開く
open(IN2,”$logfile2″) || &error(“Open Error: $logfile”);
@lines2 = ;
close(IN2);
# IPログのデータ取り出し
$top2 = shift(@lines2);
local($ip2,$tim2) = split(/<>/, $top2);
# ログを開く
open(IN,”$logfile”) || &error(“Open Error: $logfile”);
@lines = ;
close(IN);
# 記事NO処理
$top = shift(@lines);
local($no,$ip,$tim) = split(/<>/, $top);
$no++;
という具合です。
連続投稿チェックの引数を変更します。($ipを$ip2に,$timを$tim2に変更します)
具体的には
# 連続投稿チェック
$flag=0;
if ($regCtl == 1) {
if ($addr eq $ip2 && $times – $tim2 < $wait) { $flag=1; } } elsif ($regCtl == 2) { if ($times - $tim2 < $wait) { $flag=1; } } if ($flag) { &error("現在投稿制限中です。もうしばらくたってから投稿をお願いします"); } という具合です。 最後に# 親記事の場合中の#更新の後に(140行前後)に # IPログ更新 @new="$addr<>$times<>\n”;
open(OUT2,”>$logfile2″) || &error(“Write Error: $logfile2″);
print OUT2 @new;
close(OUT2);
を追加します(上記の\nは¥nの半角です)。
具体的には
# 過去ログ更新
if (@data > 0) { &pastlog(@data); }
# 更新
open(OUT,”>$logfile”) || &error(“Write Error: $logfile”);
print OUT @new;
close(OUT);
# IPログ更新
@new=”$addr<>$times<>\n”;
open(OUT2,”>$logfile2″) || &error(“Write Error: $logfile2”);
print OUT2 @new;
close(OUT2);
という具合です。(上記の\nは¥nの半角です)
yyregi.cgiの改造はわかりにくいので改造済みのファイルをダウンロードできるようにしました。