Anthropic-Cybersecurity-Skills 实战指南:恶意软件网络流量分析 API 与检测工具链详解
2026/9/10 13:22:22 网站建设 项目流程

Anthropic-Cybersecurity-Skills 实战指南:恶意软件网络流量分析 API 与检测工具链详解

【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, 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

本指南围绕 Anthropic-Cybersecurity-Skills 仓库中的analyzing-network-traffic-of-malware技能展开,系统讲解其 API 参考文档(api-reference.md)所覆盖的完整工具链:从 dpkt 编程式 PCAP 解析、Wireshark/tshark 显示过滤与字段提取,到 Suricata 签名规则、RITA beacon 分析与 NetworkMiner 文件还原。读完本文,你将能够在沙箱捕获或应急响应现场中,独立完成 C2 协议识别、DNS 隧道与 DGA 检测、beacon 节奏分析、恶意文件提取以及可落地检测签名生成的完整流程。

技能定位与适用场景

该技能适用于以下典型场景(详见 SKILL.md):

  • 沙箱执行已捕获 PCAP 文件,需要对网络行为做细粒度分析;
  • 识别 C2 协议结构,用于编写网络检测签名;
  • 判断恶意软件向外泄露了哪些数据、发往哪类外部基础设施;
  • 分析 DNS 隧道、域名生成算法(DGA)或 fast-flux 行为;
  • 基于观察到的恶意网络模式创建 Suricata/Snort 签名。

注意:该技能不适用于基于主机行为的恶意软件分析(进程级活动应使用 Cuckoo 沙箱报告或 Volatility 内存分析)。

本技能在仓库中映射到多个安全框架:MITRE ATT&CK 的 T1071(应用层协议)、NIST CSF 的 DE.CM(持续监控)、MITRE ATLAS 的 AML.T0047、D3FEND 的 D3-NTA(网络流量分析)以及 AI RMF 的 MEASURE-2.6(见 README.md);技能元数据中还覆盖了 T1571(非标准端口)、T1573(加密信道)与 T1095(非应用层协议,见 SKILL.md 头部 frontmatter)。

环境前置条件

根据 SKILL.md 的 Prerequisites 一节,运行本技能需要:

  • Wireshark 4.x(交互式 PCAP 分析);
  • tshark(Wireshark CLI,用于脚本化报文提取);
  • Zeek(从 PCAP 自动生成元数据日志);
  • Suricata(配合 ET Open/ET Pro 规则集做签名匹配);
  • NetworkMiner(文件提取与凭据识别);
  • Python 3.8+,并安装scapydpkt(编程式报文分析)。

仓库自带的 agent.py 对dpktscapy做了可选依赖处理(HAS_DPKT/HAS_SCAPY两个标志),缺失时对应分析模块会自动降级为空结果,体现了工具链的容错设计。

dpkt:Python 编程式报文解析

dpkt 是进行程序化 PCAP 分析的核心库。api-reference 给出了最小读取骨架:

import dpkt with open("malware.pcap", "rb") as f: pcap = dpkt.pcap.Reader(f) for ts, buf in pcap: eth = dpkt.ethernet.Ethernet(buf) ip = eth.data tcp = ip.data

其中ts为报文时间戳(秒),buf为原始帧字节。逐层解包得到以太网帧、IP 与 TCP 层,随后即可解析应用层数据。

HTTP 报文解析

dpkt 内置 HTTP 请求/响应解析器:

http_req = dpkt.http.Request(tcp.data) http_req.method # GET, POST http_req.uri # Request URI http_req.headers # Header dict http_req.body # POST body http_resp = dpkt.http.Response(tcp.data) http_resp.status # Status code http_resp.body # Response body

IP 地址转换

dpkt.utils.inet_to_str(ip.src) # bytes -> "1.2.3.4" dpkt.utils.inet_aton("1.2.3.4") # "1.2.3.4" -> bytes

源码级印证:agent.py 的协议分析实现

仓库 agent.py 将上述 API 落成了可运行的检测逻辑,是本 API 文档的直接实现证据:

  • TCP 流提取extract_tcp_streams):按会话(src:dst排序元组)聚合 TCP 载荷,为后续协议结构分析提供数据;
  • 载荷结构分析analyze_payload_structure):对前 20 个载荷计算 Shannon 熵(shannon_entropy),当平均熵 > 7.5 时判定likely_encrypted,并统计最常见的 4 字节头(common_headers),用于推断自定义二进制协议的分帧结构;
  • HTTP C2 提取extract_http_c2):调用dpkt.http.Request,提取 method、uri、host、user-agent、content-type、body 大小与 body 熵值——高熵 POST body 往往意味着加密回传或数据外泄;
  • 异常安全:对dpkt.dpkt.NeedData/dpkt.dpkt.UnpackError做捕获,保证半包、畸形包不会中断整个分析。

运行方式:python agent.py <malware_traffic.pcap>,无参数时打印用法提示。注意其运行需要 pcap 文件路径参数(sys.argv[1]),适合与沙箱产物管线集成。

Wireshark 显示过滤器:快速定位可疑流量

api-reference 将过滤器分为两类场景:

C2 检测

http.request.method == "POST" && http.content_length > 0 tls.handshake.type == 1 # TLS Client Hello tcp.flags.syn == 1 && tcp.flags.ack == 0 # New connections dns.qry.type == 16 # TXT records
  • http.request.method == "POST" && http.content_length > 0:C2 回传最常见的形态——POST 带体;
  • tls.handshake.type == 1:捕获所有 TLS ClientHello,供后续 SNI/JA3 提取;
  • dns.qry.type == 16:TXT 记录是 DNS 隧道与数据外泄的常用载体。

载荷分析

tcp.payload contains "MZ" # PE downloads http.response.code == 200 && http.content_type contains "octet" frame.len > 1400 # Large packets

tcp.payload contains "MZ"可直接在抓包中定位 PE 文件下载(MZ 是 Windows 可执行文件头);frame.len > 1400帮助发现异常大报文(可能承载加密载荷或文件传输)。

tshark:命令行字段提取

tshark 适合脚本化、批量化处理,api-reference 给出了四类典型用法。

HTTP 请求字段

tshark -r malware.pcap -Y "http.request" -T fields \ -e http.request.method -e http.host -e http.request.uri \ -e http.user_agent -e http.content_length

TLS/JA3 指纹

tshark -r malware.pcap -Y "tls.handshake.type==1" -T fields \ -e ip.src -e ip.dst -e tls.handshake.ja3

JA3 通过对 ClientHello 关键字段(TLS 版本、密码套件、扩展等)取哈希,能唯一标识恶意 TLS 客户端实现,是加密 C2 检测的利器。

DNS 查询

tshark -r malware.pcap -Y "dns.qr==0" -T fields \ -e ip.src -e dns.qry.name -e dns.qry.type

dns.qr==0表示查询报文(非响应),配合-e dns.qry.type可区分 A、TXT、MX 等记录类型。

流跟踪

tshark -r malware.pcap -z follow,tcp,ascii,0 tshark -r malware.pcap -z follow,http,ascii,0

-z follow直接以 ASCII 形式回放指定索引的 TCP/HTTP 流,是人工阅读自定义协议与明文 C2 通信的最快路径。

Suricata 规则语法:从观察到签名

api-reference 给出了 HTTP、DNS、TLS 三类规则的完整语法,均可在 SKILL.md 的 Step 5 中与手工编写规则相互印证。

HTTP 规则(C2 beacon)

alert http $HOME_NET any -> $EXTERNAL_NET any ( msg:"MALWARE C2 Beacon"; flow:established,to_server; http.method; content:"POST"; http.uri; content:"/gate.php"; sid:9000001; rev:1; )

flow:established,to_server限定已建立连接且方向为客户端到服务器;http.method/http.uri为 Suricata 的 HTTP 关键字,分别匹配方法与 URI。

DNS 规则(隧道检测)

alert dns $HOME_NET any -> any any ( msg:"MALWARE DNS Tunneling"; dns.query; pcre:"/^[a-z0-9]{20,}\./"; threshold:type threshold, track by_src, count 10, seconds 60; sid:9000002; rev:1; )

pcre:"/^[a-z0-9]{20,}\./"用正则匹配超长子域(≥20 个字母数字)这一隧道特征;threshold关键字配合track by_src实现"60 秒内同源 10 次命中即告警"的速率抑制。

TLS 规则(JA3 匹配)

alert tls $HOME_NET any -> $EXTERNAL_NET any ( msg:"MALWARE JA3 Match"; ja3.hash; content:"a0e9f5d64349fb13191bc781f81f42e1"; sid:9000003; rev:1; )

直接用ja3.hash匹配已知恶意指纹哈希。

源码级印证:自动签名生成

agent.py 的generate_suricata_signatures展示了从流量自动生成规则的过程:遍历已提取的 HTTP 请求,为每个去重 URI 生成一条alert http ... http.method; content:"<METHOD>"; http.uri; content:"<URI>"规则(SID 从 9100000 递增);对 DNS 隧道命中的域名则取注册域(后两级)生成alert dns ... dns.query; content:"<domain>"; nocase规则(最多 5 条)。该函数是"流量分析 → 检测工程"自动化的最小实现范式,可直接用于威胁情报共享前的规则初稿生成。

RITA:Beacon 时序分析

RITA(Real Intelligence Threat Analytics)基于 Zeek 日志做统计性 beacon 检测:

rita import zeek_logs dataset_name rita analyze dataset_name rita show-beacons dataset_name rita show-long-connections dataset_name rita show-dns-fqdn-lengths dataset_name
  • rita import:将 Zeek 生成的conn.logdns.log等导入数据集;
  • rita analyze:执行统计聚合(连接时长、间隔均值/标准差、数据量);
  • show-beacons:输出具有规律性间隔的连接(beacon 候选);
  • show-long-connections:长时间连接往往对应数据外泄或交互式隧道;
  • show-dns-fqdn-lengths:异常长的 FQDN 是 DNS 隧道与 DGA 的统计特征。

RITA 的时序思路与 agent.py 中的 scapy beacon 检测互补——后者直接对 PCAP 计算每对dst:port的 SYN 间隔:当间隔均值10 < avg < 3600秒且抖动(stdev/avg)< 30% 时标记为LIKELY BEACONING。两者共享同一判断逻辑(固定周期 + 低抖动),可交叉验证。

NetworkMiner:文件与凭据提取

NetworkMiner --inputfile malware.pcap --outputdir /tmp/extracted

NetworkMiner 以 CLI 模式从 PCAP 中提取文件、会话、凭据与 DNS 信息。它与 SKILL.md Step 6 中 Zeek 的extract-all-files.zeek、tshark 的--export-objects http,http_objects/互为补充,覆盖 HTTP、SMB、TFTP 等多协议文件还原。

端到端六步工作流

api-reference 与 SKILL.md 的 Workflow 结合,构成完整分析流水线:

Step 1:总体概览。用capinfos查看统计信息,用tshark -z io,phs(协议分层)、-z endpoints,ip(端点)、-z conv,tcp(会话)、-z dns,tree(DNS 摘要)快速建立全局视图。

Step 2:DNS 活动分析。提取全部查询,再用基于 Shannon 熵的 Python 脚本(SKILL.md 内嵌、agent.py 的detect_dga_domains/detect_dns_tunneling同款逻辑)识别高熵域名:子域熵 > 3.5 且长度 > 10 判定为可疑 DGA;dns.resp.len > 100的 TXT 响应判定为隧道嫌疑。agent.py 中detect_dns_tunneling另要求子域长度 > 50 作为补充特征。

Step 3:HTTP/HTTPS C2 分析。提取 HTTP 请求全字段、大响应体(tcp.len > 1000)、POST 数据(潜在外泄)、TLS SNI/JA3、证书详情(x509ce.dNSName等),并用--export-objects http导出下载文件。agent.py 的extract_http_c2还会为每个请求计算 body 熵,为"看似正常、实则加密外泄"的 POST 提供量化依据。

Step 4:Beacon 模式检测。运行 SKILL.md 中的 scapy 脚本,对 SYN 时间序列计算间隔均值、标准差与抖动百分比,输出LIKELY BEACONING标记。

Step 5:生成检测签名。先用suricata -r malware.pcap -l suricata_output/回放历史签名,再基于观察到的 URI/域名/JA3 手工编写自定义规则(可参考 agent.py 的自动生成函数作为起点)。

Step 6:提取文件与产物zeek -r malware.pcap生成conn.logdns.loghttp.logssl.logfiles.log等元数据日志;extract-all-files.zeek还原文件;sha256sum对提取文件计算哈希用于情报比对。

关键概念速查

术语定义
Beaconing恶意软件与 C2 服务器之间的规律性周期连接,可通过一致的时间间隔与报文大小识别
JA3/JA3STLS 指纹技术,对 ClientHello/ServerHello 参数取哈希,唯一标识恶意 TLS 实现
DGA生成伪随机域名的算法,用于规避静态域名黑名单、定位 C2
DNS 隧道将数据编码进 DNS 查询/响应,建立 C2 信道或借 DNS 基础设施外泄
Fast Flux域名快速轮换 IP,避免封禁并将 C2 分散到大量被控主机
SNITLS 扩展,泄露客户端要连接的域名,即使 HTTPS 加密也可见
网络签名匹配流量中特定模式(头部、载荷、时序)的 Suricata/Snort 规则

分析报告输出格式

完成分析后,可按 SKILL.md 的 Output Format 模板产出结构化报告,关键字段包括:PCAP 基本信息、DNS 活动(查询数、DGA、隧道、解析出的 C2 域名与 IP)、C2 通信(协议、SNI、JA3、beacon 间隔与抖动、证书信息)、载荷下载(URI、大小、SHA-256)、外泄方法(POST 端点、单请求平均大小、总体积)、Suricata 命中告警以及生成的签名 SID 清单。

常见陷阱与规避

在解码自定义二进制 C2 协议(见 SKILL.md Common Scenarios)时需注意:

  • 只分析前几个报文——部分 C2 协议在握手后改变行为;
  • 沙箱具备 MITM 能力时不做 TLS 解密会漏掉加密 C2 细节;
  • 将合法 CDN/云流量误判为 C2(务必核验目标 IP 归属);
  • 忽略走 DNS 或 ICMP 而非 TCP/UDP 的 C2 信道。

结语

从 api-reference.md 的 API 清单出发,配合 SKILL.md 的六步工作流与 agent.py 的源码实现,你可以搭建一条覆盖"概览 → DNS/DGA → HTTP/TLS → beacon → 签名 → 文件提取"的完整恶意网络流量分析链路。该技能在仓库 817 个结构化安全技能中属于恶意软件分析域的核心成员,可直接作为 AI Agent(Claude Code、Codex CLI、Cursor 等)在网络取证与检测工程任务中的可执行操作指南。

【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询