今回は私の個人サイト「たこやきさんのつぶやき」をホストしているCaddyのアクセスログを用いて解析し、明らかになった攻撃の実態についてまとめます。このサイトはReact+Viteを使ったSPA(シングルページアプリケーション)として構築されており、CaddyによってCloudflarePagesへリバースプロキシとして転送しています。アクセスログを解析することで、多くの攻撃を受けていたことが分かりました。
今回は分析方法が主なテーマではないので触れませんが、分析用のコードはこちらに残しています。
https://github.com/takoyaki-3/caddy-logs
攻撃の概要:無差別スキャンの存在
Caddyのログ解析を行ったところ、7041個のユニークIPアドレスがサイトにアクセスしてくださってる中で、160個のIPアドレスが存在しないパスへのアクセスを試みていました。これらのアクセスは、攻撃ツールによる無差別なスキャンや、特定の脆弱性を狙ったものだと推測されます。
特に目立ったのは、WordPressを狙った攻撃です。私のサイトはWordPressを使っていないにも関わらず、/wp-admin/
や /wp-login.php
といったWordPress特有の管理画面やログインページへのアクセスが大量に確認されました。攻撃者はインターネット上のあらゆるサイトに対し、脆弱なWordPressサイトを探すために自動スキャンを行っている可能性があります。
攻撃対象となった具体的なURL
解析結果から、攻撃者が試みたURLの多くは、WordPress固有のものや、一般的な脆弱性を狙うものが目立ちました。例えば、次のようなパスが確認されています:
/file.php
/lol.php
/wp
/templates/system/error.php
/administrator/templates/bluestork/index.php
/stindex.php
/olux.php
/wp-admin/css/
/test/
/sites/default/files/
/wp-head.php
/bk
/www.php
/u.php
/wp.php
/wordpress
/.well-known/traffic-advice
/tagList
/wp-includes/Requests/Text/admin.php
/templates/rhuk_milkyway/index.php
存在しないページへのアクセス像全体はこちらから見ることができます。
これらのパスは、実際には存在しないため、404エラーを大量に発生させていました。特に、特定の期間に404エラーの数が急増していることが分かり、攻撃が集中して行われた可能性があります。例えば、2024年10月6日には404エラーが474件も発生しており、攻撃が激化していたことが見受けられました。
日毎の攻撃傾向
攻撃の傾向を日毎に分析した結果、いくつかの特定の日に攻撃が集中していることが判明しました。以下の日には、特に多くの404エラーが記録されています:
- 2024年6月15日~6月17日: この期間も404エラーが集中しており、攻撃が継続的に発生していたと考えられます。
- 2024年9月2日: 404エラーが118件発生しており、この日に攻撃が集中していたことが分かります。
- 2024年10月6日~10月9日: この期間には、404エラーが非常に多く発生しており、特に10月6日には474件、10月7日には455件発生しました。
2024-10-14追記
10月以降に404エラーが増加しているのは、SPAのURLにおいて、ページの表記方法をパラメータ表記(?page_id={page_id}
)からパス表記(/{page_id}
)へ変更したにもかかわらずトップレベルの404.html
を削除していなかったことが原因でした。
このままでは、404なのかページが実在するのかがステータスコードだけからは判断できなくなってしまう為、今後のトレースでは存在するURLリストとログをマッチングさせるなどの処理を挟む必要がありそうです。
攻撃元の国分析
IPアドレスを基にip-api.com
APIを用いて、攻撃を行った可能性のあるIPアドレスの国情報を取得しました。すると、以外にも攻撃元は日本が最上位でした。
まとめ
今回のCaddyログ解析から、私のReact+Vite SPAサイトが無差別なスキャンや脆弱性を狙った攻撃の対象となっていることが明らかになりました。個人サイトであっても、セキュリティ対策を怠らず、常に最新の対策を講じることが重要なのだと改めて実感しました。