
GitHub 組織向け偵察ツール
Gitrobは、Githubの公開リポジトリにプッシュされた潜在的に機密性の高いファイルを見つけるためのツールです。Gitrobは、ユーザーまたは組織に属するリポジトリを設定可能な深さまでクローンし、コミット履歴を反復処理して、潜在的に機密性の高いファイルのシグネチャに一致するファイルにフラグを立てます。結果はWebインターフェースを通じて表示され、簡単に閲覧・分析できます。
gitrob [options] target [target2] ... [targetN]
-bind-address string
Address to bind web server to (default "127.0.0.1")
-commit-depth int
Number of repository commits to process (default 500)
-debug
Print debugging information
-github-access-token string
GitHub access token to use for API requests
-load string
Load session file
-no-expand-orgs
Don't add members to targets when processing organizations
-port int
Port to run web server on (default 9393)
-save string
Save session to file
-silent
Suppress all output except for errors
-threads int
Number of concurrent threads (default number of logical CPUs)
デフォルトでは、gitrobはアセスメントの状態をメモリに保存します。つまり、Gitrobを閉じるとアセスメントの結果は失われます。-saveオプションを使用してセッションをファイルに保存できます。
gitrob -save ~/gitrob-session.json acmecorp
Gitrobは、収集したすべての情報を特別なJSONドキュメントとして指定されたファイルパスに保存します。このファイルは後日閲覧のために再度読み込んだり、他のアナリストと共有したり、他のツールやシステムとのカスタム統合のために解析したりすることができます。
ファイルに保存されたセッションは、-loadオプションで読み込むことができます。
gitrob -load ~/gitrob-session.json
GitrobはWebインターフェースを起動し、分析結果を提供します。
各リリースのプリコンパイル済みバージョンが利用可能です。代わりに、このリポジトリの最新のソースコードを使用して、独自のバイナリをビルドすることもできます。
適切に構成されたGo >= 1.8環境があり、$GOPATH/binが$PATHに含まれていることを確認してください。
$ go get github.com/michenriksen/gitrob
このコマンドはgitrobをダウンロードし、依存関係をインストールし、コンパイルしてgitrob実行可能ファイルを$GOPATH/binに移動します。
GitrobがGithub APIとやり取りするには、Githubアクセストークンが必要です。個人用アクセストークンを作成し、.bashrcまたは同様のシェル設定ファイルの環境変数に保存します。
export GITROB_ACCESS_TOKEN=deadbeefdeadbeefdeadbeefdeadbeefdeadbeef
または、-github-access-tokenオプションでアクセストークンを指定することもできますが、コマンド履歴に注意してください!