コードを書くことに集中していると、自分の個人情報がどこに漏れているかは意識しにくい。だが実際には、Gitのコミット履歴、npmパッケージのメタデータ、ドメインのWHOIS情報など、開発者特有の経路 から個人情報が公開されている。
この記事では、開発者が意図せず個人情報を公開してしまう5つの経路と、それぞれの具体的な対策を解説する。
経路1: Gitコミットのメールアドレス
git log を実行すれば、コミットした全員のメールアドレスが見える。GitHubのパブリックリポジトリなら、世界中の誰でも確認できる。
git log --format='%ae' | sort -u
このコマンドで、そのリポジトリに関わった全員のメールアドレスが一覧表示される。
対策: GitHubのnoreplyメールを使う
GitHubは各ユーザーにnoreplyメールアドレスを提供している。形式は ID+username@users.noreply.github.com だ(IDはGitHubの数字ID)。GitHubの Settings → Emails で確認できる。
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.json の author フィールドや .npmrc の設定からメールアドレスが公開される。npmのレジストリAPIで誰でも取得できる。
curl -s https://registry.npmjs.org/パッケージ名 | jq '.maintainers'
対策: 公開情報を制御する
package.json の author には個人メールを書かない。
{
"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クエリも暗号化される。
# /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 テンプレートをベースに、プロジェクト固有のファイルを追加する。
# .gitignore
.env
.env.*
*.pem
credentials.json
git-secrets などのツールで、コミット前にAWSキーやAPIトークンが含まれていないか自動チェックできる。
git secrets --install
git secrets --register-aws
ドットファイルを公開リポジトリで管理する場合 は、機密情報を含むファイルを除外するか、テンプレート化してから公開する。.gitconfig のメールアドレスやAPIトークンが含まれたシェル設定ファイルをそのまま公開しないこと。
チェックリスト
ここまでの対策を一覧にまとめた。
| 経路 | 確認項目 | 対策 |
|---|---|---|
| Git | git log に個人メールが出るか | noreplyメールに変更 |
| npm | package.json に個人情報があるか | authorからメール削除、2FA有効化 |
| WHOIS | ドメインのWHOIS情報に自宅住所が出るか | WHOIS代理公開を有効化 |
| DNS | DNSクエリが平文で送られているか | DoH/DoT設定、VPN利用 |
| 設定ファイル | .env や鍵ファイルがリポジトリに含まれるか | .gitignore + git-secrets |
まとめ
開発者の個人情報漏洩は、攻撃ではなく 自分の設定ミス から起きることが多い。Gitコミットのメールアドレス、npmのメタデータ、WHOISの住所情報——どれも「公開するつもりはなかった」のに公開されている。
対策はどれも5分以内で終わる。Gitのメールをnoreplyに変更し、WHOISの代理公開を有効にし、DNSの暗号化を設定する。この3つだけで、個人情報の露出は大幅に減る。
DNSクエリの漏洩やフリーWiFiでの傍受が気になるなら、NordVPNでDNSリクエストごと暗号化するのが最も確実だ。
世界最大級のVPN。高速・安全・使いやすい
- 6,400+サーバー(111カ国)
- 独自プロトコルNordLynx(WireGuardベース)
- Threat Protection Pro(広告・マルウェアブロック)