WordPress公開直後に来た「/.git/config」スキャン|アクセスログ分析【Security Log #4】

※本記事にはプロモーションが含まれています。

WordPressサイトを公開すると、検索エンジンだけでなく様々なBotがアクセスしてきます。

以前の記事では、公開直後にBotがアクセスしてくる様子や、最初に確認されるURLについて紹介しました。

今回は、アクセスログを詳しく確認していると見つかった 「/.git/config」へのアクセスを分析してみます。

.git/config は通常、Webサイト上で公開されるべきファイルではありません。
それにもかかわらず、サイト公開から間もないタイミングでアクセスが確認されました。

この記事では、

  • 実際のアクセスログ
  • .git/config とは何か
  • なぜBotがこのURLを探すのか
  • アクセスしてきたIPアドレスの特徴

を解説します。

実際のアクセスログ(/.git/config スキャン)

まずは実際のアクセスログです。

www.vivisec.net 167.172.134.198 - - [22/Feb/2026:18:46:44 +0900]
"GET /.git/config HTTP/2.0" 404 678 "-"
"Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36"

このログから分かるポイントは次の通りです。

アクセスURL

/.git/config

HTTPステータス

404

User-Agent

Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro)

.git/config は存在しないため404(Not Found) が返されています。

つまり、これはGitディレクトリの公開ミスを探すスキャンと考えられます。


/.git/configはGitリポジトリの設定ファイル

.git/configGitリポジトリの設定ファイルです。

Gitで管理されているプロジェクトでは、通常次のような構造になります。

project/
├─ .git/
│ ├─ config
│ ├─ HEAD
│ ├─ objects/
│ └─ refs/
└─ source files

config ファイルには次のような情報が含まれます。

[remote "origin"]
url = https://github.com/example/project.git

つまり、このファイルには、

  • GitリポジトリのURL
  • ブランチ設定
  • 開発者の設定

などが含まれています。


なぜBotは /.git/config を探すのか

攻撃者やスキャナーは公開されてしまったGitディレクトリを探しています。

もし .git フォルダが公開されている場合、次のようなアクセスを行うことで、サイトのソースコードを取得できる可能性があります。

/.git/config
/.git/HEAD
/.git/index
/.git/objects/

これらの情報を組み合わせることで、Gitリポジトリを復元できる場合があります。

つまり、

  • ソースコード
  • 設定ファイル
  • 過去のコミット

などが取得されてしまう可能性があります。


WordPressサイトでのGit公開ミスによるリスク

WordPressサイトでも、.git ディレクトリが公開されていると次のような情報漏えいにつながる可能性があります。

データベース情報の漏えい

Git履歴から

wp-config.php

が取得されると、データベースユーザーやパスワードが漏れる可能性があります。

APIキーや秘密情報の漏えい

開発環境によっては、

.env
config.php

などに

  • APIキー
  • メール設定
  • 認証トークン

が保存されていることがあります。

Git履歴からそれらが復元されることもあります。

こうしたリスクを早めに把握するためにも、ログを確認できる環境は重要です。

私の場合はレンタルサーバーの管理画面からアクセスログを確認しています。

エックスサーバー公式はこちら


スキャンしてきたIPアドレスを確認

今回アクセスしてきたIPアドレスはこちらです。

167.172.134.198

このIPアドレスはクラウドサーバー(VPS)で使われることが多いレンジです。

攻撃者やスキャナーはよく、VPS、クラウドインフラを利用してインターネット上のサイトを自動スキャンしています。

また、User-Agentを見ると、

Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro)

となっています。

一見するとスマートフォンのブラウザのように見えますが、これは実際のブラウザを装ったUser-Agentである可能性があります。

セキュリティスキャンでは、Botだと判別されにくくするために一般的なブラウザのUser-Agentを偽装することも珍しくありません。


WordPressサイトは公開直後からスキャンされる

今回のログで興味深いのは、サイト公開から間もないタイミングでアクセスがあったことです。

WordPressサイトは公開するとすぐに

  • 自動スキャナー
  • セキュリティBot
  • クローラー

などが巡回を始めます。

そのため、サイト公開直後でも、

.git
.env
wp-login.php
xmlrpc.php

などのURLを確認するアクセスが発生します。


/.git/configスキャンへの対策

/.git/config へのアクセスは、Gitディレクトリの公開ミスを探すスキャンである可能性が高いです。

そのため、以下のような対策を行っておくことが重要です。

① .gitディレクトリを公開しない

本番サーバーには .git フォルダをアップロードしないようにします。

FTPやデプロイツールを使う場合は、.git を除外する設定にしておきましょう。

② .gitへのアクセスを制限する

万が一アップロードされてしまった場合でも、Webサーバー側でアクセス制限をかけることができます。

例(.htaccess)

Require all denied

③ 本番環境と開発環境を分離する

開発用のGit管理ディレクトリはローカル環境や非公開サーバーに置き、本番環境には必要なファイルのみを配置するのが基本です。

④ 定期的にアクセスログを確認する

今回のようなスキャンは、アクセスログを見て初めて気づくことが多いです。


まとめ│アクセスログでGitスキャンを確認できる

アクセスログに、

GET /.git/config

というリクエストがあった場合、それは Gitディレクトリの公開ミスを探すスキャンである可能性が高いです。

もし .git フォルダが公開されていると、

  • ソースコード
  • データベース情報
  • APIキー

などの重要な情報が漏えいする可能性があります。

WordPressサイトでも、Gitでテーマやプラグインを管理している場合は、本番サーバーに .git ディレクトリを公開してしまわないよう注意が必要です。

普段からアクセスログを確認することで、このようなスキャンの存在に気づけます。



このブログの運営環境

  • WordPress
  • GeneratePress
  • エックスサーバー

エックスサーバー公式サイト