先週、「WordPressに仕込まれたマルウェアのコードが恐ろしすぎた」という記事がタイムラインで流れてきました。記事を見ると、なんとも恐ろしいので「そういえば、あのちょっと放置気味のサイトをアップデートしなきゃ」とアップデートしました。
また、非IT系のお友達に「素人に分かるように教えて!」と言われ、「そうかー、この記事のままだとあれなのか」と自分なりに超訳して説明したのでそれについて書こうと思います。
WordPressに仕込まれたマルウェアのコードが恐ろしすぎた その内容
それほど詳しい訳ではないのですが、ひとつひとつ私なりに解釈してみます。
記事でこわいなーと思ったのは、
かなり時間を掛けて広範囲にヤラれていたので、マルウェアをすべて取り除くのに苦労したのですが、その際に見付けたマルウェアが中々恐しいものだったので、ここに書き残しておきたいと思います。
とあるように、一旦感染してしまうと取り除くのはとても大変そうということです。感染されないことが一番のようです。WordPressは数ヶ月に一度、必要があればもっと頻繁に本体の更新がされます。機能アップの他にセキュリティ強化も行ってる場合が多いのでかならず最新のバージョンに更新してマルウェアの侵入を可能な限り防ぎたいと思います。
POSTで送ったPHPのコードをeval()で実行しています。これはつまり、Webサーバの権限で任意のPHPコードを実行することが出来るということです。
任意のPHPコードを実行することができる、ということはたとえば私がプログラムを書いてサーバにアップし実行するのと同じ事ができる、ということらしいです。ならばデータベースの中身を書き換えたり、消したり、プログラムを書き換えてとんでもない悪意のあるものにしたりもできるということです。それを悪意のある第三者ができるようになるということは…(>_<)、絶望的に危険そうです。
ファイルマネージャーでしょうか。Webサーバの権限で書き込める場所であれば、どこにでもファイルをアップロード出来るようになっています。また、ディレクトリの作成、ファイルの削除なども出来るようになってます。
これはWordPressでいうとメディアを追加でファイルがアップされる場所がWebサーバの権限で書き込める場所なのでblog記事の画像を削除されたり書き換えられたりされるということなのかなと思います。
外部から指定したサーバへブルートフォースアタックするコード。ftp, mysql, postgresqlに対応しています。
まず ブルートフォースアタック ですが、
非常に効率の悪い方法であるが、認証失敗回数制限によりIDが凍結されない限り、パスワードが取得されてしまう可能性がある。そのためにも定期的にパスワードを変更されることや、判明しやすい「平易な英単語」を含むものは使用しないことが推奨されているのである。数字だけなどというのはもってのほかで、あっという間に解読されてしまう。
効率が悪くてもプログラムで行えばパスワードを何万回も総当たりで試すのは容易なことです。例えば数字だけの8桁のパスワードであれば99999999回パスワードを試せば必ずヒットしてしまうので危険ということになりますね。人間ならそんな回数はとてもやる気になりませんが、簡単なプログラムを書けばあっという間にこれを実行することができます。
うーん、それをできるプログラムが仕込まれていると言うことは…?自分のサーバが他のサーバにアタックをする踏み台みたいにされてしまうと言うことでしょうか。怖いです。
また、mysqlというのはデータベースなのでこのIDとパスワードが分かればデータベースの中身を改ざんしたり、消してしまうこともできてしまいそうです。今多くのWebサイトは実際のコンテンツ(ページの中身)をデータベースに持っているのでサイトの中身が改ざんされたり、消されたりすることになります。ファイルの読み書きができる時点で自分のサイトのmysqlのIDとパスワードは分かってしまってますが…、他のサーバのmysqlのIDとパスワードを抜かれてまた、それを使ってアタックされたらあらぬ疑いをもたれてしまいそうです…
ということで、結論
マルウェアに侵入されると
・自分のサイトが改ざんされたり、消されたりする可能性がある
・自分のサイトを踏み台として他のサイトにアタックを仕掛けることができるようになってしまう
ということになってしまいそうです。
WordPressは世界中で最も多く使われているCMSだと思いますので、それだけマルウェアなどの仕掛けを使って攻撃しようと思う人も多い(多くの人に影響が出る、大騒ぎになる、うれしい?)のかなと思います。
しかし、WordPressは前述したようにしょっちゅう本体の更新を行っていますのでまずは必ず最新版にしておく、というこれだけでかなり防げるのではないかと思います。
また、この記事を読んでブルートフォースアタックについて私も気になってきたので、別の記事でこの対策を考えてみようと思います。
コメント