セキュリティの向上：AivenとGitHubのセキュリティのスキャン・パートナーシップ

<font color="Grey">*[Improving security: Aiven and GitHub's secret scanning partnership](https://aiven.io/blog/aiven-and-github's-secret-scanning-partnership)の翻訳です。*</font>

2023年5月18日

# セキュリティの向上AivenとGitHubの秘密のスキャン・パートナーシップ

クラウドデータ基盤を保護するGitHubのシークレットスキャンプログラムとAivenの提携を発表

うっかりGitHubにシークレットをコミットしてしまい、過去に戻りたいと思ったことはありませんか？GitHubにコードをコミットすると、そのリポジトリにアクセスできるすべての人が変更内容を見ることができます。意図せずリポジトリに秘密をコミットしてしまったとしても、そのリポジトリにアクセスできる人なら誰でもアクセスできてしまいます。これにより、機密データが漏洩したり、不正な操作が行われたりする可能性があります。今回のブログでは、[AivenとGitHubのパートナーシップ](https://github.blog/changelog/2023-05-10-aiven-is-a-github-secret-scanning-partner/)についてお知らせします。GitHubの[シークレットスキャンプログラム](https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning)をカスタマイズし、Aiven環境に特化した機密データを検出します。


## シークレットスキャンの必要性


GitHub にシークレットをコミットするのはよくあるミスですが、重大な結果を招く可能性があります。例えば、クラウドプロバイダのアクセスキーをコミットしてしまうと、攻撃者はそのキーを使ってインスタンスを立ち上げたりリソースにアクセスしたりすることができます。同様に、データベースのパスワードをコミットすると、攻撃者はそのパスワードを使ってデータベースにアクセスし、データを盗んだり変更したりすることができます。


コード内のセキュリティ脆弱性を見つけて修正するのは、時間とリソースを必要とします。シークレットスキャンは、潜在的なセキュリティリスクについてコードをスキャンすることで、このプロセスを自動化し、開発者の貴重な時間とリソースを節約します。


PCI DSSやHIPAAなどの多くの規制要件では、機密情報を保護することが義務付けられています。シークレットスキャンは、機密情報を特定し、その暴露を防止することで、これらの規制へのコンプライアンスを確保するのに役立ちます。


## GitHubのシークレットスキャン - その裏側


GitHubはどうやって文字列を秘密と認識するの?GitHub の秘密のスキャンでは、正規表現と機械学習を組み合わせて秘密の文字列を検出します。正規表現は既知のパターンをスキャンするために使われ、機械学習アルゴリズムは秘密を示す新しいパターンを特定するために使われます。


たとえば、AWS_SECRET_ACCESS_KEY や API_KEY のようなパターンをスキャンします。秘密が検出されると GitHub はセキュリティアラートを発し、リポジトリのセキュリティタブに表示されます。セキュリティアラートには、シークレットが検出されたファイルや行番号の情報と、その問題を修正する方法の提案が含まれます。


公開されているソースで、あなたの秘密の書式に一致するものが見つかると、ペイロードが選択した HTTP エンドポイントに送信されます。このエンドポイントは、GitHub Secret Scanning Partner Program に参加している個人または企業が指定できます。


以下の図は[GitHub documentation](https://docs.github.com/en/code-security/secret-scanning/secret-scanning-partner-program)から引用しています：


![GitHub secret scanning flow diagram.ユーザーは GitHub リポジトリに変更をプッシュし、そのリポジトリは正規表現パターンを実行して秘密を特定する。一致したものは、GitHubからAivenが所有する検証エンドポイントや、ユーザーが使うかもしれない他のサービスに送られる。シークレットにマッチした場合、検証エンドポイントはシークレットを失効させ、アラートを送り返す](https://cdn.sanity.io/images/sczeoy4w/production/003b813b4311f2eb80e5fd691b5ca9ce3caf7c20-1440x640.webp?q=80&fit=min&auto=format&dpr=1.5)


## なぜAivenはGitHubのシークレットスキャンパートナープログラムに参加しているのですか？


AivenはGitHubと提携し、これまで公開リポジトリでのみ可能だった、プライベートリポジトリのAivenシークレットやAPIトークンのスキャンを可能にしました。これにより、オープンソースパッケージと同様に機密コードを安全に保つことができます。


プライベートリポジトリのスキャンは、パブリックリポジトリのスキャンとは少し異なります。プライベートリポジトリで一致が見つかると、リポジトリの管理者とコミッターにアラートが送信され、担当者は GitHub の Security タブで問題を管理できます。GitHub Advanced Security を有効にしている GitHub Enterprise のお客様は、プライベートリポジトリに対するプッシュ保護を設定することもできます。これにより、一致する秘密を含むコミットは、その Enterprise に属する GitHub リポジトリにプッシュされなくなります。GitHubは2023年5月9日に[push protection on all public repositories](https://github.blog/changelog/2023-05-09-secret-scannings-push-protection-is-available-on-public-repositories-for-free)を有効にしました。


結論として、Aivenの秘密スキャンプログラムに関するGitHubとの[パートナーシップ](https://github.blog/changelog/2023-05-10-aiven-is-a-github-secret-scanning-partner/)は、顧客がコードと秘密を安全に保つための重要な前進です。Aivenトークンが流出した場合／した場合に顧客に通知することで、Aivenはデータ・インフラ・セキュリティの責任共有モデルにおいて重要な役割を果たしている。このようなセキュリティへの積極的なアプローチは、機密情報を確実に保護し、コンプライアンス要件を満たすために不可欠です。AivenとGitHubのシークレットスキャンプログラムにより、お客様はコードとシークレットが安全かつセキュアであることを確信することができます。