GitHubの100,000のリポジトリで見つかった秘密情報の漏洩



秘密を収集するための方法論にはさまざまなフェーズが含まれており、最終的に機密情報を高い信頼性で識別できます。 科学的作品のイラスト



GitHubおよびオープンソースパブリッシング用の同様のプラットフォームは、今日、開発者向けの標準ツールになっています。 ただし、このオープンソースコードが認証トークン、APIシークレットキー、およびプライベート暗号キーで機能する場合、問題が発生します。 セキュリティを確保するために、このデータは秘密にしておく必要があります。 残念ながら、多くの開発者は機密情報をコードに追加しますが、これはしばしば偶発的な情報漏洩につながります。



ノースカロライナ大学の研究者チームは、GitHub 機密データの漏洩に関する大規模な調査を実施しました。 彼らは2つの補完的な方法で収集された数十億のファイルをスキャンしました。





結論は残念です。 科学者は、リークが広範囲に及び、100,000以上のリポジトリに影響を与えることを発見しただけではありません。 さらに悪いことに、何千もの新しいユニークな「秘密」が毎日GitHubに届きます。



この表には、一般的なサービスのAPIと、この情報の漏洩に関連するリスクがリストされています。







発見された秘密オブジェクトに関する一般的な統計は、ほとんどの場合、Google APIキーがパブリックドメインにあることを示しています。 RSA秘密鍵とGoogle OAuth識別子も一般的です。 通常、リークの大部分は、単一所有者のリポジトリを通じて発生します。



シークレット 合計 ユニーク %、1人の所有者
Google APIキー 212 892 85 311 95.10%
RSAシークレットキー 158 011 37,781 90.42%
Google OAuth ID 106 909 47,814 96.67%
通常の秘密鍵 30,286 12,576 88.99%
Amazon AWSアクセスキーID 26 395 4648 91.57%
Twitterアクセス​​トークン 20,760 7953 94.83%
秘密鍵EC 7838 1584 74.67%
Facebookアクセストークン 6367 1715 97.35%
PGP秘密鍵 2091 684 82.58%
MailGun APIキー 1868 742 94.25%
MailChimp APIキー 871 484 92.51%
ストライプ標準APIキー 542 213 91.87%
Twilio APIキー 320 50 90.00%
スクエアアクセストークン 121 61 96.67%
シークレットスクエアOAuth 28 19 94.74%
Amazon MWS認証トークン 28 13 100.00%
Braintreeアクセストークン 24 8 87.50%
Picatic APIキー 5 4 100.00%
合計 575,456 201 642 93.58%


コミットをリアルタイムで監視することで、リポジトリに到着した直後にリポジトリから削除される機密情報の量を判断できました。 最初の日に秘密が10%を少し超えて削除され、翌日には数パーセントが削除されましたが、追加後2週間で個人情報の80%以上がリポジトリに残っており、この割合は実際には減少しません。



最も注目すべき漏洩には、東ヨーロッパの国の政府機関からのAWSアカウントと、数千のプライベートVPNにアクセスするための7,280のプライベートRSAキーがあります。



この研究は、攻撃者が、最小限のリソースでさえ、多くのGitHubユーザーを危険にさらし、大量の秘密鍵を見つけることができることを示しています。 著者は、多くの既存の保護方法は機密情報の収集に対して効果がないことに注意しています。 たとえば、TruffleHogのようなツールは25%の効率しか示しません。 APIリクエストの数に対する組み込みのGitHub制限も簡単にバイパスされます。



しかし、発見された多くの秘密には、簡単にできる明確なパターンがあります

彼らの検索。 これらの同じパターンを使用して、機密情報の漏洩を監視し、開発者に警告できると想定するのは論理的です。 おそらく、そのようなメカニズムはサーバー側、つまりGitHubで実装する必要があります。 サービスは、コミット中に警告を発行できます。



GitHubは最近、リポジトリをスキャンし、トークンを検索し、情報漏洩をサービスプロバイダーに通知する、トークンスキャンのベータ版( トークンスキャン機能)を実装しました。 次に、ベンダーはこのキーをキャンセルできます。 著者は、研究のおかげで、GitHubはこの機能を改善し、ベンダーの数を増やすことができると考えています。



All Articles