尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

BGP 劫持风险评估 Agent API 实战:Anthropic-Cybersecurity-Skills 的 RPKI 自动化检测与 RIPEstat 集成指南

BGP 劫持风险评估 Agent API 实战:Anthropic-Cybersecurity-Skills 的 RPKI 自动化检测与 RIPEstat 集成指南 BGP 劫持风险评估 Agent API 实战Anthropic-Cybersecurity-Skills 的 RPKI 自动化检测与 RIPEstat 集成指南【免费下载链接】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本指南面向需要在授权环境中评估组织 BGP 劫持暴露面prefix hijacking / route leak的网络安全工程师与红蓝队人员系统讲解 Anthropic-Cybersecurity-Skills 仓库中exploiting-bgp-hijacking-vulnerabilities技能所附带的 BGP 劫持评估 Agentscripts/agent.py的完整 API 参考包括依赖安装、CLI 用法、全部函数签名、RIPEstat 数据端点以及输出 Schema并深入对应源码实现与 Containerlab 实验流程。读完本文你将掌握如何用该 Agent 自动化完成 ASN 前缀枚举、RPKI 状态校验、多源冲突检测与劫持韧性评分并能在隔离实验环境中验证 RPKI 部署的有效性。技能定位与 Agent 角色exploiting-bgp-hijacking-vulnerabilities是仓库中位于 skills/exploiting-bgp-hijacking-vulnerabilities 的网络安全network-security / routing-security技能其核心任务是在授权实验环境中分析并模拟 BGP 劫持场景评估路由起源验证Route Origin Validation, ROV、RPKI 部署和 BGP 监控防御在前缀劫持与路由泄漏攻击面前的有效性。技能元数据SKILL.md frontmatter将其映射到 MITRE ATTCK 的 T1046网络服务发现、T1040网络嗅探、T1557中间人攻击、T1071应用层协议以及 NIST CSF 2.0 的 PR.IR-01、DE.CM-01、ID.AM-03、PR.DS-02可作为防守侧检测覆盖的参考依据。配套的评估 Agentscripts/agent.py是一个纯 Python CLI 工具充当BGP 劫持韧性评估器它不直接发送任何 BGP 报文而是通过 RIPE NCC 的 RIPEstat 公共 API 只读查询真实互联网的路由数据对目标 ASN 执行自动化的 RPKI 健康检查。它可作为技能 SKILL.md 中六步实验工作流搭建隔离 BGP 实验室 → 验证合法路由 → 模拟更具体前缀劫持 → 模拟起源劫持 → 测试 RPKI ROV → 部署监控的现实世界校验环节将仿真结论与真实路由表观测进行交叉验证。依赖与运行环境Agent 的外部依赖极小仅需一个 HTTP 客户端库官方 API 参考references/api-reference.md给出如下依赖表库版本用途requests2.28RIPEstat API 查询的 HTTP 客户端从 agent.py 源码可见脚本在导入阶段对依赖做了显式守护try: import requests except ImportError: sys.exit(requests is required: pip install requests)因此安装方式为pip install requests2.28此外运行时还需要具备访问https://stat.ripe.net的网络条件Agent 以RIPESTAT_BASE https://stat.ripe.net/data为所有查询的基地址。若要完整复现技能的实验环节还需 Docker、Containerlab、FRRoutingfrrouting/frr:v8.5.0、Routinator、BGPalerter 与 pybgpstream 等工具详见 SKILL.md 的前置条件说明。CLI 用法与参数详解Agent 通过argparse暴露三个命令行参数源码见 agent.py参数类型必填默认值说明--asnint是无目标 AS 号--prefixstr否无指定要检查的具体前缀如203.0.113.0/24--outputstr否bgp_assessment.json报告输出文件路径官方 API 参考给出的两种典型调用方式# 完整 ASN 评估枚举该 ASN 所有已宣告前缀并逐条做 RPKI 体检 python scripts/agent.py --asn 12345 --output bgp_report.json # 检查指定前缀 python scripts/agent.py --asn 12345 --prefix 203.0.113.0/24两种模式下 Agent 的行为不同agent.py指定--prefix时仅针对该前缀执行 RPKI 校验、路由状态查询和 looking glass 路由视图查询报告包含rpki、routing、looking_glass三个对象未指定--prefix时触发assess_hijack_resilience(asn)完整评估汇总该 ASN 全部已宣告前缀。无论哪种模式报告都会同时写入--output指定的 JSON 文件并打印到标准输出json.dump(..., indent2)。所有请求均设置 30 秒超时并对 HTTP 错误调用raise_for_status()网络异常会直接抛错终止便于在 CI 或定时任务中捕获失败。核心函数参考Agent 将 RIPEstat 查询封装为 6 个纯函数agent.py。以下结合源码逐一说明签名、入参与返回值。check_rpki_status(prefix, asn) - dict查询 RIPEstat 的 RPKI 校验端点判断前缀-起源 AS组合的 RPKI 有效性agent.py。def check_rpki_status(prefix: str, asn: int) - dict: url f{RIPESTAT_BASE}/rpki-validation/data.json params {resource: fAS{asn}, prefix: prefix} ...返回结构{prefix, asn, status, validating_roas}。其中status为 RIPEstat 返回的 RPKI 状态字符串valid/invalid/not_found等validating_roas为该前缀当前生效的 ROA 记录列表来源 ASN、最大长度等。get_announced_prefixes(asn) - list列出给定 ASN 当前宣告的所有前缀agent.py。def get_announced_prefixes(asn: int) - List[dict]: url f{RIPESTAT_BASE}/announced-prefixes/data.json params {resource: fAS{asn}} ...返回data.prefixes原始列表每个元素包含prefix等字段函数同时以 INFO 级别记录前缀总数例如AS12345 announces 5 prefixes便于完整评估时观察枚举规模。get_routing_status(prefix) - dict返回前缀的当前路由状态agent.py首次出现时间first_seen.time、最后出现时间last_seen.time、在 RIPE RIS 对等点中的可见度visibility.v4.total_ris_peers以及起源 ASN 列表origins[].asn。该函数返回的origins列表是后续多源冲突判定的直接数据源。check_roas(prefix) - list检索指定前缀的 Route Origin AuthorizationROA记录agent.py。与check_rpki_status不同本函数只以resourceprefix为参数直接返回validating_roas数组适合单独检查该前缀是否被 ROA 保护、最大长度max-length设置为何值。get_bgp_looking_glass(prefix) - dict查询 RIPEstat looking glass获取当前各 RIS 收集器RRC中的路由通告情况agent.py。源码会将各 RRC 的对等点解析为{rrc, peer_asn, as_path, prefix}结构并只保留前 20 条as_paths[:20]返回{prefix, routes}。通过 AS Path 可以直观看出哪些 AS 在向互联网宣告该前缀——这正是检测多源宣告与劫持迹象的关键视图。assess_hijack_resilience(asn) - dict完整评估入口agent.py其执行流水线为get_announced_prefixes(asn)枚举全部前缀逐前缀调用check_rpki_status(prefix, asn)获取 RPKI 状态与 ROA逐前缀调用get_routing_status(prefix)获取起源 AS 列表与可见度判定多源冲突len(origins) 1视为multi_origin_conflict True汇总统计rpki_unprotected统计所有status ! valid的前缀multi_origin_conflicts统计存在多源的前缀数。最终返回的汇总对象即本文输出 Schema一节的结构。该函数内部对每个前缀依次记录rpki_status、roas、origins_count、multi_origin_conflict、visibility_peers是生成组织级劫持韧性评分报告的核心。RIPEstat API 端点速查Agent 共使用 4 个 RIPEstat 数据端点官方 API 参考总结如下端点用途/rpki-validation/data.json前缀-起源组合的 RPKI 有效性/announced-prefixes/data.json某 ASN 宣告的前缀列表/routing-status/data.json前缀的当前路由状态/looking-glass/data.json来自 RIS 收集器的 BGP 路由视图各端点在源码中的实际调用参数可归纳为端点查询参数关键响应字段对应函数rpki-validationresourceASasn可选prefixstatus、validating_roascheck_rpki_status/check_roasannounced-prefixesresourceASasnprefixes[]get_announced_prefixesrouting-statusresourceprefixfirst_seen、last_seen、visibility、originsget_routing_statuslooking-glassresourceprefixrrcs[].peers[]asn_origin、as_path、prefixget_bgp_looking_glass若需手动复核 Agent 的结果可直接用 curl 对照同一端点例如curl -s https://stat.ripe.net/data/rpki-validation/data.json?resourceAS65001prefix10.0.0.0/24 | python3 -m json.tool输出 Schema 与字段语义完整 ASN 评估模式下的报告结构官方 API 参考定义{ asn: 12345, total_prefixes: 5, rpki_valid: 3, rpki_unprotected: 2, multi_origin_conflicts: 0, prefix_details: [{prefix: 203.0.113.0/24, rpki_status: valid}] }对照 agent.py 源码该 Schema 中顶层字段的生成逻辑为assessment_date评估执行时刻UTC ISO 8601便于审计与时间线比对asn/total_prefixes目标 AS 号与其已宣告前缀总数来自get_announced_prefixesrpki_validtotal_prefixes - rpki_unprotected即 RPKI 状态为valid的前缀数rpki_unprotected所有rpki_status ! valid的前缀数含not_found、invalid等multi_origin_conflicts被多于一个起源 AS 宣告的前缀数prefix_details逐前缀明细数组元素含prefix、rpki_status、roas、origins_count、multi_origin_conflict、visibility_peers。在--prefix单前缀模式下报告则变为{rpki, routing, looking_glass}三段式结构。建议将 JSON 结果与 SKILL.md 中给出的BGP 安全评估报告模板含 RPKI 状态表、实验室仿真结果表、整改建议列表结合形成从机器数据到人工决策的完整闭环。关键概念对照要正确解读 Agent 的输出需要先掌握以下路由安全术语源自 SKILL.md 的 Key Concepts 表术语定义BGP 劫持BGP Hijacking不拥有某 IP 前缀的 AS 未经授权宣告该前缀将流量经攻击者网络引走更具体前缀劫持More-Specific Hijack宣告比受害者更长的前缀如 /25因最长前缀匹配longest-prefix-match规则在路由决策中必然胜出RPKIResource Public Key Infrastructure密码学框架允许 IP 前缀持有者通过 Route Origin AuthorizationROA授权特定 ASN 起源宣告其路由ROARoute Origin Authorization数字签名的对象授权某 AS 起源宣告某个 IP 前缀是 RPKI 路由验证的基础AS Path Prepending向 AS Path 追加重复 AS 号以降低路由优先级的 BGP 技术也可用于防御劫持路由泄漏Route LeakBGP 路由通告传播超出其预期范围如客户向上游重宣告运营商路由Agent 输出的rpki_status正是 RPKI 验证的三种结果在真实路由数据上的体现valid存在匹配且未超 max-length 的 ROA、invalid存在 ROA 但起源 AS 或前缀长度不匹配、not_found无任何相关 ROA。其中not_found前缀在assess_hijack_resilience中同样被计入rpki_unprotected因为它们对劫持同样缺乏防护。实战从实验仿真到真实世界校验技能的完整方法论是隔离实验 真实观测双轨并行。在 Containerlab 中用 FRRouting 搭建的拓扑合法 AS65001 宣告10.0.0.0/24攻击者 AS65002 与中转 AS65000、受害者 AS 互联中可以依次验证合法路由基线show ip bgp确认经AS65000 AS65001的合法路径更具体前缀劫持攻击者宣告10.0.0.0/25与10.0.0.128/25受害者路由将转向攻击者长前缀优先起源劫持与 AS Path 竞争攻击者改为宣告相同 /24此时按最短 AS Path 决出胜者RPKI ROV 防御在转接路由器上用 Routinator 缓存 route-mapmatch rpki invalid拒绝过滤非法路由。在完成实验仿真后即可用本文的 Agent 对真实 ASN 执行同样的体检把实验预期投射到真实互联网# 以真实组织 ASN 为例评估其劫持韧性 python scripts/agent.py --asn 12345 --output bgp_report.json # 单前缀定向核查确认某前缀是否有 ROA、max-length 是否覆盖 /24 python scripts/agent.py --asn 12345 --prefix 203.0.113.0/24Agent 的multi_origin_conflicts可直接对应实验中的多源宣告场景get_bgp_looking_glass返回的 AS Path 列表则对应show ip bgp中的多路径视图。两者结合即可回答技能Common Scenarios中的核心问题ROA 是否已为所有前缀正确发布未受保护的前缀有哪些上游 ISP 的 RPKI 校验是否会拦截非法宣告技能同时强调了几类典型失误Pitfalls把实验搬上真实互联网假定 RPKI 可防一切劫持多数网络仍未启用 ROV不测试 ROA 未设 max-length 时的更具体前缀绕过以及忽略授权对等体间合法起源但错误路径的路由泄漏场景。使用 Agent 时应结合这些边界解读报告。安全边界与使用前提本技能与 Agent 均为授权环境下的评估工具不得在真实互联网上实施 BGP 劫持、不得针对未经授权的 BGP 对等体操作、不得破坏真实路由基础设施——在生产系统上的 BGP 攻击属违法行为可能引发大范围互联网中断SKILL.md 明确声明。任何涉及真实 AS 号或前缀通告的测试都必须事先取得书面授权。Agent 本身只读查询 RIPEstat 公共 API不发起任何 BGP 会话或流量重定向可作为防守侧巡检任务在 CI 中定期运行监控自身 ASN 的 RPKI 覆盖率与多源宣告异常。技能文件以 Apache-2.0 协议开源见技能目录下 LICENSE可自由用于内部安全建设。【免费下载链接】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),仅供参考
返回列表