返回 Skill 列表
extension
分类: 开发与工程无需 API Key

pasta-scope

当用户要求“定义技术范围”、“绘制攻击面”、“识别入口点”、“构建数据流图”,或者正在进行PASTA阶段2时,应使用此技能。此外,在威胁建模的上下文中,如果用户询问关于DFD、网络边界、外部依赖或部署拓扑结构的问题,也会触发此技能。这是PASTA威胁建模方法论的一部分(7个阶段中的第2阶段)。

person作者: jakexiaohubgithub

PASTA Stage 2: Define Technical Scope

Map the technical boundaries of the system -- architecture, protocols, entry points, and attack surface. Build data flow diagrams (DFDs) showing how data moves through the system and where trust boundaries exist.

Supported Flags

Read ../../shared/schemas/flags.md for the full flag specification. Key behaviors:

| Flag | Stage 2 Behavior | |------|------------------| | --scope | Default changed. Scans routes, API specs, Dockerfiles, IaC, and network configs. | | --depth quick | Entry points from route definitions and API specs only. | | --depth standard | Full entry point scan + dependency catalog + protocol identification. | | --depth deep | Standard + infrastructure analysis (Docker, K8s, Terraform) + network boundary mapping. | | --depth expert | Deep + complete DFD with trust levels annotated on every data flow. | | --severity | Not applicable at this stage. |

Framework Context

Read ../../shared/frameworks/pasta.md, Stage 2 section. PASTA is SEQUENTIAL. Stage 2 consumes Stage 1 output and feeds Stage 3.

Prerequisites

Required: Stage 1 output -- business-critical assets, compliance requirements, and risk tolerance thresholds. If unavailable, warn and proceed with assumptions.

Workflow

Step 1: Determine Scope

Parse --scope flag (default: changed). Prioritize: route files, controllers, API gateway configs, Dockerfiles, docker-compose.yml, K8s manifests, Terraform, nginx configs, OpenAPI/Swagger specs, GraphQL schemas.

Step 2: Enumerate Entry Points

Scan for all data ingress paths:

  1. HTTP/REST: Express routes, FastAPI paths, Spring @RequestMapping, Django URLs.
  2. GraphQL: Schemas, resolvers, mutations, subscriptions.
  3. WebSocket: Socket.io handlers, WS endpoints.
  4. Message queues: RabbitMQ, Kafka, SQS, Redis pub/sub consumers.
  5. File uploads: Multipart handlers, S3 presigned URLs.
  6. Webhooks: Incoming receivers from third-party services.
  7. CLI/Scheduled: Admin consoles, cron tasks, Lambda triggers, workers.

Step 3: Map External Dependencies

Catalog outbound connections: third-party APIs (payment, auth, email), databases, caches (Redis, Memcached), cloud services (S3, SQS, Pub/Sub), and package dependencies from manifest files.

Step 4: Identify Network Boundaries

  1. Internet-facing vs. internal services.
  2. Network segmentation (VPCs, security groups, firewalls).
  3. Container orchestration (Docker networks, K8s namespaces, service meshes).
  4. CDN/proxy layers (Cloudflare, nginx, API gateways, load balancers).
  5. Legacy/deprecated endpoints still reachable.

Step 5: Build Data Flow Diagram

Construct a textual DFD: external entities, processes, data stores, data flows with protocol labels, and trust boundary lines.

Analysis Checklist

  1. What are all the ways data enters and exits this system?
  2. Which components are internet-facing vs. internal-only?
  3. What third-party services does the application depend on?
  4. What protocols and ports are exposed?
  5. Are there deprecated endpoints still reachable?
  6. What is the deployment topology (monolith, microservices, serverless)?
  7. Are there admin or debug endpoints exposed in production?
  8. What authentication mechanisms protect each entry point?

Output Format

Stage 2 produces a Technical Scope Document with DFD. ID prefix: PASTA (e.g., PASTA-S2-001).

## PASTA Stage 2: Technical Scope

### Technology Stack
| Layer | Technology | Version |
|-------|-----------|---------|
| Language / Framework / Database / Cache / Deployment | ... | ... |

### Entry Points
| ID | Type | Path/Handler | Auth Required | Protocol |
|----|------|-------------|---------------|----------|
| EP-01 | REST API | POST /api/users | No | HTTPS |
| EP-02 | WebSocket | /ws/chat | Yes (JWT) | WSS |

### External Dependencies
| Service | Purpose | Data Exchanged | Protocol |
|---------|---------|---------------|----------|
| Stripe | Payments | Card tokens | HTTPS |

### Data Flow Diagram
User --> [API Gateway] --> [Auth] --> [App Server] --> [Database]
Trust Boundaries:
- Internet | DMZ: User to API Gateway
- DMZ | Internal: API Gateway to App Server
- App | Data: App Server to Database

### Attack Surface Summary
| Surface | Entry Points | Internet-Facing | Auth Required |
|---------|-------------|-----------------|---------------|
| REST API | N | Yes | Mixed |

Findings follow ../../shared/schemas/findings.md with:

  • metadata.tool: "pasta-scope", metadata.framework: "pasta", metadata.category: "Stage-2"

Next Stage

Stage 3: Application Decomposition (pasta-decompose). Pass entry points, DFD, dependencies, and network boundaries. Stage 3 decomposes into components, maps trust boundaries, and catalogs roles and permissions.