如何为常见的远程控制软件(todesk、teamview、anydesk、parsec)编写Suricata检测规则?

如何为常见的远程控制软件(todesk、teamview、anydesk、parsec)编写Suricata检测规则?

远程控制软件在现在办公之中已经是不可缺少的工具了,但是许多人并不知道这类软件也可能被滥用,比如未授权访问或数据窃取。

这个就是网络安全的问题了,能够使用Suricata等入侵检测系统(IDS)对这类流量进行监控和告警也是一件很有必要的事情。

1. 规则编写原则

Todesk、TeamViewer、AnyDesk以及Parsec这类远程连接软件都是加密通道(TLS/SSL)+动态协商端口,直接来检测应用层的Payload是比较困难的一件事情。

所以,我们的检测规则需要有以下前提条件:

  • 已知端口:利用远程软件的官方文档或者是社区,了解常用的端口;
  • 连接模式:你需要知道TCP初期握手的行为特征;
  • 流量方向:能够区分主控端(outbound)与被控端(inbound)。

我这所有规则都是用alert动作举例,但是在实际部署的情况中,大家也要灵活换成dropreject

2. Suricata规则代码

下面我就针对四款软件,来编写一个初步检测的规则代码,可以直接放到/etc/suricata/rules/custom-remote-desktop.rules文件中。

# TeamViewer 规则
# 官方主要端口: TCP/UDP 5938, 同时会使用443/80作为备用
alert tcp any any -> any 5938 (msg:"Potential TeamViewer Connection (TCP 5938)"; flow:to_server,established; flags:S; sid:1000001; rev:1;)
alert udp any any -> any 5938 (msg:"Potential TeamViewer Connection (UDP 5938)"; sid:1000002; rev:1;)

# AnyDesk 规则
# 官方文档指出其使用TCP 7070作为默认端口,同时也会通过443进行通信
alert tcp any any -> any 7070 (msg:"Potential AnyDesk Connection (TCP 7070)"; flow:to_server,established; flags:S; sid:1000003; rev:1;)

# ToDesk 规则
# 根据社区分析和官方支持文档,ToDesk 主要依赖标准Web端口进行通信
alert tcp any any -> any 443 (msg:"Potential ToDesk Connection over HTTPS"; flow:to_server,established; flags:S; app-layer-protocol:http; content:"|16 03|"; depth:3; sid:1000004; rev:1;)
# 注意: 此规则通过检测TLS Client Hello (0x16 0x03) 来识别加密流量,需结合其他上下文以减少误报

# Parsec 规则
# Parsec 作为游戏串流软件,主要使用UDP进行低延迟传输,端口范围较广,但常使用8000-9000
alert udp any any -> any 8000:9000 (msg:"Potential Parsec Gaming Stream (UDP 8000-9000)"; sid:1000005; rev:1;)

3. 规则测试方法

做完以上步骤之后,就需要进行严格测试,来保证我们的检测规则是有效且低错误率的。

这边我推荐的步骤如下所示:

  1. 语法检查:利用suricata -T -c /etc/suricata/suricata.yaml -l /var/log/suricata/命令来验证之前你写的规则文件语法是否是对的;
  2. 生成测试流量:在自己的测试环境之中分别启动ToDesk、TeamViewer、AnyDesk和Parsec,并建立远程连接,从而生成真实的网络流量,以便后面的流程能够继续;
  3. 离线回放分析:使用tcpdump或Wireshark捕获真实流量,并保存为PCAP文件。然后用Suricata离线模式分析:
    suricata -r test-traffic.pcap -c /etc/suricata/suricata.yaml -l ./test-output/
  4. 日志验证:检查fast.logeve.json日志文件,从而确定规则是否被正确触发,大家需要观察是否有许多的误报出现。

通过上述的详细流程,我们就能够有效验证和迭代更新自己的Suricata规则,然后实现生产环境之中对于远程软件流量的精准监控。

Annie整理的云服务器优惠列表

云服务商 它的优点 客官来看
阿里云 轻量云服务器38元/年(需抢)、68元/年(限购一台)、ECS云服务器99元/年(续费同价) 点击进入
腾讯云 2核2G4M 服务器新客99元/年 353元/3年 进来逛逛
UCloud 2核2G3M 轻量云主机83元/年 华盛顿/洛杉矶/圣保罗/法兰克福/伦敦90元/年 快来看看
雨云 签到1个月送一周,签到2个月0.5个月,以此类推,新人五折首购优惠 超时空跃迁
HostVDS 1核1G 云服务器0.99美元/月 实时计费 随意换ip 随时可以注销云服务器 进入,内地打开慢
LightNode 全球有45+节点,许多冷门地区,实时计费,随意换ip,随时取消 点击进入

注:以上为佣金推广链接,我们可能从中获得收益,但不会影响您的购买价格。