Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cats — OpenAPIエンドポイント向けの自動REST APIファザーおよびネガティブテストツール。コーディング不要で数千の自己修復テストを生成、実行、レポートし、境界やセキュリティのシナリオをカバーします。 | Kitploit
ツール/GitHubGitHub/endava/cats
脆弱性スキャナーAPIセキュリティテストウェブセキュリティファジング
GitHubendava/cats

cats

OpenAPIエンドポイント向けの自動REST APIファザーおよびネガティブテストツール。コーディング不要で数千の自己修復テストを生成、実行、レポートし、境界やセキュリティのシナリオをカバーします。

リポジトリを見る
1.4k90612日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

CATS logo CATS logo

CI Commits

License Java Version GraalVM Quality Gate Status Coverage Bugs Code Smells

CATSのドキュメントはhttps://endava.github.io/cats/で入手できます。

REST APIファザーおよびネガティブテストツール。コーディング不要で、数千の自己修復型APIテストを数分で実行できます!

  • 包括的: テストは多数のシナリオに基づいて自動生成され、すべてのフィールドとヘッダーをカバーします
  • インテリジェント: テストはデータ型と制約に基づいて生成されます。各ファザーはテスト対象のシナリオに応じて固有の期待値を持ちます
  • 高度に設定可能: 豊富なカスタマイズが可能です。特定のファザー、HTTPレスポンスコード、HTTPメソッド、リクエストパスをフィルタリングでき、ビジネスコンテキストの提供なども行えます
  • 自己修復: テストは生成されるため、OpenAPI仕様の変更は自動的に反映されます
  • 学習が簡単: 学習曲線は緩やかで、直感的な設定と構文を備えています
  • 高速: テストの作成、実行、レポートを自動化するプロセスにより、数千のシナリオを数分でカバーします

時間がありませんか?1分間クイックスタートガイドをご覧ください!

概要

シンプルで最小限の構文と緩やかな学習曲線を採用したCATS(Contract API Testing and Security)は、コーディング不要で数千のAPIテストを数分で生成できます。 すべてのテストは、事前定義された160以上のファザー(および継続的ファジング用の31のランダムミューテーター)のセットに基づいて自動的に生成、実行、レポートされます。 ファザーは、境界テスト、型強制、インジェクション、ネガティブシナリオの幅広い範囲をカバーします。具体的には、大規模なUnicodeや制御文字のペイロードから、リクエストのデータ型と制約に由来するコンテキスト依存の値、さらにIDOR、PUTの冪等性、更新-読み取りの一貫性、条件付きETag処理、削除されたリソースの可用性、機密データの露出に関するステートフルなチェックまで含まれます。

CATSは標準で、プロデューサーのPOSTパスを依存する操作より前に並べ、ファザーをパス全体にわたって幅優先のウェーブで実行し、2XXレスポンスから学習した識別子とベースラインを再利用して後続のリクエストに適用し、HappyPathのDELETE呼び出しを実行の最後まで延期し、レスポンスをOpenAPI 3.0および3.1スキーマに対して検証します。また、cats runを使用してYAMLでエンドツーエンドの機能テストを記述することもできます。

クイックスタート

# Run the full suite against an OpenAPI contract
cats -c openapi.yml -s http://localhost:8080

# Run a built-in profile (quick, security, compliance, ci, coverage, crash, type-coercion, health-check)
cats -c openapi.yml -s http://localhost:8080 --profile quick

# Run for a fixed time budget, continuing with random mutations if deterministic fuzzers finish early, and enforce a quality gate
cats -c openapi.yml -s http://localhost:8080 --stopAfterTimeInSec 60 --fillTimeBudget --qualityGate "errors<1"

# Lint the OpenAPI contract
cats lint -c openapi.yml

# Inspect dependency-ordered paths or explain a profile/fuzzer
cats list --paths --executionOrder -c openapi.yml
cats explain --type profile security

# Replay a test case or print the equivalent curl command
cats replay Test12
cats replay Test12 --curl

HTMLレポート

CATS

コマンドライン

CATS

ターミナルインターフェース

通常のファジングコマンドに --tui を付けると、ターミナルを離れることなく実行状況を追跡し、結果を確認できます:

cats --contract openapi.yml --server http://localhost:8080 --tui

概要には、CLI および HTML レポートと同じ用語を使用して、Paths、Run configuration、Response time、HTTP Response Codes、Success/Warnings/Errors、および実行された Fuzzers が表示されます。ファザーテーブルは利用可能なターミナルの行をすべて使用します。完全なリストが収まらない場合は、j/k または Page Up/Page Down を使用して参照してください。2 を押すと Execution Details、3 を押すと Execution summary と Quality gate result、4 を押すと Result Reason 別の Execution Details、5 を押すと含まれる Paths、6 を押すと Response Time でソートされた実行済みテストが表示されます。Result Reason と Path の行は、Enter で対応するテストを開きます。

矢印キーまたは j/k を使用してテストを選択し、Enter を押すと、そのリクエスト、レスポンス、結果、トレース、およびリプレイコマンドを全画面の詳細ビューで確認できます。テスト一覧で / を押すと、テスト ID、ファザー、パス、シナリオ、結果理由、メソッド、結果、およびレスポンスコードを検索できます。a、e、w、s、および i は、すべて、エラー、警告、成功、およびスキップされた結果をフィルタリングします。Esc はまずアクティブな検索をクリアし、それ以外の場合は前の画面に戻ります。1 を押すと概要が開きます。

q を押すとインターフェースを終了します。実行中の場合、これはキャンセルを要求し、可能な場合は現在のテストを完了し、すでに書き込まれた結果を保持して、ステータス 130 で終了します。実行が終了した後は、q は通常どおり終了します。

TUI には少なくとも 80 列 × 24 行のインタラクティブなターミナルが必要で、--dryRun と組み合わせることはできません。これは OpenAPI ベースのファジングコマンドで利用可能です。スタンドアロンの template コマンドは引き続き通常の CLI 出力を使用します。TUI はデフォルトで最新の 10,000 件のテスト詳細を保持します。別の正の上限を指定するには --tuiMaxResults を使用してください。古い詳細が破棄された場合でも、集計統計は実行全体を引き続きカバーします。

CATS の使用方法に関するチュートリアル

これは CATS の使用方法に関するステップバイステップガイドを含む記事のリストです:

  • Testing the GitHub API with CATS
  • How to write self-healing functional tests with no coding effort

CATS によって発見されたいくつかのバグ

  • https://github.com/hashicorp/vault/issues/13274 | https://github.com/hashicorp/vault/issues/13273
  • https://github.com/hashicorp/vault/issues/13225 | https://github.com/hashicorp/vault/issues/13232
  • https://github.com/go-gitea/gitea/issues/19397 | https://github.com/go-gitea/gitea/issues/19398
  • https://github.com/go-gitea/gitea/issues/19399

インストール

Homebrew

> brew tap endava/tap
> brew install cats

マニュアル

CATS は実行可能な JAR またはネイティブバイナリの両方としてバンドルされています。ネイティブバイナリは Java のインストールを必要としません。

お使いの OS のネイティブバイナリをダウンロードした後、PATH に追加することで、他のコマンドラインツールと同様に実行できます:

sudo cp cats /usr/local/bin/cats

bash または zsh で、バイナリから直接シェル補完を有効にできます:

source <(cats generate-completion)

あるいは、リポジトリから cats_autocomplete スクリプトを source することもできます:

source cats_autocomplete

補完を永続化するには、コマンドを .zshrc または .bashrc に追加してください。

Windows 用のネイティブバイナリはありませんが、uberjar 版を利用できます。これには Java 25 以上がインストールされている必要があります。

java -jar cats.jar として実行できます。

最新バージョンをダウンロードするには、リリースページへアクセスしてください: https://github.com/Endava/cats/releases。

ソースからのビルド

CATS はローカルマシン上でソースからビルドできます。Java 25 が必要です。Maven はすでに同梱されています。

最初のビルドを実行する前に、必ず ./mvnw clean を実行してください。CATS は OkHttp (com.squareup.okhttp3:okhttp:5.5.0-CATS) と Swagger Parser (io.swagger.parser.v3:swagger-parser-v3:2.1.49-CATS) のパッチ適用済みフォークを使用しており、これらは公式の依存関係バージョンを上書きすることなく、Maven によって lib/ からローカルにインストールされます。

次の Maven コマンドを使用して、プロジェクトを uberjar としてビルドできます:

./mvnw package -Dquarkus.package.jar.type=uber-jar -DskipTests

target フォルダに cats-runner.jar が生成されます。java -jar cats-runner.jar ... で実行できます。

GraalVM Java バージョン を使用してネイティブイメージをビルドすることもできます。

./mvnw package -Pnative

ユニットテストに関する注意事項

ユニットテストの実行中に、いくつかの error ログメッセージが表示される場合があります。これらは Fuzzer のネガティブシナリオをテストする際の想定された動作です。

ランタイムのデフォルト

TLS

CATS はデフォルトでサーバー証明書とホスト名を検証します。自己署名証明書を使用する信頼済みのテスト環境では、--insecure を指定して明示的に検証を無効にできます。

相互 TLS には、--sslKeystore、--sslKeystorePwd、--sslKeyPwd を使用します。--sslKeyPwd を省略した場合、CATS は秘密鍵にキーストアのパスワードを使用します。

シークレット、認証、リプレイ

ツールをダウンロード