露出したシークレットを狐の狡猾さで狩り出せ!
軽量でクロスプラットフォームなCLIツール。ファイルシステムをスキャンして、露出したシークレット、APIキー、トークンを検出します。Goで構築され、最大のパフォーマンスとゼロ依存性を実現。
# macOS Apple Silicon (M1/M2/M3)
curl -L -o kyubisweep https://github.com/tanmayshahane/kyubisweep/releases/latest/kyubisweep-darwin-arm64
chmod +x kyubisweep
# 実行!
./kyubisweep --path /path/to/your/project
# Go 1.21+ がインストールされていることを確認
go version
# クローンしてビルド
git clone https://github.com/tanmayshahane/kyubisweep.git
cd kyubisweep
go build -o kyubisweep ./cmd/sweep/main.go
# 実行!
./kyubisweep --path .
USAGE:
kyubisweep [OPTIONS]
OPTIONS:
--path <directory> スキャンするパス(デフォルト: カレントディレクトリ)
--verbose 詳細な出力を有効化
--all すべての重要度レベルを表示(デフォルト: HIGHのみ)
--all-files テキストベースのファイルだけでなく、すべてのファイルをスキャン
--ext <extensions> スキャンする追加の拡張子(カンマ区切り)
--json レポートをJSONファイルとして出力
--no-report レポートファイルを保存しない
--quiet 最小限の出力、サマリーのみ
--move-to <path> シークレットを含むファイルを隔離ディレクトリに移動
--help このヘルプメッセージを表示
EXAMPLES:
kyubisweep --path ./my-project
kyubisweep --path . --all # すべての重要度を表示
kyubisweep --path . --ext log,dat # カスタム拡張子を追加
kyubisweep --path . --move-to ./vault # 機密ファイルを隔離
kyubisweep --path . --json # JSONとしてエクスポート
╔══════════════════════════════════════════════════════════════════════════╗
║ 🛡️ KYUBISWEEP SECURITY HYGIENE SCORECARD ║
╚══════════════════════════════════════════════════════════════════════════╝
🚨 CRITICAL ISSUES FOUND
📊 RISK BREAKDOWN
─────────────────────────────────────────
🚨 CRITICAL 9 ████████████████░░░░
🔴 HIGH 2 ███░░░░░░░░░░░░░░░░░
🟡 MEDIUM 0 ░░░░░░░░░░░░░░░░░░░░
🔵 LOW 0 ░░░░░░░░░░░░░░░░░░░░
🔍 FINDINGS DETAIL
─────────────────────────────────────────
RISK TYPE LOCATION
[CRITICAL] AWS Access Key ID ~/project/.env:5
[CRITICAL] PostgreSQL Connection ~/project/config.yaml:12
[HIGH] Stripe Secret Key ~/project/payment.js:42
📁 Scanned: ~/my-project
📄 Files analyzed: 2.9K
⏱️ Duration: 1.2s
graph TD
subgraph "Initialization (Main Goroutine)"
A[Start CLI] --> B{Parse Flags};
B -->|--path| C[Init Walker];
B -->|--move-to| D[Init Quarantine Mgr];
C --> E[Create Jobs Channel];
E --> F[Create Results Channel];
end
subgraph "Producer (Goroutine 1)"
G[Walker] -->|Finds Files| E;
style G fill:#f9f,stroke:#333,stroke-width:2px
style E fill:#ccf,stroke:#333,stroke-width:2px,stroke-dasharray: 5 5
end
subgraph "Worker Pool (Goroutines 2...N)"
E -->|Read File Path| H[Worker 1];
E -->|Read File Path| I[Worker 2];
E -->|Read File Path| J[Worker N];
H -->|Read Content| K{Analyzer};
I -->|Read Content| K{Analyzer};
J -->|Read Content| K{Analyzer};
K -- No Secret --> L((Discard));
K -- Secret Found --> M[Send Finding];
M --> F;
style K fill:#ff9,stroke:#333,stroke-width:2px
end
subgraph "Consumer & Wrap up (Main Goroutine)"
F -->|Collect Findings| N[Reporter / Table UI];
style F fill:#ccf,stroke:#333,stroke-width:2px,stroke-dasharray: 5 5
N --> O{Quarantine Requested?};
O -- Yes --> P[Move Files to Vault];
O -- No --> Q[Exit];
P --> Q;
end
%% Add a WaitGroup visual helper
H -.-> WG[sync.WaitGroup];
I -.-> WG;
J -.-> WG;
WG -.->|All Done| F;
| カテゴリ | 例 |
|---|---|
| クラウド認証情報 | AWSアクセスキー、Google APIキー、Azureトークン |
| 決済システム | Stripe APIキー(本番・テスト) |
| 開発者ツール | GitHub PAT、NPMトークン、Heroku APIキー |
| コミュニケーション | Slackトークン、Discordボットトークン、Twilioキー |
| データベース | PostgreSQL、MongoDB、MySQLの接続文字列 |
| 暗号関連 | RSA/SSH/PGP秘密鍵 |
| 汎用 | パスワード、APIキー、Bearerトークン |
kyubisweep/
├── cmd/
│ └── sweep/
│ └── main.go # CLIエントリポイント + ワーカープール
├── pkg/
│ ├── analyzer/
│ │ └── analyzer.go # エントロピー + 正規表現検出
│ ├── scanner/
│ │ └── walker.go # 並列ディレクトリウォーカー
│ ├── reporter/
│ │ └── reporter.go # セキュリティスコアカード出力
│ ├── quarantine/
│ │ └── manager.go # セキュアなファイル移動
│ └── common/
│ └── colors.go # 共有ANSIカラーユーティリティ
├── reports/ # 生成されたスキャンレポート
├── build/ # クロスコンパイル済みバイナリ
├── go.mod # Goモジュール定義
├── build.sh # クロスプラットフォームビルドスクリプト
└── README.md
# ビルドスクリプトを実行可能に
chmod +x build.sh
# 全プラットフォーム向けにビルド
./build.sh
# 出力:
# build/kyubisweep-darwin-arm64 (macOS Apple Silicon)
# build/kyubisweep-darwin-amd64 (macOS Intel)
# build/kyubisweep-linux-amd64 (Linux 64-bit)
# build/kyubisweep-linux-arm64 (Linux ARM)
# build/kyubisweep-windows-amd64.exe (Windows 64-bit)
すぐに保護する必要があるシークレットが見つかりましたか? --move-to を使用してファイルを移動します:
./kyubisweep --path . --move-to ./secure_vault
安全機能:
コントリビューションを歓迎します! プルリクエストを遠慮なく送ってください。
MITライセンス - ご自身のプロジェクトで自由に使用してください!
🦊 APIキーを一度や二度間違ってコミットしてしまった開発者によって作られました。