
先月減ったと思ったのに激増しています。うちなど攻撃しても何のメリットも無いのに。暇なんだなぁ。
さて、ログを見てみました。
以前に紹介して実際にこのサイトでも使っているDS-Syndicateでセキュリティホールが公表されていました。私は、改造して使っていたりなのですが、そこまで見ていませんでした。
対応策
new_feed(mosGetParam( $_GET, 'feed_id', ""));
を
new_feed(intval( mosGetParam( $_GET, 'feed_id', "") ));
のように(他の方法でももちろん良い)数値にサニタイズすることで対処できます。
追記:さらにすでに攻撃されたかどうかは、Root/components/com_ds-syndicate/feedフォルダ内を見て下さい。そこに通常のファイルではなさそうなものがあればすでに攻撃されたものだと思われます。フォルダ内のファイルをすべて削除する必要があります。
念のためまだ10月の途中ですが、毎月行っているiLogScannerのスキャンを行ってみました。
22日現在の時点で104件の攻撃で幸い成功はしていないようです。
成功していないというのは厳密に言うと間違いです。この攻撃を使ってのインジェクション攻撃は成功しています。そしてデータベースのnameとpasswordは見る事ができたかもしれません。ですが、Joomla!は生のパスワードは保存していません。パスワードは、Joomla!の独自メソッドでハッシュ値に変更されたものなので生のパスワードを悟られる事はまずありえ無いでしょう。心配な方は、パスワードを変更してください。
ログを見てみるとDS-Syndicateに対する攻撃は、10月6日から来ています。公表されるずいぶん前の時点ですね。情報を素早く入手することももちろん大切ですが、エクステンションを導入するときには気軽に導入すべきではないことも事実のようです。また、たくさんの人が使っているから大丈夫ということも絶対言えませんし、あのサイトで紹介されているから大丈夫とも言えません。
エクステンションを作成していていつも思うのですが、モジュールやプラグイン(Mambot)では直接その作成したものにアクセスはできません。(できなくはないですが、Joomlaの構造上それは制限されるべきです。)コンポーネントですら直接アクセスするためには・・・。
ちょっと違いますね。
どのエクステンションも通常のアクセスhttp:~/comonents/com_~/なんとか.phpなどどアクセスできません。唯一コンポーネントは、そのアクセス手段があります。
?option=コンポーネント名
をつけることによってその登録されたコンポーネントのファイル(コンポーネント名.php)にアクセスできます。ですから、面倒なんです。は?
ちょっとしたエクステンションを作成するがためにコンポーネントを作成しなければいけないことです。モジュールや、プラグインならファイル数が2個から作成できますが、コンポーネントはそういうわけにはいきません。管理するファイル数が増えることによって手間が増えますし、神経も使います(本当につかっているのか?)。
いや、なぜこんなことを書くのかって・・・一個の設定ファイル(動的に読み込む)を作成させたいがためにコンポーネントを作成しなきゃいけないのかと思うと面倒なので・・・ただ、それだけ。
新しいプロジェクトがはじまりました。
もちろんJoomla!関連なので反映できるものは極力反映していきたいと思います。