Alibaba Cloud Security Center #25 攻撃を検知した話

Alibaba Cloud ECS で提供しているこのブログサイトの Web サーバですが、約1年前に Alibaba Cloud Security Center を導入しました。 約1年使っている中、初めて外部からの攻撃を検知した話となります。 

Attack Awareness の Attack Type Distribution に Code execution が 3件と Trojan Script Attack が1件検知されたことが報告されています。

Code execution では 132.232.9.184218.76.223.50 の二つの IP アドレスからの攻撃となっています。 132.232.9.184 からは php に関するものです。 218.76.223.50 は以下の情報だけでは http://47.245.5.91/ を GET しているだけに見えるので Security Center がどうしてこれを Code execution と判定出来たのかは不明です。

132.232.9.184AbuseIPDB で確認してみます。 このアクセスは中国からのようでした。 Tencent Clodu Computing (Beijing) とありますが、まあ、Tencent Cloud が悪いわけではなく、その上で動いているサーバの利用者の問題なのだとは思います(意図的なのかそうでないのかわかりませんが)。

もう1つの IP アドレス、218.76.223.50、も確認してみます。 こちらは ChinaNet Hunan Province Network がISPとなっている IP アドレスのようです。

去年の5月から Security Center を利用しているのですが、SSH Brute Force 以外の攻撃検知は初めてです。 ただ、 PHP の脆弱性スキャンなどは恒常的に行われているはずです。 実際の Apache のログを見てみることにします。圧縮を回答するのも面倒なので直近2日分ですが、HellowThinkPHP 関連の脆弱性を狙ったアクセスはそれなりに来ています。

access.log:100.122.17.113 – – [17/Apr/2021:07:12:32 +0800] “GET /index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21 HTTP/1.1” 200 5741 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36”
access.log:100.122.17.12 – – [17/Apr/2021:07:21:24 +0800] “GET /?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=__HelloThinkPHP HTTP/1.1” 200 5741 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:78.0) Gecko/20100101 Firefox/78.0”
access.log:100.122.17.40 – – [17/Apr/2021:14:28:21 +0800] “GET /index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21 HTTP/1.1” 200 5737 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36”
access.log:45.155.205.211 – – [17/Apr/2021:16:38:26 +0800] “GET /index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21 HTTP/1.1” 200 9778 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36”
access.log.1:100.122.17.101 – – [16/Apr/2021:08:20:18 +0800] “GET /?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=__HelloThinkPHP HTTP/1.1” 200 5744 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:78.0) Gecko/20100101 Firefox/78.0”
access.log.1:45.155.205.211 – – [16/Apr/2021:11:56:22 +0800] “GET /index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21 HTTP/1.1” 200 5744 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36”
access.log.1:100.122.17.17 – – [16/Apr/2021:14:08:12 +0800] “GET /index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21 HTTP/1.1” 200 5744 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36”
access.log.1:45.155.205.211 – – [16/Apr/2021:20:32:14 +0800] “GET /index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21 HTTP/1.1” 200 9778 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36”
access.log.1:100.122.17.119 – – [16/Apr/2021:22:40:46 +0800] “GET /index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21 HTTP/1.1” 200 5737 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36”
access.log.1:100.122.17.55 – – [16/Apr/2021:22:50:26 +0800] “GET /?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=__HelloThinkPHP HTTP/1.1” 200 5741 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:78.0) Gecko/20100101 Firefox/78.0”
access.log.1:45.155.205.211 – – [17/Apr/2021:05:47:07 +0800] “GET /index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21 HTTP/1.1” 200 5741 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36”

この結果から言えることは Security Center は WAF のように実際のアクセスリクエストを解析しているわけではなさそうです。 おそらくですが AbuseIPDB のような 攻撃者の IP アドレスのデータベースをもっており、そこに登録されたホストからのアクセスを Attack として検知しているのではないかと推測されます。

Security Center からも “Advice Configure WAF” との案内もあり、防御するなら WAF を使ってね、ということになります。

Trojan Script Attack も確認します。 こちらは http://47.245.57.91/plus/90sec.php への POST で検知されているので、おそらく POST で Trojan を送ってきたのか、上の Code execution のように単純に送信元 IP アドレスで判定しているのかもしれません。

こちらの IP アドレス、218.76.223.50、も AbuseIPDB で見つかりました。Code execution の実行元 IP アドレスの ISP となる ChinaNet Hunan Province Network のようです。先の Tencent Cloud 同様にこの ChinaNet Hunan Province Network が悪いわけではないとは思いますが。

結果的に攻撃を検知したとは言え、普段から毎日何件も何十件も来ている普通の脆弱性スキャンの類だったようです。 Security Center がどういう基準、評価軸でリストアップしたのかは気になりますが。

最後に念のため自分のサーバのIPアドレスを AbuseIPDB で確認しておきます。not found in our database ということで大丈夫でした。

以上