The source code for this blog is available on GitHub.

Blog.

Githubに含まれていたシークレットをリストアップする

Cover Image for Githubに含まれていたシークレットをリストアップする
kakeru kikuchi
kakeru kikuchi

背景

2022年末にCircleCIのインシデントが発生してしまい、Github上のprivate repositoryコードが流失した可能性がある https://circleci.com/ja/blog/january-4-2023-security-alert/

じゃぁ、仮にコードが流失したとしてコードに含まれていたかもしれないシークレットをどうやって一覧にするのか?となったので調べて実践した

使用ツール

gitLeaksというgolangのシークレットの検出・防止ツールが使えるので使ってみた

Jitを使用してコードベースを保護し、世界最高の OSS セキュリティ ツールを使用して完全に自動化されたフルスタックの継続的なセキュリティを実現します。

どうやらセキュリティツールとしての立ち位置はしっかりしていそう

使用方法

1. gitleaksをbrewなどでinstall

$ brew install gitleaks

2. 手元に対象のrepositoryをclone

3. main等の一番進んでいるbranchの最新をpull

4. gitleaksのdetectチェックで確認

$ gitleaks detect --source . -l trace -r leak-report.json --log-opts="--all "(git rev-list --max-parents=0 HEAD)".."(git rev-parse HEAD)""

5. リークしてある情報を出力jsonで確認する

使用感

jqを駆使すれば割と有用な情報が出力できそうなのと高速に動作するのでCIに組み込む用途でも機能しそうと感じる

ただし、概ね[Generic API Key]と判定されてしまうと「これはなんのシークレットだ…?」となるので結局ちゃんとローテートさせるか そもそもシークレットをcommitするなんてことをさせない運用にしたら良いんだけど、初期コスト的にシード期のスタートアップはcommitさせてしまうんだろうな…と悲しい気持ちになった


More Stories

Cover Image for Streamlit + LangChain + ChatGPT APIでホビープログラムを書いてみる

Streamlit + LangChain + ChatGPT APIでホビープログラムを書いてみる

ChatGPT APIを使える自前のアプリケーションを作ってみた

kakeru kikuchi
kakeru kikuchi
Cover Image for GPTにまつわる内容をChatGPT(GPT-4)でまとめてみる

GPTにまつわる内容をChatGPT(GPT-4)でまとめてみる

ChatGPT(GPT-4)すごい

kakeru kikuchi
kakeru kikuchi