セキュリティ

PHPの汚染にまいりました、乗っ取られたサーバは「.htaccess」と「index.php」だけで不正な表示を続けてしまいます

この記事は約6分で読めます。

fuseinahtaccess200.jpg昨日の記事とは別のサーバでの脆弱性乗っ取られ案件です。けっこう深刻な状況になってしまい、もうこのサーバーを諦めて別のサーバに移転しようかというくらいの状況になっています。(サーバはさくらインターネットですが、さくらインターネットが悪いわけではありません)
状況としては、不正なアクセスによる侵入でPHPファイルが汚染されました。該当ファイルは「.htaccess」と「index.php」の2つだけです。しかし、この2つのファイルが自己増殖するため、消しても消してもゾンビのように復活して蘇ってきてしまいます。

サーバーが不正侵入され乗っ取られた事例

不正なファイルは最終的に2つ

▼「index.php」ファイル
fuseinaindexphp640.jpg

▼「.htaccess」ファイル
fuseinahtaccess640.jpg

この2つのファイルは無限増殖します。

そしてこの2つのファイルが不正にファイルを増殖していくようです。

▼埋め込まれた不正ファイルの一例
umekomaretafuseifile.jpg

上記のように埋め込まれた不正ファイルは不正なページを表示します。この不正ファイルはFTPで一括削除ができました。これらの不正ファイルは必ず削除しなければなりません。

しかし、不正ファイルを削除してもゾンビのように復活してきます。

なぜ…。

index.phpが不正な動きをします

問題なのは「index.php」です。

index.phpが動いていると、
<https://独自ドメイン名/index.php>
で不正なページが表示されます。

しかもそのページで表示されたリンクをクリックすると次々にサイト内のページが開きます。

htmlソースの一部を紹介すると…

<h2>食にまつわるコンテンツ</h2>
<ul>
<li><a href=”独自ドメイン名/anq/index.php”>暮らしと食の消費者調査</a></li>
<li><a href=”独自ドメイン名/waza/index.php”>料理の小わざ</a></li>
<li><a href=”独自ドメイン名/tsubo/index.php”>料理のつぼ</a></li>
<li><a href=”独自ドメイン名/jiten/index.php”>なるほど料理用語</a></li>
</ul>
<h2>ベターホームについて</h2>
<ul>
<li><a href=”独自ドメイン名/public/koueki.php”>公益活動について</a></li>
<li><a href=”独自ドメイン名/school/leader/index.html”>リーダー会員について</a></li>
<li><a href=”独自ドメイン名/book/”>ベターホームの料理の本</a></li>
</ul>

というような感じです。

リンク先をクリックすると、あるはずがないページが開きます。そのページからのリンクも次々と開きます。

不要なファイルの削除には効果的な順番があるようです

ゾンビのように何度も復活するファイルですが、不正なファイルを除去したり、不正なファイルが入っているフォルダの属性を「000」に変更しロックしたりしていくと、だんだん活動域が狭まってきました。

ftpfuseinafile640.jpg

もうすでに、サーバ内の他のデータはロックをかけています。すべてのフォルダをFTPで「000」としてありますので、動作できない状況にしてあります。なので、動いているフォルダは上記の「/maintenancenow」というフォルダだけです。

現在は、このフォルダに独自ドメインを表示させていますので、実質的にファイルは3つしかありません。

httpには優先表示のルールがあるので、
index.htmlとindex.phpという2つのファイルがあると、
index.htmlを優先して表示してくれます。

index.htmlの内容は「当サイトはメンテナンス中です」というテキストだけの表示です。

index.phpのほうから削除するとよい

しばらくこの状況にしてから、ファイル削除の順番があることに気づきました。

多数のphp不正ファイルは除去できましたので、すでに不正ファイルは
index.php
.htaccess
の2つしか残っていません。

これまでは、どちらかを削除してもゾンビのように蘇ってきました。
しかし、サーバー内のすべてのフォルダを「000」にして、しばらく時間をおいたことにより、この2つのファイルしか不正な動きをしないことになります。

この状況で
.htaccess
を削除すると
index.php
が復活します。

しかし、
index.php
のほうから削除すると
.htaccess
は復活しないことがわかりました。

そこで、
index.php
を削除してから
.htaccess
をFTPで上書き送信しました。

これでしばらく不正な動きがなくなりました。
上書き送信した.htaccessは

ErrorDocument 404 /

という内容です。 この状況でしばらく様子をみてから、本格的なサーバ内の復旧を検討したいと思います。

この処理については以下のサイトの情報を参考にしました。

WordPressを運用中のサーバがまるごとPHPマルウェアに感染していた時の対応メモ
https://qiita.com/Ayutanalects/items/a359df4e4b445229fcf2

時系列で見る:WordPressを運用中のサーバが丸ごとPHPマルウェアに感染する流れ
https://qiita.com/Ayutanalects/items/e7919afadc7d8394820f

WordPressの不正ログイン対策7つと誤った対策方法について
https://wpmake.jp/contents/security/security/illegality_login/

WordPressがハッキングされ管理画面が「403 Forbidden」エラーでログインできなくなった時にやったこと
https://kosaeru.net/memo/wordpress-forbidden/

この機会にサーバー移転を検討

なんだかケチがついたこともあり、このサーバを使い続けるのはすっきりしません。

そこで、サーバー移転を提案しました。

このレンタルサーバーは、さくらインターネットのスタンダードです。
さくらインターネットのレンタルサーバーは、同じ会員IDで複数のサーバー契約ができます。ドメイン管理もデータ管理も同じ会員IDで処理できるので容易で便利です。

あらたに「プレミアム」を契約して、そのプレミアムのほうで、データを復旧させて環境を再構築しようということです。

さくらのレンタルサーバ一覧
https://rs.sakura.ad.jp/

この方法にはいくつかのメリットがあります。

・ケチがついたサーバから物理的にさよならできる
・プレミアムはスタンダードより格段に早い
・コンテンツブーストという機能が無料で使える
→WordPressを運用するなら表示速度が早くなります

もともと表示速度が遅いという問題もありましたので、この方法がベターではないかと思います。