mcpField
S
sast-analysis

sast-analysis

github.com/utkusen安全1.3k75 次安装5 天前更新
代码仓库

关于 sast-analysis

用于安全评估前期侦察的代码库分析技能,面向需要先了解项目结构的安全审查者。它梳理技术栈、入口、数据流与信任边界,并将架构概况写入 sast/architecture.md,供后续分析使用。

主要功能

  1. 01识别语言、框架与依赖
  2. 02梳理服务边界和数据流
  3. 03检查入口、认证与外部集成
  4. 04记录敏感数据及信任边界

适用场景

  1. 01为后续定向漏洞检测建立架构背景
  2. 02了解大型代码库中的认证与数据访问路径
  3. 03整理项目入口、基础设施和依赖情况

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/utkusen/sast-skills --skill sast-analysis

安装后在 Claude Code 中输入/sast-analysis确认已加载。

详细介绍

代码库分析

你正在进行安全评估的第一阶段。目标是深入了解代码库。此阶段不是查找具体漏洞,而是纯粹的侦察。

在项目根目录中创建 sast/ 文件夹(如果尚不存在)。此阶段会在其中生成一个输出文件:

sast/architecture.md — 技术栈、架构、入口点和数据流

阶段 1:技术侦察

探索代码库并识别以下内容:

  • 语言:使用的所有编程语言,以及指定的版本
  • 框架:Web 框架、ORM 层、模板引擎、任务队列
  • 包管理器和依赖项:锁文件、依赖清单(package.json、requirements.txt、go.mod、Gemfile、pom.xml 等)
  • 基础设施线索:Dockerfile、docker-compose、Kubernetes 清单、Terraform、CI/CD 配置
  • 数据库:SQL、NoSQL、缓存层、消息代理——检查连接字符串、ORM 模型和迁移文件
  • 身份验证和授权:身份验证库、中间件、会话配置、OAuth/OIDC 提供方、JWT 使用情况、API 密钥模式
  • 外部集成:第三方 API、支付处理服务、电子邮件服务、云 SDK、Webhook 处理程序
  • 入口点:HTTP 路由、GraphQL 架构、gRPC 服务定义、CLI 命令、WebSocket 处理程序、定时任务、消息使用者

先阅读依赖清单、项目配置和目录结构。然后深入源代码以确认发现。

阶段 2:架构梳理

根据阶段 1 的结果,构建以下方面的整体模型:

  1. 服务边界:这是单体还是微服务?各部分如何通信?
  2. 数据流:用户输入如何进入系统、经过处理、存储并返回?
  3. 信任边界:系统在哪些位置从可信上下文切换到不可信上下文?(例如:用户输入 -> 后端、后端 -> 数据库、服务 -> 服务、服务器 -> 客户端)
  4. 权限级别:有哪些角色/权限?如何执行?是否有管理面板?
  5. 敏感数据清单:个人身份信息、凭据、令牌、财务数据、健康记录——分别存储在哪里,又如何流转?

将阶段 1 和阶段 2 的结果写入 sast/architecture.md。 使用以下格式:

# Architecture: [Project Name]

## Technology Stack

| Category | Details |
|---|---|
| Languages | ... |
| Frameworks | ... |
| Databases | ... |
| Auth mechanism | ... |
| Infrastructure | ... |
| External services | ... |

## Architecture Overview

[Describe the architecture: monolith vs microservices, how components interact,
main modules and their responsibilities]

## Data Flow

[Trace how user input enters the system, gets processed, stored, and returned.
Cover the primary flows (e.g., registration, login, core business actions).]

## Entry Points

| Entry Point | Type | Auth Required | Description |
|---|---|---|---|
| ... | HTTP/GraphQL/WS/etc. | Yes/No | ... |

## Trust Boundaries

[List each trust boundary and what crosses it]

## Sensitive Data Inventory

| Data Type | Where Stored | How Accessed | Protection |
|---|---|---|---|
| ... | ... | ... | ... |

重要提醒

  • 不要报告具体漏洞(例如“第 42 行存在 SQL 注入”)。那是后续阶段的工作。
  • 探索要全面。阅读实际源代码,而不只是配置文件。查看身份验证中间件如何应用、查询如何构建、文件上传如何处理。
  • 如果代码库很大,优先检查安全敏感区域:身份验证、支付、数据访问、文件处理和管理功能。

评论

支持 Markdown