今回の一連のWordPressを使ったサイトの改竄事件にまつわる調査をしていて気がついたのですが、曰く「脆弱性があることに気がつかれないようにするためバージョン情報を隠せ」というバッドノウハウが氾濫していることに驚きました。そんな事をして安心していたら、あっという間に改竄されてしまいます。実際、バージョン情報を隠しているサイトで改竄されているところが多数発見されている事が全てを物語っています。
もし、攻撃者が「いちいち」攻撃先のバージョンを確認して攻撃するかどうかの判断をしているようならば、今回のケースで言えば「4.7.2」に更新されているサイトは攻撃対象にはなっていないでしょう。しかしながら、弊社で管理しているWordPressを使ったサイト(4.7.2が4サイト、4.6.3が2サイト)全てに攻撃の痕跡が残っていました。
194.187.251.26 - - [06/Feb/2017:14:30:57 +0900] "GET /index.php/wp-json/wp/v2/posts/ HTTP/1.1" 301 321 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31" 194.187.251.26 - - [06/Feb/2017:14:31:03 +0900] "POST //wp-json/wp/v2/posts/4681 HTTP/1.1" 400 225 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31" ec2-54-91-184-211.compute-1.amazonaws.com - - [06/Feb/2017:16:39:34 +0900] "GET /wp-json/wp/v2/posts/ HTTP/1.1" 200 132043 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31" ec2-54-91-184-211.compute-1.amazonaws.com - - [06/Feb/2017:16:39:37 +0900] "POST /wp-json/wp/v2/posts/4681 HTTP/1.1" 400 225 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31"
これは一部ですが、実際のログです。このログを残されたサイトは4.7.2になっているサイトなので、もちろん攻撃は成功していませんが、こういった記録が多数残っています。ここから判る事は「攻撃者はいちいちバージョン情報なんか確認もせず、総当たりで攻撃している」という事です。バージョン情報を隠す事には「何ら意味がない」という事なのです。
この結果から言えるのは、改竄被害を避けるためには「脆弱性のある事を隠す」なんて無意味な事をせず、ソフトウェアを常に最新にする事が唯一の策であるのです。巷で流れる変なバッドノウハウを一切信用せず、地道な作業が「改竄されるか、されないかの別れ目」になると断言させていただきたいと思います。もちろん、ゼロデイ攻撃(脆弱性の発覚前に受ける攻撃)は避けようがありませんが、既知の脆弱性に対しては唯一無二の防御法であると言えます。
是非とも、サイトの管理をしている業者様とソフトウェアのバージョンアップに関して十分なお話し合いをされることをお勧めします。その話し合いに於いて、管理業者様が「ソフトウェアを随時最新にする作業を嫌がる」ようであれば、改竄された時の責任の所在を明確にしておいたほうが良いでしょう。賠償責任も含めて議論をされる方がお互いのためにベストな事だと弊社は考えます。