XUGJで話題になっていたこれ。
http://www.viruslist.com/en/weblog?discuss=208187897&return=1
Protectorで何か出来ないか考えてみましたが、やはり防犯ブザーのようなものが良いのではないかと結論づけました。
XOOPS_ROOT_PATHのmtimeと、index.phpのmtime、inodeを保存しておいて、それに変更があればサイト管理者にメールで通知する。まさに防犯ブザーです。
最初はファイルのmd5でも取ろうかと思ったのですが、原理的に毎回チェックすることの方がはるかに重要なので、負荷のかからないinodeをあえて利用しています。Windowsだとinodeは意味を持ちませんが、FTPでサイトを更新するなら、そのサーバは圧倒的に*nixが多いだろうという判断です。
FTPアカウントが盗まれている状態で、FTPで書き換え可能なファイルによって防御する、という時点でナンセンスな手法とも言えますが、こういう「防犯ブザー」であれば、ブザーのタイミングさえ間に合えば、サイト管理者が気付くことができるので、ワームの協力サイトとして運用し続けることだけは避けられるかもしれない、ということです。
この機能、Protector-3.50に実装しています。サイトをFTPでメンテナンスする度に通知メールが来ますが、「ちゃんと機能しているな」と思っていただけたら。
もちろん、サイトを更新する重要なクライアントマシンがこんなワームに感染しないようにすることこそが最優先ですし、サーバレベルで監視するとしても、「サイト相互の監視システム」なんて方がベターだろうと思います。
Anti-SQL Injection機能の副作用報告もほとんど聞かなくなってきたので、最新版Protectorに3.4という安定版番号をつけました。
このバージョンから、"Xoops Protector" ではなく "Protector" という名前にしています。XOOPSという名前を外したことで、ImpressCMSユーザにも気兼ねなく使っていただけたら、なんて考えています。
ProtectorにAnti-SQL Injection機能をつけてから、3.4のリリースまでの間に、ImpressCMS1.1.2(?)およびXoopsCube Legacy2.1.7以降で、databasefactoryクラスのオーバーライドに対応してくれました。
対応していただいたことに心より感謝いたします。
そのお礼というほどでもないのですが、ImpressCMS 1.2およびXCL2.1に対応したモジュールアイコンを用意しましたので、ネイティブモジュールっぽく利用していただけると思います。
ImpressCMSについての情報を送ってくれたRene Satoさんに感謝します。(ドイツ土産も美味しくいただきました!)
ちなみに、アイコン動作の確認のために、ImpressCMS 1.2 beta をインストールしてみたのですが、1.0->1.1のアップグレードスクリプトが正常に動作しなくなっているようです。
/upgrade/upd-icms-1.0-to-1.1/settings_salt.php line 46
if ( !isset( $vars['DB_SALT'] ) ) {
require_once ICMS_ROOT_PATH.'/class/icms_Password.php' ;
$icmspass = new icms_Password();
$vars['DB_SALT'] = $icmspass->icms_createSalt();
}
このサイトは原則的にユーザ登録しないと投稿できないようにしてあるのですが、最近は手作業でユーザ登録した上で、一見SPAMとは思えないような投稿をしてくるようです。(例えば、「新しいバージョンは無いか」とか「この投稿はとても役立つ」といった内容の横に、こっそりとリンクが張ってある)
もちろん、本当に手作業なのかどうかは判りませんが、アクセスログを見る限りでは、普通にブラウザを使って、人が作業しているようにしか見えません。(CSSや画像も一緒にリクエストしているし、投稿内容を確認する「間」がある)
人海戦術で来られるとこちらも対応のしようがないので、とりあえず、ユーザ登録してから1時間以内はURLを含むPOSTを禁止する、という対処をしてみました。これでやる気をなくしてくれると良いのですが…
そのためのフィルターも最新版のProtectorに同梱してあります。もし、似たような状況でお困りの方はお試しください。
該当フィルターは
postcommon_post_register_moratorium.php
です。
昨夜(4/24)、四谷のニューオータニで、gigamaster(ルチアーノ)さんに会ってきました。
会ってみてビックリ。本物のイケメンでした。
自称「日本一格好良いXOOPSer」なお方も同席してましたが、比較するのが失礼かな、と
私の知る限り、日本一のイケメンXOOPSerはyosha_01さんですが、その彼と比較しても「世界の壁は厚いなあ」というのが実感です
時間がない上に、英会話力の問題もあって、ほとんど話せなかったのですが、彼の情熱だけは良く伝わってきました。
gigamasterさんのフォーラム等への書込は思いっきり辛口なので、本家やImpressCMSのコミュニティでは誤解されている部分が多いように思えますが、こうやって面と向かって話してみれば、お互いを良く理解できるような気がします。
piCal-0.91h にXSSが見つかりました。
以下のいずれかの対策をとることをお奨めします。
(1) 最新版(0.92以上)にアップデートする(特にカスタマイズ等していない場合)
(2) 最新版(0.92以上)からindex.phpのみ抜き出して上書きする(あちこち手を入れている場合)
(3) 自分でパッチを当てる(ある程度スキルがあり、運用環境への影響を最小限にしたい場合)
単純な見落としXSSで、見つかったのも1行だけなので、手作業でも簡単です。
index.php 154行目
$xoopsTpl->assign( 'print_link' , "$mod_url/print.php?event_id={$_GET['event_id']}&action=View" ) ;
$xoopsTpl->assign( 'print_link' , "$mod_url/print.php?event_id=".intval($_GET['event_id'])."&action=View" ) ;