• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

bfg

date: 2022-01-27 excerpt: bfgの使い方

tag: gitセキュリティ事故対応


bfgの使い方

概要

  • gitレポジトリにセキュアな情報を追加してしまった時、過去にさかのぼってgitの記録から消すツール
  • 現在の操作しているheadのローカルにそのセキュアな情報が含まれていないことが前提(headはprotect扱いで消せない)
  • この例ではパスワードを消すことを記しているが、特定のファイル名を削除する、ファイルサイズが一定以上のものを消すなども可能である

インストール

$ wget https://repo1.maven.org/maven2/com/madgag/bfg/1.14.0/bfg-1.14.0.jar

具体的な操作

mirrorオプションをつけて対象のgitレポジトリをcloneする

$ git clone --mirror <url>
  • --mirrorをつけると管理構造が得られる

bfgを実行する

$ java -jar bfg-1.14.0.jar --replace-text passwords.txt bfg-sandbox.git 
  • passwords.txtは削除したい文字列を記したもの

git reflog expire --expire=now --all && git gc --prune=now --aggressiveを実行する

$ cd <url>
$ git reflog expire --expire=now --all && git gc --prune=now --aggressive

pushする

$ git push

参考

  • BFG Repo-Cleaner
  • BFGでGitHub上のコミット履歴からパスワードを削除する


gitセキュリティ事故対応 Share Tweet