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


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

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

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


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

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



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

シークレット合計ユニーク%、1人の所有者
Google APIキー212 89285 31195.10%
RSAシークレットキー158 01137,78190.42%
Google OAuth ID106 90947,81496.67%
通常の秘密鍵30,28612,57688.99%
Amazon AWSアクセスキーID26 395464891.57%
Twitterアクセス​​トークン20,760795394.83%
秘密鍵EC7838158474.67%
Facebookアクセストークン6367171597.35%
PGP秘密鍵209168482.58%
MailGun APIキー186874294.25%
MailChimp APIキー87148492.51%
ストライプ標準APIキー54221391.87%
Twilio APIキー3205090.00%
スクエアアクセストークン1216196.67%
シークレットスクエアOAuth281994.74%
Amazon MWS認証トークン2813100.00%
Braintreeアクセストークン24887.50%
Picatic APIキー54100.00%
合計575,456201 64293.58%

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

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

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

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

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

Source: https://habr.com/ru/post/J445038/


All Articles