32blogby Studio Mitsu

開発者の個人情報が漏れる5つの経路と対策

Gitコミット、npmパッケージ、WHOIS、DNS。開発者が意図せず個人情報を公開してしまう経路と、具体的な防御方法を解説する。

by omitsu12 min read

当記事にはアフィリエイト広告が含まれています

目次

コードを書くことに集中していると、自分の個人情報がどこに漏れているかは意識しにくい。だが実際には、Gitのコミット履歴、npmパッケージのメタデータ、ドメインのWHOIS情報など、開発者特有の経路 から個人情報が公開されている。

この記事では、開発者が意図せず個人情報を公開してしまう5つの経路と、それぞれの具体的な対策を解説する。

コード公開Git / npm / Docker露出メタデータ漏洩メール / IP / 名前発見経路を特定5つのチェック修正対策適用匿名化 / 設定変更

経路1: Gitコミットのメールアドレス

git log を実行すれば、コミットした全員のメールアドレスが見える。GitHubのパブリックリポジトリなら、世界中の誰でも確認できる。

bash
git log --format='%ae' | sort -u

このコマンドで、そのリポジトリに関わった全員のメールアドレスが一覧表示される。

対策: GitHubのnoreplyメールを使う

GitHubは各ユーザーにnoreplyメールアドレスを提供している。形式は ID+username@users.noreply.github.com だ(IDはGitHubの数字ID)。GitHubの Settings → Emails で確認できる。

bash
git config --global user.email "123456+username@users.noreply.github.com"

GitHubの設定画面で「Keep my email addresses private」を有効にすると、Web上での操作にもnoreplyアドレスが使われる。「Block command line pushes that expose my email」を有効にすれば、個人メールでのpushをブロックすることもできる。

経路2: npmパッケージのメタデータ

npmにパッケージを公開すると、package.jsonauthor フィールドや .npmrc の設定からメールアドレスが公開される。npmのレジストリAPIで誰でも取得できる。

bash
curl -s https://registry.npmjs.org/パッケージ名 | jq '.maintainers'

対策: 公開情報を制御する

package.jsonauthor には個人メールを書かない。

json
{
  "author": "username"
}

npm 2FAは必ず有効にする。パッケージの乗っ取り(supply chain attack)対策として必須だ。

GitHubのnoreplyメールをnpmアカウントに設定するか、公開用のメールアドレスを別途用意するのも有効だ。

経路3: ドメインのWHOIS情報

独自ドメインを取得すると、WHOIS情報として登録者の氏名・住所・電話番号・メールアドレスが公開される。個人開発者がポートフォリオサイトや個人ブログのドメインを取ると、自宅住所が世界中に公開されることになる。

対策: WHOIS代理公開を使う

ほとんどのレジストラが「WHOIS代理公開(プライバシープロテクション)」を提供している。レジストラの情報が代わりに表示され、個人情報は隠される。

レジストラWHOIS代理公開
Cloudflare Registrar無料(デフォルト有効)
Google Domains (Squarespace)無料(デフォルト有効)
お名前.com無料(申請が必要)

Cloudflare Registrarなら登録時点で自動的にWHOIS代理公開が有効になる。

経路4: DNSクエリの漏洩

あなたがどのWebサイトにアクセスしているかは、DNSクエリからISPに筒抜けだ。HTTPSで通信内容が暗号化されていても、DNSリクエストはデフォルトでは平文で送られる。

開発者にとって問題になるのは、たとえば:

  • 社外秘プロジェクトで使う外部APIのドメインがISPに見える
  • 競合サービスの調査がISPのログに残る
  • 公共WiFiでDNSクエリが傍受される

対策: 暗号化DNSとVPNを使う

DNS over HTTPS (DoH) または DNS over TLS (DoT) を使えば、DNSクエリも暗号化される。

text
# /etc/systemd/resolved.conf (Linux)
[Resolve]
DNS=1.1.1.1#cloudflare-dns.com
DNSOverTLS=yes

ブラウザ単体でDoHを有効にすることもできる。Firefoxなら設定画面の「DNS over HTTPS」から有効化できる。

ただし、DoHだけではISPにIPアドレスレベルでの接続先は見える。DNSクエリからIPアドレスまで含めて完全に隠すなら、VPNが必要だ。

NordVPN はDNSリクエストもVPNトンネル内で処理するため、ISPにはVPNサーバーへの接続しか見えなくなる。DNS漏洩テストツールも提供している。

経路5: 開発ツールの設定ファイル

.env ファイル、.gitconfig、SSH設定ファイル、クラウドのクレデンシャルファイル。開発環境には機密情報が散らばっている。

これらが .gitignore に入っていなかったり、ドットファイル管理リポジトリを公開してしまうと、APIキーやデータベースURLが流出する。

対策: 機密情報を体系的に管理する

.gitignore を徹底するGitHubが提供する .gitignore テンプレートをベースに、プロジェクト固有のファイルを追加する。

text
# .gitignore
.env
.env.*
*.pem
credentials.json

git-secrets などのツールで、コミット前にAWSキーやAPIトークンが含まれていないか自動チェックできる。

bash
git secrets --install
git secrets --register-aws

ドットファイルを公開リポジトリで管理する場合 は、機密情報を含むファイルを除外するか、テンプレート化してから公開する。.gitconfig のメールアドレスやAPIトークンが含まれたシェル設定ファイルをそのまま公開しないこと。

チェックリスト

ここまでの対策を一覧にまとめた。

経路確認項目対策
Gitgit log に個人メールが出るかnoreplyメールに変更
npmpackage.json に個人情報があるかauthorからメール削除、2FA有効化
WHOISドメインのWHOIS情報に自宅住所が出るかWHOIS代理公開を有効化
DNSDNSクエリが平文で送られているかDoH/DoT設定、VPN利用
設定ファイル.env や鍵ファイルがリポジトリに含まれるか.gitignore + git-secrets

VPNの選び方や開発ワークフローへの組み込み方は「開発者のVPN活用ガイド」で、SSH接続のセキュリティ強化は「SSH安全ガイド」で解説している。IPアドレスの隠蔽方法については「IPアドレスを隠す方法」も参考にしてほしい。

よくある質問

GitHubから本名やメールアドレスはバレる?

バレる。git log にはコミットしたときのメールアドレスがそのまま記録される。一度でも個人メールでパブリックリポジトリにpushしていたら、履歴を書き換えない限り永久に閲覧可能だ。今すぐGitHubのnoreplyメールに切り替えて、「Block command line pushes that expose my email」を有効にしておこう。

WHOIS代理公開(プライバシープロテクション)は合法?

合法だ。ICANNもプライバシーサービスの利用を認めている。2018年のGDPR施行以降、EU圏の登録者についてはレジストラ側がデフォルトで個人情報を非公開にするケースも増えた。日本のお名前.comでも無料でWHOIS代理公開を申請できる。

DNS over HTTPSを使えばISPから完全に見えなくなる?

DNSクエリは暗号化されるが、実際に接続するIPアドレスはISPから見える。たとえばDoHで example.com のDNSを暗号化しても、93.184.216.34 への接続自体はISPのログに残る。DNSもIPも隠すにはVPNが必要だ。

開発用のメールアドレスは分けるべき?

脅威モデル次第だが、最低限GitのコミットとnpmにはGitHubのnoreplyメールを使うべきだ。OSSへの貢献やパッケージ公開、ドメイン登録をするなら、個人のメインアドレスとは分けておくと管理が楽になる。

APIキーがすでに漏洩していないか確認する方法は?

git log -p | grep -E "(AKIA|sk-|ghp_|npm_)" でローカル履歴をスキャンできる。GitHubのSecret Scanningはパブリックリポジトリを自動チェックしてくれる。事前防止には git-secrets をインストールしてコミット前にブロックするのが確実だ。

VPNを使えばDNS漏洩は完全に防げる?

VPNによる。一部のVPNはDNSクエリをトンネル外で処理してしまう。NordVPNはDNSをVPNトンネル内で処理し、DNS漏洩テストで確認もできる。VPN接続後は必ずテストすること。

まとめ

開発者の個人情報漏洩は、攻撃ではなく 自分の設定ミス から起きることが多い。Gitコミットのメールアドレス、npmのメタデータ、WHOISの住所情報——どれも「公開するつもりはなかった」のに公開されている。

対策はどれも5分以内で終わる。Gitのメールをnoreplyに変更し、WHOISの代理公開を有効にし、DNSの暗号化を設定する。この3つだけで、個人情報の露出は大幅に減る。

DNSクエリの漏洩やフリーWiFiでの傍受が気になるなら、NordVPNでDNSリクエストごと暗号化するのが最も確実だ。

NordVPN

世界最大級のVPN。高速・安全・使いやすい

  • 6,400+サーバー(111カ国)
  • 独自プロトコルNordLynx(WireGuardベース)
  • Threat Protection Pro(広告・マルウェアブロック)

関連記事: