如何构建公有云DDoS溯源系统

2020-01-20 15:00:10 浏览数 (1)

0x00、引子

今天在网上看到北京昌平区网侦中队破获黑客网络犯罪案件,刘先生开发的饭店、酒吧提供点餐、互动平台服务被DDoS,导致数百家合作商户无法进行结账互动,直接经济损失上千万。溯源过程:警方经过近半年的侦查,层层跳转,确定了其中一个攻击源,民警立即来到江苏省某市开展侦查。不得不说这样调查溯源的太浪费人力物力了。曾经听过阿里的同僚说,目前溯源收费标准50万/单。那么如何构建高效的溯源系统,为用户提供高附加值的DDOS溯源服务呢?

0x01、业务需求

需求点1:攻击源实时分析:做威胁情报系统的同事都清楚,黑客基础设施一般寿命都不长,伴随着时间的推移,证据的有效性就无法保证。

需求点2:不是每一起DDoS攻击事件都能溯源的,溯源成本很高,如果构建廉价的溯源系统,是我们需要关注的,如果成本足够低,那么溯源在警方的立案标准就会降低。(目前标准:攻击流量峰值达到100G攻击以上)。

需求点3:溯源要定位到人或者团伙,不只是搞定其黑客基础设施。未接触性网络犯罪是由人发起的。最终完结也需要抓捕到嫌疑人。

0x02、系统架构

我们先确定事件发生的场景,在公有云平台上搭建的业务系统。

1、黑客通过控制C&C服务器,间接控制肉鸡进行DDoS攻击,肉鸡的组成成分比较复杂,不过大分部斗殴是IDC内部linux服务器,因为大部分ISP或者公有云厂商的物理服务器有很大的带宽资源。

2、公有云根据部署架构的区分,有双POP点、多AZ节点,多活的数据中心。需要在每个AZ中部署分光和分流设备。同时支持数据镜像,一份给全流量系统(包含DDoS检测系统)、一份给网络入侵检测系统。

3、根据流量统计需求,4层检测需要部署多台dumpServer。和流量采样PcapServer模块。

4、根据流量统计需求,7层检测需要多台LVS转发系统中部署CC检测引擎。

5、最终把检测数据发送给公有云DDoS溯源系统。同时结合安全运营团队分析,最终确定黑客身份,完成DDoS溯源

0x03、详细设计

首先,看4层溯源解决方案。

在保证业务系统黑洞之前的1~5秒内获取我们想要的攻击源。那么需要解决以下几个问题:

1)、如何判断攻击

四层的DDoS攻击主要包括SYN Flood、NTP反射、DNS反射、UDP Flood、TCP Flood,当我们通过分布式抓包的方式获取到pcap数据包后,对包内容进行统计,简单判断:

· SYN包占比达到40%,即可认为SYN Flood

· NTP包占比达到60%,即可认为NTP Flood

· DNS包占比达到60%,即可认为DNS Flood

· UDP包占比达到40%,即可认为UDP Flood

· TCP包占比达到40%,即可认为TCP Flood,判断为TCP Flood的时候,需要联动7层数据。

如果攻击阈值达到2G,或者为动态阈值。给运营商上游路由器发送黑洞请求。

2)、如果溯源

我们把抓包通过集群方式部署,每台x86服务器处理20G,dump数据包的前80个字节。

通过包过滤分析出是出流量还是入流量,然后过滤与指定目标IP无关的流量。然后统计Top1000的流量IP,然后把这些统计数据发送给pcap Server,再把整个集群发过来的Top1000的数据统一排序。生成新Top1000的数据。 这样就可以统计出针对公有云floatingIP对应的top1000 攻击源。

[被攻击IP] 116.202.8.213

[总流量]:5.5GB

[攻击类型]:SYN Flood

3)、如何数据清洗

@1、先去除伪造IP:使用简单的syn cookies判断即可。

@2、通过扫描器回扫Top1000IP,寻找可反入侵的IP,反入侵后获取DDoS程序。

@3、获取威胁情报数据,攻击IP为IDC时候,大部分主机上被部署了下载器。直接可以获取DDoS程序。

4)、获取身份信息

通过DDoS程序,放入养鸡场、或者使用EDR程序监控、或者使用沙箱方式收集外连数据。寻找到C&C服务器。也只有控制服务器才能找到黑客。

最后放一张前段时间溯源的一张截图。

0 人点赞