应用层拒绝服务攻击

DDOS简介 (Distributed Denial of Service)

常见DDOS攻击

  • SYN flood
    • 利用TCP协议设计缺陷
  • UDP flood
  • ICMP flood

SYN flood

过程
  • 首先伪造大量的源IP地址, 分别向服务器端发送大量的SYN包
  • 服务器返回SYN/ACK包
  • 因为原地址是伪造的, 所以伪造的IP并不会应答
  • 服务器端没有收到伪造IP的回应, 会重试3~5次并等待一个SYN time(一般为30秒至2分钟)
  • 如果超时则丢弃这个连接.

攻击者大量发送这种伪造源地址的SYN请求,服务器端将会消耗非常多的资源(CPU和内存)来处理这种半链接, 同时还要不断对这些IP进行SYN+ACK重试. 最后的结果是服务器无暇理财正常的连接请求, 导致拒绝服务.

对抗措施
  • SYN Cookie/SYN Proxy
    • 为每个IP地址分配一个"Cookie", 并统计每个IP地址的访问频率.
  • safereset

一般来说, 大型网站之所以看起来比较能"抗"DDOS攻击, 是因为大型网站的带宽比较充足, 集群内服务器的数量比较多.

应用层的DDOS

CC攻击(Challenge Collapasar)

  • 对一些消耗资源比较大的应用页面不断的发起正常的请求, 以达到消耗服务端资源的目的.
  • 入侵一个流量很大的网站后, 通过篡改页面, 将巨大的用户流量分流到目标网站.

解决方法

限制请求频率, 通过IP地址与Cookie定位一个客户端. 但是, IP地址和Cookie动态变化导致失效.

  • 应用代码做好性能优化:
    • 合理是使用memcache,将数据库的压力尽可能转移到内存中;
    • 及时释放资源, 比如及时关闭数据库连接, 减少空连接等消耗.
  • 网络架构做好优化:
    • 利用负载均衡分流, 避免用户流量集中在单台服务器上;
    • 充分利用CDN和镜像站点的分流,缓解主站的压力.
  • 实现一些对抗手段, 比如限制每个IP地址的请求频率.

验证码

验证码设计初衷是为了识别人与机器. 但是验证码如果设计的过于复杂, 那么人也很难辨识出来, 所以验证码是一把双刃剑.
有验证码就有验证码破解技术. 除了利用图像相关算法识别验证码之外, 还可以利用Web实现上可能存在的漏洞破解验证码.

  • 验证码消耗掉以后SessionID未更新, 导致使用原有SessionID可以一直重复提交同一个验证码.
  • 提前生成所有的验证码, 攻击者使用彩虹表.
  • 图像相关算法破解.

资源耗尽攻击

#####Slowloris攻击
原理: 以极低的速度网服务器发送HTTP请求, 恶意占用链接不释放, Web Server的所有链接都将被恶意链接占用, 从而无法接受新的请求, 导致决绝服务.

要保持住这个链接, RSnake构造了一个畸形的HTTP请求, 准确地说, 是一个不完整的HTTP请求.

Content-Length: 42\r\n

正常的HTTP包投中, 是以两个CLRF表示HTTP Headers部分结束. 由于Web Server只收到了一个\r\n, 因此将认为HTTP Headers部分没有结束, 并保持此链接不释放, 继续等待完整的请求. 此时客户端再发送任意HTTP头, 保持住链接即可. 当构造多个连接后, 服务器的连接数很快就会达到上限.

本质: 对有限资源的无限制滥用.

HTTP POST DOS

原理: 发送HTTP POST包时, 指定一个非常大的Content-Length值, 然后以很低的速度发包, 比如10~100秒发一个字节, 保持这个链接不断开.

解决: Web应用方法强或者一个定制的WebServer安全模块.

Server Limit DOS

Cookie也能造成一种拒绝服务.

ReDOS(正则)

互联网业务安全

账户是如何被盗的

途径

  • 网站某登录入口可以被暴力破解:
    • D(3)+R(3)+E(3)+A(3)+D(3)=15
  • 网站密码取回流程存在漏洞:
    • D(3)+R(3)+E(3)+A(3)+D(2)=14
  • 网站登录过程中无HTTPS, 密码在网络中被嗅探:
    • D(3)+R(3)+E(3)+A(1)+D(3)=13
  • 网站存在SQL注入等服务器漏洞, 网站被黑客入侵导致用户账户信息泄露:
    • D(3)+R(3)+E(2)+A(3)+D(1)=12
  • 用户被钓鱼网站所迷惑, 密码被钓鱼网站所骗取:
    • D(3)+R(1)+E(3)+A(2)+D(3)=12
  • 网站存在XSS等客户端脚本漏洞, 用户账户被简介窃取.
    • D(3)+R(2)+E(2)+A(2)+D(2)=11
  • 用户电脑中了木马, 密码被键盘记录软件所捕获:
    • D(3)+R(1)+E(2)+A(1)+D(1)=8

用户登录时的安全 > 网站实现上的安全漏洞 > 用户使用环境安全

#####被盗原因分析

  • 首先, 客服是最重要和直接的渠道.
    • 大胆假设, 小心求证.
  • 其次, 从日志中寻找证据.
  • 最后, 打入敌人内部, 探听最新动态.

互联网的垃圾

垃圾的危害

  • 垃圾注册几乎成为一切业务安全问题的源头.
  • 发广告
  • 宣传政治观点
  • 诈骗

垃圾处理

  • 识别
  • 拦截
    • 根据业务决定

优秀的垃圾识别算法

  • 基于内容的规则: 以自然语言分析、关键词匹配等为代表.
  • 基于行为的规则: 以业务逻辑规则为代表.
  • 基于客户端识别的规则: 以人机识别为代表, 比如验证码, 或者让客户端去解析JavaScript.

拦截上也要讲究策略和战术, 避免规则见光死.

上一篇:域内NAT、域间NAT技术及配置实验4.51


下一篇:Java面试系列之记一次小红书之旅