Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
scanner-cli — プロジェクトのセキュリティ/脆弱性/リクスキャンツール | Kitploit
ツール/GitHubGitHub/hawkeyesec/scanner-cli
静的分析脆弱性スキャナーコンテナセキュリティコード分析DevSecOpsシークレット検出Archived
GitHubhawkeyesec/scanner-cli

scanner-cli

プロジェクトのセキュリティ/脆弱性/リクスキャンツール

リポジトリを見る
361864年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

非推奨のお知らせ: Hawkeye はサポート終了となりました。

あなたとあなたのプロジェクトには、より現代的で優れた選択肢が多数あります。もしプロジェクトのメンテナンスを引き継ぎたい場合は、お気軽にご連絡ください。連絡手段は私の個人ホームページに記載されています。

.

.

.

.

.

.

Hawkeye scanner-cli は、プロジェクトのセキュリティ、脆弱性、および一般的なリスクを強調するツールです。pre-commit フックやパイプラインに統合することを目的としています。

スキャナーの実行と設定

Hawkeye scanner-cli は、ディレクトリ構造がツールチェーンのファイルをトップレベルに置くことを前提としています。大まかには、以下のようになります。

  • Node.js プロジェクトは、トップレベルに package.json があります
  • Ruby プロジェクトは、トップレベルに Gemfile があります
  • Python プロジェクトは、トップレベルに requirements.txt があります
  • PHP プロジェクトは、トップレベルに composer.lock があります
  • Java プロジェクトは、build (gradle) または target (maven) フォルダがあり、.java および .jar ファイルを含みます
  • Kotlin プロジェクトは、build (gradle) または target (maven) フォルダがあり、.kt および .jar ファイルを含みます
  • Scala プロジェクトは、target (sbt と sbt-native-packager または sbt-assembly プラグイン) フォルダがあり、.scala および .jar ファイルを含みます。動作デモはこのリポジトリを確認してください。
  • Rust プロジェクトは、トップレベルに Cargo.toml があります

これは網羅的ではありません。ツールによっては、さらなるファイルの存在が必要になる場合があります。モジュールがプロジェクトを処理できるかどうかをどのように判断するかについては、仕組みのセクションとモジュールフォルダを確認してください。

Docker (推奨)

Docker イメージがスキャナーを最も簡単に利用する方法です。プロジェクトルート (例: $PWD) を /target にマウントする必要があることに注意してください。

root@kitploit:~
docker run --rm -v $PWD:/target hawkeyesec/scanner-cli:latest

JSON を出力するためにスキャナーを使用する場合 (-j および --json CLI フラグ、または .hawkeyerc の json 設定)、docker run -u $(id -u):$(id -g) で正しい UID と GID を使用するようにしてください。そうしないと、Jenkins で実行する場合などに削除できないファイルが残る可能性があります。

Docker ビルドは、CI パイプラインでスキャナーを実行するのにも推奨される方法です。これは GoCD で Hawkeye をプロジェクトの1つに対して実行する例です。

root@kitploit:~
<pipeline name="security-scan">
  <stage name="Hawkeye" cleanWorkingDir="true">
    <jobs>
      <job name="scan">
        <tasks>
          <exec command="docker">
            <arg>pull</arg>
            <arg>hawkeyesec/scanner-cli</arg>
            <runif status="passed" />
          </exec>
          <exec command="bash">
            <arg>-c</arg>
            <arg>docker run --rm -v $PWD:/target hawkeyesec/scanner-cli:latest</arg>
            <runif status="passed" />
          </exec>
        </tasks>
      </job>
    </jobs>
  </stage>
</pipeline>

npm

Node.js プロジェクトで hawkeye をインストールして実行するには、次のコマンドを使用します。

root@kitploit:~
npm install --save-dev @hawkeyesec/scanner-cli
npx hawkeye scan

この方法は、他のツールチェーン (例: python、ruby) が必要ない Node.js プロジェクトで推奨されます。

この方法では、git pre-commit フック (例: pre-commit パッケージを使用) でスキャナーを呼び出し、問題が見つかった場合にコミットを失敗させることも推奨されます。

設定ファイル (推奨)

プロジェクトルートの .hawkeyerc ファイルと .hawkeyeignore ファイルを使用してスキャナーを設定できます。

.hawkeyerc ファイルは JSON ファイルで、以下を設定できます。

  • 実行するモジュール
  • 使用するライター
  • 失敗のしきい値
root@kitploit:~
{
    "all": true|false,
    "staged": true|false,
    "modules": ["files-ccnumber", "java-owasp", "java-find-secbugs"],
    "sumo": "http://your.sumologic.foobar/collector",
    "http": "http://your.logger.foobar/collector",
    "json": "log/results.json",
    "failOn": "low"|"medium"|"high"|"critical",
    "showCode": true|false
}

.hawkeyeignore ファイルは、スキャンから除外するパスとモジュールエラーコードに一致する正規表現の集まりであり、--exclude フラグを使用するのと同じです。# で始まる行はコメントと見なされます。

正規表現で予約されている特殊文字 (-[]{}()*+?.,^$|#\s) は、リテラルとして使用する場合はエスケープする必要があることに注意してください!

また、モジュールエラーコードは通常表示されません。これはユーザーにとって直接的な関連性がないためです。特定の誤検出を除外したい場合は、--show-code フラグまたは .hawkeyerc の showCode プロパティを使用してモジュールエラーコードを表示できます。

root@kitploit:~
^test/

# これはコメントです

^README.md

CLI

hawkeye modules を使用して、利用可能なモジュールとそのステータスを一覧表示します。

root@kitploit:~
> npx hawkeye modules
[info] Version: v1.4.0
[info] Module Status
[info] Enabled:   files-ccnumber
[info]            クレジットカード番号を含む可能性のある不審なファイル内容をスキャンします
[info] Enabled:   files-contents
[info]            シークレットを含む可能性のある不審なファイル内容をスキャンします
[info] Disabled:  files-entropy
[info]            パスワードを含む可能性のある高エントロピーの文字列をファイルからスキャンします
[info] Enabled:   files-secrets
[info]            シークレットを含む可能性のある不審なファイル名をスキャンします
[info] Enabled:   java-find-secbugs
[info]            findsecbugs を使用して Java コードの一般的なセキュリティ問題を検出します
[info] Enabled:   java-owasp
[info]            OWASP 依存関係チェッカーを使用して、既知の脆弱性がある gradle/maven 依存関係を Java プロジェクトでスキャンします
[info] Enabled:   node-npmaudit
[info]            既知の脆弱性がある依存関係について node プロジェクトをチェックします
[info] Enabled:   node-npmoutdated
[info]            古い npm モジュールについて node プロジェクトをチェックします
[info] Enabled:   node-yarnaudit
[info]            既知の脆弱性がある依存関係について yarn プロジェクトをチェックします
[info] Enabled:   node-yarnoutdated
[info]            古い yarn モジュールについて node プロジェクトをチェックします
[info] Enabled:   php-security-checker
[info]            security-checker を使用して、composer.lock に既知の脆弱性がある依存関係が含まれているかチェックします
[info] Enabled:   python-bandit
[info]            bandit を使用して Python コードの一般的なセキュリティ問題をスキャンします。
[info] Enabled:   python-piprot
[info]            古いパッケージについて Python の依存関係をスキャンします
[info] Enabled:   python-safety
[info]            safety ツールを使用して、既知のセキュリティ脆弱性について Python の依存関係をチェックします。
[info] Enabled:   ruby-brakeman
[info]            Brakeman を使用して Rails コードを静的に分析し、セキュリティ問題を検出します。
[info] Enabled:   ruby-bundler-scan
[info]            bundler を使用して、既知の脆弱性がある Ruby gem をスキャンします

hawkeye scan を使用してスキャンを開始します。

root@kitploit:~
> npx hawkeye scan --help
[info] Version: v1.3.0
Usage: hawkeye-scan [options]

Options:
  -a, --all                                       git リポジトリが見つかったかどうかに関係なく、すべてのファイルをスキャンします。デフォルトでは git リポジトリで追跡されたファイルのみスキャンします。
  -t, --target [/path/to/project]                 スキャンする場所。デフォルトは $PWD です。
  -f, --fail-on [low|medium|high|critical]        hawkeye がゼロ以外のステータスコードを返すレベルを設定します。デフォルトは low です。
  -m, --module [module name]                      特定のモジュールを実行します。デフォルトは適用可能なすべてのモジュールです。
  -e, --exclude [pattern]                         除外パターンを1つ以上指定します (例: test/*)。複数回指定できます。
  -j, --json [/path/to/file.json]                 結果をファイルに書き込みます。
  -s, --sumo [https://sumologic-http-connector]   結果を SumoLogic に書き込みます。
  -H, --http [https://your-site.com/api/results]  結果を指定された URL に書き込みます。
  --show-code                                     モジュールがレポートに使用するコードを表示します。特定の誤検出を無視するのに便利です。
  -g, --staged                                    git でステージングされたファイルのみをスキャンします。
  -h, --help                                      使用法情報を出力します

結果

終了コード

scanner-cli は以下の終了コードで応答します。

  • 終了コード 0: 最小しきい値以上または等しい検出結果は見つかりませんでした。
  • 終了コード 1: 最小しきい値以上または等しい問題が見つかりました。
  • 終了コード 42: プログラム内で予期しないエラーが発生しました。これはおそらくバグであり、発生すべきではありません。ログ出力を確認し、バグを報告してください。

コンソール出力のリダイレクト

コンソールロガーの出力をリダイレクトしたい場合、推奨される方法は stdout に接続することです。この例では、JSON と stdout の両方の結果を利用しています。

root@kitploit:~
docker run --rm -v $PWD:/target hawkeyesec/scanner-cli:latest -j hawkeye-results.json -f critical 2>&1 | tee hawkeye-results.txt

コンソール出力

デフォルトでは、スキャナーは結果を表形式でコンソールに出力します。

Sumologic

結果は、選択した SumoLogic コレクターに送信できます。この例では、単一の HTTP ソースを持つコレクターを使用しています。

root@kitploit:~
hawkeye scan --sumo https://collectors.us2.sumologic.com/receiver/v1/http/your-http-collector-url

SumoLogic で、_collector="hawkeye" | json auto を検索します:

SumoLogic

任意の HTTP エンドポイント

SumoLogic の例と同様に、スキャナーは POST メッセージを受け入れる任意の HTTP エンドポイントに結果を送信できます。

root@kitploit:~
hawkeye scan --http http://your.logging.foobar/endpoint

結果は User-Agent: hawkeye で送信されます。コンソール出力と同様に、各検出結果に対して以下の JSON が POST されます。

root@kitploit:~
{
  "module": "files-contents",
  "level": "critical",
  "offender": "testfile3.yml",
  "description": "Private key in file",
  "mitigation": "Check line number: 3"
}

仕組み

Hawkeye は、モジュールとライターを追加することで拡張可能になるように設計されています。

  • モジュールは modules フォルダに追加します。
  • ライターは writers フォルダに追加します。

モジュール

モジュールは基本的に、独自のロジックを実装するか、サードパーティのツールをラップして出力を標準化する小さなコード片です。必要な条件が満たされた場合にのみ実行されます。たとえば、npm outdated モジュールは、スキャン対象で package.json が検出された場合にのみ実行されます。その結果、スキャンするプロジェクトの種類を Hawkeye に伝える必要はありません。

汎用モジュール

  • files-ccnumber: クレジットカード番号を含む可能性のある不審なファイル内容をスキャンします
  • files-contents: シークレットを含む可能性のある不審なファイル内容をスキャンします
  • files-entropy: パスワードを含む可能性のある高エントロピーの文字列をファイルからスキャンします。エントロピースキャンは、誤検出が多いためデフォルトでは無効になっています。コードベースのキーを時々スキャンするのに便利です。その場合は -m files-entropy スイッチを使用してください。
  • files-secrets: シークレットを含む可能性のある不審なファイル名をスキャンします

Java / Kotlin / Scala

  • java-find-secbugs: findsecbugs を使用して Java コードの一般的なセキュリティ問題を検出します
  • java-owasp: OWASP 依存関係チェッカーを使用して、既知の脆弱性がある gradle/maven 依存関係を Java プロジェクトでスキャンします

Node.js

  • node-npmaudit: npm audit を使用して、既知の脆弱性がある依存関係について node プロジェクトをチェックします
  • node-npmoutdated: npm outdated を使用して、古い npm モジュールについて node プロジェクトをチェックします
  • node-yarnaudit: yarn audit を使用して、既知の脆弱性がある依存関係について yarn プロジェクトをチェックします
  • node-yarnoutdated: yarn outdated を使用して、古い yarn モジュールについて node プロジェクトをチェックします

PHP

  • php-security-checker: security-checker を使用して、composer.lock に既知の脆弱性がある依存関係が含まれているかチェックします

Python

  • python-bandit: bandit を使用して Python コードの一般的なセキュリティ問題をスキャンします。
  • python-piprot: piprot を使用して、古いパッケージについて Python の依存関係をスキャンします
  • python-safety: safety ツールを使用して、既知のセキュリティ脆弱性について Python の依存関係をチェックします。

Ruby

  • ruby-brakeman: Brakeman を使用して Rails コードを静的に分析し、セキュリティ問題を検出します。
  • ruby-bundler-scan: bundler を使用して、既知の脆弱性がある Ruby gem をスキャンします

Rust

  • rust-cargoaudit: cargo audit を使用して、Cargo.lock に既知の脆弱性がある依存関係が含まれているかチェックします

モジュールの追加

モジュールのアイデアがある場合は、Issue セクションで機能リクエストをオープンしてください。時間があれば、プルリクエストを送信することを検討してください。モジュールの動作を確認するには、modules フォルダに移動して、動作の仕組みを確認してください。

ツールをダウンロード