概要
GitHub上で削除されたファイルが、機密情報を露出するリスクを持っていることがわかりました。
ターゲットは、公開されているGitHubリポジトリ内の削除されたファイルであり、これらがAPIキー、トークンなどの機密情報を含んでいる場合にリスクが顕在化します。
Gitのバージョン管理機能により、削除されたファイルとその内容がリポジトリ内で保持され続けていることが原因です。
影響を受けるシステム
影響を受けるのは、GitHub上に公開された数多くのリポジトリです。
今回は、Fortune500企業が所有するリポジトリで、削除されたファイルから機密情報が漏洩しているケースが確認されました。
対策
GitHubの「シークレットスキャニング」や「プッシュプロテクション」といった機能を活用することです。
これらの機能は、コミット時に機密情報が含まれていないかを検出し、ブロックすることでリスクを軽減します。
また、.envファイルや.pycや.pdbなどのコンパイラが生成するバイナリファイルも、機密情報が含まれる可能性があり、.gitignoreを使ってGithubリポジトリにコミットしないことも大切です。
この脆弱性が及ぼす影響
この脆弱性により、Gitのバージョン履歴から削除されたファイルとその内容を復元し、機密情報を取得することが可能です。
Gitはすべての変更履歴を保持しており、削除されたファイルもリポジトリ内で「ダングリング」データとして残るため、攻撃者がこれらにアクセスすることで機密情報を漏洩させる可能性があります。
また、プライベートリポジトリについても注意が必要です。
チームメンバーや開発ベンダーなど、プライベートリポジトリにアクセスできる人は同じ方法で機密情報を取得できます。
以下の記事にもあるように、退職する従業員や解雇される従業員は特にそのリスクは高まります。
https://kumahiyo.com/grant-access-british-museum/
また、他の脆弱性などを通じてGithubのアクセス権が侵害された場合も、同じ方法で機密情報が漏洩する可能性があります。
EC-CUBEやWordpressなどのCMSでも、Githubを使った管理は当たり前のようになっています。
これらがプライベートリポジトリであっても十分な注意が必要です。
この脆弱性は、開発者がGitの履歴管理機能を過信し、削除されたファイルも完全に消去しないことから生じています。
開発者はリポジトリ内の機密情報を定期的に確認し、必要な対策を講じることが重要です。
Note
https://www.csoonline.com/article/3969648/github-secrets-deleted-files-still-pose-risks.html