ITADN
cartography-cncf/cartography
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Cartography

Cartography 是一个 Python 工具,用于将基础设施资产及其关系拉取到 Neo4j 图数据库中。

它连接的内容: AWS、GCP、Azure、Kubernetes、GitHub、Okta、Entra ID、CrowdStrike,以及 30+ 其他平台

它回答的问题:

  • 哪些身份对哪些数据存储具有访问权限?跨多个租户或提供商时又如何?
  • 我是否受到任何关键漏洞或受损软件包的影响?
  • 进出我环境的网络路径是什么?
  • 哪些计算实例暴露在互联网上?
  • 哪些 AI 代理正在生产环境中运行,它们拥有什么权限?

Visualization of RDS nodes and AWS nodes

快速开始

安装 Cartography

pip install cartography

启动 Neo4j 数据库

docker run -d --publish=7474:7474 --publish=7687:7687 -v data:/data --env=NEO4J_AUTH=none neo4j:5-community

确认 http://localhost:7474 已启动。

同步您的第一个数据源(AWS 示例)

确保已配置您的 AWS 凭据和默认区域(例如通过 AWS_PROFILEAWS_DEFAULT_REGION~/.aws/config)。请参阅 AWS 凭据文档 作为参考。

运行 Cartography:

cartography --neo4j-uri bolt://localhost:7687 --selected-modules aws

请参阅 完整安装指南 以了解其他平台。

查询图

打开 http://localhost:7474 并尝试:

// Find unencrypted RDS instances by account
MATCH (a:AWSAccount)-[:RESOURCE]->(rds:AWSRDSInstance{storage_encrypted:false})
RETURN a.name, rds.id
// Find EC2 instances exposed to the internet
MATCH (instance:AWSEC2Instance{exposed_internet: true})
RETURN instance.instanceid, instance.publicdnsname

请参阅查询教程数据模式以获取更多用例。

运行安全规则

一旦 Cartography 已填充可访问的 Neo4j 图,即可列出、检查并运行 安全规则。本快速入门使用上述启动的无认证 Neo4j 容器, 因此无需密码:

cartography-rules list
cartography-rules list object_storage_public
cartography-rules run object_storage_public

对于经过身份验证的 Neo4j,请设置 NEO4J_PASSWORD 或使用 规则文档 中的其他安全密码选项。

支持的平台

点击展开 30 多个支持平台的完整列表
  • Airbyte - 组织、工作区、用户、源、目标、连接、标签、流

  • Amazon Web Services - ACM、API Gateway、Bedrock、CloudWatch、CodeBuild、Config、Cognito、EC2、ECS、ECR(包括多架构镜像、镜像层和证明)、EFS、Elasticsearch、Elastic Kubernetes Service (EKS)、DynamoDB、Glue、GuardDuty、IAM、Inspector、KMS、Lambda、RDS、Redshift、Route53、S3、SageMaker、Secrets Manager(Secret Versions)、Security Hub、SNS、SQS、SSM、STS、Tags

  • AIBOM - 与 ECR 镜像关联的 AI 组件检测

  • Anthropic - 组织、ApiKey、用户、工作区

  • BigFix - 计算机

  • Cloudflare - 账户、角色、成员、区域、DNSRecord

  • Crowdstrike Falcon - 主机、Spotlight 漏洞、CVEs

  • DigitalOcean

  • Duo - 用户、组、端点

  • GitHub - 仓库、分支、用户、团队、依赖关系图清单、依赖项

  • Google Cloud Platform - Artifact Registry、Bigtable、Cloud Functions、Cloud Resource Manager、Cloud Run、Cloud SQL、Compute、DNS、IAM、KMS、Secret Manager、Storage、Google Kubernetes Engine、Vertex AI

  • Google Workspace - 用户、组、设备、OAuth 应用

  • Jumpcloud

  • Kandji - 设备

  • Keycloak - Realms、用户、组、角色、Scopes、Clients、IdentityProviders、Authentication Flows、Authentication Executions、Organizations、Organization Domains

  • Kubernetes - 集群、命名空间、服务、Pod、容器、ServiceAccount、Role、RoleBinding、ClusterRole、ClusterRoleBinding、OIDCProvider

  • Lastpass - 用户

  • Microsoft Azure - App Service、Container Instance、CosmosDB、Data Factory、Event Grid、防火墙、防火墙策略、Functions、Key Vault、Azure Kubernetes Service (AKS)、负载均衡器、Logic Apps、管理组、资源组、SQL、存储、虚拟机、虚拟网络

  • Microsoft Entra ID - 用户、组、应用程序、OU、应用角色、与 AWS Identity Center 的联合、Intune 管理设备、Intune 检测应用、Intune 合规策略

  • CVE Metadata - 来自 NVD 和 FIRST.org 的 CVE 增强数据,包含 CVSS、EPSS 分数以及 CISA KEV 数据

  • NIST CVE - 来自 NIST 数据库的通用漏洞和暴露(CVE)数据(已弃用 - 请改用 CVE Metadata)

  • Netlify - 账户、用户、邀请、站点、部署、Functions、开发服务器、Agent Runners、数据库分支、数据库快照、环境变量、构建钩子、通知钩子、部署密钥、代码片段、服务实例、DNS 区域、DNS 记录、证书、表单

  • Okta - 用户、组、组织、角色、应用程序、因素、可信来源、回复 URI、与 AWS 角色的联合、与 AWS Identity Center 的联合

  • OpenAI - 组织、AdminApiKey、用户、项目、ServiceAccount、ApiKey

  • Oracle Cloud Infrastructure - IAM

  • PagerDuty - 用户、团队、服务、排班表、升级策略、集成、供应商

  • Railway - 工作区、项目、环境、服务、服务实例、部署、域名、TCP 代理、卷、变量、令牌

  • Scaleway - 项目、IAM、本地存储、实例

  • SentinelOne - 账户、代理、应用程序、应用程序版本、CVE

  • Slack - 团队、用户、用户组、频道

  • SnipeIT - 用户、资产

  • Socket.dev - 组织、仓库、依赖项、安全警报(CVE、恶意软件、供应链风险)、修复

  • Spacelift - 账户、空间、用户、堆栈、工作池、工作节点、运行、Git 提交

  • SubImage - 租户、团队成员、API 密钥、Neo4j 用户、模块、框架

  • Tailscale - 尾网、用户、设备、组、标签、姿态集成、设备姿态、设备姿态条件、设备姿态合规关系

  • Trivy Scanner - AWS ECR 镜像

社区

贡献

感谢您考虑为 Cartography 做出贡献!

所有贡献者和参与者必须遵守 CNCF 行为准则

提交 GitHub issue 以报告 bug 或请求新功能。较大的讨论发生在 GitHub Discussions

开始使用我们的开发者文档

谁在使用 Cartography?

  1. Lyft
  2. Thought Machine
  3. MessageBird
  4. Cloudanix
  5. Corelight
  6. SubImage
  7. Superhuman
  8. {Your company here} :-)

如果您的组织使用 Cartography,请提交一个 PR 并更新此列表。也请在 Slack 上打个招呼!

许可证

本项目采用 Apache 2.0 License 授权。


Cartography 是一个 Cloud Native Computing Foundation 沙箱项目。

CNCF Logo