はじめに
福岡のホームページ制作・SEO対策の株式会社スゴヨクです。
2024年に入ってから、ワードプレスを運用しているサーバーがまるごとウイルスに侵入されてしまうということが何度か(何度か……泣)あって、その際に対応したことをメモとして残しておこうと思います。
はじめにウイルスに侵入されたときには、サーバー内で運用しているサイトの規模が大きかったためサーバーの移行という対処法を取りました。
→【ワードプレスにウィルス侵入?改ざんされた?「.htaccessとindex.php他もろもろ」】はこちらから2回目以降はウイルスの動向がおおむねつかめてきたので、SSHを使用して削除していきました。今回はこのSSHでのウイルスとの戦い方について、再戦があった場合の自分へのメモとして書いていきます。
ウイルスがやっているっぽかったことをざっくり
FTPから確認できたこと
参考程度にですがこちらでざっくりと把握できたことを羅列していきます。あくまでざっくり、こういう悪さしてるっぽいなというものです。
・.htaccessに特定のファイル以外へのアクセスを禁止するようなコードが記述されている
・そしてその.htaccessがサイト内の各フォルダに設置されている(各フォルダに……泣)
・index.phpに不正なコードが記述されている
・moon.php/about.php/style2.php/doc.php/Simple.phpなどなどの不正なファイルが各所に設置されている
・これらの不正なファイルを書き換え/削除できないようにパーミッションが444に設定されている
↓.htaccessの不正な記述
↓index.phpの不正な記述
ワードプレスの管理画面に入れたら
ウイルスの増殖具合にもよりますが、サイトにアクセスすると真っ白な画面が表示されるか、怪しいサイトに飛ばされてしまうか、危ないからGoogleがブロックしましたよという画面が表示されるかという状況でしょうか。
上記の不正なファイルを削除したり不正なコードを取り除いたりしていくと、一時的にワードプレスの管理画面に入れるようになります。
そのときには恐らく以下のような悪さを確認できます。
・既存のプラグインに似せた不正なプラグインが追加されている(ワードプレスの管理画面ではなくFTPで確認しないとわからない場合もあるそうです)
・知らないユーザー(メールアドレスが123@abc.comなど)が追加されている
ひとまず知らないユーザー・プラグインは削除しましょう。
プラグインはできることなら一度すべて削除して、ウイルスたちの削除が済んでから再度公式のものを追加していくほうが確実です。
ユーザーに関してはパスワードの再設定・デフォルトのログイン画面を使わない・wp-adminから自動でログイン画面へリダイレクトさせないなどの対処が有効です。
ウイルスの削除後にSiteGuard WP Pluginなどのセキュリティ対策プラグインを活用しましょう。
SSHでの戦い方
参考にしたサイト
FTPで不正なファイル・コードの検索と削除を行うと、処理にかなり時間がかかってしまうためその間にウイルスが増殖してしまいます。
他にもっとよい策はないかと思って、同じようにワードプレスに侵入してくるウイルスに対応した記事を調べていくと、SSHを使用してどんどん削除していく方法をちらほらと見かけました。
その中でも一番頼りにさせていただいたのがこちらの記事です。
【WordPressを運用中のサーバがまるごとPHPマルウェアに感染していた時の対応メモ】
https://qiita.com/Ayutanalects/items/a359df4e4b445229fcf2
いざこちら↑の記事の対処法を採用させていただこうということになったときに、SSHを普段使いしているわけではないので、そもそもの接続方法で詰まってしまいました。そのときに参考にしたのがこちらの2つです。
【XSERVERにPuTTYでssh接続】
https://blog.arashichang.com/xserver-putty-ssh/
【SSHクライアントソフトによる接続方法(PuTTY/Tera Term)】
https://rakkoserver.com/knowledge/2999
それから、実際にSSHを使用してコマンドを入力していく際に文字列検索について参考にしたのがこちらの記事です。
【grepでこういう時はどうする?】
https://qiita.com/hirohiro77/items/771ffb64dddceabf69a3
SSHでウイルスと戦っていきます
SSH接続の準備が整ったら、いよいよコマンドを入力して検索・削除を行っていきます。
この時に重要なのは、先ほどの【WordPressを運用中のサーバがまるごとPHPマルウェアに感染していた時の対応メモ】に記載されていた、
.htaccessだけを修正しても、index.phpに書かれたコードの処理で「サイトに誰かがアクセスしてきたら」.haccessが不正なものに上書されるので、必ずindex.phpを先に始末すること。
という点です。
実際に活用したコマンドは以下の通りです。もちろんバックアップをしっかりとってから駆除作業を行ってください。
①タイプ:ファイル、ファイル名:「~~index.php~~」、パーミッション:444 を検索
↓
find . -type f -name “*index.php*” -perm 444
↓
あまりにも多かったので盛大にすべて削除(②のコマンドを参照してください)
↓
ワードプレスデフォルトのものも削除しているので、サイトに表示されるエラーを確認しながら公式のクリーンなものを適宜追加
②タイプ:ファイル、サイズ:420、ファイル名:「.htaccess~~」 を検索して削除、削除時にファイル名を表示(念のため)
↓
find . -type f -size 420c -name “.htaccess*” | xargs -t rm
③「about.php|radio.php|index.php|conten」の文字列をテキスト内に含むファイルを検索(.htaccessで挙げられていたファイル名を参照)
↓
grep -lri “about.php|radio.php|index.php|conten” ./*
↓
表示されたファイルの中身を確認して適宜削除
④30分以内に更新のあったファイルを検索
↓
find . -mmin -30
これらのコマンドを組み合わせたり、ファイル名・ファイルサイズ・パーミッションなどの検索条件を調整したりしながら、3人体制でSSHの操作・ファイルの中身確認及び削除・必要なファイルの再UPを行っていきました。
SSHの操作にはここにはとても書ききれない正規表現やコマンドの知識が必要になるので都度調べてみてください。
余裕が出てきたら、サーバーのアクセスログを確認してみるとなおよいと思います。ウイルスたちがどのファイルにアクセスしようとしているのかが分かるので、どのファイルを削除するべきか、また無事に削除ができているかを照合することができます。また、これらの不正なファイルにアクセスしようとしているIPアドレスの拒否設定を行うのも有効です。
おわりに
この記事を読んでいる方は現在進行形でウイルスと戦っていらっしゃるでしょうか。ご検討をお祈りいたします。すこしでも参考にしていただけましたら幸いです。