Security & Review Skills

CLI-JAW 提供了一整套安全分析和代码审查技能,能够检测漏洞、强制执行最佳实践、进行威胁建模并简化同行评审——所有操作均可通过自然语言命令完成。

技能概览

技能描述触发示例
static-analysis在代码库中执行静态分析,无需运行代码即可发现错误、反模式和潜在漏洞"정적 분석 돌려줘"
insecure-defaults扫描配置文件、环境变量和代码中的不安全默认值(开放的 CORS、生产环境的调试模式、弱加密设置)"보안 기본값 점검해줘"
security-best-practices根据 OWASP Top 10 和特定语言的安全指南审计项目,生成合规性检查清单"보안 베스트 프랙티스 검사해줘"
security-ownership-map基于 git 历史记录和 CODEOWNERS 生成安全关键路径(身份验证、支付、加密、PII 处理)的所有者映射"보안 소유권 맵 만들어줘"
security-threat-model为当前项目构建基于 STRIDE 的威胁模型,识别信任边界、数据流和攻击面"위협 모델링 해줘"
differential-review仅审查 PR 或 diff 中变更的行,聚焦于安全回退和新引入的风险"변경된 부분만 보안 리뷰해줘"
receiving-code-review处理收到的代码审查评论,按严重程度分类,并为每个发现建议修复方案"코드 리뷰 피드백 정리해줘"
requesting-code-review为当前变更集准备结构化的代码审查请求,包含上下文、风险区域和审查者检查清单"이 코드 리뷰 요청해줘"

静态分析

static-analysis 技能通过结合 AST 级别的检查和模式匹配来执行多语言静态分析。它能检测 SQL 注入向量、XSS 汇聚点、路径遍历模式、不安全的反序列化等漏洞。

# Run static analysis on the entire project
보안 취약점 검사해줘

# Target a specific directory
src/api 디렉토리만 정적 분석해줘

# Focus on a specific vulnerability class
SQL 인젝션 취약점만 찾아줘

结果按严重程度(严重、高、中、低)分组,附带文件位置、行号和修复建议。

提示:"보안 취약점 검사해줘" 会触发完整的静态分析扫描。添加路径或漏洞类型可以缩小扫描范围,获得更快的结果。

不安全的默认值

insecure-defaults 技能检查项目中常常在不知不觉中被部署到生产环境的危险默认配置。

检查类别检测示例
身份验证默认密码、禁用的身份验证中间件、宽松的会话设置
CORSAccess-Control-Allow-Origin: *、过于宽泛的允许方法
调试模式生产配置中的 DEBUG=true、暴露的详细错误页面
加密使用 MD5/SHA1 进行密码哈希、硬编码密钥、弱 JWT 密钥
网络使用 HTTP 而非 HTTPS、无限制地绑定到 0.0.0.0、开放端口
依赖项已知存在漏洞的包版本、未固定的依赖项
# Scan for insecure defaults
기본값 보안 점검해줘

# Check only environment and config files
설정 파일 보안 검사해줘

安全最佳实践

security-best-practices 技能根据既定的安全标准审计您的项目,并生成结构化的合规报告。

# Full OWASP Top 10 audit
OWASP 기준으로 보안 점검해줘

# Language-specific best practices
Python 보안 베스트 프랙티스 체크해줘

# Generate a compliance report
보안 컴플라이언스 리포트 만들어줘

审计涵盖以下内容:

提示:"OWASP 기준으로 보안 점검해줘" 会生成一个与每个 OWASP 类别对应的检查清单,每个条目都有通过/失败/警告状态。

安全所有权映射

security-ownership-map 技能分析 git 历史记录和项目结构,生成安全关键代码所有权的可视化映射。

# Generate ownership map for security-critical paths
보안 소유권 맵 만들어줘

# Focus on authentication code ownership
인증 관련 코드 소유자 확인해줘

该映射识别以下内容:

每个路径都标注了主要所有者(最近和最频繁的提交者)、审查覆盖率百分比以及上次安全聚焦审查以来的时间。

威胁建模

security-threat-model 技能通过分析项目的架构、数据流和外部集成来构建基于 STRIDE 的威胁模型。

# Generate a full threat model
위협 모델링 해줘

# Threat model for a specific feature
결제 기능 위협 모델 만들어줘

# Update an existing threat model after changes
위협 모델 업데이트해줘
STRIDE 类别检测内容
伪造(Spoofing)弱身份验证、缺少身份验证、令牌伪造向量
篡改(Tampering)传输中的未签名数据、缺少完整性检查、可变共享状态
抵赖(Repudiation)缺少审计日志、未签名的事务、没有不可否认性控制
信息泄露(Information Disclosure)详细错误信息、日志泄露、不安全存储、调试端点
拒绝服务(Denial of Service)缺少速率限制、无界查询、资源耗尽向量
权限提升(Elevation of Privilege)缺少授权检查、IDOR、权限提升路径
提示:"위협 모델링 해줘" 会生成一份结构化文档,包含信任边界、数据流图(文本形式)、按 STRIDE 类别列出的已识别威胁,以及按风险排序的建议缓解措施。

差异审查

differential-review 技能仅对 PR 或工作树 diff 中变更的行进行安全聚焦审查,在合并之前捕获回退问题。

# Review the current diff for security issues
변경된 부분만 보안 리뷰해줘

# Review a specific PR
PR #42 보안 리뷰해줘

# Review staged changes before committing
커밋 전에 보안 검사해줘

差异审查聚焦于以下内容:

代码审查工作流

CLI-JAW 通过专用技能支持代码审查流程的两个方面。

接收代码审查

receiving-code-review 技能处理收到的审查评论,按严重程度分类,并为每个发现生成可操作的修复建议。

# Process review feedback on the current PR
코드 리뷰 피드백 정리해줘

# Triage and prioritize review comments
리뷰 코멘트 심각도별로 정리해줘

# Auto-generate fixes for review findings
리뷰 피드백 기반으로 수정 코드 생성해줘

请求代码审查

requesting-code-review 技能准备一个结构化的审查请求,包含上下文、风险标注和审查者检查清单。

# Create a review request for the current changes
이 코드 리뷰 요청해줘

# Generate a review request with security focus
보안 관점에서 리뷰 요청 만들어줘

# Add a reviewer checklist to an existing PR
PR에 리뷰 체크리스트 추가해줘

生成的审查请求包含以下内容:

提示:"이 코드 리뷰해줘" 会触发组合分析——同时运行静态分析和差异审查,然后将结果格式化为带有建议修复的内联 PR 评论。

组合技能

安全技能可以链式组合以进行全面分析。CLI-JAW 会自动检测何时需要多个技能并进行编排。

# Full security audit (combines multiple skills)
전체 보안 감사 해줘

# Pre-release security check
릴리즈 전 보안 점검해줘

# Onboarding security review for a new project
이 프로젝트 보안 상태 전체적으로 파악해줘
组合工作流调用的技能
全面安全审计static-analysis + insecure-defaults + security-best-practices
发布前检查static-analysis + insecure-defaults + differential-review
威胁评估security-threat-model + security-ownership-map
审查准备differential-review + requesting-code-review

配置

安全技能遵循 .jaw/security.yaml 中的项目级配置:

# .jaw/security.yaml
severity_threshold: medium    # Minimum severity to report (low|medium|high|critical)
ignore_paths:
  - "vendor/**"
  - "node_modules/**"
  - "**/*.test.ts"
owasp_profile: web            # web | api | mobile | desktop
custom_rules:
  - id: no-eval
    pattern: "eval("
    severity: critical
    message: "eval() is forbidden; use a safe parser instead"