GitHub(ギットハブ)の公開リポジトリにはどのような危険があるのか ーソフトウェアサプライチェーンリスクに関する実験ー

実験の目的:GitHubの公開リポジトリに潜むソフトウェアサプライチェーンリスクとは


ソフトウェアサプライチェーンリスクは現在サイバー空間における大きな脅威であるのは最近のSolarWindsやKaseyaの事例からも明らかである。その中でも攻撃者が頻繁にスキャンを行っているとされているGitHub(ギットハブ)の公開リポジトリにはどのような危険があるのだろうか?GitHub上に不用意に公開されたSecretを攻撃者はどのように収集し、攻撃に利用するかについての興味深い実験結果がポーランドのセキュリティー企業社長、アンジェイ・ディアック氏により2020年11月に公開されている。同氏の許可を得て、同氏がTwitterに投稿した内容を翻訳し、ここに掲載する。

アンジェイ・ディアック氏については以下のリンクをご参照ください。
https://twitter.com/andrzejdyjak

https://www.linkedin.com/in/andrzejdyjak/

https://bezpiecznykod.pl/

アンジェイ・ディアック氏による実験に関するツイート

実験はシンプルなもので、GitHubの公開リポジトリに意図的にAWS(アマゾン・ウェブ・サービス)のKey(ダミーの認証情報)を公開した場合、一体何が起こるかということを検証するというものである。

以下はその実験結果に関するアンジェイ・ディアック氏の一連のツイートから一部を抜粋し、日本語訳したもの。

ツイート1)実験について

訳)数日前、私は小さな実験を試みた。それはGitHubの公開レポジトリにSecertをコミットするというものである。私の計画はシンプルなもので、(1)Secretを生成、(2)公開レポジトリにコミット、(3)そして何が起こるかを待つ というものである。以下のスレッドにその経緯をまとめる



ツイート2)GitHub上での検証のタイムライン

訳)タイムラインは以下の通り
1.15:27にAWS KEYのコミットをプッシュ
2.15:34(7分後)に@GitguardianからSecretの漏洩の可能性を知らせるメールを受信
3.15:38(11分後)にまず最初のTokenのハッキングが確認された


注)この@GitguardianからのメールというのはGitGuardian社が無償で提供するサービスのことであり、GitHubの公開リポジトリ上で機微な情報と思われるSecretをGitGuardianが検知するとそのコードの開発者にアラートのメールを送るというものである。このサービスはGitGuardianのサービス利用者だけを対象としているわけではなく、全ての開発者に対する無償のサービスとなっている。以下はそのアラートメールの例


このサービスにより2020年に日本の開発者に送付されたメールは合計で7000件を超えている。

ツイート3)確認されたアラートについて

訳)次の2時間で合計5件のアラートが発報された。それらのトラフィックはドイツ、オランダ、イギリス、ウクライナからのものである。User Agentによれば利用されているのはPythonとNode.jsSDKを利用したBotであった


ツイート4)GitLab上での検証のタイムライン

訳)GitLabの場合
1.AWSのKEYを16:24にコミット
2.17:26(62分後)にTokenがハッキングされたが、これが最初で最後であった。このトラフィックはフランスからのものである。User Agentによれば利用されているのはPythonSDKを利用したBotであった。


ツイート5)実験での学び

訳)この実験からの学びは何であろうか?以下の複数のポイントである
0.攻撃者はGitHubをGitLabよりもかなり頻繁にスキャンしている
1.もしGitHubを利用しているのならGitGuardianを検討すべきである
2.もしGitLabを利用しているのであれば、Gold/Ultimateへのアップグレードを実施するか、Secretの検知に配慮すべきである


まとめ

攻撃者はGitHubなどの開発支援ツール上に、Secret(認証情報など)の文字列を常に探索し続けるボットを作成している。それらのSecretが公開されてしまえばボットが即座にSecretを収集し、そのまま攻撃へと自動的に移行するのである。もし開発者がSecretが公開されているという事実に気が付いて数時間後に削除したとしても、すでにSecretは盗まれていると考えたほうが無難である。その前提で適切な対応を行うべきであるし、そもそもどのような情報が漏洩しているかについて常にモニタリングするべきである。

なお、弊社でも同様の実験をSSHのKEYで行ったが、すぐに攻撃に至るという結果にはならなかった。GitHubのレポジトリで意図せずに公開されてしまうSecretもすべてが同じ重みのリスクとなるとは限らないようである。今後も同様の検証を続け、どのようなタイプのSecretが危険なのかについて分析を行う予定である。

補足:ソフトウェアサプライチェーンリスクに関するウェビナー