Published on

网络攻击中的常见方法

Authors

DoS & DDoS

DoS, Denial of Service, 又叫拒绝服务攻击,攻击者通过向服务器发送大量垃圾请求来占用大量服务器资源,从而达到瘫痪服务的作用。 DDoS, Distributed Denial of Service, 又叫分布式拒绝服务攻击,指攻击者使用2台及以上的设备进行DoS攻击。

DDoS攻击会利用多台被破坏的设备进行攻击流量的来源,其中IoT设备最容易被控制,也是DDoS攻击的主要流量来源。

应对方法

可以通过对请求进行过滤的方法来对DoS攻击进行防御,比如监测客户端的可疑行为(比如同一IP,同一地理位置, web浏览器版本在短时间内产生大量请求)来对攻击者的设备进行限制。

此外,还可以通过对服务器的性能进行优化的方式对抗DoS攻击,比如进行负载均衡,升级带宽等。但是这种方法效果不显著, 来自攻击者的流量非常大,这种程度的优化难以对抗动辄几十GB/s的攻击。

中间人攻击

MitM, Man-in-the-Middle, 指在客户端与服务器之间存在一个恶意中间人与服务器和客户端进行通信,但是双方并不知道中间人的存在, 此时中间人可以对信息进行拦截、修改(Modification Attack)和重放(Replay Attack)

信息拦截

如果不对信息进行加密,中间人可以十分容易的获取双方传送的信息,从而造成信息泄露。同时, 中间人可以切断客户端与服务器的通信,造成用户无法访问服务器的情况。

信息修改

在中国网络初期,大部分网络流量都通过HTTP协议进行,此时运营商(ISP)会自动在用户的网页中植入广告。虽然无伤大雅,但是此时ISP就是一个最大的中间人,对全体用户进行了中间人攻击。 攻击者在拦截通信数据后对其进行修改,然后将篡改后的数据发送给接收方,这就是Modification Attack

举一个严重一点的例子,当你在网上银行向别人转账的时候,此时攻击者劫持了你的路由器,成为了中间人。此时攻击者可以看到你向银行服务器发送的请求,于是他对这条信息进行了拦截,将其中的收款方改为自己的银行账户,造成用户经济损失。

应对方法

引入加密可以解决上面的两个问题,但是只有加密还不够,因为中间人完全可以在第一次交换密钥的时候,也就是还没有加密的时候对密钥进行修改。

非对称加密+数字签名

所以这里我们引入非对称加密+数字签名的办法,对公钥进行哈希,然后再用服务器私钥进行加密,最后将这个加密后的哈希与公钥明文一起发送出去,此时中间人就算修改了公钥,因为他没有服务器私钥,所以客户端发现解密后的哈希与计算得到的哈希并不相同。事实上,这就是HTTPS建立链接的方法。

重放攻击

还有一种比较特殊的攻击方法就是Replay Attack,因为攻击者现在既无法看到通信内容,也不能修改通信内容,就只能对通信的数量进行操作。

中间人通过缓存来自客户端的请求,过一段时间之后重新向服务器发送一次,这就构成了重放攻击。还是之前的例子,你在网上向别人转账的时候,中间人对转账请求进行了重放,此时你就会向对方多转几次同样金额的钱。

应对方法

可以通过对请求进行编号(或者时间戳)的方法来应对重放攻击,如果此时客户端与服务器的会话序号大于请求的序号,就忽略这一次的请求。