performing-gcp-security-assessment-with-forseti
使用 Forseti Security、Security Command Center(安全指挥中心)和 gcloud CLI 对 Google Cloud Platform 环境进行全面安全评估,审计 IAM 策略、防火墙规则、存储权限,并对照 CIS GCP Foundations Benchmark 进行合规检查。
Best use case
performing-gcp-security-assessment-with-forseti is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
使用 Forseti Security、Security Command Center(安全指挥中心)和 gcloud CLI 对 Google Cloud Platform 环境进行全面安全评估,审计 IAM 策略、防火墙规则、存储权限,并对照 CIS GCP Foundations Benchmark 进行合规检查。
Teams using performing-gcp-security-assessment-with-forseti should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/performing-gcp-security-assessment-with-forseti/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How performing-gcp-security-assessment-with-forseti Compares
| Feature / Agent | performing-gcp-security-assessment-with-forseti | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
使用 Forseti Security、Security Command Center(安全指挥中心)和 gcloud CLI 对 Google Cloud Platform 环境进行全面安全评估,审计 IAM 策略、防火墙规则、存储权限,并对照 CIS GCP Foundations Benchmark 进行合规检查。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 使用 Forseti 执行 GCP 安全评估
## 适用场景
- 对 GCP 组织和项目进行定期安全评估时
- 接入新 GCP 项目并建立安全基线时
- 合规要求评估 CIS GCP Foundations Benchmark 时
- 跨多个 GCP 项目审计 IAM 绑定、防火墙规则和存储 ACL 时
- 为 GCP 基础设施构建持续安全监控时
**不适用于**:替代 GCP Security Command Center Premium 进行实时威胁检测、应用层漏洞扫描(应使用 Web Security Scanner),或 GKE 专项安全评估(应使用 GKE Security Posture)。
## 前置条件
- GCP 组织(Organization)具有 Organization Admin 或 Security Admin IAM 角色
- gcloud CLI 已使用足够权限进行认证(`roles/securitycenter.admin`、`roles/iam.securityReviewer`)
- 在组织级别启用 Security Command Center(SCC)
- 已安装 ScoutSuite 用于多云对比(`pip install scoutsuite`)
- Python 3.8+ 及 google-cloud-asset 和 google-cloud-securitycenter 库,用于自定义审计脚本
## 工作流程
### 步骤 1:启用 Security Command Center 和资产清单
启用 SCC 并设置 Cloud Asset Inventory(云资产清单),以实现全面的资源可见性。
```bash
# 启用 Security Command Center API
gcloud services enable securitycenter.googleapis.com \
--project=PROJECT_ID
# 启用 Cloud Asset API
gcloud services enable cloudasset.googleapis.com \
--project=PROJECT_ID
# 列出组织中的所有资产
gcloud asset search-all-resources \
--scope=organizations/ORG_ID \
--asset-types="compute.googleapis.com/Instance,storage.googleapis.com/Bucket,iam.googleapis.com/ServiceAccount" \
--format="table(name, assetType, location, project)"
# 将资产清单导出到 BigQuery 进行分析
gcloud asset export \
--organization=ORG_ID \
--output-bigquery-force \
--output-bigquery-dataset=projects/PROJECT_ID/datasets/asset_inventory \
--output-bigquery-table=resources \
--content-type=resource
```
### 步骤 2:审计 IAM 策略和绑定
审查整个组织的 IAM 策略,查找过度宽松的绑定、原始角色(Primitive Role)和服务账号滥用情况。
```bash
# 列出组织级别的所有 IAM 策略绑定
gcloud organizations get-iam-policy ORG_ID \
--format=json > org-iam-policy.json
# 查找所有跨项目拥有 Owner 或 Editor 角色的用户
gcloud asset search-all-iam-policies \
--scope=organizations/ORG_ID \
--query="policy:roles/owner OR policy:roles/editor" \
--format="table(resource, policy.bindings.role, policy.bindings.members)"
# 识别具有管理员角色的服务账号
gcloud asset search-all-iam-policies \
--scope=organizations/ORG_ID \
--query="policy.bindings.members:serviceAccount AND policy:roles/owner" \
--format=json
# 检查 allUsers 或 allAuthenticatedUsers 绑定(公开访问)
gcloud asset search-all-iam-policies \
--scope=organizations/ORG_ID \
--query="policy:allUsers OR policy:allAuthenticatedUsers" \
--format="table(resource, policy.bindings.role, policy.bindings.members)"
# 列出超过 90 天的服务账号密钥
gcloud iam service-accounts keys list \
--iam-account=SA_EMAIL \
--managed-by=user \
--format="table(name,validAfterTime,validBeforeTime)"
```
### 步骤 3:评估防火墙规则和网络配置
审计 VPC 防火墙规则,检查过度宽松的入站规则、缺失日志记录和网络暴露情况。
```bash
# 列出允许来自 0.0.0.0/0 入站流量的所有防火墙规则
gcloud compute firewall-rules list \
--filter="direction=INGRESS AND sourceRanges=0.0.0.0/0" \
--format="table(name, network, allowed, sourceRanges, targetTags)"
# 查找允许所有协议/端口的防火墙规则
gcloud compute firewall-rules list \
--filter="direction=INGRESS AND allowed[].IPProtocol=all" \
--format="table(name, network, sourceRanges, targetTags)"
# 检查向互联网开放 SSH(22)和 RDP(3389)的规则
gcloud compute firewall-rules list \
--filter="direction=INGRESS AND sourceRanges=0.0.0.0/0 AND (allowed[].ports=22 OR allowed[].ports=3389)" \
--format="table(name, network, allowed, sourceRanges)"
# 审计 VPC 流日志配置
gcloud compute networks subnets list \
--format="table(name, region, enableFlowLogs, logConfig.aggregationInterval)"
```
### 步骤 4:审计 Cloud Storage 存储桶权限
检查公开可访问的存储桶和缺失的加密配置。
```bash
# 列出项目中的所有存储桶
gsutil ls -p PROJECT_ID
# 检查存储桶 IAM 中的公开访问情况
for bucket in $(gsutil ls -p PROJECT_ID); do
echo "=== $bucket ==="
gsutil iam get "$bucket" | grep -E "allUsers|allAuthenticatedUsers" && \
echo " 警告:检测到公开访问" || \
echo " 正常:无公开访问"
done
# 检查存储桶加密配置
for bucket in $(gsutil ls -p PROJECT_ID); do
echo "=== $bucket ==="
gsutil kms encryption "$bucket" 2>/dev/null || echo " 使用 Google 管理的加密"
done
# 检查统一存储桶级访问强制执行
for bucket in $(gsutil ls -p PROJECT_ID); do
gsutil uniformbucketlevelaccess get "$bucket"
done
```
### 步骤 5:运行 ScoutSuite 进行全面评估
执行 ScoutSuite 对 GCP 环境进行自动化多项安全检查。
```bash
# 针对 GCP 运行 ScoutSuite
python3 -m ScoutSuite gcp \
--user-account \
--all-projects \
--report-dir ./scoutsuite-gcp-report
# 使用服务账号凭据运行
python3 -m ScoutSuite gcp \
--service-account /path/to/service-account-key.json \
--all-projects \
--report-dir ./scoutsuite-gcp-report
# 打开 HTML 报告
open ./scoutsuite-gcp-report/gcp-report.html
```
### 步骤 6:查询 Security Command Center 发现
检索并分析 SCC 发现,包括漏洞、配置错误和威胁。
```bash
# 列出活跃的 SCC 发现
gcloud scc findings list ORG_ID \
--filter="state=\"ACTIVE\" AND severity=\"CRITICAL\"" \
--format="table(finding.category, finding.severity, finding.resourceName, finding.eventTime)"
# 按类别列出发现
gcloud scc findings list ORG_ID \
--filter="state=\"ACTIVE\" AND category=\"PUBLIC_BUCKET_ACL\"" \
--format=json
# 按类别统计发现数量
gcloud scc findings group ORG_ID \
--group-by="category" \
--filter="state=\"ACTIVE\""
# 列出 SCC 合规违规项
gcloud scc findings list ORG_ID \
--filter="state=\"ACTIVE\" AND sourceProperties.compliance_standard=\"CIS\"" \
--format="table(finding.category, finding.severity, finding.resourceName)"
```
## 核心概念
| 术语 | 定义 |
|------|------|
| Security Command Center | GCP 原生安全和风险管理平台,提供资产清单、漏洞检测和威胁监控功能 |
| Forseti Security | 开源 GCP 安全工具集(现已弃用,由 SCC 取代),提供清单、扫描、执行和通知功能 |
| Cloud Asset Inventory | GCP 服务,提供包含元数据、IAM 策略和组织策略配置的完整云资源清单 |
| CIS GCP Foundations Benchmark | 互联网安全中心(Center for Internet Security)针对 Google Cloud Platform 配置发布的安全最佳实践指南 |
| 统一存储桶级访问(Uniform Bucket-Level Access) | GCP 存储设置,禁用旧版 ACL,通过 IAM 策略统一控制访问权限 |
| 组织策略(Organization Policy) | GCP 基于约束的治理机制,在整个组织层级中限制资源配置 |
## 工具与系统
- **Security Command Center**:GCP 原生 CSPM(云安全态势管理),提供资产清单、漏洞发现和合规评分
- **ScoutSuite**:多云安全审计工具,对 GCP IAM、计算、存储和网络进行全面检查
- **gcloud CLI**:查询 GCP 资源配置和安全设置的主要命令行界面
- **Cloud Asset Inventory**:跨 GCP 项目搜索和导出资源元数据与 IAM 策略的 API
- **Forseti Security**:旧版开源 GCP 安全工具集,已由 SCC 取代,但在合规框架中仍被引用
## 常见场景
### 场景:评估新收购的 GCP 组织
**场景背景**:公司收购后,安全团队需要评估被收购公司拥有 30+ 个项目的 GCP 组织的安全态势。
**方法**:
1. 启用 Cloud Asset API,将完整资源清单导出到 BigQuery 进行分析
2. 运行 `gcloud asset search-all-iam-policies` 查找所有 Owner/Editor 绑定和公开访问授权
3. 审计所有项目中来自 `0.0.0.0/0` 的过度宽松入站防火墙规则
4. 使用 `gsutil iam get` 检查所有存储桶的公开访问情况
5. 运行 ScoutSuite 进行全面自动化评估并生成 HTML 报告
6. 启用 SCC 并审查所有严重(CRITICAL)和高危(HIGH)发现
7. 为整合团队生成按风险优先级排序的修复路线图
**常见陷阱**:GCP IAM 绑定从组织继承到文件夹再到项目。组织级别的宽松绑定会影响所有下游项目。务必在层级的每个级别审计 IAM,而不仅仅是项目级别。
## 输出格式
```
GCP 安全评估报告
=================================
组织: acme-acquired-org(ORG_ID: 123456789)
评估项目数: 34
评估日期: 2026-02-23
标准: CIS GCP Foundations 2.0
IAM 发现:
组织级别具有 Owner 角色的用户数: 3
具有 Editor 角色的服务账号数: 12
具有 allUsers 绑定的资源数: 5
超过 90 天的服务账号密钥数: 18
网络发现:
允许 0.0.0.0/0 的防火墙规则数: 14
向互联网开放 SSH 的规则数: 7
向互联网开放 RDP 的规则数: 2
未启用 VPC 流日志的子网数: 22
存储发现:
公开可访问的存储桶数: 5
未使用 CMEK 加密的存储桶数: 28
未启用统一访问的存储桶数: 15
严重发现: 12
高危发现: 34
中危发现: 78
低危发现: 145
优先修复事项:
1. 从 5 个存储桶移除 allUsers 绑定(严重)
2. 将 0.0.0.0/0 防火墙规则限制为特定 CIDR(高危)
3. 轮换 18 个超过 90 天的服务账号密钥(高危)
4. 在 22 个子网上启用 VPC 流日志(中危)
```Related Skills
triaging-security-incident
使用 NIST SP 800-61r3 和 SANS PICERL 框架对安全事件进行初始分类,确定严重性、范围和所需响应行动。 按类型对事件分类,根据业务影响分配优先级,并路由到相应的响应团队。适用于事件分类、 安全告警分类、严重性评估、事件优先级排序或初始事件分析等请求场景。
triaging-security-incident-with-ir-playbook
使用结构化 IR Playbook 对安全事件进行分类和优先排序,确定严重性、分配响应团队并启动适当的响应程序。
triaging-security-alerts-in-splunk
在 Splunk Enterprise Security 中对安全告警进行分类,通过 SPL 查询和事件审查(Incident Review) 仪表板对重要事件进行严重性分类、调查、关联相关遥测并做出升级或关闭决策。 适用于 SOC 分析师需要处理关联搜索产生的告警队列、确定调查优先级, 或需要为交接给二/三级分析师记录分类决策时。
testing-websocket-api-security
测试 WebSocket API 实现中的安全漏洞,包括 WebSocket 升级时缺少身份认证、跨站 WebSocket 劫持(Cross-Site WebSocket Hijacking,CSWSH)、通过 WebSocket 消息进行的注入攻击、输入校验不足、通过消息泛洪实施拒绝服务,以及通过 WebSocket 帧造成的信息泄露。测试人员使用 Burp Suite 拦截 WebSocket 握手和消息,构造恶意 payload,并测试 WebSocket 通道上的授权绕过。适用于 WebSocket 安全测试、WS 渗透测试、CSWSH 攻击或实时 API 安全评估相关请求。
testing-jwt-token-security
在安全测试活动中,评估 JSON Web Token(JWT)实现中的密码学弱点、算法混淆攻击和授权绕过漏洞。
testing-api-security-with-owasp-top-10
使用自动化和手工测试技术,针对 OWASP API 安全 Top 10 风险对 REST 和 GraphQL API 端点进行系统性评估。
performing-yara-rule-development-for-detection
通过识别可执行文件中的唯一字节模式、字符串和行为指标,开发精准的 YARA 恶意软件检测规则,同时将误报率降至最低。
performing-wireless-security-assessment-with-kismet
使用 Kismet 通过被动射频监控进行无线网络安全评估,检测流氓接入点(Rogue AP)、隐藏 SSID、弱加密和未授权客户端。
performing-wireless-network-penetration-test
执行无线网络渗透测试,通过捕获握手包、破解 WPA2/WPA3 密钥、检测流氓接入点以及使用 Aircrack-ng 和相关工具测试无线网络分段,评估 WiFi 安全性。
performing-windows-artifact-analysis-with-eric-zimmerman-tools
使用 Eric Zimmerman 的开源 EZ Tools 套件(包括 KAPE、MFTECmd、PECmd、LECmd、JLECmd 和 Timeline Explorer)执行全面的 Windows 取证制品分析,解析注册表 hive、预取文件、事件日志和文件系统元数据。
performing-wifi-password-cracking-with-aircrack
在授权无线安全评估中捕获 WPA/WPA2 握手包,并使用 aircrack-ng、hashcat 和字典攻击进行离线密码破解, 以评估密码短语强度和无线网络安全状况。
performing-web-cache-poisoning-attack
在授权安全测试期间,通过未纳入缓存键的头部和参数毒化缓存响应,利用 Web 缓存机制向其他用户投递恶意内容。