WordPressを使ったWebサイトへの攻撃にあいました。そのログを解析したところ、いろんなことをやろうとしています。
犯人の標的はxmlrpcとREST API、そして、ユーザー・アーカイブページからログインユーザー名を盗もうとしています。
不正アクセスを試されたログ
まずは、不正アクセスのログを見てみましょう。
2.588 EXPIRED create XXX.XXX.XXX.XXX - - [17/Apr/2021:06:23:05 +0900] "GET / HTTP/1.1" 200 254334 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4240.193 Safari/537.36" "-"
0.729 - - XXX.XXX.XXX.XXX - - [17/Apr/2021:06:23:06 +0900] "GET //wp-includes/wlwmanifest.xml HTTP/1.1" 200 1045 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4240.193 Safari/537.36" "-"
1.034 - - XXX.XXX.XXX.XXX - - [17/Apr/2021:06:23:07 +0900] "GET //?author=1 HTTP/1.1" 404 157610 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4240.193 Safari/537.36" "-"
1.848 - - XXX.XXX.XXX.XXX - - [17/Apr/2021:06:23:09 +0900] "GET //?author=2 HTTP/1.1" 404 157610 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4240.193 Safari/537.36" "-"
1.715 - - XXX.XXX.XXX.XXX - - [17/Apr/2021:06:23:10 +0900] "GET //?author=3 HTTP/1.1" 404 157610 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4240.193 Safari/537.36" "-"
1.857 - create XXX.XXX.XXX.XXX - - [17/Apr/2021:06:23:12 +0900] "GET //wp-json/wp/v2/users/ HTTP/1.1" 401 198 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4240.193 Safari/537.36" "-"
0.249 - create XXX.XXX.XXX.XXX - - [17/Apr/2021:06:23:13 +0900] "GET //wp-json/oembed/1.0/embed?url=https://sample.com/ HTTP/1.1" 404 84 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4240.193 Safari/537.36" "-"
0.452 - - XXX.XXX.XXX.XXX - - [17/Apr/2021:06:23:14 +0900] "POST //xmlrpc.php HTTP/1.1" 200 415 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4240.193 Safari/537.36" "-"
0.375 - - XXX.XXX.XXX.XXX - - [17/Apr/2021:06:23:14 +0900] "POST //xmlrpc.php HTTP/1.1" 200 415 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4240.193 Safari/537.36" "-"
・
・
・
0.329 - - XXX.XXX.XXX.XXX - - [17/Apr/2021:06:39:20 +0900] "POST //xmlrpc.php HTTP/1.1" 200 512 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4240.193 Safari/537.36" "-"
0.299 - - XXX.XXX.XXX.XXX - - [17/Apr/2021:06:39:21 +0900] "POST //xmlrpc.php HTTP/1.1" 200 512 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4240.193 Safari/537.36" "-"
最初はサイトのホームにアクセスがあり、WordPress本体にあるマニフェストファイル(xml)のアクセスがあります。
(くわしくは後述。)
その後、WordPressの管理画面で作成する管理者や編集ユーザーのarchiveページへのアクセスがあり、json形式のレスポンスを返すREST-APIリクエストを2件行い、xmlrpcへ大量のアクセスがありました。
パッと見ですが、Dos/DDos攻撃、ブルートフォースアタックを仕掛けられたようですね?
もうひとつは、プログラムでやっているのが分かります。短い時間にいくつかの疎通を確認して、つながる(ステータスコード200を返す)と思ったら一気にアクセスしてくる。
ボクの場合はxmlrpcが標的にされました。
DoS/DDoS攻撃
DoS攻撃(Denial Of Service Attack)
短時間に大量のアクセスを行ってサーバーに高負荷を与え、アプリケーションが正常に動かなくするもの。
WebサーバーのHTTP/HTTPSだけでなく、外からアクセスのリクエストを送信するプロトコル全般で行われる。
Webサーバーへの攻撃はF5アタックが有名。
(ブラウザでF5を押すと再表示が行われる。その機能を使って大量のアクセスを行う。)
サーバーごとパンクさせることもある。
DDoS攻撃(Distributed Denial Of Service Attack)
ネットワーク上にある別のコンピュータを経由して行うDoS攻撃。
攻撃者はまず無関係のコンピュータを乗っ取り、そこから攻撃するので特定されづらい。
また、複数のコンピュータから一気に畳み掛けることもできるので、DoS攻撃よりも破壊力がある。
Distributedは『分散』という意味。
これらの攻撃を防ぐには1秒間あたりのアクセス数を制限するなど行うが、正常な集中アクセスを処理しながらの調整がむずかしい。
ブルートフォースアタック(総当り攻撃)
ユーザー名やパスワードなどを大量に作成し、サービスのログインを試みる攻撃。
不正ログインのための情報解析をかんたんにできる初歩的な手法。
初歩的な手法なので対応策もよく知られる。
- ログイン制限(3回失敗するとしばらくログインできない。解除が必要など)
- 2段階認証(安易な手法を使うぐらいなのであきらめも早い。)
Step1. サイトが疎通できるか確認
2.588 EXPIRED create XXX.XXX.XXX.XXX - - [17/Apr/2021:06:23:05 +0900] "GET / HTTP/1.1" 200 254334 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4240.193 Safari/537.36" "-"
ログをひとつずつ分解して見ていきましょう。まず最初は、サイトのホームへのアクセスです。GETで指定しているURLが "/" になっているので分かりますね?
ここでは何もする必要はありません。ログで気づいたことはアメリカやEU圏のサーバーを経由して行われたこと。XXX.XXX.XXX.XXXでマスキングしましたがIPが表示されます。それを調べればすぐに分かる。
サンタモニカだったり、ニューヨークだったり色んなところから来てました。まぁこれも偽装か乗っ取りでしょう。
そしてもう一つは、Google製のブラウザChromeを使ってるか偽装しているところ。これもウソでしょうし大した情報ではありません。
(Windows10のPCからともなっているがこれも偽装できる。)
User-Agentの見方(編集中)
- P1 不正アクセスを試されたログ
- P2 Step2. ブログ編集ツールの設定情報へのアクセス
- P3 Step3. WordPressのログインユーザー名を取ろうとする。
- P4 Step4. REST APIからユーザー情報を取ろうとする。
- P5 Step5. oEmbedから情報を取ろうとする。
- P6 Step6. xmlrpcからブルートフォースアタック。