本ページの位置づけ
日々のセキュリティ監視で実際に観測した攻撃を分類・整理したものです。攻撃の「種類」や「目的」は記載しますが、fail2banの検知しきい値・ファイアウォールの実ルールなど現在の防御設定の具体的な数値は意図的に記載していません。対策の考え方は「対策・対応の記録」をご覧ください。巡回しているクローラーについては別ページにまとめています。
この一覧の限界について
ここに載っているのは、あくまでWebサーバー・メールサーバーのログにまで到達し、かつ代表的だと判断した攻撃の一部です。実際にはさらに多くの試行があり、似た手口はまとめて代表例のみ掲載しています。また、送信元の国やクラウド事業者によっては、境界のファイアウォール(FortiGate)の段階で通信そのものが破棄され、Webサーバー側のログに一切残らないケースもあります。つまり本ページは「実際に受けている攻撃のすべて」ではなく、「サーバーまで到達し記録が残った攻撃の代表例」として読んでください。
第1章:危険度 最大級(Critical)の攻撃
いずれも「成功すればサーバー乗っ取りや機密情報漏洩に直結する」種類の攻撃です。共通しているのは、攻撃者が自動スキャナーで無差別に対象を探しているという点で、このサイトが特別に狙われたわけではありません。インターネットに公開されたサーバーであれば、規模の大小を問わず日常的に受けている攻撃です。
| 攻撃カテゴリ | 代表IP | 国・クラウド | 具体例 | 目的 | 結果 |
|---|---|---|---|---|---|
| 機密ファイル総当たり攻撃(.env / .aws / config.json) | 162.141.167.71 | 米国 | /.env /api/.env /backend/.env /.aws/credentials /config.json | DB・APIキー・認証情報の窃取 | 404で防御 |
| Laravel / Docker 設定ファイル窃取攻撃 | 195.178.110.199 | 欧州 | /.docker/.env /.docker/secrets.json | Docker/Laravelの秘密情報窃取 | 404で防御 |
| SSL秘密鍵窃取攻撃 | 81.171.74.60 | オランダ | /server.key | HTTPS通信の解読・中間者攻撃 | 404で防御 |
| DBバックアップ窃取攻撃 | 81.171.74.60 | オランダ | /backup.sql | DB情報の完全漏洩 | 404で防御 |
| 複合型SMTPプロトコル破壊攻撃 | 207.175.172.242 | 米国(クラウド系) | EHLO偽装・非SMTPコマンド・不正な改行の混在送信 | メールサービス妨害・脆弱性探索 | postscreenが接続段階で遮断 |
| 機密ファイル総当たり攻撃(.env) | 5.161.62.209 | 欧州(Hetzner系) | GET /.env | DB接続情報・APIキーの窃取 | 404で防御 |
| 機密ファイル総当たり攻撃(複合型) | 91.148.245.81 | 欧州(Hetzner系) | .env / .git/HEAD / server.key / docker-compose.yml / wp-config.php / .ssh/id_rsa 等 | SSH鍵・DB・APIキーの窃取 | 404で防御 |
これらはすべて「404(該当ファイルが存在しない)」または「postscreenによる接続段階での遮断」で終わっており、実際にファイルが読み取られたケースはありません。なお、別の経路で一度だけ実際に情報が読み取れる状態が発生していますが、日々のログ確認によって自ら気づき、即日改善しています。次章で紹介します。
第2章:自サーバーで実際に発生した事例
「攻撃を防いだ」だけでなく、「自分たちの設定ミスに自分で気づき、直した」実例も紹介します。日々ログを確認し、気づいたら即座に改善するという運用姿勢を、実際の事例で示します。
実例:gitディレクトリの公開 → 発見・即日改善
サイトのコンテンツをgit管理する運用に切り替えた際、リポジトリの管理情報(.gitディレクトリ)がWebサーバーから直接読み取れる状態になっていました。これは日々のログ確認の中で自ら発見したものです。自動スキャナーが該当ディレクトリへのアクセスに成功しているログに気づき、即日Webサーバー側の設定で該当パスへのアクセスを遮断、コミット履歴に実際の認証情報等が含まれていないことも確認して対応を完了しました。
教訓: サイトのコンテンツをgitで管理する場合、リポジトリ管理用のディレクトリがドキュメントルート配下に置かれていると、明示的に遮断しない限りそのままWeb公開されてしまいます。「gitリポジトリ化した」時点で、遮断設定もセットで行う必要があります。こうした見落としに気づけるかどうかは、日々ログを見ているかどうかで決まります。
第3章:危険度 高 の攻撃(一覧)
最大級ほどではないものの、繰り返し観測されている攻撃パターンです。代表的なものを分野別に挙げます(すべて404またはfail2ban・Postfixによる防御で終わっています)。
- RCE(リモートコード実行)狙い:
/cgi-bin/.../bin/shのような古いCGI脆弱性を狙ったパス total当たり - CMS/フレームワーク設定窃取:WordPress(
wp-json、wp-login.php、xmlrpc.php)、Joomla、phpinfo.php の総当たり探索 - メール系ブルートフォース:SMTP AUTHの連続失敗によるアカウント乗っ取り試行
- Gitリポジトリ探索:
.git/config、.git/HEADへの直接アクセス試行(前章の実例と同種の狙い) - Laravel Ignition Exploit:Laravelのデバッグ機能を悪用したRCE試行
- IoT/ルーター脆弱性探索:家庭用ルーターやIoT機器を狙ったパスへのランダムアクセス
第4章:総括
これまでに観測した攻撃は、標的型ではなく、インターネット全体を無差別にスキャンする自動化ボットによるものがほとんどです。共通する対策の考え方は次の3点です。
- 境界(ファイアウォール)・エッジ(リバースプロキシ)・アプリケーション(Webサーバー/メールサーバー)・ログ監視(fail2ban等)の多層防御で、1つが突破されても他層で止める
- 「存在しないはずのファイルへのアクセス」を異常として検知する仕組み(404ベースの検知)が、機密ファイル総当たり系の攻撃に有効
- それでも100%は防ぎきれない前提で、日々ログを確認し、想定外の200応答(=実際に読み取れてしまった)がないかを見る運用が最後の砦になる(第2章の実例の通り)
対策の具体的な内容は「対策・対応の記録」、日々巡回しているクローラーの評価は「クローラー紹介」で解説しています。