GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者による説明(英語の原文)
AWS security scanner with attack chain detection, IAM privilege escalation, and fixes
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"cloud-audit": {
"command": "uvx",
"args": [
"cloud-audit"
]
}
}
}ターミナルでこれを実行します
claude mcp add cloud-audit -- uvx cloud-auditプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"cloud-audit": {
"command": "uvx",
"args": [
"cloud-audit"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"cloud-audit": {
"type": "stdio",
"command": "uvx",
"args": [
"cloud-audit"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント gebalamariusz で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(2.0.1)がレジストリに届いたのは7 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
cloud-audit
English | 简体中文
What can a hijacked AI agent reach in your AWS account, and can you prove it?
Open-source, read-only AWS security scanner. 110 checks, 64 IAM privilege-escalation methods, 31 attack-chain rules, blast radius for any resource, and agent-blast for Bedrock Agents and AgentCore: what a prompt-injected or credential-stolen agent can reach, with the IAM policy simulator as the witness. Every finding ships an AWS CLI + Terraform fix . Nothing is written to your account.
30-second demo - agent-blast - Full scan - What's inside - Proof Mode - Installation - Documentation
pip install cloud-audit
cloud-audit agent-blast --demo # a hijacked Bedrock Agent, two threat models, one screen cloud-audit demo --save demo.json # a full sample scan, then explore it offline: cloud-audit blast-radius --report demo.json --resource arn:aws:iam::123456789012:role/support-bot-ticket-role cloud-audit simulate --report demo.json --fix aws-iam-018 cloud-audit exposure --report demo.json
The sample account is invented. Everything derived from it (attack chains, root causes, breach cost, security graph, agent reach) is produced by the same engines a real scan uses.
With credentials, the real thing is one command and read-only. The AWS-managed SecurityAudit policy covers every check (permissions):
cloud-audit scan # default profile and region
cloud-audit scan --verify # plus IAM policy-simulator proof for escalation paths cloud-audit agent-blast --verify # then: what your agents can reach, simulator-confirmed
An AI agent in AWS is a bundle of IAM identities: the role the agent runs as, the execution roles of the Lambda functions behind its tools, the roles of its knowledge bases, gateways and sandboxes. When the agent is hijacked, the attacker acts with *those* identities. agent-blast answers what that means, per agent, under two threat models:
| Threat model | What the attacker has | What is in reach |
|---|---|---|
| Identity takeover | the credentials of a role the agent runs as (sandbox escape, metadata-service read, leaked session) | the full role: privilege-escalation methods, AssumeRole hops, data |
| Behaviour takeover | nothing but a prompt (indirect prompt injection through a document, a ticket, a web page) | what the agent's tools can do, bounded by the tools' own execution roles |
Real output for the sample agent (cloud-audit agent-blast --demo -a support-bot):
support-bot (bedrock_agent, eu-central-1)
├── A hijacked tool (tool: create-ticket) can escalate to account admin via PassRole+Lambda ├── status: PREPARED ├── Identity takeover (attacker holds the role's credentials) │ └── support-bot-agent-role arn:aws:iam::123456789012:role/support-bot-agent-role │ └── no escalation path; 3 reach(es) from policy grants, 1 on named resources (see Reach) │ (risk 0/100, 1 nodes) ├── Behaviour takeover (prompt injection: the agent's tools, their roles) │ ├── search-docs action_group_lambda -> support-bot-search-role │ │ ├── 3 OpenAPI path(s) in apiSchema; state ENABLED │ │ └── no escalation path; 4 reach(es) from policy grants, 4 on named resources (see Reach) │ ├── create-ticket action_group_lambda -> support-bot-ticket-role │ │ ├── 2 function(s) in functionSchema; state ENABLED │ │ ├── reaches Account Takeover in 1 hop(s) via PassRole+Lambda (risk 72/100) │ │ └── escalation: PassRole+Lambda │ └── product-docs knowledge_base -> support-bot-kb-role │ ├── 1 S3 data source(s) │ └── no escalation path; 2 reach(es) from policy grants, 2 on named resources (see Reach) ├── Reach (13 action/resource pairs) │ ├── tool: search-docs secretsmanager:GetSecretValue on │ │ arn:aws:secretsmanager:eu-central-1:123456789012:secret:prod/db-credentials-Ab12Cd │ │ unverified read secret values │ ├── tool: create-ticket sts:AssumeRole on arn:aws:iam::123456789012:role/ops-admin unverified │ │ assume IAM roles │ ├── tool: create-ticket lambda:InvokeFunction on * unverified invoke Lambda functions │ ├── tool: search-docs s3:PutObject on arn:aws:s3:::company-backups-2024/* unverified write S3 │ │ objects │ ├── support-bot-agent-role s3:GetObject on arn:aws:s3:::kb-product-docs/* unverified read the │ │ agent's knowledge base │ ├── tool: search-docs s3:GetObject on arn:aws:s3:::company-backups-2024/* unverified read S3 │ │ objects │ ... ├── Tags │ ├── OWASP Agentic: ASI02 Tool Misuse and Exploitation, ASI03 Identity and Privilege Abuse, │ │ ASI05 Unexpected Code Execution │ └── MITRE ATLAS: AML.T0034 Cost Harvesting, AML.T0040 AI Model Inference API Access, AML.T0053 │ AI Agent Tool Invocation, AML.T0086 Exfiltration via AI Agent Tool Invocation └── Simulated, not executed: identity policies, the attached permissions boundary and SCPs are evaluated by the IAM policy simulator; resource-based policies of the targets, RCPs and VPC endpoint policies are not. Tool reach is an upper bound set by the tool's role; what the tool code does with its inputs is narrower.
The story the output tells: the support bot itself is harmless, but a document that tricks it into calling create-ticket runs code under a role that can pass an admin role to a new Lambda. The search-docs tool, meant to read product docs, can also read the production database secret and write into the backups bucket. Every line names the identity, the action and the resource, so the fix is a policy statement, not a debate.
The same engine covers AgentCore. For the sample gateway (--demo -a tools-gw) the headline is a cross-agent one:
tools-gw (agentcore_gateway, eu-central-1)
├── tool: crm-sync can write into agent 'support-bot' knowledge base (RAG poisoning): arn:aws:s3:::kb-product-docs/* ├── inbound authorizer: NONE; policy engine: none ... │ ├── tool: crm-sync s3:PutObject on arn:aws:s3:::kb-product-docs/* unverified write into agent │ │ 'support-bot' knowledge base (RAG poisoning) ... ├── Coverage notes │ └── tool 'erp-mcp' (gateway_target_mcp_server): backend identity unknown, not assessed - remote │ MCP server; credential provider: OAUTH
What agent-blast reads (all list/get, no charge):
DRAFT version resolved to its Lambda and the Lambda's execution role, knowledge bases resolved to their S3 data-source buckets.Condition is present. Conditions are flagged, never guessed. The simulator decides.Then, per identity: the 64 privilege-escalation methods, AssumeRole hops through the trust graph, and every data, secret, lateral, code-execution and model-invocation grant matched against concrete resources. A knowledge-base bucket is always a concrete target, even behind s3:* on *, and write access to it is reported as RAG poisoning. Anything the scanner could not read (a denied region, a tool without an IAM identity) is a coverage note, never a silent pass.
--verify asks iam:SimulatePrincipalPolicy about every concrete pair, with the context an attacker really has (no MFA on the session, TLS transport), and marks each reach PROVEN, DENIED (with the policy layer that denied: SCP, permissions boundary) or not asserted. Output formats: tree, json, markdown. The MCP server exposes the same report as get_agent_blast.
cloud-audit scan runs 110 read-only checks across 25 AWS services, correlates the findings into attack chains, ranks the fixes by how many chains they break and prices the exposure. This is the sample account (cloud-audit demo), rendered by the same code as a real scan and trimmed for length:
┌─────── Health Score ───────┐
│ 15 / 100 │ └────────────────────────────┘ Provider AWS Account 123456789012 Regions eu-central-1 Resources scanned 80 Checks passed 14 Checks failed 6 Attack chains 3 Risk exposure $572K - $12.5M (IBM/Verizon data) ┌───────────────────────── Attack Chains (3 detected) ─────────────────────────┐ │ CRITICAL PassRole Escalation to Admin (support-bot-ticket-role) │ │ Principal 'support-bot-ticket-role' has iam:PassRole and │ │ can create resources with privileged roles via: │ │ PassRole+Lambda. The attacker passes an admin role to a │ │ service, then uses that service to execute code with admin │ │ privileges. │ │ Fix: Scope iam:PassRole for 'support-bot-ticket-role' to │ │ specific role ARNs │ │ Risk: $250K - $5.0M │ │ │ │ CRITICAL Internet-Exposed Admin Instance │ │ i-0abc123def456789, sg-0a1b2c3d4e5f67890 │ │ Instance i-0abc123def456789 is reachable from the internet │ │ via open security group and has admin IAM role │ │ 'prod-admin-role'. An attacker can reach the instance, │ │ access IMDS credentials, and gain full admin access to the │ │ AWS account. │ │ Fix: Restrict security group sg-0a1b2c3d4e5f67890 to │ │ specific IPs (effort: LOW). │ │ Risk: $62K - $625K │ │
冒頭だけを表示しています。続きはリポジトリで読めます