Inside Threat: Developers Leaked 10M Credentials, Passwords in 2022
2023/03/10 DarkReading — 喜ばしいことに、2022年には、パスワードや API キーなどの、ソフトウェアの機密情報が流出する割合が半減しており、GitHub リポジトリへのコミット 1,000件につき 5.5件というレベルになった。今週に、機密管理会社である GitGuardian が発表した 2022 State of Secrets Sprawl に、このような調査の結果が記されている。上記の割合は一見すると小さく思えるが、公開リポジトリに機密情報が漏れる事例は、全体では少なくとも 1000万件も検出され、ユニークな機密としての 300 万件も含まれるという。

これらの機密情報の大部分と言える 56% を、一般的なパスワードが占める一方で、API キー/乱数生成などの機密文字列などを含む、高エントロピーの機密が 38%を占めている。
アプリケーションのインフラや運用をクラウドに移行する企業が増えるにつれて、API キーや認証情報などのソフトウェア・シークレットが、ビジネスのセキュリティに不可欠なものとなってきた。これらの機密が漏れた場合、その結果は壊滅的なものとなり、高額の代償を支払うことになるだろう。
GitGuardian の Security and Developer Advocate である Mackenzie Jackson は、「機密情報は、あらゆる企業/組織の根幹であり、システムやインフラへのアクセスを可能にするものだ。それらが侵害されたときのリスクとして挙げられるのは、完全なシステムの乗っ取りから、小さなデータの暴露という、多岐にわたるものになる」と述べている。

一般的に、最も機密性の高いデータが含まれている環境ファイル Source: GitGuardian
GitGuardian は 2022 State of Secrets Sprawl レポートの中で、「コード共有プラットフォームのようなパブリック・スペースだけではなく、企業のプライベート・リポジトリや IT 資産のようなクローズド・スペースであっても、毎年のように、こうした鍵が数百万も蓄積されていく」と述べている。
そして、そのようなプライベートな空間でさえも、脆弱になっている可能性がある。たとえば、2023年1月に、コラボレーション/メッセージングのプラットフォームである Slack は、「限られた数の Slack 従業員トークンが脅威アクターに盗まれ、プライベー・コード・リポジトリをダウンロードされた」とユーザーに警告している。
また、2022年5月には、Salesforce の子会社であるクラウド・アプリケーション・プラットフォームの Heroku が、GitHub との統合に使用される OAuth トークンにアクセスした攻撃者が、ハッシュ化/ソルト化したパスワードのデータベースを盗み出したことを認めている。
Infrastructure-as-Code の功罪
機密情報の漏えいが増えた理由の一つに、Infrastructure-as-Code (IaC) が大きく普及したことが挙げられる。IaC とは、インフラの管理とプロビジョニングを、手作業ではなくコードで行うものである。2022年には、GitHub のリポジトリにプッシュされた IaC 関連のファイルや成果物の数が、28% も増加した。GitGuardianによると、Docker/Kubernetes/Terraform などのコンフィグレーションで構成されるファイルの大部分 (83%) は、この類のものだという。
IaC も用いることで、Server/Database/Software-Defined Networking などの、アプリケーションで使用されるインフラの構成を、開発者が指定できるようになる。これらのコンポーネントを、すべて制御するためには、機密が必要になることが多いと Jackson は指摘している。
彼は、「攻撃対象が広がり続けている。IaC は、新しいものとして爆発的に普及している。インフラには機密が必要であり、IaC (ファイル) に機密が含まれていることが多々ある」と述べている。
さらに Jackson は、「機密性の高いアプリケーション情報キャッシュとして、頻繁に使われる3つのファイル形式 (.env/.key/.pem) では、それぞれのファイルに多数の機密を取り込んでいるため、最も機密性の高いファイルだと考えられている。開発者たちが避けるべきことは、これらのファイルを公開リポジトリに公開することだ」と付け加えている。
彼は、「もし、これらのファイルが Git リポジトリに存在するなら、そこにセキュリティ・ホールがあることが分かる。たとえ、それらのファイルに機密が含まれていないとしても、そこに存在してはないものだ。そのようなファイルが存在させないための予防策と、その存在を知るための警告策を、講じる必要がある」と指摘している。
さらに彼は、「企業はシステムとファイルに取り込まれた機密の有無を継続的にスキャンし、危険なファイルを可視化し、ブロックする能力を身につけるべきだ。すべてのインフラをスキャンして、可視性を確保する必要がある。そして、次のステップでは、エンジニアや開発者の行動をチェックするツールを導入し、機密が漏れたときに検出できるようにすべきだ」と述べている。
Infrastructure-as-Code を調べてみたら、Red Hat が詳しく説明してくれていました。そこには、「IaC は、手動のプロセスではなく、コードを使用してインフラストラクチャの管理とプロビジョニングを行うことを言う。IaC を用いれば、使用しているインフラの仕様を含む設定ファイルが作成され、設定の編集と配信が容易になる」と記されています。つまり、確実なプロビジョニングを効率良く行えるわけですが、そこに機密データが取り込まれる状況も理解できますし、そのためのファイルを公開リポジトリにアップドードすることが、どれほど危険な行為であることも、十分に理解できますね。

You must be logged in to post a comment.