DDoS攻击探测与分析工具FastNetMon

2020-01-08 12:59 阅读 43 views 次 DDoS攻击探测与分析工具FastNetMon已关闭评论

领导给了一周时间调研一下DDos探测工具FastNetMon,开源的项目,在x86服务器上搭建环境,测试一下效果,将整个过程整理下,学习点新东西还是不错的。另外,网络安全始终是一个重要的话题,互联网的发展离不开安全防护,以后打算多接触网络安全的东西。

一、DDoS 攻击概念

Distributed Denial of Service,分布式拒绝服务,一般来说是指攻击者利用“肉鸡”对目标网站在较短的时间内发起大量请求,大规模消耗目标网站的主机资源,让它无法正常服务。在线游戏、互联网金融等领域是 DDoS 攻击的高发行业。

DDoS攻击如何工作

一些DOS攻击是通过使用连接请求泛滥服务器来执行的,直到服务器过载并被认为是无用的。其他通过将未分段的数据包发送到服务器来执行,而服务器无法处理。这些方法在由僵尸网络执行时,会以指数方式增加他们正在进行的破坏程度,并且难以减轻突飞猛进的增加。

DDoS攻击类型

按照TCP/IP协议的层次可将DDOS攻击分为基于ARP的攻击、基于ICMP的攻击、基于IP的攻击、基于UDP的攻击、基于TCP的攻击和基于应用层的攻击。

基于ARP

ARP是无连接的协议,当收到攻击者发送来的ARP应答时。它将接收ARP应答包中所提供的信息。更新ARP缓存。因此,含有错误源地址信息的ARP请求和含有错误目标地址信息的ARP应答均会使上层应用忙于处理这种异常而无法响应外来请求,使得目标主机丧失网络通信能力。产生拒绝服务,如ARP重定向攻击。

基于ICMP

攻击者向一个子网的广播地址发送多个ICMP Echo请求数据包。并将源地址伪装成想要攻击的目标主机的地址。这样,该子网上的所有主机均对此ICMP Echo请求包作出答复,向被攻击的目标主机发送数据包,使该主机受到攻击,导致网络阻塞。

基于IP

TCP/IP中的IP数据包在网络传递时,数据包可以分成更小的片段。到达目的地后再进行合并重装。在实现分段重新组装的进程中存在漏洞,缺乏必要的检查。利用IP报文分片后重组的重叠现象攻击服务器,进而引起服务器内核崩溃。如Teardrop是基于IP的攻击。

基于TCP

SYN Flood攻击的过程在TCP协议中被称为三次握手(Three-way Handshake),而SYN Flood拒绝服务攻击就是通过三次握手而实现的。TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接。服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。

基于应用层

应用层包括SMTP,HTTP,DNS等各种应用协议。其中SMTP定义了如何在两个主机间传输邮件的过程,基于标准SMTP的邮件服务器,在客户端请求发送邮件时,是不对其身份进行验证的。另外,许多邮件服务器都允许邮件中继。攻击者利用邮件服务器持续不断地向攻击目标发送垃圾邮件,大量侵占服务器资源。

形象例子

DDOS攻击成功。某饭店可以容纳100人同时就餐,某日有个商家恶意竞争,雇佣了200人来这个饭店坐着不吃不喝,导致饭店满满当当无法正常营业。

防御成功,添加规则和黑名单进行DDOS防御。老板当即大怒,派人把不吃不喝影响正常营业的人全都轰了出去,且不再让他们进来捣乱,饭店恢复了正常营业。

增加DDOS流量,改变攻击方式。主动攻击的商家心存不满,这次请了五千人逐批次来捣乱,导致该饭店再次无法正常营业。

增加硬防与其抗衡。饭店把那些捣乱的人轰出去只后,另一批接踵而来。此时老板将饭店营业规模扩大,该饭店可同时容纳1万人就餐,5000人同时来捣乱饭店营业也不会受到影响。

二、FastNetMon介绍

FastNetMon这是一个基于多种抓包引擎(NetFlow, IPFIX, sFLOW, netmap, PF_RING, PCAP)的DoS/DDoS攻击高效分析工具,可以探测和分析网络中的异常流量情况,同时可以通过外部脚本通知或阻断攻击。特征如下:


  • 完整的BGP Flow Spec支持,RFC 5575
  • 处理并区分传入和/或传出流量
  • 如果IP超过每秒定义的数据包/字节/流阈值,则触发阻止/通知脚本
  • 可以使用主机组功能为每个子网配置阈值
  • 通过BGP向具有ExaBGP的路由器通告被阻止的IP
  • 用于单播IPv4公告的GoBGP 集成(您需要手动构建支持)。
  • 与Graphite和InfluxDB完全集成
  • API(您需要手动构建支持)
  • Redis整合
  • MongoDB整合
  • 深度包检查攻击流量
  • netmap支持(开源;线速处理;仅Intel硬件NIC或任何虚拟机监控程序VM类型)
  • SnabbSwitch支持(开源,非常灵活,LUA驱动,非常非常快)
  • 使用LUA脚本过滤NetFlow v5流或sFLOW数据包(用于排除特定端口)
  • 在镜像模式下支持L2TP解封装,VLAN取消标记和MPLS处理
  • 在服务器/软路由器上工作
  • 只需1-2秒即可检测到DoS / DDoS
  • 在具有Intel NIC 82599的Intel i7 3820上以12 Mpps进行了高达10Gb的测试
  • 完整的插件支持
  • 以PCAP格式捕获攻击指纹
  • 完全支持大多数流行的攻击类型

三、FastNetMon安装方法

平台支持

Linux(Debian 6/7/8,CentOS 6/7,Ubuntu 12+)
FreeBSD 9、10、11
Mac OS

安装流程

1,wget https://raw.githubusercontent.com/FastVPSEestiOu/fastnetmon/master/src/fastnetmon_install.pl -Ofastnetmon_install.pl
perl fastnetmon_install.pl

2,编辑/etc/rc.local:
/opt/fastnetmon/fastnetmon --daemonize

有问题查看log:
more /var/log/fastnetmon.log

cp /tmp/fastnetmon.build.dir.6awHfvmiyU/fastnetmon/src/notify_about_attack.sh /usr/local/bin/notify_about_attack.sh
chmod 755 /usr/local/bin/notify_about_attack.sh

3,编辑/etc/fastnetmon.conf

mirror = on

threshold_mbps = 10
threshold_flows = 350

四、启动运行

窗口1启动服务端

/opt/fastnetmon/fastnetmon

窗口2启动客户端

/opt/fastnetmon/fastnetmon_client

ifconfig eno2 promisc 设置混杂模式,ifconfig eno2 -promisc 取消混杂模式

窗口3启动iperf 服务端

iperf 的服务器端:iperf -su

窗口4启动iperf 客户端

客户端:iperf -u -c 192.168.2.31 -b 700M -P 10

五,DDos攻击检测结果查看

more /var/spool/mail/root

UDP攻击

Tcp syn攻击

Icmp攻击

安装InfluxDB数据库

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.5.3.x86_64.rpm sudo yum localinstall influxdb-1.5.3.x86_64.rpm,然后配置一下参考:https://www.cnblogs.com/yezl/p/5852246.html

安装Grafana,用于web访问

yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.4-1464167696.x86_64.rpm,配置过程参考:http://echohn.github.io/2016/06/03/use-fastnetmon-and-grafana-to-build-a-graphical-ddos-early-warning-system/。最终结果参考:http://192.168.10.31:3000/dashboard/db/new-dashboard

最后说明下,用iperf工具回放只能测试udp报文,如果测试其他类型的攻击,可以用“DOS攻击——Flood攻击.exe ”工具,在用wireshark抓包,得到tcp 的syn报文,再放到设备上进行tcpreply回放。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:DDoS攻击探测与分析工具FastNetMon | 大腿根网赚

评论已关闭!