Cyntrisec CLI (Historical) について
Cyntrisec CLIは、AWSインフラを読み取り専用で分析する歴史的なツールで、現在は提供終了しています。機能グラフの構築、攻撃経路やセキュリティ上の問題の検出に対応し、ローカルMCPサーバーとしてスキャン情報を公開できます。現行のCyntrisec製品ではありません。
主な機能
- 01AWSインフラの読み取り専用スキャン
- 02機能グラフの構築と攻撃経路の検出
- 03問題と未使用権限の分析
- 04レポートと修正案の生成
- 05スキャン比較とコンプライアンス確認
活用シーン
- 01AWSの攻撃経路を確認
- 02未使用のIAM権限を特定
- 03インフラスキャンのスナップショットを比較
- 04CIS AWSまたはSOC 2への準拠を確認
MCP 対応
CLIはローカルのstdio MCPサーバーとして実行できます。ツールからスキャン概要、資産、問題、攻撃経路、アクセス確認、修正案、コンプライアンス結果、スキャン比較を利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx cyntrisecAWS_PROFILEAWS profile name to use for authenticationAWS_DEFAULT_REGIONAWS region to use (defaults to profile/env settings)AWS_ACCESS_KEY_IDシークレットAWS access key ID (use AWS_PROFILE instead if possible)AWS_SECRET_ACCESS_KEYシークレットAWS secret access key (use AWS_PROFILE instead if possible)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Cyntrisec CLI
企業設立前の歴史的プロジェクトです。
cyntrisec-cliは、Cyntrisec が会社の注力分野を EphemeralML と AIR v1 に絞る前に作成されました。現在の Cyntrisec 製品、サポート対象、または商用サービスではありません。PyPI パッケージ名cyntrisec、CLI コマンドcyntrisec、および MCP サーバー IDio.github.cyntrisec/cyntrisecは、過去のインストール環境に影響を与えないよう、そのまま保持されています。
注意
歴史的ソフトウェアに関する免責事項:このツールは、Cyntrisec の現行製品ではありません。いかなる種類の保証もなく、「現状有姿」で提供されます。 CLI はデフォルトで読み取り専用の分析ツールですが、その調査結果に基づいて行うすべての操作について、ユーザーが全責任を負います。 生成された修正計画と Terraform コードは、適用する前に必ず確認してください。
AWS の機能グラフ分析と攻撃経路の検出を行う、歴史的な CLI です。
歴史的に、読み取り専用の CLI ツールとして次の機能を提供していました。
- AssumeRole を介して AWS インフラストラクチャをスキャンする
- 機能グラフ(IAM、ネットワーク、依存関係)を構築する
- インターネットから機密性の高いターゲットまでの攻撃経路を検出する
- ROI(セキュリティへの影響とコスト削減)に基づいて修正の優先順位を付ける
- 未使用の機能を特定する(影響範囲を縮小する)
- 証明チェーンを含む、決定的な JSON を出力する
デモ
Claude MCP で自然言語を使って攻撃経路を検出し、修正を生成する方法をご覧ください。
アーキテクチャ
+----------------------------------------------------------------------------------+
| CYNTRISEC CLI |
+----------------------------------------------------------------------------------+
| CLI Layer (Typer) |
| scan analyze cuts waste report comply can diff serve ... |
+-----------------------------+----------------------------------------------------+
| Core Engine | Storage (local) |
| - AWS collectors | ~/.cyntrisec/scans/<scan_id>/ |
| - Normalization/schema | snapshot.json, assets.json, relationships.json |
| - GraphBuilder -> AwsGraph | findings.json, attack_paths.json |
| - Path search -> paths | ~/.cyntrisec/scans/latest -> <scan_id> |
| - Min-cut + Cost (ROI) | (Windows fallback: latest is a file) |
+-----------------------------+----------------------------------------------------+
| Outputs: JSON/agent, HTML report, remediation plan + Terraform hints |
+----------------------------------------------------------------------------------+
データフロー
CLI (scan) --AssumeRole--> AWS Session --Describe/Get/List--> AWS APIs (read-only)
|
v
Collectors -> normalize -> Assets + Relationships -> AwsGraph
|
v
Attack path search (BFS/DFS)
|
v
Min-cut (remediation cuts)
|
v
Cost engine (ROI)
Local artifacts: ~/.cyntrisec/scans/<scan_id>/*.json
インストール
pip install cyntrisec
Windows の PATH 修正
「cyntrisec is not recognized」と表示される場合、Scripts フォルダーが PATH に含まれていません。
# Option 1: Run with python -m
python -m cyntrisec --help
# Option 2: Add to PATH for current session
$env:PATH += ";$env:APPDATA\Python\Python311\Scripts"
クイックスタート
前提条件: AWS CLI がインストールされ、認証情報(例:
aws configure)または環境変数が設定されていることを確認してください。セットアップの手順ではterraformが必要です。
# 1. Create the read-only IAM role in your account
cyntrisec setup iam 123456789012 --output role.tf
# 2. Apply the Terraform
cd your-infra && terraform apply
# 3. Run a scan
cyntrisec scan --role-arn arn:aws:iam::123456789012:role/CyntrisecReadOnly
# 4. View attack paths
cyntrisec analyze paths --min-risk 0.5
# 5. Find minimal fixes (prioritized by ROI)
cyntrisec cuts --format json
# 6. Generate HTML report
cyntrisec report --output report.html
コマンド
主な分析機能
| コマンド | 説明 |
|---|---|
scan | AWS インフラストラクチャをスキャンする |
analyze paths | 攻撃経路を表示する |
analyze findings | セキュリティ上の検出結果を表示する |
analyze stats | スキャン統計を表示する |
analyze business | ビジネスエントリーポイントを分析する |
report | HTML/JSON レポートを生成する |
セットアップと検証
| コマンド | 説明 |
|---|---|
setup iam | IAM ロールの Terraform を生成する |
validate-role | IAM ロールの権限を検証する |
修正
| コマンド | 説明 |
|---|---|
cuts | 最小限の修正を見つける(コストと ROI を優先) |
waste | 未使用の IAM 権限を見つける |
remediate | Terraform の計画を生成する、または任意で適用する(制御付き) |
ポリシーテスト
| コマンド | 説明 |
|---|---|
can | 「X は Y にアクセスできるか?」をテストする |
diff | スキャンのスナップショットを比較する |
comply | CIS AWS / SOC2 への準拠を確認する |
エージェント向けインターフェース
| コマンド | 説明 |
|---|---|
manifest | 機械可読な機能一覧を出力する |
explain | 自然言語で説明する |
ask | 平易な英語でスキャンについて質問する |
serve | AI エージェント向けの MCP サーバーとして実行する |
MCP サーバーモード
過去の CLI は、既存のローカル環境との互換性を保つため、引き続き MCP サーバーとして実行できます。
# Install with MCP support (now included by default)
pip install cyntrisec
cyntrisec serve # Start stdio server
cyntrisec serve --list-tools # List available tools
MCP ツール(15)
| カテゴリ | ツール | 説明 |
|---|---|---|
| 検出 | list_tools | 利用可能なすべてのツールを一覧表示します |
set_session_snapshot | セッションのアクティブなスナップショットを設定します | |
get_scan_summary | 最新の AWS スキャンの概要を取得します | |
| アセット | get_assets | 種類/名前で絞り込んだアセットを取得します |
get_relationships | アセット間の関係を取得します | |
get_findings | 重大度で絞り込んだセキュリティ上の検出結果を取得します | |
| 攻撃経路 | get_attack_paths | リスクスコア付きの攻撃経路を取得します |
explain_path | 経路をホップごとに詳しく説明します | |
explain_finding | 検出結果を詳しく説明します | |
| 修復 | get_remediations | 攻撃経路に対する最適な修正方法を検索します |
get_terraform_snippet | 修復用の Terraform コードを生成します | |
| アクセス | check_access | プリンシパルがリソースにアクセスできるかをテストします |
get_unused_permissions | 未使用の IAM 権限を検索します | |
| コンプライアンス | check_compliance | CIS AWS または SOC 2 への準拠を確認します |
compare_scans | スキャンスナップショットを比較します |
Claude Desktop
MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"cyntrisec": {
"command": "python",
"args": ["-m", "cyntrisec", "serve"]
}
}
}
Claude Code(CLI)
次のコマンドを実行してサーバーを設定します。
claude mcp add cyntrisec -- python -m cyntrisec serve
Google Gemini / Antigravity
エージェントの設定ファイル(例:~/.gemini/antigravity/mcp_config.json)を見つけて、次を追加します。
{
"mcpServers": {
"cyntrisec": {
"command": "python",
"args": ["-m", "cyntrisec", "serve"]
}
}
}
信頼性と安全性
読み取り専用の保証
このツールは、お使いの AWS アカウントに対して読み取り専用の API 呼び出しを行います。IAM ロールには Describe*、Get*、List* の権限のみを付与してください。
データの外部流出なし
すべてのデータはお使いのローカルマシンに保存されます。外部サーバーに送信されることはありません。スキャン結果は ~/.cyntrisec/scans/ に保存されます。
自動修復なし(デフォルトの安全モード)
デフォルトでは、Cyntrisec は読み取り専用であり、AWS インフラストラクチャを変更しません。
- 読み取り専用 API を使用してアカウントを分析します。
- 確認用の修復用成果物(例:Terraform モジュール)を生成できます。
- 変更を自動的に適用することはありません。
任意の修復実行(明示的なオプトイン)
Cyntrisec には、意図的に有効化した場合にのみ Terraform を実行できる、明示的に制御された手順が用意されています。
このモードは次のとおりです。
- デフォルトでは無効
--enable-unsafe-write-modeが必要です- Terraform を実行するには、追加の明示的なフラグ(例:
--execute-terraform)が必要です - 無人運用の本番環境ではなく、制御された環境(サンドボックス/承認プロセスのある CI)での使用を想定しています
これらのフラグを渡さない限り、Cyntrisec が terraform apply を実行することはありません。
書き込み操作
Cyntrisec は、スキャンおよび分析中にAWS の書き込み API 呼び出しを行いません。
サポートされている唯一の「書き込み」動作は、お使いのマシン上でローカルに Terraform を任意で実行することです。これは、危険な操作を許可するフラグで明示的に有効化した場合に限られます。
すべての AWS API 呼び出しは、セッション名 cyntrisec-cli で CloudTrail に記録されます。
信頼性と権限
Cyntrisec は読み取り専用の IAM ロールで実行されます。cyntrisec setup iam <ACCOUNT_ID> で推奨ポリシーを生成し、権限は Describe*、Get*、List* に限定してください。ライブモード(waste --live、can --live)には追加の IAM 権限が必要です。生成されるポリシーとドキュメントに、それらの追加権限について記載されています。
出力形式
主な出力は stdout への JSON です。stdout が TTY でない場合、CLI は自動的に JSON に切り替わります。
cyntrisec analyze paths --format json | jq '.paths[] | select(.risk_score > 0.7)'
エージェント向けの出力では、結果が構造化されたエンベロープに格納されます。
cyntrisec analyze paths --format agent
{
"schema_version": "1.0",
"status": "success",
"data": {...},
"artifact_paths": {...},
"suggested_actions": [...]
}
終了コード
| コード | 意味 |
|---|---|
| 0 | 成功/準拠 |
| 1 | 検出結果/リグレッション/拒否 |
| 2 | 使用方法のエラー |
| 3 | 一時的なエラー(再試行) |
| 4 | 内部エラー |
CI/CD での使用:
cyntrisec scan --role-arn $ROLE_ARN || exit 1
cyntrisec diff || echo "Regressions detected"
ストレージ
スキャン結果はローカルに保存されます。
~/.cyntrisec/
|-- scans/
| |-- 2026-01-17_123456_123456789012/
| | |-- snapshot.json
| | |-- assets.json
| | |-- relationships.json
| | |-- findings.json
| | `-- attack_paths.json
| `-- latest -> 2026-01-17_...
`-- config.yaml
バージョニング
このプロジェクトはセマンティックバージョニングに従います。リリースノートについては CHANGELOG.md を参照してください。
ライセンス
Apache-2.0
Links
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
