
Sonar は localhost でリッスンしているすべてを表示し、整理します。すべてのポートは グループ に属し — 通常はそれが起動されたリポジトリ — そのグループ内では名前付きの サービス に属します。sonar start で開発サーバーを起動すれば、プロジェクト全体が 1 つのものとなり、ツリーとして一覧表示し、待機し、tail し、単一のコマンドで停止できます。Docker コンテナ、Compose プロジェクト、手動で起動したプロセスも、設定なしで検出されます。```
$ sonar list --tree
my-app (3 ports, running) ~/code/my-app
├─ 5432 db postgres:17 http://localhost:5432
├─ 5173 frontend vite (v5.4) http://localhost:5173
└─ 8000 api uvicorn app:app http://localhost:8000
ungrouped (1 port)
└─ 3000 next-server (v16.1.6) http://localhost:3000
## インストール
### Homebrew (macOS / Linux)```sh
brew install raskrebs/sonar/sonar
Homebrew 6 は、一度タップを信頼するまでサードパーティのタップからの formula を拒否します
(Error: Refusing to load formula raskrebs/sonar/sonar from untrusted tap):```sh
brew trust raskrebs/sonar
### インストールスクリプト```sh
curl -sfL https://raw.githubusercontent.com/raskrebs/sonar/main/scripts/install.sh | bash
最新のバイナリを ~/.local/bin にダウンロードし、必要に応じて PATH に追加します。ターミナルを再起動するか、source ~/.zshrc を実行してください。
Windows の場合 (PowerShell):```powershell irm https://raw.githubusercontent.com/raskrebs/sonar/main/scripts/install.ps1 | iex
カスタムインストール場所:```sh
curl -sfL https://raw.githubusercontent.com/raskrebs/sonar/main/scripts/install.sh | SONAR_INSTALL_DIR=/usr/local/bin bash
特定のバージョンをインストールする:```sh curl -sfL https://raw.githubusercontent.com/raskrebs/sonar/main/scripts/install.sh | SONAR_VERSION=vX.Y.Z bash
## 主な機能
- **自動スキャン**: 指定されたディレクトリを再帰的にスキャンし、すべてのファイルを分析します。
- **パターン検出**: 正規表現パターンを使用して、一般的なシークレットの形式を識別します。
- **エントロピー分析**: 高エントロピー文字列を検出し、難読化されたシークレットを特定します。
- **カスタムルール**: ユーザー定義の検出ルールをサポートします。
- **レポート**: 検出結果を明確で実行可能な形式で出力します。
## インストール
```bash
git clone https://github.com/yourusername/secret-scanner.git
cd secret-scanner
pip install -r requirements.txt
python secret_scanner.py /path/to/scan
--rules: カスタムルールファイルへのパス--output: 出力形式 (text, json)--verbose: 詳細出力を有効にするconfig.yaml ファイルを編集して、スキャナーの動作をカスタマイズします。
scan:
exclude_dirs:
- .git
- node_modules
max_file_size: 1048576
スキャナーは以下のカテゴリのシークレットを検出します。
コントリビューションを歓迎します!お気軽に Pull Request を送信してください。
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については LICENSE ファイルを参照してください。```powershell $env:SONAR_VERSION="vX.Y.Z"; irm https://raw.githubusercontent.com/raskrebs/sonar/main/scripts/install.ps1 | iex
### Go の使用```sh
go install github.com/raskrebs/sonar@latest
シェル補完(ポート番号のタブ補完):```sh sonar completion zsh > "${fpath[1]}/_sonar" # zsh sonar completion bash > /etc/bash_completion.d/sonar # bash sonar completion fish | source # fish
## 60秒
リポジトリのルートに `sonar.yaml` を置き、`dev.sh` の代わりにプロジェクトの実行方法を記述します:```yaml
name: my-app
services:
- name: db
cmd: docker compose up db
port: 5432
- name: api
cmd: uv run uvicorn app:app --port ${port}
port: auto
depends_on: [db]
- name: frontend
cmd: npm run dev -- --port ${port} --strictPort
port: auto
depends_on: [api]
env:
VITE_API_URL: ${api.url}
次に起動します:```sh sonar start
## 検出
### 検出ルール
- ルールは `rules/` ディレクトリに YAML ファイルとして保存されます。
- 各ルールは、検出ロジックを定義する `detection` ブロックを含みます。
- ルールは、`sigma convert` または `sigma check` コマンドを使用して Sigma 形式から変換できます。
### 検出パイプライン
- パイプラインは `pipelines/` ディレクトリに YAML ファイルとして保存されます。
- パイプラインは、ログソースのフィールド名を Sigma ルールのフィールド名にマッピングするために使用されます。
- パイプラインは、`sigma convert` コマンドで `--pipeline` フラグを使用して適用できます。
### バックエンド
- バックエンドは、Sigma ルールを特定のクエリ言語に変換するために使用されます。
- サポートされているバックエンドには、Splunk、Elasticsearch、Azure Sentinel、QRadar などがあります。
- バックエンドは、`sigma convert` コマンドで `--target` フラグを使用して指定できます。
### 検出ルールのテスト
- ルールは、`sigma test` コマンドを使用してテストできます。
- テストは、ルールの `tests/` ディレクトリに YAML ファイルとして保存されます。
- テストは、ルールの検出ロジックを検証するために使用されます。
### 検出ルールの検証
- ルールは、`sigma check` コマンドを使用して検証できます。
- 検証は、ルールの構文とセマンティクスをチェックします。
- 検証は、ルールが Sigma 仕様に準拠していることを確認するために使用されます。
### 検出ルールの変換
- ルールは、`sigma convert` コマンドを使用して変換できます。
- 変換は、Sigma ルールを特定のクエリ言語に変換します。
- 変換は、ルールを特定のバックエンドで使用できるようにするために使用されます。
### 検出ルールのデプロイ
- ルールは、`sigma deploy` コマンドを使用してデプロイできます。
- デプロイは、Sigma ルールを特定のバックエンドにデプロイします。
- デプロイは、ルールを本番環境で使用できるようにするために使用されます。
### 検出ルールの管理
- ルールは、`sigma manage` コマンドを使用して管理できます。
- 管理は、Sigma ルールのライフサイクルを管理します。
- 管理は、ルールの作成、更新、削除、およびバージョン管理を可能にします。
### 検出ルールの共有
- ルールは、`sigma share` コマンドを使用して共有できます。
- 共有は、Sigma ルールを他のユーザーと共有します。
- 共有は、ルールをコミュニティと共有するために使用されます。
### 検出ルールのインポート
- ルールは、`sigma import` コマンドを使用してインポートできます。
- インポートは、Sigma ルールを他のソースからインポートします。
- インポートは、ルールを既存のルールセットに追加するために使用されます。
### 検出ルールのエクスポート
- ルールは、`sigma export` コマンドを使用してエクスポートできます。
- エクスポートは、Sigma ルールを他の形式にエクスポートします。
- エクスポートは、ルールを他のツールで使用できるようにするために使用されます。
### 検出ルールのバージョン管理
- ルールは、`sigma version` コマンドを使用してバージョン管理できます。
- バージョン管理は、Sigma ルールのバージョンを管理します。
- バージョン管理は、ルールの変更を追跡するために使用されます。
### 検出ルールのドキュメント
- ルールは、`sigma doc` コマンドを使用してドキュメント化できます。
- ドキュメントは、Sigma ルールのドキュメントを生成します。
- ドキュメントは、ルールを他のユーザーが理解できるようにするために使用されます。
### 検出ルールのヘルプ
- ルールは、`sigma help` コマンドを使用してヘルプを表示できます。
- ヘルプは、Sigma ルールのヘルプを表示します。
- ヘルプは、ルールの使用方法を理解するために使用されます。
### 検出ルールのバージョン
- ルールは、`sigma --version` コマンドを使用してバージョンを表示できます。
- バージョンは、Sigma ルールのバージョンを表示します。
- バージョンは、使用している Sigma のバージョンを確認するために使用されます。
### 検出ルールのアップデート
- ルールは、`sigma update` コマンドを使用してアップデートできます。
- アップデートは、Sigma ルールを最新バージョンにアップデートします。
- アップデートは、ルールを最新の状態に保つために使用されます。
### 検出ルールのアンインストール
- ルールは、`sigma uninstall` コマンドを使用してアンインストールできます。
- アンインストールは、Sigma ルールをシステムから削除します。
- アンインストールは、ルールをシステムから削除するために使用されます。
### 検出ルールのインストール
- ルールは、`sigma install` コマンドを使用してインストールできます。
- インストールは、Sigma ルールをシステムにインストールします。
- インストールは、ルールをシステムで使用できるようにするために使用されます。
### 検出ルールの再インストール
- ルールは、`sigma reinstall` コマンドを使用して再インストールできます。
- 再インストールは、Sigma ルールをシステムに再インストールします。
- 再インストールは、ルールをシステムで再び使用できるようにするために使用されます。
### 検出ルールのクリーンアップ
- ルールは、`sigma clean` コマンドを使用してクリーンアップできます。
- クリーンアップは、Sigma ルールの一時ファイルを削除します。
- クリーンアップは、ルールの一時ファイルを削除するために使用されます。
### 検出ルールのリセット
- ルールは、`sigma reset` コマンドを使用してリセットできます。
- リセットは、Sigma ルールを初期状態にリセットします。
- リセットは、ルールを初期状態に戻すために使用されます。
### 検出ルールの設定
- ルールは、`sigma config` コマンドを使用して設定できます。
- 設定は、Sigma ルールの設定を管理します。
- 設定は、ルールの設定を変更するために使用されます。
### 検出ルールのログ
- ルールは、`sigma log` コマンドを使用してログを表示できます。
- ログは、Sigma ルールのログを表示します。
- ログは、ルールの実行履歴を確認するために使用されます。
### 検出ルールのデバッグ
- ルールは、`sigma debug` コマンドを使用してデバッグできます。
- デバッグは、Sigma ルールのデバッグ情報を表示します。
- デバッグは、ルールの問題を診断するために使用されます。
### 検出ルールのプロファイリング
- ルールは、`sigma profile` コマンドを使用してプロファイリングできます。
- プロファイリングは、Sigma ルールのパフォーマンスを分析します。
- プロファイリングは、ルールのパフォーマンスを最適化するために使用されます。
### 検出ルールのベンチマーク
- ルールは、`sigma benchmark` コマンドを使用してベンチマークできます。
- ベンチマークは、Sigma ルールのパフォーマンスを測定します。
- ベンチマークは、ルールのパフォーマンスを比較するために使用されます。
### 検出ルールの統計
- ルールは、`sigma stats` コマンドを使用して統計を表示できます。
- 統計は、Sigma ルールの統計を表示します。
- 統計は、ルールの使用状況を分析するために使用されます。
### 検出ルールのレポート
- ルールは、`sigma report` コマンドを使用してレポートを生成できます。
- レポートは、Sigma ルールのレポートを生成します。
- レポートは、ルールの使用状況を文書化するために使用されます。
### 検出ルールの監査
- ルールは、`sigma audit` コマンドを使用して監査できます。
- 監査は、Sigma ルールの監査を実行します。
- 監査は、ルールのコンプライアンスを確認するために使用されます。
### 検出ルールのスキャン
- ルールは、`sigma scan` コマンドを使用してスキャンできます。
- スキャンは、Sigma ルールのスキャンを実行します。
- スキャンは、ルールの脆弱性を検出するために使用されます。
### 検出ルールの修正
- ルールは、`sigma fix` コマンドを使用して修正できます。
- 修正は、Sigma ルールの問題を修正します。
- 修正は、ルールの問題を解決するために使用されます。
### 検出ルールの最適化
- ルールは、`sigma optimize` コマンドを使用して最適化できます。
- 最適化は、Sigma ルールのパフォーマンスを最適化します。
- 最適化は、ルールのパフォーマンスを向上させるために使用されます。
### 検出ルールの圧縮
- ルールは、`sigma compress` コマンドを使用して圧縮できます。
- 圧縮は、Sigma ルールを圧縮します。
- 圧縮は、ルールのサイズを削減するために使用されます。
### 検出ルールの解凍
- ルールは、`sigma decompress` コマンドを使用して解凍できます。
- 解凍は、Sigma ルールを解凍します。
- 解凍は、ルールを元の形式に戻すために使用されます。