ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

基于 Anthropic-Cybersecurity-Skills 的 DefectDojo 漏洞管理平台 REST API 实战指南

基于 Anthropic-Cybersecurity-Skills 的 DefectDojo 漏洞管理平台 REST API 实战指南 基于 Anthropic-Cybersecurity-Skills 的 DefectDojo 漏洞管理平台 REST API 实战指南【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-SkillsDefectDojo 是开源漏洞管理平台可将 200 安全扫描器的结果集中汇聚、去重并跟踪修复进度。本指南围绕仓库中building-vulnerability-dashboard-with-defectdojo技能包提供的 API 参考文档系统讲解其 REST API v2 的认证方式、核心端点、查询参数、扫描结果导入流程与 Python 客户端封装并借助仓库内脚本源码与工作流文档带你从零搭建一套可自动化的漏洞管理仪表盘。一、技能包概览与 API 定位在 Anthropic-Cybersecurity-Skills 仓库中building-vulnerability-dashboard-with-defectdojo技能见 SKILL.md描述了完整的落地路径通过 Docker Compose 部署 DefectDojo以 Product Type → Product → Engagement → Test → Finding 五层结构组织资产再借助 REST API v2 完成扫描结果导入、去重、Jira 工单同步与指标统计。该技能映射到 NIST CSF 的 ID.RA-01、ID.RA-02、ID.IM-02、ID.RA-06 以及 MITRE ATTCK 的 T1190、T1203、T1068。API 参考文档是整套自动化方案的接口枢纽其中定义的端点、参数与客户端封装构成了漏洞仪表盘的自动化基础组成对应文件API 端点与参数规范references/api-reference.md部署与配置指南SKILL.md标准与合规参考references/standards.md四个典型工作流references/workflows.mdAPI 客户端与仪表盘脚本scripts/agent.py、scripts/process.py组织架构配置模板assets/template.md二、认证方式Token 认证DefectDojo REST API v2 使用 Token 认证在 HTTP 请求头中携带Authorization: Token token即可。API 参考文档给出的基础用法如下curl -H Authorization: Token $DEFECTDOJO_TOKEN \ http://localhost:8080/api/v2/findings/Token 通常由管理员在 DefectDojo 界面中生成用于扫描器集成的 API Key 建议单独创建。从源码实现看agent.py 中的DefectDojoClient把 Token 认证封装为统一请求头同时支持通过环境变量注入self.headers { Authorization: Token self.api_key, Content-Type: application/json, }process.py则使用DD_URL、DD_API_KEY两个环境变量作为默认配置scripts/process.py便于在 CI/CD 中通过 secrets 注入避免明文密钥入库。三、核心端点一览API 参考文档将仪表盘自动化涉及的端点归纳为以下六类前四类为查询类后两类为写入类MethodEndpointDescriptionGET/api/v2/findings/List vulnerability findingsGET/api/v2/products/List productsGET/api/v2/engagements/List engagementsGET/api/v2/tests/List testsPOST/api/v2/import-scan/Import scanner resultsPOST/api/v2/reimport-scan/Re-import/update results两个写入端点值得特别说明其分工import-scan/首次导入适用于新产品、新 Engagement 的第一份扫描报告reimport-scan/重复导入同一扫描任务的更新结果是 CI/CD 场景的主力端点。它支持按 Engagement 去重deduplication_on_engagementtrue并自动关闭旧 findingsclose_old_findingstrue实现扫描即更新。这一点在 agent.py 的端点清单输出和 process.py 的import_scan函数中得到印证——后者默认启用auto_create_context、deduplication_on_engagement、close_old_findings三个开关并在导入成功后打印created / closed / reactivated三项统计。四、Findings 查询参数详解GET /api/v2/findings/是仪表盘最核心的查询端点。API 参考文档列出的查询参数如下ParameterTypeDescriptionseveritystringCritical, High, Medium, Low, InfoactivebooleanOnly active findingsverifiedbooleanOnly verified findingsduplicatebooleanInclude duplicatesproductintegerFilter by product IDlimitintegerResults per pageoffsetintegerPagination offset结合脚本源码可以进一步理解这些参数在实战中的组合用法按严重级别统计agent.py 的get_finding_count_by_severity对五个严重级别分别发起一次findings/查询limit1利用响应中的count字段得到各级别数量避免拉取全量数据按产品过滤process.py 演示了字段级联过滤test__engagement__productproduct_id可替代product参数按产品维度聚合SLA 违约统计SKILL.md 中的指标查询使用activetruesla_breachedtrue过滤出已超出修复时限的漏洞分页limit0表示返回全部结果仅用于统计正常分页场景配合limit与offset使用。五、扫描结果导入import-scan 完整示例API 参考文档给出的导入命令以 Nessus 为例curl -X POST http://localhost:8080/api/v2/import-scan/ \ -H Authorization: Token $TOKEN \ -F product1 \ -F engagement1 \ -F scan_typeNessus Scan \ -F filenessus_export.csv \ -F activetrue \ -F verifiedfalseimport-scan/要求product与engagement均为已存在的对象 ID即必须先按组织架构创建好产品与 Engagement再以multipart/form-data形式上传file与scan_type。而在 CI/CD 或自动化场景中SKILL.md 与模板文件更推荐reimport-scan/的按名称自动创建上下文模式无需预知 IDcurl -X POST ${DD_URL}/reimport-scan/ \ -H Authorization: Token ${API_KEY} \ -F scan_typeNessus Scan \ -F filenessus_report.csv \ -F product_nameCustomer Portal \ -F engagement_nameQ1 2024 Security Assessment \ -F auto_create_contexttrue \ -F deduplication_on_engagementtrue对比可见两种模式的差异与适用场景参数import-scanreimport-scan定位对象product/engagement整数 IDproduct_name/engagement_name名称配合auto_create_contexttrue自动建上下文去重开关无deduplication_on_engagement关闭旧发现无close_old_findings典型场景首次建立基线CI/CD 重复扫描、增量更新六、支持的扫描器类型scan_type 取值API 参考文档给出了导入时必须精确匹配的scan_type字符串部分Scannerscan_type ValueNessusNessus ScanQualysQualys ScanBurp SuiteBurp REST APIOWASP ZAPZAP ScanTrivyTrivy ScanSnykSnyk ScanSemgrepSemgrep JSON ReportNucleiNuclei ScanCheckovCheckov ScanSARIFSARIFagent.py 中的SUPPORTED_SCAN_TYPES常量进一步补充了Generic Findings Import、Anchore Grype等取值assets/template.md 则给出了各扫描器的推荐文件格式对照Nessus 用.csv/.nessusZAP 用.xml/.jsonTrivy、Semgrep、Snyk 等 JSON 工具用.json。导入时务必使用与扫描器输出格式完全一致的scan_type字符串与文件否则解析器无法匹配。七、Python 客户端封装从参考示例到生产脚本API 参考文档提供了一个极简的DefectDojoClientimport requests class DefectDojoClient: def __init__(self, url, token): self.url url.rstrip(/) self.headers {Authorization: Token token} def get_findings(self, **params): return requests.get( f{self.url}/api/v2/findings/, headersself.headers, paramsparams ).json()仓库脚本将这个思路扩展成了可直接运行的工程化实现核心增强点包括环境变量驱动agent.py 支持DEFECTDOJO_URL与DEFECTDOJO_API_KEY环境变量默认指向http://localhost:8080健壮性处理请求带 15 秒超时非 200 响应返回错误字典而非抛出异常未安装requests或缺 API Key 时优雅降级预置领域方法get_findings、get_products、get_engagements、get_finding_count_by_severity、import_scan直接对应 API 参考文档的端点与参数仪表盘指标聚合build_dashboard_data函数agent.py在客户端之上计算total_active_findings、by_severity、by_product、avg_age_days、overdue_count、sla_compliance_pct六项指标其中 SLA 判定采用 template.md 中的时限标准Critical 7 天、High 30 天、Medium 90 天、Low 180 天。八、组合实战四步建立自动化漏洞仪表盘将 API 参考文档与 workflows.md 中的四个工作流结合可以形成一条完整落地链路。第一步搭建组织架构Workflow 1。通过product_types/、products/、engagements/三个端点按层级创建对象。SKILL.md 给出了对应的 Python 调用序列process.py的setup子命令将其封装为一条命令python scripts/process.py setup \ --product-type Web Applications \ --product Customer Portal \ --engagement CI/CD第二步接入 CI/CD 扫描Workflow 2。在流水线中运行 Semgrep、Trivy、ZAP 等扫描器后用reimport-scan/上传结果。SKILL.md 提供了 GitHub Actions 示例模板文件提供了通用 CI 片段- name: Upload scan results to DefectDojo env: DD_URL: ${{ secrets.DEFECTDOJO_URL }} DD_API_KEY: ${{ secrets.DEFECTDOJO_API_KEY }} run: | curl -X POST ${DD_URL}/api/v2/reimport-scan/ \ -H Authorization: Token ${DD_API_KEY} \ -F scan_type${SCAN_TYPE} \ -F file${SCAN_FILE} \ -F product_name${PRODUCT_NAME} \ -F auto_create_contexttrue \ -F close_old_findingstrue第三步漏洞研判Workflow 3。分析人员在仪表盘中对 findings 逐一执行 verify、置为 false positive、风险接受记录补偿性控制并设过期时间有效漏洞推送 Jira 跟踪修复。第四步指标与高管报告Workflow 4。按严重级别统计计数、SLA 违约数、产品级指标并生成 JSON 报告python scripts/process.py dashboard --product-id 1 --output defectdojo_dashboard.json九、补充Jira 集成与配置参数API 参考文档聚焦 REST 接口而 Jira 集成参数定义在 SKILL.md 与 template.md 中二者配合才能构成完整的漏洞治理闭环。Jira 配置以字典形式给出jira_config { url: https://company.atlassian.net, username: jira-botcompany.com, password: jira_api_token, default_issue_type: Bug, critical_mapping_severity: Blocker, high_mapping_severity: Critical, medium_mapping_severity: Major, low_mapping_severity: Minor, finding_text: **Vulnerability**: {{ finding.title }}\n**Severity**: {{ finding.severity }}\n**CVE**: {{ finding.cve }}\n**Description**: {{ finding.description }}, accepted_mapping_resolution: Done, close_status_key: 6, }严重级别到 Jira Priority 的映射遵循 template.md 的约定Critical→Blocker、High→Critical、Medium→Major、Low→Minor并在 DefectDojo 侧关闭 finding 时自动关闭对应 Jira 工单。十、部署前提与合规参考运行本技能需要 Docker Compose 环境standards.md 给出的资源要求如下ComponentMinimumRecommendedCPU2 cores4 coresRAM4 GB8 GBDisk20 GB50 GBPostgreSQL1215Docker20.10Latest stableDocker Compose2.0Latest stable合规方面DefectDojo 以集中化漏洞跟踪支撑 NIST SP 800-53 Rev 5 的 RA-5Vulnerability Monitoring and Scanning、PCI DSS v4.0 要求 6 的漏洞跟踪以及 OWASP 分类体系下的应用安全发现管理。部署完成后即可通过http://localhost:8080访问控制台配合本文所述的 API v2 端点完成从扫描导入到指标报告的自动化闭环。如需进一步阅读可继续查阅本技能的 SKILL.md、workflows.md 与 standards.md。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表