プロバイダから、脆弱性のあるコードが見受けられるので対処するようにと下記の様な連絡が来た。結果的に、その対応に週末が一日つぶれることになった。
WordPressでよく利用されている timthumb.php (thumb.phpの場合もあり) というプログラムに外部から任意のプログラムのアップロードおよび実行が可能な脆弱性が発見されております。
WordPressでは本体およびプラグインにつきましてはダッシュボードで更新する機能がありますが、テーマ(デザインだけではなくプログラムも含まれています)の更新機能は無いようで、テーマのプログラムが古いまま使われ続けるケースが生じているようです。
timthumb.phpは、結構広範に使われているスクリプトなので、影響はかなり広範囲に広がっているようで、いまでも拡大しつつあるらしい。
で、自分のサイトでも対応しなくてはいけなくなったのだが、その顛末は下記の通り。
【実際に対応した顛末の次第】
- まず、ネットから該当する脆弱性について情報収集。
- 次に、各サイトにプラグイン:timthumb vulnerability scannerをインストールし、検索→アップデート。
- 使用していないテーマやプラグインをフォルダごと削除。
- 使用しているテーマやプラグインでも、サムネイル機能を使用していない場合は、timthumb.phpファイルだけを削除。
- 使用する必要があるものに関しては、さらにスクリプトを書き換えて、外部ソースを引用しないよう修正。
結局、本宅だけが、この機能を必要としていたのだが、(2)によりスクリプトのヴァージョンをアップデートすると、テーマが古かったせいか、サムネイル機能が働かなくなってしまった。
本宅で使用しているArthemia Premium は、アップデートしたバージョンがすでに配布されていたのだが、テーマの中身を一部改造して使用しているため、その作業をするのがめんどくさくて古いバージョンから上げていなかった。そのため、テーマのアップデートを緊急でするハメになった。
バージョンアップの顛末は下記のところ。
これが結構煩わしかったのだが、結果的に、最新版までアップデートできたのは良かった(従来から何度かトライしていたのだが、なぜかうまくいかなかった)。
今回の脆弱性は、スクリプトのキャッシュフォルダに外部からphpコードファイルをアップして実行させることができるというもので、外部から悪意のあるコードを実行できるということ。すでに、ゼロデイ攻撃を受けてしまっている場合は、このスクリプトファイルの修正や削除だけでは対応が不十分。
その場合は、サイトのディレクトリ内に不審なコード(base64などでエンコードされて紛れ込んでいるケースが多い)がないかを確認するか、wordpressファイルを一旦削除して、再インストールする必要がある(バックアップからではなく、配布元からダウンロードし直して)。その後、プラグインなども配布元からダウンロードしなおして、インストール。
「トラブル:スクリプトコードの脆弱性への対応顛末」への1件のフィードバック