こんなメールが届いた。冒頭だけ転載する。
Hello there,
Our security scanner Repo Lookout has found a likely vulnerability on a host for which you are listed as the contact!
Repo Lookout is a non-commercial project to find inadvertently publicly exposed source code repositories.
エンジニア用のメールアドレスには、昔から英語のスパムメールが大量に届くので読み飛ばしそうになったが、ちゃんと読んでみると、要は「あなたのサイトには脆弱性がありますよ」ということだった。
この Repo Lookout は非商用のプロジェクトであり、完全に善意で脆弱性を指摘してくれているらしい。
脆弱性とは何かというと、「あなたの運用しているHOSTNAMEというサービスは、https://HOSTNAME/.git
配下のパスにアクセスできるようになっているので、そこからコミットログやソースコードが見えてしまう」ということ。
このメールが送られてきたメールアドレスも、コミットログから見つけたもののようだ。
一応そのへんの確認はしていて、https://HOSTNAME/.git
自体はアクセスできないので油断していたのだが、https://HOSTNAME/.git/HEAD
にはアクセスできるようになっていた。
そこから辿っていけばコミットログなども読み取ることができるらしく、自分の過去のコミットログの一部がメールの文面に残されていた。
何をすればいいかというと、.git ディレクトリを消してしまうか、.git 配下のファイルすべてにアクセスできなくすればよい。
.htaccess
<Files "*">
Require all denied
</Files>
自分はさくらのWebサーバで apache を使っているので、apache なら、こういうファイルを .git 配下に置いておけば良さそう。自分は怖いので .git ごと消してしまったが。
このWebサービスのコードはGitHubで公開しているし、ソースコードにパスワードなどをハードコーディングしていることもないので大きな問題は起きなかったが、そうでなかったら大変なことになっていた。
Repo Lookout に感謝。