SuperAPI AI 工具集

prowler-attack-paths-query

安全与审计

查看项目

更新于 10-16 04:34

技能介绍

用途:该技能用于编写 Prowler Attack Paths 的 openCypher 查询。这类查询运行在 Cartography 导入的云图上,用于检测权限提升链、网络暴露等图结构安全风险。查询以 openCypher Version 9 编写,可在 Neo4j 与 Amazon Neptune 上运行。

查询类型:分为预定义查询(位于 api/src/backend/api/attack_paths/queries/{provider}.py)和自定义查询(经自定义查询 API 提交)。预定义查询须从 AWSAccount 根节点出发、靠路径连通性隔离,每个节点都要可达;自定义查询写自然 Cypher,运行器会自动注入 Provider{uuid} 标签,并用后置过滤处理边界情况。

输入来源:可来自 pathfinding.cloud 的路径 ID(如 ECS-001、GLUE-001),也可来自自然语言描述。可用如下命令按 ID 取单条路径:curl -s https://raw.githubusercontent.com/DataDog/pathfinding.cloud/main/docs/paths.json | jq '.[] | select(.id == "ecs-002")';若没有 jq,可用 python3 -c "import json,sys; ..."。

结构要点:$provider_uid 绑定 AWSAccount.id 用于账户范围限定。定义字段含 id、name、short_description、description、provider、cypher、parameters、attribution,需追加到文件底部的 {PROVIDER}_QUERIES 列表。始终用 PROWLER_FINDING_LABEL,不要硬编码 "ProwlerFinding"。

性能与兼容:避免笛卡尔积,先把资源值预聚合成列表再匹配目标;用 size([...]) > 0 代替 any();用 WITH DISTINCT 去重。列表型属性以子节点存储,命名如 AWSPolicyStatementResourceItem 与 HAS_RESOURCE;JSON 编码属性(如 condition)无查询期解析器,只能用 CONTAINS 做子串检查。RETURN 形状 paths, dpf, dpfr 是序列化器与可视化组件依赖的约定,不可更改。