常见 Web 安全攻防总结( 六 )

  • 严格限制对外开放的服务器的向外访问 。
  • 运行端口映射程序或端口扫描程序,要认真检查特权端口和非特权端口 。
  • 关闭不必要的服务 。
  • 认真检查网络设备和主机/服务器系统的日志 。只要日志出现漏洞或是时间变更,那这台机器就可能遭到了攻击 。
  • 限制在防火墙外与网络文件共享 。这样会给黑客截取系统文件的机会,主机的信息暴露给黑客,无疑是给了对方入侵的机会 。
  • 加钱堆机器 。。
  • 报警 。。
  • 应用层 DDoS应用层 DDoS 攻击不是发生在网络层,是发生在 TCP 建立握手成功之后,应用程序处理请求的时候,现在很多常见的 DDoS 攻击都是应用层攻击 。应用层攻击千变万化,目的就是在网络应用层耗尽你的带宽,下面列出集中典型的攻击类型 。
    CC 攻击
    当时绿盟为了防御 DDoS 攻击研发了一款叫做 Collapasar 的产品,能够有效的防御 SYN Flood 攻击 。黑客为了挑衅,研发了一款 Challenge Collapasar 攻击工具(简称 CC) 。
    CC 攻击的原理,就是针对消耗资源比较大的页面不断发起不正常的请求,导致资源耗尽 。因此在发送 CC 攻击前,我们需要寻找加载比较慢,消耗资源比较多的网页,比如需要查询数据库的页面、读写硬盘文件的等 。通过 CC 攻击,使用爬虫对某些加载需要消耗大量资源的页面发起 HTTP 请求 。
    DNS Flood
    DNS Flood 攻击采用的方法是向被攻击的服务器发送大量的域名解析请求,通常请求解析的域名是随机生成或者是网络世界上根本不存在的域名,被攻击的DNS 服务器在接收到域名解析请求的时候首先会在服务器上查找是否有对应的缓存,如果查找不到并且该域名无法直接由服务器解析的时候,DNS 服务器会向其上层 DNS 服务器递归查询域名信息 。域名解析的过程给服务器带来了很大的负载,每秒钟域名解析请求超过一定的数量就会造成 DNS 服务器解析域名超时 。
    根据微软的统计数据,一台 DNS 服务器所能承受的动态域名查询的上限是每秒钟 9000 个请求 。而我们知道,在一台 P3 的 PC 机上可以轻易地构造出每秒钟几万个域名解析请求,足以使一台硬件配置极高的 DNS 服务器瘫痪,由此可见 DNS 服务器的脆弱性 。
    HTTP 慢速连接攻击
    针对 HTTP 协议,先建立起 HTTP 连接,设置一个较大的 Conetnt-Length,每次只发送很少的字节,让服务器一直以为 HTTP 头部没有传输完成,这样连接一多就很快会出现连接耗尽 。
    应用层 DDoS 防御
    • 判断 User-Agent 字段(不可靠,因为可以随意构造)
    • 针对 IP + cookie,限制访问频率(由于 cookie 可以更改,IP 可以使用代理,或者肉鸡,也不可靠)
    • 关闭服务器最大连接数等,合理配置中间件,缓解 DDoS 攻击 。
    • 请求中添加验证码,比如请求中有数据库操作的时候 。
    • 编写代码时,尽量实现优化,并合理使用缓存技术,减少数据库的读取操作 。
    • 加钱堆机器 。。
    • 报警 。。
    应用层的防御有时比网络层的更难,因为导致应用层被 DDoS 攻击的因素非常多,有时往往是因为程序员的失误,导致某个页面加载需要消耗大量资源,有时是因为中间件配置不当等等 。而应用层 DDoS 防御的核心就是区分人与机器(爬虫),因为大量的请求不可能是人为的,肯定是机器构造的 。因此如果能有效的区分人与爬虫行为,则可以很好地防御此攻击 。
    其他 DDoS 攻击发起 DDoS 也是需要大量的带宽资源的,但是互联网就像森林,林子大了什么鸟都有,DDoS 攻击者也能找到其他的方式发起廉价并且极具杀伤力的 DDoS 攻击 。
    利用 XSS
    举个例子,如果 12306 页面有一个 XSS 持久型漏洞被恶意攻击者发现,只需在春节抢票期间在这个漏洞中执行脚本使得往某一个小站点随便发点什么请求,然后随着用户访问的增多,感染用户增多,被攻击的站点自然就会迅速瘫痪了 。这种 DDoS 简直就是无本万利,不用惊讶,现在大站有 XSS 漏洞的不要太多 。
    来自 P2P 网络攻击
    大家都知道,互联网上的 P2P 用户和流量都是一个极为庞大的数字 。如果他们都去一个指定的地方下载数据,成千上万的真实 IP 地址连接过来,没有哪个设备能够支撑住 。那 BT 下载来说,伪造一些热门视频的种子,发布到搜索引擎,就足以骗到许多用户和流量了,但是这只是基础攻击 。


    推荐阅读