32blogby StudioMitsu
security8 min read

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

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

privacyGitDNSsecurity

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

目次

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

この記事では、開発者が意図せず個人情報を公開してしまう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

まとめ

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

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

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

NordVPN

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

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