バグバウンティハンター向けの GitHub

Apr 28 2023
バグ賞金稼ぎにとって、GitHub リポジトリは、潜在的に役立つさまざまな情報を明らかにすることができます。必ずしもオープンソースであるとは限らないターゲットには問題が発生する可能性があります。

バグ賞金稼ぎにとって、GitHub リポジトリは、潜在的に役立つさまざまな情報を明らかにすることができます。必ずしもオープンソースであるとは限らないターゲットには問題が発生する可能性があります。場合によっては、組織のメンバーやそのオープンソースへの取り組みによって、対象となる企業に対して利用される可能性のある情報が誤って公開されてしまうことがあります。この記事では、GitHub リポジトリの脆弱性のスキャンと一般的な偵察の実行を開始するための簡単な概要を説明します。

1 マスクローニング

github.com で調査を行うこともできますが、ローカル テストを有効にするには、すべてのターゲット リポジトリのクローンを作成することをお勧めします。@mazen160によるGitHubClonerは素晴らしい製品です。スクリプトを実行するだけで準備完了です。

$ python githubcloner.py --org organization -o /tmp/output

      
                

静的分析を開始する前に、目的のプロジェクトを実際に理解することが重要です。プロジェクトの実行中に主な機能を使用します。私がこれを「ジョベール ステップ」と呼んでいる理由は、ジョベールはすべての狩りを始める前にこのプロジェクトを使用し、弱点を探す前にターゲットをよく理解していると聞いたからです。

3- 手動分析

「成功することを学び、それを壊す」という格言がこの状況に当てはまります。プログラミング言語を学ぶことができれば、講じるべきセキュリティ予防策と回避すべきセキュリティ予防策の詳細を理解できるはずです。

ターゲットとそのアーキテクチャに慣れたら、grep を開始できます。興味があるキーワード、よく知っているキーワード、または開発者が頻繁に間違えることを認識しているキーワードを探してください。

最初の大まかな評価の際に使用する検索用語の基本的なリストを次に示します。

  • APIとキー。(さらにいくつかのエンドポイントを取得し、API キーを見つけます。)
  • トークン
  • ひみつ
  • TODO
  • パスワード
  • 脆弱です
  • http:// および https://
  • CSRF
  • ランダム
  • ハッシュ
  • MD5、SHA-1、SHA-2など
  • HMAC

もう 1 つの重要なステップは、コミット履歴を確認することです。コミットからどれだけの情報を収集できるかに驚くでしょう。認証情報がコミット履歴に残っているにもかかわらず、認証情報を削除したと誤って信じている投稿者を私は見てきました。git の歴史のおかげで、今でも動作している古いエンドポイントを発見しました。現在の問題とは別に、古いコミットによって回避できる可能性のある歴史的な問題に遭遇する可能性があります。

4- ツール

退屈なタスクを自動化すると、何を探すべきかの基本的な概要が得られる場合があります。スキャン結果をコピーしてレポートに貼り付けないでください。誤検知が多数発生するため、潜在的な問題が悪用される可能性があるかどうかを常に注意深く調査する必要があります。

Python プロジェクトを進めるときに私が使用する主なツールはBanditです。

Bandit は一般的な問題を特定しますが、頻繁に誤検知や簡単に解決できる問題を返します。したがって、注意して使用してください。間違いなく、それは依存すべきではありません。

$ bandit -r path/to/your/code -ll

Snyk.ioは依存関係をチェックするための素晴らしいツールです。このプラットフォームはさまざまな言語をサポートしています。

偵察には、多くの研究者がGitrob を使用することを提案しています。このツールは、パブリック GitHub リポジトリ内の機密情報を検索します。

$ gitrob analyze acme,johndoe,janedoe

$ truffleHog https://github.com/dxa4481/truffleHog.git

Ruby on Rails アプリの場合は、 Brakemanをお勧めします。Brakeman は、コード内のさまざまなセキュリティ問題を大量に検出できる静的分析セキュリティ スキャナーです。

Gerben JavadoのLinkFinderを使用して、リポジトリのJS ファイル内のエンドポイントを検索します。

$ python linkfinder.py -i 'path/to/your/code/*.js' -r ^/api/ -o cli

OK、プロジェクトオーナーに対してソーシャルエンジニアリングを真剣に行わないでください。

調査結果を報告する

バグ報奨金稼ぎに関してはいつものように、プログラムのポリシーをよく読んでください。プログラムが GitHub 経由でレポートを受け入れることはほとんどありません。セキュリティ チームに連絡するか、可能であればHackerOneやBugcrowdなどのバグ報奨金プラットフォームを使用してください。

余談ですが、ホワイトボックス テストの優れた点は、コードにアクセスできるため、修正の提案やパッチの送信が容易になることです。

読んでいただきありがとうございます!