
1) 【一句话结论】通过动态抓包与协议解析,提取恶意软件C2通信的静态特征(如非标准端口、加密算法、数据包结构、命令响应格式等),构建特征库,用于匹配检测恶意软件的通信行为。
2) 【原理/概念讲解】老师口吻,解释协议分析的核心是“逆向通信逻辑”。首先,动态抓包:用Wireshark等工具在沙箱中运行恶意软件,捕获其网络流量。然后,解包分析:分析数据包的头部字段(如TCP的源端口、目标端口、序列号),识别通信端口(如非标准端口4444);分析数据部分的结构(如自定义二进制格式,包含“长度字段+命令标识+数据”),或常见协议(如HTTP/HTTPS、自定义JSON);识别加密方式(如AES-128加密,密钥长度16字节,CBC模式)。类比:恶意软件的通信就像“加密信件”,协议分析就是拆解信封(识别端口、加密算法)和信纸(分析数据结构),提取信件内容(命令、数据)的规则,从而识别“发信人”(恶意软件)的通信特征。
3) 【对比与适用场景】
| 分析方法 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 静态协议分析 | 分析恶意软件样本的代码或配置,识别通信逻辑 | 依赖样本代码,可分析加密前的协议 | 适用于已知样本,分析协议结构 | 可能遗漏运行时动态变化 |
| 动态协议分析 | 运行恶意软件在沙箱中,捕获网络流量,分析通信行为 | 依赖运行时行为,可分析加密后的通信 | 适用于未知样本,检测实时通信 | 需要沙箱环境,处理反分析技术 |
4) 【示例】假设恶意软件使用自定义端口4444,通信数据包结构为:[长度(4字节) + 命令(1字节) + 数据(可变)]。伪代码示例(发送请求):
1. 建立TCP连接:目标IP: 192.168.1.100, 端口: 4444
2. 发送数据包:
- 长度字段:计算(4 + 1 + JSON数据长度)
- 命令字段:0x01(表示“get_config”)
- 数据字段:JSON字符串({"version": "1.0", "id": "malware_id"})
3. 接收响应:
- 长度字段 + 响应命令(0x02) + 数据(JSON配置信息)
5) 【面试口播版答案】
“面试官您好,分析恶意软件的C2通信协议,核心是通过动态抓包和协议解析,提取通信特征。首先,我会用沙箱运行恶意软件,用Wireshark捕获网络流量。然后,分析数据包的头部,比如发现它使用非标准端口4444,说明通信端口特征。接着,解包数据部分,看到数据包有固定长度的头部(4字节长度+1字节命令),数据用AES-128加密,密钥由样本内硬编码。这些特征(端口4444、AES加密、自定义命令结构)就是通信特征。之后,把这些特征整理成特征库,用于检测时匹配:比如检测到目标IP通过4444端口发送AES加密的特定命令结构,就判定为恶意软件的C2通信。这样就能实现实时检测。”
6) 【追问清单】
7) 【常见坑/雷区】