こんにちは、フリーランスエンジニアの太田雅昭です。
エコシステムに蔓延るセキュリティリスク
近年、GitHub, Npmなどのインフラがセキュリティリスクにさらされています。AIの進化によって攻撃パターンが広がり、CVEで公開された情報がAIで解析され、これまで以上に攻撃速度が上がっているなど、防御してもしきれない状況になりつつあります。
こうした状況で、万が一のことを考えなければいけません。万が一攻撃に飲み込まれた際の、最低限の防御策も必要になってきています。
GitHubは読まれる前提で使用する
GitHubはPublicとPrivateを選択できますが、攻撃に巻き込まれた場合Privateでも攻撃者に読まれてしまいます。機密情報がGitHub上にあると漏洩のリスクがあります。.envなどのファイルは.gitignoreに指定するなどの対策は基本ですが、ヒューマンエラーは起こり得る最大のリスクです。またAIによるコーディングが当たり前になりつつある昨今、気づかないうちに機密情報がGitHubに載ってしまう懸念もあります。
GitLeaks, BetterLeaks
GitLeaksやBetterLeaksといったツールは、こうした事故を未然に防いでくれます。具体的にはコミットされた変更をスキャンし、機密情報が含まれていないかをチェックしてくれます。
BetterLeaks: https://github.com/betterleaks/betterleaks
BetterLeaksはGitLeaks作者による後継ツールです。以下はAIに調査してもらった両者の比較表ですが、判断材料としては、AIによるまとめのみで問題ないかと思います。検出率が高くなっているのが特に注目すべきです。
| 項目 | GitLeaks | BetterLeaks |
|---|---|---|
| 作者 | Zach Rice | Zach Rice(同一作者) |
| 初回リリース | 2018年頃 | 2026年2月 |
| 言語 | Go (CGO依存) | Pure Go (CGO不要) |
| 検出方式 | Shannon entropy + 正規表現 | BPEトークナイゼーション (cl100k_base) |
| 検出率 (Recall) | 約70.4% | 約98.6% |
| バリデーション | 基本的なパターンマッチング | CELベースの設定可能なバリデーション + HTTP検証 |
| エンコード対応 | 限定的 | Base64等のエンコード済みシークレットをネイティブ対応 |
| パフォーマンス | 標準 | 並列化されたgitスキャン |
| 互換性 | - | GitLeaksからのドロップインリプレースメント |
| スポンサー | - | Aikido Security |
移行作業
今回GitLeaksからの移行を行いましたが、Claude Codeにまかせて大丈夫でした。GitLeaksとBetterLeaksは互換性が高く、ファイルもほぼ同じものを使用できたようです。
なお新規導入もClaude Codeにまかせて問題ないかと思います。
まとめ
AIの発達によりセキュリティ要件が厳しくなってきています。損害を出さないよう、注意して動向をチェックする必要があります。