qq3250845
发表于 2023-6-2 09:12:22
不可不知 DDoS的攻击原理与防御方法
DoS攻击、DDoS攻击和DRDoS攻击相信大家已经早有耳闻了吧!DoS是Denial of Service的简写就是拒绝服务,而DDoS就是Distributed Denial of Service的简写就是分布式拒绝服务,而DRDoS就是Distributed Reflection Denial of Service的简写,这是分布反射式拒绝服务的意思。
不过这3中攻击方法最厉害的还是DDoS,那个DRDoS攻击虽然是新近出的一种攻击方法,但它只是DDoS攻击的变形,它的唯一不同就是不用占领大量的“肉鸡”。 这三种方法都是利用TCP三次握手的漏洞进行攻击的,所以对它们的防御办法都是差不多的。
DoS攻击是最早出现的,它的攻击方法说白了就是单挑,是比谁的机器性能好、速度快。但是现在的科技飞速发展,一般的网站主机都有十几台主机, 而且各个主机的处理能力、内存大小和网络速度都有飞速的发展,有的网络带宽甚至超过了千兆级别。这样我们的一对一单挑式攻击就没有什么作用了,搞不好自己的机子就会死掉。 举个这样的攻击例子,假如你的机器每秒能够发送10个攻击用的数据包,而被你攻击的机器(性能、网络带宽都是顶尖的)每秒能够接受并处理100攻击数据包,那样的话, 你的攻击就什么用处都没有了,而且非常有死机的可能。要知道,你若是发送这种1Vs1的攻击,你的机器的CPU占用率是90%以上的,你的机器要是配置不够高的话,那你就死定了。
不过,科技在发展,黑客的技术也在发展。正所谓道高一尺,魔高一仗。经过无数次当机,黑客们终于又找到一种新的DoS攻击方法,这就是DDoS攻击。 它的原理说白了就是群殴,用好多的机器对目标机器一起发动DoS攻击,但这不是很多黑客一起参与的,这种攻击只是由一名黑客来操作的。这名黑客不是拥有很多机器, 他是通过他的机器在网络上占领很多的“肉鸡”,并且控制这些“肉鸡”来发动DDoS攻击,要不然怎么叫做分布式呢。还是刚才的那个例子,你的机器每秒能发送10攻击数据包, 而被攻击的机器每秒能够接受100的数据包,这样你的攻击肯定不会起作用,而你再用10台或更多的机器来对被攻击目标的机器进行攻击的话,嘿嘿!结果我就不说了。
DRDoS分布反射式拒绝服务攻击这是DDoS攻击的变形,它与DDoS的不同之处就是DrDoS不需要在攻击之前占领大量的“肉鸡”。它的攻击原理和Smurf攻击原理相近, 不过DRDoS是可以在广域网上进行的,而Smurf攻击是在局域网进行的。它的作用原理是基于广播地址与回应请求的。一台计算机向另一台计算机发送一些特殊的数据包如ping请求时, 会接到它的回应;如果向本网络的广播地址发送请求包,实际上会到达网络上所有的计算机,这时就会得到所有计算机的回应。这些回应是需要被接收的计算机处理的,每处理一个就要占用一 份系统资源,如果同时接到网络上所有计算机的回应,接收方的系统是有可能吃不消的,就象遭到了DDoS攻击一样。不过是没有人笨到自己攻击自己,不过这种方法被黑客加以改进就具有很大 的威力了。黑客向广播地址发送请求包,所有的计算机得到请求后,却不会把回应发到黑客那里,而是发到被攻击主机。这是因为黑客冒充了被攻击主机。黑客发送请求包所用的软件是可以伪造 源地址的,接到伪造数据包的主机会根据源地址把回应发出去,这当然就是被攻击主机的地址。黑客同时还会把发送请求包的时间间隔减小,这样在短时间能发出大量的请求包,使被攻击主机接 到从被欺骗计算机那里传来的洪水般的回应,就像遭到了DDoS攻击导致系统崩溃。骇客借助了网络中所有计算机来攻击受害者,而不需要事先去占领这些被欺骗的主机,这就是Smurf攻击。 而DRDoS攻击正是这个原理,黑客同样利用特殊的发包工具,首先把伪造了源地址的SYN连接请求包发送到那些被欺骗的计算机上,根据TCP三次握手的规则,这些计算机会向源IP发出SYN+ACK 或RST包来响应这个请求。同Smurf攻击一样,黑客所发送的请求包的源IP地址是被攻击主机的地址,这样受欺骗的主机就都会把回应发到被攻击主机处,造成被攻击主机忙于处理这些回应而瘫痪。
解释:
SYN:(Synchronize sequence numbers)用来建立连接,在连接请求中,SYN=1,ACK=0,连接响应时,SYN=1,ACK=1。 即,SYN和ACK来区分Connection Request和Connection Accepted。
RST:(Reset the connection)用于复位因某种原因引起出现的错误连接,也用来拒绝非法数据和请求。如果接收到RST位时候,通常发生了某些错误。
ACK:(Acknowledgment field significant)置1时表示确认号(Acknowledgment Number)为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。
TCP三次握手:
假设我们要准备建立连接,服务器正处于正常的接听状态。
第一步:我们也就是客户端发送一个带SYN位的请求,向服务器表示需要连接,假设请求包的序列号为10,那么则为:SYN=10,ACK=0,然后等待服务器的回应。
第二步:服务器接收到这样的请求包后,查看是否在接听的是指定的端口,如果不是就发送RST=1回应,拒绝建立连接。如果接收请求包,那么服务器发送确认回应, SYN为服务器的一个内码,假设为100,ACK位则是客户端的请求序号加1,本例中发送的数据是:SYN=100,ACK=11,用这样的数据回应给我们。向我们表示,服务器连接已经准备好了, 等待我们的确认。这时我们接收到回应后,分析得到的信息,准备发送确认连接信号到服务器。
第三步:我们发送确认建立连接的信息给服务器。确认信息的SYN位是服务器发送的ACK位,ACK位是服务器发送的SYN位加1。即:SYN=11,ACK=101。
这样我们的连接就建立起来了。
DDoS究竟如何攻击?目前最流行也是最好用的攻击方法就是使用SYN-Flood进行攻击,SYN-Flood也就是SYN洪水攻击。SYN-Flood不会完成TCP三次握手的第三步, 也就是不发送确认连接的信息给服务器。这样,服务器无法完成第三次握手,但服务器不会立即放弃,服务器会不停的重试并等待一定的时间后放弃这个未完成的连接,这段时间叫做SYN timeout, 这段时间大约30秒-2分钟左右。若是一个用户在连接时出现问题导致服务器的一个线程等待1分钟并不是什么大不了的问题,但是若有人用特殊的软件大量模拟这种情况,那后果就可想而知了。 一个服务器若是处理这些大量的半连接信息而消耗大量的系统资源和网络带宽,这样服务器就不会再有空余去处理普通用户的正常请求(因为客户的正常请求比率很小)。这样这个服务器就无法工作了, 这种攻击就叫做:SYN-Flood攻击。
到目前为止,进行DDoS攻击的防御还是比较困难的。首先,这种攻击的特点是它利用了TCP/IP协议的漏洞,除非你不用TCP/IP,才有可能完全抵御住DDoS攻击。 不过这不等于我们就没有办法阻挡DDoS攻击,我们可以尽力来减少DDoS的攻击。下面就是一些防御方法:
1.确保服务器的系统文件是最新的版本,并及时更新系统补丁。
2.关闭不必要的服务。
3.限制同时打开的SYN半连接数目。
4.缩短SYN半连接的time out 时间。
5.正确设置防火墙
禁止对主机的非开放服务的访问
限制特定IP地址的访问
启用防火墙的防DDoS的属性
严格限制对外开放的服务器的向外访问
运行端口映射程序祸端口扫描程序,要认真检查特权端口和非特权端口。
6.认真检查网络设备和主机/服务器系统的日志。只要日志出现漏洞或是时间变更,那这台机器就可能遭到了攻击。
7.限制在防火墙外与网络文件共享。这样会给黑客截取系统文件的机会,主机的信息暴露给黑客,无疑是给了对方入侵的机会。
8.路由器
以Cisco路由器为例
Cisco Express Forwarding(CEF)
使用 unicast reverse-path
访问控制列表(ACL)过滤
设置SYN数据包流量速率
升级版本过低的ISO
为路由器建立log server
能够了解DDoS攻击的原理,对我们防御的措施在加以改进,我们就可以挡住一部分的DDoS攻击,知己知彼,百战不殆嘛。
qq3250845
发表于 2023-6-5 11:09:45
DDos攻击有效的处理方法
DDos防御需要根据不同的攻击类型和不同的攻击方式指定对应的策略才能达到最有效的防御。常见的DDos包括:Flood、CC和反射等。
1、flood攻击
Flood类的攻击最常见并简单有效,黑客通过控制大量的肉鸡同时向服务器发起请求,进而达到阻塞服务端处理入口或网卡队列。
针对消耗性Flood攻击,如:SYNFlood、ACKFlood、UDPFlood,最有效并可靠的防御方法是做源认证和资源隔离,即:在客户端和服务端建立回话时对请求的源进行必要 的认证,并将认证结果形成可靠的白名单或黑名单,进而保证服务端处理业务的有效性。
若黑客肉鸡足够多并伪造数据包的真实性较高时,只能通过提升服务端的处理速度和流量吞吐量来达到较好的对抗效果。
2、CC攻击
CC攻击是一种针对Http业务的攻击手段,该攻击模式不需要太大的攻击流量,它是对服务端业务 处理瓶颈的精确打击,攻击目标包括:大量数据运算、数据库访问、大内存文件等,攻击特征包括:
a、只构造请求,不关心请求结果,即发送完请求后立即关闭会话;
b、持续请求同一操作;
c、故意请求小字节的数据包(如下载文件);
d、qps高;
针对CC的攻击的防御需要结合具体业务的特征,针对具体的业务建立一系列防御模型,如:连接特征模型,客户端行为模型,业务访问特征模型等,接收请求端统计客户信息并根据模型特 征进行一系列处理,包括:列入黑名单,限制访问速率,随机丢弃请求等。
3、反射类攻击
反射攻击是一种模拟攻击客户端请求指定服务器,并利用请求和应答之间的流量差值进行流量放大,进而达到攻击效果的攻击方式,常见的攻击类型包括:NTP,DNS等。
针对反射攻击比较有效的防御手段有:访问请求限速、反射流限速、请求行为分析等,这些防御手段没法完全过滤攻击流,只能达到抑制攻击的效果。
qq3250845
发表于 2023-6-6 11:17:20
内网穿透工具的原理与开发实战
在我国,由于网民众多,运营商无法保证为每一个宽带用户提供全球唯一的公网IPv4地址。因此很多用户会发现通过路由器端查看到的WAN端IP与百度“IP”关键词所得到的IP不一致,并且前者的IP为一个私有IP。
而还有一些情况下,公网IP比较昂贵,企业虽然本身也持有少量的独立的公网IP,但是由于成本限制无法为企业内每一台主机都提供一个公网IP,或者内网并不是所有服务都需要暴露到公网中进行访问,那么企业有可能就会使用NAT技术将大量的内网IP通过一定规则映射到公网IP上。而最常见的其中一种技术就是NAPT,也叫“网络端口地址转换”。因为一般一个服务都是通过一个端口来提供,因此通过这种方式可以将特定的服务通过特定的规则开放到少量的公网IP上。
问题
但是有的时候我们个人宽带用户也想将自己的服务发布到公网IP上。比如说我们做了一个很漂亮的网站想发布到互联网上供大家参观,在没有公网IP的情况下该怎么实现呢?
还有的时候我们在对企业做渗透测试的时候,发现企业某台公网服务器只对公网开放了常见的80端口,而我们提权时需要用到的3389等端口没有对公网开放,这个时候又该怎么办呢?
解决这些问题的方式就是内网穿透了。
NAPT原理
简单来说,在NAT网关上会有一张映射表,表上记录了内网向公网哪个IP和端口发起了请求,然后如果内网有主机向公网设备发起了请求,内网主机的请求数据包传输到了NAT网关上,那么NAT网关会修改该数据包的源IP地址和源端口为NAT网关自身的IP地址和任意一个不冲突的自身未使用的端口,并且把这个修改记录到那张映射表上。最后把修改之后的数据包发送到请求的目标主机,等目标主机发回了响应包之后,再根据响应包里面的目的IP地址和目的端口去映射表里面找到该转发给哪个内网主机。这样就实现了内网主机在没有公网IP的情况下,通过NAPT技术借助路由器唯一的一个公网IP来访问公网设备。
从这里我们可以看到,NAPT只解决了内网主机在没有公网IP的情况下如何访问公网主机的问题,但是并不能解决公网主机如何主动向内网主机发起请求的问题。
私有地址
在较早以前的 RFC 1918 文档中对私有地址有相关的说明。
因特网域名分配组织IANA组织(Internet Assigned Numbers Authority)保留了以下三个IP地址块用于私有网络。
10.0.0.0 - 10.255.255.255 (10/8比特前缀)
172.16.0.0 - 172.31.255.255 (172.16/12比特前缀)
192.168.0.0 - 192.168.255.255 (192.168/16比特前缀)
我们可以看到其中有1个A类地址块,32个B类地址块和256个C类地址块。主流的家用路由器使用C类私有地址作为路由器LAN端的IP地址较多,所以我们可以看到路由器设置页面的IP一般都为192.168开头。
原因
先说说家庭宽带的情况吧。家庭宽带如果没有公网IP,那么意味着你在本机上监听的任何端口,都只能在本机网卡所在的网络中访问,这个网络一般是路由器LAN端所在的网络。如果没有做特定的映射规则,那么路由器WAN端所连接到的网络将无法正常访问该主机提供的服务。
如果这种情况下想要让WAN端(如果运营商为你分配了公网IP,那么WAN端所连接到的网络通常就是公网),那么需要在路由器上做端口映射。比如说路由器的LAN IP为192.168.1.1,WAN IP为23.23.23.23,我想让内网192.168.1.2主机的80端口提供的HTTP服务器直接能够在公网中通过http://23.23.23.23访问,那么就要将192.168.1.2:80映射到23.23.23.23:80上。
但是通常情况下,运营商是不会给普通用户公网IP的。那么用这种方法映射,在公网仍然是无法访问的,因为你的路由器WAN端连接的又是运营商更上一级的路由器LAN端,严重一点,甚至是层层连接最后才到公网,这种行为称作流量穿透。国内某电,某动的宽带就有大量这种行为。通过流量穿透的方式来提供的宽带服务,看似便宜,实则影响很大,由于大家公用一个IP,可能会导致很多网站的反SPAM策略伤及无辜,或者内部为了节省带宽,使用缓存,导致一些不该缓存的敏感安全页面被缓存起来,甚至导致部分网站缓存失效完全打不开。
有的人发现,即使自己有公网IP,但是仍然无法通过常规方法架设服务器,这是怎么回事呢?这是运营商为了防止个人随意开设各种非法服务,也防止黑客通过扫描器进行抓鸡和批量扫描,将一些常用端口进行了封禁,比如说我们这的中国电信就将80,8080等端口封禁了。这样封禁,虽然一定程度上保证了我们的网络安全,比如说前段时间的勒索病毒正因为国内大部分用户没有独立的公网IP,并且操作系统最容易爆发漏洞的一些,135,139等端口被运营商封禁了,使得国内个人家庭电脑中招的概率小了很多;但是导致即使有公网IP,也无法使用常用端口向外网提供服务,只能更换到其他端口。这样有什么不好呢?比较典型的问题就是WEB网站默认使用80端口,那么在输入网址的时候可以不用带上端口号,显得比较美观。
解决方案
如果遇到了上述情况,我们该如何解决呢?
如果我们没有一台公网服务器,我们可以使用国内大名鼎鼎的“花生壳”,“nat123”等服务来实现,但是他们背后的原理是什么呢?
我们如果在自己拥有一台具有公网IP服务器的情况下,我们可以借助这台公网IP服务器提供服务。而具体又该怎么操作呢?
解决方案的实现
先假设我们自己有一台公网服务器,他的IP为45.45.45.45。我们又有一台内网服务器IP为23.23.23.23.我们现在想把23.23.23.23:80,即内网服务器上的HTTP服务开放到45.45.45.45上。
最简单粗暴的方式就是,我们可以直接将整个内网服务器环境在公网服务器上重新搭建一遍。
但是这样做很麻烦,我们有的时候并不想这样做,我们只是想简单的借助公网服务器的网络来发布一个内网服务。
前面我们通过NAPT原理得知:NAPT实现了内网主机在没有公网IP的情况下访问公网主机。那么我们可以这样做:假设公网IP为23.23.23.23,内网IP为192.168.1.2。公网主机先监听80端口,监听这个端口是用于向外部提供一个HTTP服务,80是WEB服务器的默认端口。同时其他任意一个端口(这里我们假设为7777),监听这个端口是用于让内网服务器主动连接进来打通一个隧道。接着内网再主动向公网主机的7777发起一个请求,这样内网就成功与公网主机建立了一个连接通道。然后当有任何客户端主动连接公网的80端口时,公网接收到连接请求之后马上把这连接请求通过先前建立好的隧道转发到内网主机,内网主机接收到来自隧道的数据包后再主动连接内网主机自身的80端口,连接成功之后将数据包原封不动地转发数据包给80端口,待HTTP服务器程序处理完这个数据包,生成了响应报文之后再原路转发回去,最终到达公网的80端口,然后返回给最开始请求公网服务器80端口的客户端。
看起来是不是比较绕呢?事实上大名鼎鼎的花生壳内网版以及nat123等内网穿透工具的原理基本就是如此,但是并不完全是这样。因为一个运输层端口只能同时提供一种服务,但是我们会发现花生壳这种内网穿透服务是借助一个公网IP同时给很多用户提供了服务,这是因为花生壳在流量转发这一层上并不是像我之前所说的原封不动的将报文进行转发,而是在转发之前加了一些控制协议的内容,用于指明该转发到哪个花生壳客户端所在的内网主机上。前者这种原封不动的转发方式通常叫做透明传输或者透明代理。
穿透防火墙
为了安全起见,通常会在网络中加入防火墙,防火墙有入站规则和出站规则。如果不是非常严格的安全管控,通常是不会设置出站规则的,但是入站规则一般都会设置的,比如说外部可以通过80端口传入内网的WEB服务器访问网页,但是不能通过3389端口登陆内网的远程桌面。
而在内网渗透的过程中碰到这种情况,我们也可以借助上面内网传统的方式实现穿透防火墙的入站规则。因为防火墙通常只拦截了入站,没有拦截出站,那么我们可以让内网服务器主动出站(主动连接到黑客的服务器),与黑客自己的服务器打通隧道,最终绕过防火墙连上3389远程桌面。
还有一种情况就是我们已经拿下了内网其中一台并没有做任何防火墙规则的白名单服务器,但是我们想连上内网另一台做了入站规则的目标服务器,那么我们可以让这台白名单服务器作为一个跳板,让他先监听自身任意一个端口,然后在有任何用户连上这个端口之后,白名单服务器就主动连上内网的目标服务器,然后借助这台白名单服务器打通黑客和目标服务器的连接隧道。
而在黑客工具中大名鼎鼎的lcx原理也就是如此,前者的实现是lcx的listen和slave命令,后者的实现是lcx的tran命令。
代码实现
知道了原理之后,具体该怎么实现呢?
我这里选择了使用Go语言编程实现了这样一个内网穿透工具。
Golang本身提供了非常多的网络库,并且Golang本身内置的Goroutine能够很方便的处理网络编程中的异步IO,而且最重要的是,Golang开发的程序是可以跨平台运行的,意味着写了一份代码,我们可以在任何一个操作系统上编译并使用。
https://github.com/cw1997/NATBypass
初始运行时根据情况输出欢迎信息已经语法提示(这里要重点注意printWelcome函数末尾调用了time.Sleep阻塞一秒,这是因为fmt包输出是非线程安全的,而log包下的输出都是线程安全的,因此为了防止后面执行流中打的日志会穿插到提示信息中而使用该函数休息一秒钟)。
首先通过判断传入参数决定当前使用何种转发策略。
然后再判断传入参数是否正确,通过正则表达式等方式验证IP的合法性以及端口范围。
通过port2port函数实现了两个端口同时监听双向并且转发数据。
在port2host操作中实现了跳板中转。
在host2host中实现了主动连接打通隧道的功能。
看代码便可以知道,在Golang中进行socket操作的net包要比C语言中的socket.h操作简单很多。
转发功能的核心就在于forward函数部分。
先输出一个日志说明是对哪两个连接进行双向转发,然后通过sync包下的WaitGroup实现一个条件阻塞功能,防止在Goroutine还未执行完,主线程就已经退出了。
然后发射两个Goroutine,分别处理连接1到连接2的IO数据包拷贝以及连接2到连接1的IO数据包拷贝。因为要保证两个端口间的通信是全双工的,也就是两边同时都要能够互相交换数据,所以要用Goroutine来实现这两个操作的并发。
而IO数据包的拷贝核心代码在connCopy函数中,根据是否要记录流量日志判断是否要使用io.MultiWriter这个多路写数据流的函数。
如果打开日志文件的文件流成功,则通过io.MultiWriter函数生成一个多路写入流,这里这个多路写入流的变量名为w,任何写入到w这个写入流的数据都会同时写入先前参与执行多路写入流创建函数io.MultiWriter的参数中,在这里参数为conn1和logFile,即为端口1和日志文件流。
接着调用io.Copy将第二参数的读取流中读取到的数据源源不断地拷贝到第一个参数的写入流中。
这里要注意io.Copy函数是同步阻塞的,意味着只要连接没有断开,那么程序执行流将一直卡在这个函数。如果拷贝出错,那么io.Copy函数就会返回,也就是执行他下面的代码。拷贝出错意味着可能连接已断开,那么先把写入流的连接断掉。
这里要重点注意,为什么是断开写入流而不是读写流全部断开呢。因为我们前面发射了两个Goroutine,如果盲目全部断开,将会导致另一个Goroutine中可能还有未写完的数据丢失。具体可以根据TCP四次挥手来分析。
实际执行
如果没有Golang环境的朋友可以直接下载编译好的可执行文件,下载地址:https://github.com/cw1997/NATBypass/releases
我们先来看看代码编译之后实际运行,上图左边为虚拟机跑的内网服务器,他已经设置了入站规则,通过直接连接192.168.2.112:3389是无法连上远程桌面的。
此时此刻开始通过listen命令监听7777和9999端口。
接着内网服务器再通过slave命令开始双向连接黑客的主机(右图的192.168.2.101:7777)以及本地的127.0.0.1:3389。
然后黑客的主机上连接本地监听的另一个端口127.0.0.1:9999即可连接上内网服务器的远程桌面。
大家可以根据netstat -an的结果以及控制台日志输出来综合理解这个过程。
写在最后
这个工具现在实现的仍然只是简单的透明传输,并且存在诸多问题。比如说本地主动连接内网服务是一开始就预连接好的,这样会导致一些服务如果在连上之后长期没有数据传输,会主动断掉连接,导致公网端偶尔出现无法连接上,要重新断开重连后才能连上的小BUG,具体在HTTP服务器要多刷新几次页面,远程桌面则可能要连接上然后又取消,然后再连才能连上。而且在并发连接上处理还有一些细节没有做好。并且目前还仅仅支持TCP连接的转发等等,当然要实现UDP的转发也不是很困难稍加改进即可。大家也可以点个star,提个pull request一起来改进这些问题。目前相关的开源项目也有做的比较成熟的,比如说Golang写的ngork,大家也可以参考参考。
qq3250845
发表于 2023-6-7 11:00:00
UDP Flood的原理概念
UDP Flood是互联网上最经典的DDoS(Distributed Denial of Service)攻击之一。攻击者在短时间内向目标设备发送大量的UDP报文,导致链路拥塞甚至网络瘫痪。一般的UDP报文由攻击工具伪造,通常在数据段具备相同的特征,另一部分由真实网络设备发出的UDP报文,虽然数据段不相同,但固定的目的端口也可作为一种特征。
确定UDP攻击报文的特征后,即可根据特征进行过滤。特征过滤就是常说的指纹过滤,可根据攻击报文的特征,自定义过滤属性。指纹过滤包括静态指纹过滤和动态指纹学习两种方法。
顾名思义,UDP Flood是指用洪水一样的UDP报文进行攻击。不同于TCP协议,UDP协议是一种无连接的协议,使用UDP协议传输报文之前,客户端和服务器之间不建立连接,如果在从客户端到服务器端的传递过程中出现报文的丢失,协议本身也不做任何检测或提示。这种报文处理方式决定了UDP协议资源消耗小、处理速度快,在被广泛应用的同时也为攻击者发动UDP Flood攻击提供了可能。
传统UDP Flood攻击是一种消耗攻击和被攻击双方资源的带宽类攻击方式。攻击者通过僵尸网络向目标设备发送大量伪造的UDP报文,这种报文一般为大包且速率非常快,通常会造成链路拥塞甚至网络瘫痪的危害。这种攻击方式由于技术含量较低,现在已经越来越少被使用。
近几年来,越来越多的攻击者选择使用UDP反射放大攻击。UDP反射放大攻击有两个特点,一是属于UDP协议,二是目的端口号固定。UDP反射放大攻击的原理类似,以常见的NTP(Network Time Protocol)反射放大攻击为例,其有两个关键点:反射和放大。
在UDP协议中,正常情况下,客户端发送请求包到服务器,服务器返回响应包给客户端,一次交互就已完成,中间没有校验过程。反射攻击正是利用了UDP协议面向无连接、缺少源认证机制的特点,将请求包的源IP地址篡改为攻击目标的IP地址,最终服务器返回的响应包就会被送到攻击目标,形成反射攻击。
攻击者通常利用互联网的基础架构来进行放大攻击。由于网络中开放的NTP服务器非常多,攻击者会利用僵尸主机同时向NTP服务器发起大量的Monlist请求,1个Monlist请求包可以引发100个响应包。通常1个NTP请求包只有90字节的大小,而1个回应报文通常为482字节,100个回应报文就是48200字节,可以发现回应报文是请求报文的500倍左右,这就形成了四两拨千斤的放大攻击,最终造成链路拥塞甚至网络瘫痪。
由于UDP协议不建立连接,对UDP Flood的防御并不能像SYN Flood一样进行源探测。最初防火墙对UDP Flood的防御方式就是限流,将链路中的UDP报文控制在合理的带宽范围之内,可基于目的IP地址、目的安全区域和会话进行限流。虽然限流可以有效缓解链路带宽的压力,但这种方式可能会丢弃一些正常报文,因此需要新的手段防御UDP Flood。
由攻击工具伪造的攻击报文通常都拥有相同的特征字段,比如都包含某一字符串或整个报文内容一致,而对于UDP反射放大攻击中那些由真实网络设备发出的报文,在数据段不具备相同特征,但其目的端口都是固定的,所以不难发现UDP Flood攻击报文都具有一定的特征。确定攻击报文的特征后即可进行过滤,特征过滤也就是常说的指纹过滤。指纹过滤包括静态指纹过滤和动态指纹学习两种方法。
静态指纹过滤
UDP报文的数据段、源IP地址、源端口、目的IP地址、目的端口都可能隐藏着攻击报文的特征。对于已知的攻击特征,可以直接配置到设备的过滤器参数中。配置了静态指纹过滤后会对收到的报文进行特征匹配,对于匹配到攻击特征的报文进行丢弃、限流等下一步操作。
动态指纹学习
在攻击特征未知的情况下,可通过动态指纹学习进行攻击防御。对于一些攻击工具发起的UDP Flood攻击,攻击报文通常都拥有相同的特征字段,指纹学习就是对一些有规律的UDP Flood攻击报文进行统计和特征识别,当报文达到告警阈值时则开始进行指纹学习。如果相同的特征频繁出现,就会被学习成指纹,后续命中指纹的报文则被判定为攻击报文,进行丢弃、限流等后续操作。
qq3250845
发表于 2023-6-8 10:47:29
什么是水坑攻击
水坑攻击(Watering Hole Attack)是一种网络攻击方法,其名称来源于自然界的捕食方式,即很多捕食者会守候在水源旁边,伏击来饮水的其他动物,提高捕食的成功率。攻击者会通过前期的调查或各种社会工程手段,确定受害者(往往是一个特定群体)经常访问的一些网站,并在网站上部署恶意程序,当受害者访问被部署了恶意程序的网站时即会被感染。
通常来说,水坑攻击的目的是通过感染受害者的电脑,以获得对受害者公司网络的访问权。与其他社会工程手段(例如网络钓鱼)相比,水坑攻击的危险性来源于其利用的是不会被列入黑名单的合法网站,因此更难被发现。访问者出于对这些网站的一贯信任,更容易放松警惕,继而落入水坑陷阱之中。
水坑攻击的原理
水坑攻击一般分为如下四个阶段:
信息收集
在信息收集阶段,攻击者会对他们的目标受害者群体进行“画像”,收集信息,了解受害者最常用的网站。这些“画像”信息包括来源于搜索引擎或受害者社交媒体主页的公开信息,和通过非法手段(如社会工程、间谍软件、键盘记录仪等)获得的信息。通常来说,攻击者会选择安全程度较低的网站作为目标,如一些中小型网站,或者技术和资金并不雄厚的网站。因为大型网站非常注意网络安全,所以会部署大量的专业安全设备,并雇佣专门的网络安全人员来维护网络,这大大提高了攻击者的成本。
分析
在选定目标网站之后,攻击者往往会对这些网站开展分析,寻找他们可以利用的域名和子域名的漏洞。零日漏洞是一类较易被攻击者利用的漏洞,因为零日漏洞是还没有补丁的安全漏洞,作为首先挖掘出漏洞的攻击者,可以借此轻松越过严密的网络防护措施,渗透入网络。
准备
在准备阶段,攻击者通过代码注入或DNS欺骗等各种手段来感染网站,改变网站的执行进程或目标网址。一些攻击者会选择在受害者访问原网站时将受害者重定向至假网站,其中包含攻击者所部署的恶意软件;另一些攻击者会选择路过式下载(Drive-by Download)的手段,将恶意软件嵌入到原网页,让受害者在使用原网站时不知不觉地下载并安装恶意软件。
执行
一旦网站已被感染,攻击者便可以等待着受害者落入他们的陷阱了。当受害者访问已被感染的网站时,浏览器即会从这些网站上下载恶意软件,恶意软件就这样进入了用户电脑。由于攻击者部署的恶意软件往往是远程访问木马病毒(Remote Access Trojan),攻击者此时便可远程操控用户电脑,获取用户个人信息、账户信息等种种敏感个人数据,并以用户电脑作为跳板,获取权限进入用户的企业网络。
水坑攻击的常用手段
水坑攻击者感染网站的方式多种多样,以下列举一些水坑攻击中常用到的技术,以及常见的应对措施:
跨站脚本攻击(Cross-site Scripting)
跨站脚本攻击又称XSS攻击,是代码注入攻击的一种。利用XSS漏洞,攻击者可以窃取Cookies或劫持会话,或注入恶意 HTML 或 JavaScript 代码到页面中,又或者将当前页面重定向至一个攻击者搭建的恶意网站。XSS漏洞的产生多是因为网站开发者没有将用户输入文本中的特殊字符进行合适的过滤,就贸然插入到 HTML 中,给了攻击者以提交恶意代码的可乘之机。在开发过程中谨慎地使用HTML转义字符,能够一定程度上降低XSS漏洞产生的风险。
SQL注入(SQL Injection)
SQL 注入是一种危险的安全漏洞,攻击者利用Web应用程序没有正确过滤用户输入的数据,向数据库服务器发送恶意 SQL 查询语句。攻击者可以利用这些恶意查询语句执行未经授权的操作,如删除、修改或者读取数据,甚至可以完全接管受影响的应用程序。预防 SQL 注入的方法包括使用参数化查询、对输入数据进行检查和过滤、使用最小权限原则以及定期安全检查和更新。
DNS欺骗(DNS Spoofing)
在DNS欺骗攻击中,攻击者通过冒充域名服务器,劫持网络浏览器对网站的DNS请求,从而将用户引导至一个不同的网站。改变用户的DNS设置一般有两种方法,暴力破解或者利用系统漏洞。DNS欺骗相较其他攻击会更难识别,因为多数受害者并不能直接感知到自己的DNS服务器已经被篡改了,只有待在仿冒网页上的操作带来糟糕的后果时,才能后知后觉地意识到攻击的发生。因此,提高安全意识,使用最新版本的DNS服务器,及时安装补丁,并使用入侵防御检测系统来预防DNS欺骗的发生是重中之重。
路过式下载(Drive-by Download)
通过路过式下载,攻击者将恶意软件嵌入到正常网站的界面中,使得受害者在不知道的情况下下载这些软件到本地,攻击者便可进一步通过用户网络在用户的组织内广泛散布恶意软件,寄生其他电脑。攻击者实施路过式下载的典型方式包括安装恶意插件,或编写Shellcode到内存。因为路过式下载的攻击目标往往是过时的系统或软件服务,所以持续更新系统与软件版本可以有效避免路过式下载的危害。
恶意广告(Malvertising)
恶意广告是一种常被攻击者用来散播恶意软件的方式。当用户在浏览网页的时候有意无意点击到页面上的恶意广告时,便会下载恶意软件,或被重定向至恶意网站。防范恶意广告需要安装防病毒软件和广告拦截器,避免访问未知网站,并定期更新浏览器和操作系统。
零日攻击(Zero-day Attack)
零日漏洞通常是指还没有补丁的安全漏洞,零日攻击则是指利用零日漏洞对系统或软件应用发动的网络攻击。由于零日漏洞的严重级别通常较高,所以零日攻击往往也具有很大的破坏性。攻击者一般会使用自动化测试工具和逆向工程技术来寻找漏洞,凭借挖掘到的零日漏洞,可以轻松越过严密的网络防护措施,渗透入网络,最终实施零日攻击。零日攻击很难防御,但是,通过建设完善的防御体系,提升人员的防范意识,可以有效减少被零日攻击的机率,降低零日攻击造成的损失。
著名的水坑攻击事件
相对而言,水坑攻击并不是最常见的社会工程攻击。然而,水坑攻击的成功率很高,一旦成功,具有强大的破坏力。以下列举了一些近年来著名的水坑攻击事件:
NotPetya攻击
2017年,攻击者通过感染某国政府网站,使得用户从网站上下载了恶意软件NotPetya,并很快蔓延至整个国家的网络。NotPetya会清空受害者硬盘上的所有内容,整场攻击造成了总计100亿美金左右的损失。
CCleaner攻击
2017年,攻击者渗入某公司网站,并将恶意软件藏于该公司旗下软件产品CCleaner的安装文件中。当含有恶意软件的CCleaner版本发布后,修改的安装文件被全球227万名CCleaner客户下载。
Adobe Flash水坑攻击
2019年,攻击者在一些慈善网站上设置了水坑。当受害者访问这些受感染的网站时,将触发一个仿冒的Adobe Flash下载窗口。当恶意软件被下载后,受害者的电脑上会出现后门,使得攻击者得以远程控制受害者的电脑,修改文件,获取个人数据与计算机活动数据。
如何预防水坑攻击
针对水坑攻击这种守株待兔式的攻击手法,最好能够做到在水坑攻击发生之前,就防患于未然。
对于组织来说,可以采取以下几点建议:
加强网络安全管理:组织应该建设完善的网络安全体系,采取适当的安全措施来预防水坑攻击,包括启用防火墙、实施访问控制、定期更新软件和操作系统等。此外,也建议组织定时定期进行安全测试,以确认是否现有的安全措施能够达到成功抵御各种网络攻击的能力。
教育员工:组织应该向员工提供关于水坑攻击的教育和培训,让员工了解这种攻击类型,以及如何识别和避免陷阱。员工安全意识的提高有利于降低员工浏览不安全网页的概率,以及在网页上下载恶意软件的风险。
做好数据备份:组织应该定期备份数据,以确保在发生数据丢失或损坏时可以轻松地还原数据。
对于个人来说,最重要的即是要定期更新操作系统和软件,并在个人终端上安装防病毒软件、终端检测与响应软件,使漏洞与缺陷可以被及时修复,让计算机免受病毒和恶意软件的攻击。
qq3250845
发表于 2023-6-9 11:33:43
什么是零日攻击
零日漏洞通常是指还没有补丁的安全漏洞,零日攻击则是指利用零日漏洞对系统或软件应用发动的网络攻击。由于零日漏洞的严重级别通常较高,所以零日攻击往往也具有很大的破坏性。目前,任何安全产品或解决方案都不能完全防御住零日攻击。但是,通过建设完善的防御体系,提升人员的防范意识,可以有效减少被零日攻击的机率,降低零日攻击造成的损失。
什么是零日漏洞
零日漏洞也可以称为零时差漏洞,通常是指还没有补丁的安全漏洞。
零日漏洞中的“零日”得名于漏洞被公开后,补丁未出现的天数。漏洞被公开当天,一般来讲都不会及时推出补丁,所以称为零日漏洞;如果N日后仍然没有补丁,则称为N日漏洞。换个角度讲,“零日”也可以理解为针对此漏洞的攻击出现在哪天,漏洞公开当天即利用此漏洞的攻击称为零日攻击,以此类推。
实际上,“零日”现在已经不再局限于漏洞被公开的时间长短。所谓“零日”不一定是真的刚刚发现,黑客完全有可能在很久之前发现了漏洞,但就是没有公开。那么对于外界来说,漏洞公开的那一刻才能称为零日漏洞。所以,“零日”往往可以理解为“软件供应商和公众未知”,但是“黑客或暗网上的交易者已知”。
零日漏洞是如何转化为零日攻击的
理想状态下,当某人检测到软件中包含潜在安全问题时,该人会通知软件供应商或公布给大众,软件供应商会着手修复漏洞、研发相应补丁。此时,即使黑客知晓了该漏洞,也需要一些时间来开发恶意程序。网络管理者可以在这段时间里针对零日漏洞进行紧急规避操作,例如关闭部分服务,等待补丁发布后再恢复相关业务。
然而事实是残酷的,因为黑客很可能是第一个发现零日漏洞的人。黑客一般会使用自动化测试工具和逆向工程技术来寻找漏洞,凭借挖掘到的零日漏洞,可以轻松越过严密的网络防护措施,渗透入网络,最终实施零日攻击。简言之,零日攻击就是利用零日漏洞对系统或软件应用发动的网络攻击。
零日漏洞转化为零日攻击的过程
常见的零日攻击类型如下:
帐户接管(ATO)攻击
ATO攻击是指攻击者利用恶意软件对受害者的系统进行未经授权的控制,并通过受害者的系统进行一系列恶意操作,例如在系统中安装其他恶意软件,发送钓鱼消息/邮件给受害者的联系人,盗取受害者账户中的资金等。
水坑攻击
水坑攻击的名称来源于自然界,捕食者会在水坑附近等待前来饮水的猎物并对其发动进攻,借此提高捕食的成功率。
网络世界中的攻击者也会提前分析目标群体经常访问的网站,然后在这组网站上植入恶意程序。当目标群体的成员访问这些网站时,会有很大概率被恶意程序感染,进而传播并感染其他成员。
零日星期三
Microsoft通常在每月第二个星期二发布系统更新补丁,所以有了非正式术语“星期二补丁日”。当然,如果出现有重大威胁的漏洞时(如零日漏洞),Microsoft也会发布紧急补丁,不会等到补丁日。黑客会选在补丁日的第二天进行新的攻击,以获取最长的攻击时间窗,所以此类攻击称为“零日星期三”。
当前,“星期二补丁日”已经泛指Microsoft、Adobe或其他软件供应商定期发布补丁的时间。黑客会利用两次补丁发布之间的这段时间开展攻击活动,因为软件供应商不会针对所有漏洞频繁发布紧急补丁,所以黑客将拥有足够的时间进行破坏。
为什么零日攻击很危险
由于零日漏洞的严重级别通常较高,所以零日攻击往往也具有很大的破坏性。研究表明,基于零日漏洞的恶意软件占比达到30%,形式包括病毒、蠕虫、木马等。零日攻击普遍被设计为可以快速传播的形式,以便感染尽可能多的主机和系统。零日攻击也由被动式、传播缓慢的文件和宏病毒方式,演化为更主动、自我传播的电子邮件蠕虫和混合威胁方式,这大大缩短了威胁传播的时间,扩大了威胁影响的范围。
当零日攻击发生后,通常软件供应商或安全厂商需要几天甚至几个月时间才能分析出攻击的相关信息。在这段时间内,黑客显然可以获得丰厚的利益。
零日攻击的目标一般分为两类:
高价值的目标
例如金融机构、医疗机构、国家机构或军队机构等。无论是出于经济目的还是政治目的,攻击成功的收益都将是巨大的,因此用于此类场景的零日漏洞也往往是暗网上最昂贵的。
影响范围大的目标
例如浏览器软件、操作系统软件、常见应用软件等。根据近年的零日漏洞统计数据来看,针对Microsoft软件(Windows、IE、Office等)的攻击最多,这也是因为Microsoft产品的应用最为广泛。
著名的零日攻击事件
Stuxnet(震网病毒)
Stuxnet可能是第一个实际应用的网络武器。该恶意软件利用多个零日漏洞进行渗透和传播,最终操控了伊朗核电站的离心机并导致其被摧毁。
Sony Zero-Day Attack
Sony Zero-Day Attack是对索尼影业娱乐发起的零日攻击。黑客利用一个零日漏洞渗透进入索尼的网络,迅速访问了所有重要信息。然后,黑客开始发布窃取到的敏感信息,包括未上映的新电影副本、业务交易明细、业务计划等,给索尼造成了重大损失。
Operation Aurora(极光行动)
Operation Aurora是一次典型的APT攻击。黑客通过社会工程学调查Google职员的信息,然后诱使该职员点击恶意网站链接。通过利用零日漏洞植入恶意程序,黑客最终对Google公司实施了攻击。
如何降低零日攻击的风险
目前,任何安全产品或解决方案都不能完全防御住零日攻击。但是,通过建设完善的防御体系,提升人员的防范意识,可以有效减少被零日攻击的机率,降低零日攻击造成的损失。
通过以下措施可以避免被零日攻击:
加强员工宣传教育:组织全员参加网络安全培训,掌握网络安全基本常识,防止被黑客从内部攻破。
加固计算机终端系统:计算机终端通常是整个网络中最薄弱的环节,对终端系统进行安全加固是有效减少零日攻击的好方法。
实时更新软件:常用软件要保持实时更新,如浏览器、防病毒软件和办公软件等。
及时修补漏洞:定期对网络中的设备进行漏洞扫描,及时修补存在的漏洞,降低被攻击的风险。
加强网络安全设施建设:在网络中部署必要的安全设备和软件(如大数据安全分析系统、NGFW、漏扫设备、防病毒软件等),可以降低零日攻击的影响范围和严重程度。
加强权限认证与审核:通过部署“零信任”安全方案,加强对用户操作的授权和用户身份的审核。
建立应急响应方案:无论采取何种安全措施,都不能完全排除零日攻击的威胁。应急响应方案可以帮助企业快速阻止攻击,将损失减少到最小。
我们如何帮助您抵御零日攻击
一般来讲,很难提前发现或检测出零日漏洞。除了实施零日攻击的黑客,其他人只有在获得攻击的详细信息后,才能确认是基于零日漏洞的攻击。而消除零日漏洞的唯一方法就是由软件供应商提供补丁,但此方法通常较慢,因此软件供应商通常会在最新补丁中提供规避零日攻击的功能,实际上并没有彻底解决漏洞本身。
针对日益复杂的网络环境和日趋增多的高级威胁(APT),我们提供了丰富的安全解决方案和安全产品,能够帮助您及时发现安全风险,降低安全威胁的影响。
HiSec安全解决方案
针对云数据中心、园区网络、分支网络、APT防御与大数据安全等多种场景提供专业的安全解决方案。
其中,园区网络安全解决方案可以构筑面向园区网的全面安全防御体系,提供多维立体、持续稳定的安全保障。通过对全球现网流量持续分析,可以快速响应零日攻击。
APT防御与大数据安全解决方案可以有效避免APT攻击对企业核心信息资产的威胁,实现威胁检测、威胁溯源取证和全网协防联动等功能,适用于金融、政府、能源及互联网企业等场景。
HiSec Insight高级威胁分析系统
HiSec Insight采用大数据平台技术和智能检测算法,可对海量数据进行多维度关联分析,实时发现各类安全威胁事件,并还原出整个APT攻击链。同时,提供全网安全态势展示功能,帮助用户对网络安全状况有总体了解。
HiSec Insight支持行为分析技术,通过对比个体行为与标准行为模式之间的差异,可以提前发现零日攻击的迹象。
FireHunter6000沙箱
FireHunter可以精确识别未知恶意文件渗透和C&C(命令与控制,Command & Control,简称C&C)恶意外联。通过还原网络流量中的文件,并在虚拟环境中进行分析,FireHunter可以实现对未知恶意文件的检测与防御。
USG6000E防火墙
USG6000E在提供NGFW能力的基础上,可以联动其他安全设备,增强边界检测能力,有效防御高级威胁。同时,USG6000E支持启发式检测(一种签名分析技术),通过运用机器学习技术分析文件的可疑特征,挖掘出潜在的恶意软件,最终实现自动生成新签名,并用于后续的零日漏洞检测。
VSCAN1000漏洞扫描器
VSCAN可以发现和评估网络设备、Web应用和数据库等实体中存在的安全漏洞,并提供相应解决建议。通过运用统计分析的机器学习技术,可对历史漏洞数据进行统计分析,最终创建出一个安全系统行为框架,提高零日漏洞的检出率。
相关概念
什么是零日市场
在十几年前,零日漏洞是比较少见的。在百万级恶意软件中,可能只有零星几个是零日漏洞相关的恶意软件。那时的零日攻击往往很轻易即可实现诸如远程入侵或取得控制权这样的结果。
然而,随着网络安全技术的不断发展,现今单纯依靠一个零日漏洞就想突破防御,几乎是不太可能的,更不要提获得控制权。事实上,当前发动一次APT攻击就要集合数个甚至数十个零日漏洞,以复合攻击方式突破被攻击者的防御。所以,含金量高的零日漏洞卖出天价也是屡见不鲜,这也是催生零日市场的重要原因之一。
零日市场主要分为三类:
黑色市场:购买者主要利用零日漏洞进行犯罪行为,如入侵系统、窃取密码、转移资金等。黑色市场一般存在于暗网中。
白色市场:主要指各个机构或厂商创建的漏洞赏金计划(如ZDI)。漏洞发现者(很有可能就是黑客)向软件供应商披露漏洞信息并获得相应的奖金,软件供应商会在发生零日攻击前尽快推出相应补丁。这个市场中的一类特殊购买者是安全公司,他们在渗透测试中使用零日漏洞来确定客户系统是否可以防御住攻击。
灰色市场:购买方主要为军队、情报机构或执法部门等,其利用零日漏洞主要出于政治目的或监视目的。
零日漏洞的价格可能会有很大差异,这取决于许多因素,例如漏洞带来多大的利益。通常来说,适用于多个版本的漏洞比单个版本中的漏洞更有价值,iOS的漏洞比Microsoft的漏洞更有价值。
什么是暗网
暗网是使用日常搜索手段(如Google)无法找到的网络,一般来讲,需要使用特殊软件或对主机进行授权后才能访问特定的暗网。有统计表明,暗网的数量是日常可见网络域名的数百倍。
由于暗网具有极高的隐匿性,所以很多违法行为都会在暗网上进行,例如毒品交易、武器买卖、非法色情传播、黑客服务等。很多黑客不会使用自己发现的零日漏洞,而是到暗网上进行出售,高价值的零日漏洞甚至可以卖出上百万美元。
qq3250845
发表于 2023-6-12 10:57:14
什么是本机防攻击
本机防攻击通过多级安全机制,实现对设备的分级保护。具体功能包括CPU防攻击、用户级限速、攻击溯源及攻击防范。
本机防攻击的防护分级
第一级:通过过滤器、攻击溯源惩罚丢弃功能等直接丢弃上送CPU的恶意报文。
第二级:基于协议报文的限速CPCAR(Control Plane Committed Access Rate)。对上送CPU的报文按照协议类型进行速率限制,比如 ARP、 DHCP 协议,每个协议都有一定的带宽,保证每种协议上送CPU的报文不会过多。对每个协议进行限速可以保证协议之间不互相影响,不会因为某种协议的流量过大导致其它协议得不到处理。
控制CPCAR是CPU防攻击的核心部分。CPCAR是基于设备对协议报文进行限速,用户级限速是基于发起攻击的用户MAC地址对协议报文进行限速。
第三级:基于队列的调度和限速。协议报文CPCAR限速之后,设备可对一类协议再分配一个队列,比如 Telnet、 SSH 等管理类协议一个队列、路由协议一个队列。各个队列之间按照权重或优先级方式调度,在有冲突的情况下高优先级的队列优先处理。同时,可以针对每个队列进行限速,限制各个队列向CPU上送报文的最大速率。对于超过队列最大速率的协议报文,设备会直接丢弃。
第四级:所有报文统一限速。该功能是为了限制CPU处理的报文总数,保证CPU在其正常处理能力范围内尽可能多的处理报文。在进行所有报文统一限速之前,设备支持通过分析上送CPU处理的报文的内容和行为,判断报文是否具有攻击特性,并对具有攻击特性的报文执行丢弃或限速等攻击防范措施。
哪些功能可以保护本机免受攻击
本机防攻击的基本功能包括CPU防攻击、用户级限速、攻击溯源及攻击防范。其中CPU防攻击、用户级限速、攻击溯源用于进行流量控制,用于处理网络中需正常上送的CPU数量巨大而影响业务的问题。攻击防范功能用于识别及处理恶意攻击报文,以处理CPU接收恶意攻击报文数量较多而影响业务的情况。
CPU防攻击
CPU防攻击的核心是CPCAR(Control Plane Committed Access Rate),即基于协议报文的限速。设备支持通过命令行修改CPCAR,包括协议报文的CPCAR、上送到CPU的所有报文的CPCAR以及协议联动后的CPCAR。并且,在默认CPCAR不能满足业务需求时,支持动态自适应调整协议报文的默认CPCAR。
应用层协议联动功能
协议联动功能是指设备对基于会话连接的应用层数据的保护功能。当 OSPF、 BGP、 FTP 等协议会话连接建立后,基于协议的默认CPCAR就不再起作用,设备以协议联动设定的CPCAR对建立会话连接的报文进行限速。通常,协议联动设定的CPCAR要比默认CPCAR大很多,以此来保证业务运行的可靠性和稳定性。
动态自适应调整协议报文的默认CPCAR值
动态自适应调整协议报文的默认CPCAR值应用在用户接入相关的协议报文(如ARP协议)上,主要解决协议报文默认CPCAR值无法满足上送速率的场景。开启该功能后,设备会根据协议报文的丢包情况和CPU占用率调整默认CPCAR值。
用户级限速
用户侧主机遭受病毒攻击时向网络中发送大量的协议报文,导致设备的CPU占用率过高,性能下降,从而影响正常的业务。此时,管理员可以配置用户级限速功能。用户级限速功能是指基于用户MAC地址识别用户,对用户的特定报文进行限速,使得单个用户发起攻击时只对该用户进行限速,而不影响其他用户。与CPCAR基于设备对协议报文进行限速相比,基于用户MAC地址进行限速能够精确到每个用户,对正常用户的影响更小。其处理流程如下:
设备对收到的用户协议报文的源MAC地址进行哈希计算,将收到的不同源MAC地址的报文放到不同的限速桶中。
当单位时间内限速桶内的报文超过了限速值时,该限速桶会丢弃收到的报文。并且每隔一定时间对限速桶内的丢包数目进行统计,如果限速桶丢弃的报文数目超过限速值,设备会发送该限速桶的丢包日志。
攻击溯源
攻击溯源针对设备CPU的DOS攻击进行防御。通过对上送报文进行统计分析,将超过了配置阈值的报文视为用户攻击报文,并据报文信息找到攻击源用户、攻击源端口,并发送日志、告警告知管理员或直接进行惩罚。
其具体过程如下
报文解析:从IP地址、MAC地址以及端口三个维度对上送CPU的报文进行报文解析,其中端口通过“物理端口+VLAN”标识。
流量分析:根据IP地址、MAC地址或者端口信息统计接收到的协议报文数量。
攻击源识别:当单位时间上送CPU的报文数量超过了阈值时,则认为是攻击。
识别后处理:当检测到攻击后,会发送日志、告警通知管理员或者直接实施惩罚,如丢弃攻击报文。
攻击溯源原理
此外,攻击溯源还提供了白名单功能。将合法用户加入到通过白名单中,设备不对白名单内的用户报文进行溯源和攻击惩罚处理,从而保证合法用户的报文能够正常上送CPU处理。白名单可以通过ACL或端口灵活设置。
攻击防范
攻击防范是在进行所有报文统一限速之前,通过分析经过设备的报文的内容和行为,判断报文是否具有攻击特征,并根据配置对具有攻击特征的报文执行一定的防范措施。攻击防范主要包含畸形报文攻击防范、分片报文攻击防范、TCP SYN泛洪攻击防范、UDP泛洪攻击防范和ICMP泛洪攻击防范。
qq3250845
发表于 2023-6-13 11:20:51
SYN Flood
SYN Flood是互联网上最原始、最经典的DDoS(Distributed Denial of Service)攻击之一。它利用了TCP协议的三次握手机制,攻击者通常利用工具或者控制僵尸主机向服务器发送海量的变源IP地址或变源端口的TCP SYN报文,服务器响应了这些报文后就会生成大量的半连接,当系统资源被耗尽后,服务器将无法提供正常的服务。
增加服务器性能,提供更多的连接能力对于SYN Flood的海量报文来说杯水车薪,防御SYN Flood的关键在于判断哪些连接请求来自于真实源,屏蔽非真实源的请求以保障正常的业务请求能得到服务。
SYN Flood顾名思义就是用洪水一样的SYN报文进行攻击。SYN报文指的是TCP协议中的Synchronize报文,是TCP三次握手过程中的首个报文。让我们先来了解一个正常的TCP三次握手过程。
开始建立连接时,客户端发送SYN报文到服务器,等待服务器确认。SYN报文的源IP地址和端口是客户端的IP地址和端口。
服务器收到SYN报文,回应一个SYN-ACK(Synchronize-Acknowledgement)报文。SYN-ACK报文的目的P地址和端口是客户端的IP地址和端口。
客户端收到服务器的SYN-ACK报文,向服务器发送ACK报文,服务器收到ACK报文后完成三次握手,TCP连接建立成功。
在连接超时之前,服务器会一直等待ACK报文,此时该连接状态为半开放连接(也被称为半连接)。半连接会占用服务器的连接数,当连接数被占满时,服务器就无法提供正常的服务了。黑客正是通过这个机制来实现SYN Flood。
黑客通常通过伪造的源IP地址或端口,向服务器发送大量的SYN报文,请求建立TCP连接。由于源IP地址或端口是伪造的,服务器发送的SYN-ACK报文永远不会被真实的客户端接收和回应。极少数情况下,黑客也会使用真实源IP地址,但他们只是通过攻击工具发送海量SYN报文,工具并不会响应来自服务器SYN-ACK报文。无论如何,服务器都接收不到ACK报文,产生了大量的半连接。此时服务器需要维持一张巨大的等待列表,不停地重试发送SYN-ACK报文,同时大量的资源无法释放。当服务器被这些恶意的半连接占满时,就不会再响应新的SYN报文,从而导致正常的用户无法建立TCP连接。
如何识别和防御SYN Flood
SYN Flood的目的是占满服务器的连接数,消耗服务器的系统资源。对于服务器自身来说,最直接的做法就是提高服务能力,比如组建集群,升级硬件。但是这种方式成本巨大,且对于海量的攻击报文来说,并没有太大的作用,仅多撑几分钟甚至几秒而已。
所以,必须在这些攻击报文到达服务器之前就进行拦截。然而对于防火墙这类安全设备而言,SYN报文是正常的业务报文,防火墙的安全策略必须允许其通过,否则服务器就无法对外提供服务。如果能明确虚假源的IP地址,就能通过精细的安全策略阻止这些源发来的SYN报文。但是管理员无法预知哪些是虚假源。即使能分析出虚假源,也无法做到快速、自动地配置或取消安全策略来应对不可预期的攻击流量。
此时就需要Anti-DDoS系统的能力了,它部署在网络入口处,在服务器之前处理SYN报文,识别出虚假源,屏蔽来自这些地址的报文,只将合法的SYN报文传递给服务器。Anti-DDoS系统处理SYN报文主要有两种手段,源认证和首包丢弃。
源认证
Anti-DDoS系统拦截客户端发送的SYN报文,代替服务器向客户端发送SYN-ACK报文,如果客户端不应答,则认为该客户端为虚假源;如果客户端应答,则Anti-DDoS系统认为该客户端为真实源,并将其IP地址加入白名单,在一段时间允许该源发送的所有SYN报文通过,也不做代答。
首包丢弃
如果Anti-DDoS系统代替服务器应答了所有的SYN Flood攻击报文,那么性能瓶颈仅仅是从服务器转移到了Anti-DDoS系统而已。一旦Anti-DDoS系统的系统资源耗尽,攻击依旧会透传到服务器,而且大量反弹的SYN-ACK报文也会对网络造成一定的压力。Anti-DDoS系统利用首包丢弃来解决这个问题。
TCP协议的可靠性不仅体现在三次握手,还体现在超时与重传的机制。正常情况下客户端发送SYN报文后如果在一定时间没有收到服务器的SYN-ACK应答,客户端会重新发送SYN报文。Anti-DDoS系统会丢弃掉收到的第一个SYN报文。SYN Flood攻击时,黑客发送的绝大多数是变源的SYN报文,所有的SYN报文对于Anti-DDoS系统来说都是首包,都将被直接丢弃。如果客户端重传了SYN报文,Anti-DDoS系统再对该报文进行源认证。如此一来,大大减少了Anti-DDoS系统代答的压力。首包丢弃和源认证两种手段结合,对于防御SYN Flood(特别是不断变换源IP和源端口的虚假源攻击)非常有效。
qq3250845
发表于 2023-6-14 11:33:45
中国网络安全技术趋势分析
“对MSS和MDR这两个服务我们是非常坚定地看好,实际上开展相关业务的公司的经营效益也很好。”
“网络安全领域没有一放出来就能解决所有问题的'独门大招'。”
“在人类技术进步的过程中,提高自动化水平,减少对人力的消耗是我们追求的终极目标,尤其是在安全人员远远不足的当下,只有通过提高自动化和智能水平,才能减少对于人的消耗。”
——谭晓生
网络安全是在终端安全出现之后的第二个大市场,一直到现在它都是网络安全市场主要的收入构成部分。那么从防火墙到下一代防火墙,IPS、IDS、各种各样的全流量采集和分析设备、SDWAN/SASE这种服务模式的出现,到DNS安全的兴起、蜜罐的复兴……这些产品逐渐演化的过程中,技术是如何发展的?
首先,从最早防火墙的第三层检测和防护,发展到应用层(第七层)的检测与防护,这是第一个技术进步。第二,VPN正在面临升级和换代,零信任网络就是可以替代VPN的下一代的产品,下一代VPN产品就是基于零信任思想的网络安全控制手段。第三,在网络安全方面也存在由规则引擎到基于大数据AI引擎的技术变化。第四,过去防火墙都基于静态的本地规则去做,今天采用了协同联动和威胁情报去进行封堵。
#应用安全
应用安全过去大家讲的比较多的都是Web安全,除此之外,其实还有邮件安全、API安全等领域。应用安全上,WAF是一个存在了10多年的产品,长亭科技在WAF近些年的发展是一个很好的例子,在WAF这个红海市场里他开辟了一个新的体验点,主要是由WAF过去表达式的防护到基于语义分析的防护,效果可以说是做到了全球领先的水平,这是一个技术进步带动老产品更新很好的案例。
在最近两年API安全又开始被提出来, API的未来其实在今天还没有完全的被确定下来,API安全既可以用于解决攻防问题,也可以用来解决数据安全之类的合规问题。我个人预测API安全到未来的几年时间会具体的落地,具体会落到什么样的领域,解决什么样的问题,我们还需要拭目以待。
qq3250845
发表于 2023-6-15 10:48:05
语义分析非规则运算引擎,新一代安全防护体系,即将上线
高并发、高流量、数据量大、逻辑复杂,大流量网站如何实现有效的 Web 应用安全防护
Web 2.0时代,网络行为多元化发展,业务的发展和用户的增加对网站性能的要求进一步提高,任何一个环节的瓶颈都会影响网站系统业务正常运行,影响用户体验,进而造成巨大的经济损失。大流量网站面临着不可忽视的刚需。
智能语义分析算法,不使用传统规则库,准确率高、误报率低,攻击拦截性能强。
采用智能语义分析算法并结合机器学习技术,能够实现基于上下文逻辑的攻击检测,用算法的迭代改变规则防护现状,在降低误报率的同时,将攻击拦截性能提升至全新水平。
检测未知威胁,变被动防御为主动识别,基于攻击语言代码的理解,提取同类攻击原理,对未知威胁有天然的抵抗力。
全开放接口,汇聚多面防护可能。
精准威胁情报联动,事前预判攻击,事后分析溯源。TB级DDoS攻击防护,阻断恶意资源消耗。Open API,支持与SOC、SIEM、态势感知等产品协同联动。
适配多种应用场景,紧密贴合业务需求,有策略的逻辑访问控制,细粒化业务防护。
智能建模,贴合业务场景识别未知威胁,灵活可编程插件,满足差异化防护场景。
多维能力拓展,保护API,管理BOT请求,针对性API防护,有效应对微服务、物联网等场景下的安全问题。
BOT统一管理,保障业务运营及数据安全。
容器化系统架构,灵活可塑适配多种运行环境。轻松实现弹性扩展运行时耗能低,支持私有云、政务云、混合云等中国特色云化需求,适配集群架构、Kubernetes等多种使用场景,多样灵活部署支持软硬件/容器等多种形态,快速上线,灵活增减易用性强。
新语义分析非规则运算引擎,不让黑客越池半步,让网络安全由繁到简。
科技创新只有起点,没有终点!
页:
1
2
3
4
5
[6]
7
8
9
10
11
12
13
14
15