git-secretsのawsトークン保護を検証してみた

 2019-11-7 |  2020-5-14 |  2 min read


この記事は、1年間更新されておりません。

はじめに

昨日、日課のはてなブックマークを漁っていたところ、Developers.IO さんの AWS でのセキュリティ対策全部盛り[初級から中級まで]というスライドを見つけました。

こちらのスライドの中で、git-secretsという AWS などの token 情報をgitに乗せてしまうのを防ぐソフトが紹介されており、以下のパターンの場合に正しく検知できるのかが気になったため検証しました。

  • 既に token がコミットされていた場合
    • どのように検知するのか?
  • 既に token が混入してるコミットをプッシュした際には検知できるのか

既に token がコミットされていた場合

検索したところ、一年前に検証している人がいたみたいです。

既存のリポジトリにあとから git-secrets を対応させた場合、過去の commit 履歴を検査したいことがあるでしょう。その場合は、git secrets –scan-history を行うことで、git history をスキャンして検査することができます。まとめて以下に例示します。 git-secrets はじめました

一応、自分でも確認しようと思います。

まず、既に token がコミットされている git リポジトリを下記コマンドにて作成します。

1
2
3
4
5
6
7
mkdir already-commit-token
cd already-commit-tokenls
git init
echo access=AKIAWIKPCZ5G32A503XF > secret.txt
echo secret=G+9la481v3AbuEqs1Pr/eARTtnEI7zBQ4qtcvBxR >> secret.txt
git add .
git commit -m "commit credentials"

試しに、何もせずpushをしてみます。

push画像

案の定pushできてしまいました。

既に token が混入してるコミットをプッシュした場合

ここで、git-secretsを導入します。

1
2
git secrets --install
git secrets --register-aws

そしてpushテストをしてみます。 一度リモートにpushしているので、新しいリポジトリを作るか、forcePush でリモートを掃除してください。私は新しいリモートにpushしました。

push画像2

アップロードされているみたいですね 😈
そもそも、git-secretsの概要が

Prevents you from committing secrets and credentials into git repositories
(シークレットとクレデンシャル情報を git リポジトリへコミットするのを防ぎます)

となっているので当たり前といえば、当たり前です。

既にコミットしているものを検知する

以下のコマンドで実現可能です。

1
git secrets --scan-history

検知確認

さいごに

git-secretsを入れておけば基本的に token をpushしてもうたwww w
もう終わりや 😇😇😇 …orz

にはならずに済みます。 シークレットをpushすること自体がほぼないと思うので、リポジトリ全体の secret 保護が行えるようになる

1
git secrets --register-aws --global

を適応しておいて問題ないと思います。
(どうしてもpushしなければならない場合は--no-verifyオプションをつければ OK😙)

参考

git-secrets はじめました


このエントリーをはてなブックマークに追加

comments powered by Disqus

Tags

Hugo | 7 git | 5 Setting | 5 AWS | 5 VSCode | 4 css | 3 intellij | 3 JavaScript | 3 ci | 3 poem | 2 Extention | 2 keyboard | 2 webpack | 2 command | 2 SpringBoot | 2 markdown | 2 Docker | 2 書き方 | 2 積本処理 | 2 kaspersky | 2 github-actions | 2 Terminal | 2 Route53 | 2 日本語 | 2 windows | 2 iCloud | 2 技術書典7 | 2 Homebrew | 2 Box | 1 location | 1 Nodejs | 1 Marp | 1 OneDrive | 1 GoogleDrive | 1 ChatWork | 1 devtools | 1 Three.js | 1 hhkb | 1 npm | 1 security | 1 git管理 | 1 docsify | 1 gradle | 1 Eclipse | 1 React | 1 diff | 1 Front | 1 Extension | 1 yarn | 1 CopyQ | 1




Archives

2020 (31)
2019 (22)
2017 (1)
2016 (3)