近日,国家计算机病毒应急处理中心和360公司对名为“二次约会”(SecondDate)的“间谍”软件进行了技术分析,该“间谍”软件针对基于FreeBSD、Linux、Sun Solaris、Juniper JunOS等平台的路由器等网关设备平台,可实现网络流量窃听劫持、中间人攻击、插入恶意代码等恶意功能,从而与其它“间谍”软件配合完成复杂的网络“间谍”活动。
根据“影子经纪人”泄露的NSA内部文件,该恶意软件为美国国家安全局(NSA)开发的网络“间谍”武器。“SecondDate”间谍软件是一款中间人攻击专用工具,一般驻留在目标网络的边界设备上,嗅探网络流量并根据需要对特定网络会话进行劫持、篡改。
在国家计算机病毒应急处理中心会同360公司配合侦办西北工业大学被美国国家安全局(NSA)网络攻击案过程中,成功提取了这款间谍软件的多个样本,并锁定了这起网络“间谍”行动背后美国国家安全局(NSA)工作人员的真实身份。
一、基本情况
“二次约会”(SecondDate)间谍软件主要部署在目标网络边界设备(网关、防火墙、边界路由器等),隐蔽监控网络流量,并根据需要精准选择特定网络会话进行重定向、劫持、篡改。
技术分析发现,“SecondDate”间谍软件是一款高技术水平的网络间谍工具。开发者应该具有非常深厚的网络技术功底,尤其对网络防火墙技术非常熟悉,其几乎相当于在目标网络设备上加装了一套内容过滤防火墙和代理服务器,使攻击者可以完全接管目标网络设备以及流经该设备的网络流量,从而实现对目标网络中的其他主机和用户实施长期窃密,并作为攻击的“前进基地”,随时可以向目标网络投送更多网络进攻武器。
二、具体功能
“二次约会”(SecondDate)间谍软件长期驻留在网关、边界路由器、防火墙等网络边界设备上,可针对海量数据流量进行精准过滤与自动化劫持,实现中间人攻击功能。其主要功能包括网络流量嗅探、网络会话追踪、流量重定向劫持、流量篡改等。
三、技术分析
该“间谍”软件针对路由器、防火墙等网络设备平台,SecondDate支持分布式部署,由服务器端程序和客户端程序构成,攻击者事先通过其他方式将客户端程序植入目标网络设备,然后使用服务器端程序对客户端进行命令控制。其主要工作流程和技术分析结果如下:
(一)服务器端
服务器端的主要功能是与客户端建立连接并下发控制规则,由客户端完成相应恶意操作。如表1、图1、图2、图3所示。
表1 服务器端样本文件信息
样本文件名 | Seconddate_CnC |
MD5: | 485a83b9175b50df214519d875b2ec93 |
SHA-1 | 0a7830ff10a02c80dee8ddf1ceb13076d12b7d83 |
SHA-256 | d799ab9b616be179f24dbe8af6ff76ff9e56874f298dab9096854ea228fc0aeb |
文件大小 | 277,864 字节 |
文件类型 | ELF32 |
支持处理器架构 | Intel x86 |
支持操作系统 | UNIX、LINUX |
1、连接客户端
通过在命令行参数中指定客户端IP和端口号实现与客户端建立连接。
图1 与客户端建立连接
2、获得客户端当前状态
图2 获得客户端状态信息
3、配置客户端规则
图3 配置客户端规则
如图3所示,攻击者可指定源IP地址、源端口、目的IP地址、目的端口、协议类型、TCP标志等对网络流量进行过滤,并且可以指定匹配正则表达式文件以获取特定内容的流量,并且能够在流量中插入包含特定内容的文件。
(二)客户端
从分析结果看,客户端被植入并配置相应规则后,可以在网络设备后台静默运行,攻击者可以使用服务器端进行控制也可以直接登录到网络设备后台进行命令控制。如表2、图4、图5和图6所示。
表2客户端样本文件信息
样本文件名 | seconddate_CommonClient_3.1.1.2_i386-linux |
MD5: | 720e879d6d0ede8d6cb49cebbcc1fbb9 |
SHA-1 | d6d6c97904af97dbce17887dfc3145764b6c4f21 |
SHA-256 | 54449f3a1f415f9cd0ecbfaa57fa9db7c168ad13b7e82cf5423903978af3715b |
文件大小 | 272,501字节 |
文件类型 | ELF32 |
支持处理器架构 | Intel x86 |
支持操作系统 | UNIX、LINUX |
1、指定本地端口
图4 客户端指定本地端口
2、根据指令规则执行相应操作
图5 客户端执行控制指令
3、插入文件
图6 客户端执行文件插入指令
4、指令集
经分析,客户端支持的主要指令及其功能说明如表3所示。
表3 客户端指令集
序号 | 指令类型 | 指令 | 指令参数 | 功能说明 |
1 | 网络指令 | network [
command [ ... options ... ] ] | -c [
--connect ] <ip[:port]> [ ... connect options ... ] | 连接目标地址,通过IP和端口号 |
2 | --local-port
<port> | 为所有外联访问设定同一本地源端口 | ||
3 | --response-src
<ip[:port]> | 强制回复来自指定源IP地址和端口的请求 | ||
4 | --response-dst
<ip[:port]> | 强制回复发往目的地址和目的端口的请求 | ||
5 | --maxpad
<integer> | 最大随机填充长度 | ||
6 | -d [
--disconnect ] | 断开连接 | ||
7 | --set-retries
<integer> | 在超时限制内最大命令重试次数 | ||
8 | --set-timeout
<integer> | 超时限制(单位:秒) | ||
9 | --node<node> | 十六进制节点数 | ||
10 | -r [ --rekey] | 本地非对称密钥 | ||
11 |
--pri<32-byte hex> | 256位私钥 | ||
12 | --pub<32-byte hex> | 256位公钥 | ||
13 | 规则指令 | enable [ ...
options ... ] | <rule number> | 启用指定编号的规则 |
14 | -a [ --all ] | 启用所有规则 | ||
15 | -b [ --begin ] <rule number> -e [ --end ] <rule number> | 启用指定编号范围的规则 | ||
16 | disable [ ...
options ... ] | <rule number> | 禁用指定编号的规则 | |
17 | -a [ --all ] | 禁用所有规则 | ||
18 | -b [ --begin ] <rule number> -e [ --end ] <rule number> | 禁用指定编号范围的规则 | ||
19 | delete [ ...
options ... ] | <rule number> | 删除指定编号的规则 | |
20 | -a [ --all ] | 删除所有规则 | ||
21 | -b [ --begin ] <rule number> -e [ --end ] <rule number> | 删除指定编号范围的规则 | ||
22 | commit | 保存并生效当前所有规则配置 | ||
23 | rule <rule
number> [ ... options ... ] | --srcaddr <ip address> | 源IP地址 | |
24 | --srcmask <mask> | 格式化源IP地址 | ||
25 | --dstaddr <ip address> | 目的IP地址 | ||
26 | --dstmask <mask> | 格式化目的IP地址 | ||
27 | --protocol <integer> | 协议类型(默认TCP) | ||
28 | --srcport <integer> | 源端口号 | ||
29 | --dstport <integer> | 目的端口号 | ||
30 | --appnone=[string] | 匹配应用程序数特征 | ||
31 | --apphttp | 匹配应用程序数特征 | ||
32 | --appdns[=string] | 匹配应用程序dns数据特征 | ||
33 | --appqs[=string] | 匹配应用程序数据特征 | ||
34 | --apptip | 匹配应用程序数据特征 | ||
35 | --matches <integer> | 单一时间窗口周期内匹配命中数量 | ||
36 | --window <integer> | 时间窗口(单位:秒) | ||
37 | --interval <integer> | 下一次匹配时间间隔(单位:秒) | ||
38 | --runtime <integer> | 最长运行时间 | ||
39 | --regexfile <path> | 正则表达式文件路径 | ||
40 | --injectfile <path> | 待插入文件路径 | ||
41 | --tcpflag <string> | TCP标志位fin | syn | rst | psh | ack | urg |
none | ||
42 | --nolog | 不记录日志 | ||
43 | --qskeyfile <path> | 非对称加密密钥文件路径 | ||
44 | --qsmaxpad <integer> | 最大填充数量 | ||
45 | --tipmode <mode #>,<stego #> | 隧道模式,支持FULL、Sparse IKEv2(IPsec) | ||
46 | --tipkey <16-byte hex> | 隧道加密通信密钥(128位) | ||
47 | --tipuuid <16-char string> | 隧道UUID | ||
48 | --tipsrc <IPv4 addr>:<port> | 隧道源IP地址,端口 | ||
49 | --tipdst <IPv4 addr>:<port> | 隧道目的IP地址,端口 | ||
50 | --tipsrcport <begin>:<end> | 隧道源端口范围 | ||
51 | --tipsrcmask <mask> | 隧道源地址掩码 | ||
52 | showrule or
getrule [ ... options ... ] | <rule number> | 查看规则信息 | |
53 | -a [ --all ] | 查看所有规则 | ||
54 | -b [ --begin ] <rule number> | 从指定编号开始查看规则 | ||
55 | -e [ --end ] <rule number> | 查看截止到指定编号的规则 | ||
56 | -n [ --hide-enabled ] | 隐藏已经启用的规则 | ||
57 | -d [ --hide-disabled ] | 隐藏被禁用的规则 | ||
58 | -s [ --summary ] | 查看规则统计信息 | ||
59 | 日志指令 | getlog [ ...
options ... ] [ <entry number> ] | -b [ --begin ] <entry number> | 起始日志条目 |
60 | -e [ --end ] <entry number> | 截止日志条目 | ||
61 | -o [ --logfile ] <path> | 设置日志文件路径 | ||
62 | -t [ --teefile ]<path> | 设置日志文件路径并加入时间戳并输出到屏幕 | ||
63 | -n [ --nodata ] | 日志中不包含数据 | ||
64 | -x [ --hexdata ] | 日志中包含十六进制数据 | ||
65 | -m [ --max
] | 最大数量输出每个数据包日志 |
客户端指令集非常丰富,可以实现对网络流量的内容过滤、中间人劫持以及内容注入等恶意操作。
四、使用环境
“二次约会”(SecondDate)间谍软件支持在Linux、FreeBSD、Solaris、JunOS等各类操作系统上运行,同时兼容i386、x86、x64、SPARC等多种体系架构,适用范围较广。
五、植入方式
“二次约会”(SecondDate)间谍软件通常结合特定入侵行动办公室(TAO)的各类针对防火墙、路由器的网络设备漏洞攻击工具使用,在漏洞攻击成功并获得相应权限后,植入至目标设备。
六、使用控制方式
“二次约会”(SecondDate)间谍软件分为服务端和控制端,服务端部署于目标网络边界设备上,通过底层驱动实时监控、过滤所有流量;控制端通过发送特殊构造的数据包触发激活机制后,服务端从激活包中解析回连IP地址并主动回连。网络连接使用UDP协议,通信全程加密,通信端口随机。控制端可以对服务端的工作模式和劫持目标进行远程配置,根据实际需要选择网内任意目标实施中间人攻击。
我们与业内合作伙伴在全球范围开展技术调查,经层层溯源,发现了上千台遍布各国的网络设备中仍在隐蔽运行“二次约会”间谍软件及其衍生版本,并发现被美国国家安全局(NSA)远程控制的跳板服务器,其中多数分布在德国、日本、韩国、印度和中国台湾。在多国业内伙伴通力合作下,我们的工作取得重大突破,现已成功锁定对西北工业大学发起网络攻击的美国国家安全局(NSA)工作人员的真实身份。
随着我国综合国力的不断增强和国际战略格局的深刻变化,境外“间谍”情报机构对我国开展间谍情报活动的力度不断加大,通过网络开展“间谍”窃密活动已成为主要手段之一。
在此背景下,我国政府、行业龙头企业、大学、医疗机构、科研单位等应加快排查自身网络“间谍”攻击线索和安全隐患,与有能力的网络安全公司合作获取数字安全服务,依托大数据、平台、探针、专家构建安全运营中心,低成本、高效能获得数字安全能力。实现“看见”全网资产、全网态势、国家级间谍攻击活动,具备“处置”安全风险、高级威胁、间谍行动等核心安全能力,最终能够实时分析、实时发现、实时阻断、实时清理、实时恢复。
往期推荐
| |||
| |||
| |||
|