WordPress の自動再インストールで挿入されたファイルを削除したり、復元できるのかどうかについて調べておきましたのでメモしておきます。
ファイル改ざんされるとどんな事ができるのか
その前に実際の挙動の前に改ざんによってどの様な被害にあうのかについて考えたので、それも記事に載せておきます。
- 誰にでもディレクトリのファイルを一覧を見れるようにする
- 誰にでもディレクトリのファイルの中のコードを全て表示する
- コアファイルに管理者が分からないように不正コードを挿入
- 外部から自由に不正なファイルをアップロードできるようにする
- 他の階層などに自由に不正なファイルを配置する
特定個人に対しての改ざんの場合
個人を対象にした攻撃なら、ファイル内のパスワードを抜き取ったり、データベースにアクセスして個人情報を抜き取ったり(MySQL への接続をホストで限定していたとしても侵入しているサーバー内に exec する PHP を設置して mysqldump)できそうです。
MySQL 内やファイルに直書きにしてある管理者のメールアドレスと名前のリストを取り出したり、Twitter や Facebook との連携を行うサービスの場合は、アカウントの OAuth トークンを全て奪い、Twitter アカウント乗っ取られる事がありそうです。
Twitter で DM を見れるようなトークンを保持している場合は DM も全て取り出したり、Facebook の最高権限のトークンを保持している場合は大変なことになりそうです。
BOT による改ざんの場合
BOT による自動改ざんの場合は、個人に被害を与えるよりも訪問者に不正なアプリケーションをダウンロードさせるようなスクリプトを実行させるプログラムを埋め込みそうです。この場合は既にあるファイルの先頭もしくは末尾に難読化したコードを埋め込みます。
攻撃する人の目線で考えると、これは管理者にも気付かれないように、こっそり一部のファイルだけを書き換えて実行させるのがベストです。そう考えると index.php などをとりあえず全部改ざんすると効率的に危険なコードを実行させることができそうです。
WordPress の自動再インストールの挙動について
コアファイルを書き換えて自動再インストール
自動再インストールによって、コアファイルは復元されるようです。そのため、もしコアファイルが改ざんされている可能性があると思った場合は、自動再インストールである程度復元することができると思います。(ただし、全てのファイルを確認していないので、全てのファイルが自動再インストールによって復元されるとは限りません。)
あとプラグインなども復元されないと思うので、プラグインに関しては手動による入れ直しを行うのが良いです。もちろんテーマファイルも。基本的に wp-content 以下は手動によるクリーニングが必要そうですね。
不正なファイルを挿入して自動再インストール
自動再インストールによって、公開ディレクトリに置かれた不正ファイルは除去されないようです。例えば wp-includes/wp-virus.php というファイルを置けば、ブラウザからこのアドレスにアクセスすれば実行することができると思いますが、自動再インストールしてもコレは残ったままです。
不正なファイルが置かれている危険性がある場合は自動再インストールではなく、手動による WordPress の再インストールを行うのが良いです。そうすれば不正なファイルも根こそぎ除去できるし、改ざんされたファイルも全て綺麗になります。ただ、たくさん WordPress を入れている場合は結構な時間がかかりますね。
まとめ
手動による WordPress ファイルを全て差し替えて、wp-content 以下も全て手動でファイルを入れ替えれば危険なコードは全て除去することができると思います。もちろん、改ざんされているファイルのコードの一部を使用して grep する方法でも不正なファイルの多くを除去することができます。
一番良いのは改ざんされないようにファイルの権限やサーバーの設定を見なおしておくのがベストですが、もし改ざんされた時に対応出来るようにしておくことも重要かなと思います。仕事で WordPress を使った Web サイトの構築を行なっている人は気をつけておきましょう。
コメント