惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
H
Help Net Security
Last Week in AI
Last Week in AI
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
IT之家
IT之家
aimingoo的专栏
aimingoo的专栏
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
Google DeepMind News
Google DeepMind News
B
Blog
C
Check Point Blog
T
Tailwind CSS Blog
云风的 BLOG
云风的 BLOG
D
Docker
Recent Announcements
Recent Announcements
Vercel News
Vercel News
博客园 - 聂微东
阮一峰的网络日志
阮一峰的网络日志
MyScale Blog
MyScale Blog
The GitHub Blog
The GitHub Blog
Stack Overflow Blog
Stack Overflow Blog
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
月光博客
月光博客
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
B
Blog RSS Feed
The Register - Security
The Register - Security
V
Visual Studio Blog
F
Full Disclosure
Hugging Face - Blog
Hugging Face - Blog
T
Threat Research - Cisco Blogs
Latest news
Latest news
PCI Perspectives
PCI Perspectives
Cisco Talos Blog
Cisco Talos Blog
博客园 - Franky
D
DataBreaches.Net
A
Arctic Wolf
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
Google Developers Blog
P
Palo Alto Networks Blog
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
T
Tenable Blog
L
LINUX DO - 热门话题
Spread Privacy
Spread Privacy

陈少文的网站

巨变与机遇的未来十年 Kubernetes 平台管理软件压力测试方案 使用镜像部署 Hexo 静态页面 终于等到你 - GitHub 镜像仓库服务(ghcr.io) 一起来学 Go --(6)Interface 一起来学 Go --(5)Goroutine 和 Channel 什么是函数式编程 如何在 Kubernetes 集群集成 Kata 柯里化与偏函数 使用 PyGithub 自动创建 Label 软件产品是团队能力的输出 Helm 2 、Helm 3 比较 IoT 变现 Kubernetes 中的 DNS 服务 国内的 Helm 镜像源 Harbor 使用自签证书支持 Https 访问 DevOps 工具链之 Prow 如何使用 kfctl 安装 Kubeflow VS Code 无法下载 Go 插件的工具包 工程师更应具有服务精神 你不知道的 Docker 使用技巧 使用 Docker 运行 Tensorflow 论中国 什么是左移 如何清空 Git 仓库全部历史记录 一禅小和尚 有风吹过厨房 时间的玫瑰 如何在 CentOS 安装 GPU 驱动 开发 Tips(19) 使用 Velero 备份 Kubernetes 集群 Kubernetes Cheat Sheet 开发 Tips(18) 如何构建一个 Java 工程 开发 Tips(17) KubeSpray 安装 Kubernetes 报错 ip in ansible_all_ipv4_addresses 基于 Kubernetes 和 Jenkins 搭建自动化测试系统 在 Kubernetes 上动态创建 Jenkins Slave 使用 Jenkins 进行服务拨测 开发 Tips(16) Kubernetes 签发 Ingress 证书及日常故障运维 Kubernetes 中 Deployment 的基本操作 Kubernetes 中的证书 如何使用 KubeBuilder 开发一个 Operator Kubernetes 1.6.0 安装问题汇总 镜像管理工具 -- Harbor 开发 Tips(15) Docker 如何拉取镜像 开发 Tips(14) 使用 Helm 安装 harbor 开发 Tips(13) 使用 S2I 构建云原生应用 在 Kubernetes 中使用 emptyDir、hostPath、localVolume 开发 Tips(12) 开发 Tips(11) 代码质量分析工具 SonarQube 使用 Kubeadm 安装 Kubernetes 集群 一起来学 Go --(4)常用函数 Kubernetes 中的 Ceph Kubernetes 之 Volumes Kubernetes 之 Labels、Selectors 开发 Tips(10) 开源正在重构商业模式 Kubernetes 之网络 Kubernetes 之 API 使用 Helm 和 Operator 快速部署 Prometheus Kubernetes 复杂有状态应用管理框架 -- Operator Kubernetes 的包管理器 -- Helm 一起来学 Go --(3)Go Modules 如何一步一步地优化博客方案 kubectl 实用指南 Kubernetes 中的基本概念 搭建远程 Kubernetes 开发环境 大公司和小公司的 ToB 思路 开发 Tips(9) Go 入门指南 一起来学 Go --(2)数据与逻辑结构 如何预防 Web 富文本中的 XSS 攻击 django-xss-cleaner 云工作时代 一起来学 Go --(1)背景与特点 SaaS 开发团队的不同阶段 你不知道的 Git 使用技巧 输出既服务 微服务设计 继续奔跑 开发 Tips(8) 从账户安全到二次验证 Django 性能之数据库查询优化 Django 性能之分库分表 敏捷开发之研发流程 打造一致性的团队 开发 Tips(7) Pytest 进阶学习之 Mock PaaS 部署之 buildpack Go 开发配置 领域输出才是 PaaS 的核心竞争力 Pytest 入门学习 开发 Tips(6) 如何使用 Jenkins、Docker、GitLab 搭建 Django 自动化部署流程
DDoS 攻击入门
微信公众号 · 2017-02-24 · via 陈少文的网站

1. 什么是 DDoS

举个栗子,春节买票期间,高铁票一出,全国人民都向12306的服务器发送连接请求。然后,12306的服务器就会不响应或者较慢响应网页请求。这就构成了一次DDoS攻击。通过大量并发的请求,迫使目标服务受到影响,甚至终止。

DDoS攻击是通过利用服务器上的漏洞,或者消耗服务器上的系统资源(内存、硬盘等)、应用资源(连接表等)来达到目的。能发动DDoS攻击的不只有僵尸网络,专业的DDoS工具也可以进行DDoS攻击。 DDoS相对于DoS攻击,主要体现在分布式上。DDoS常常不是由一个主机发起,而是由大批量的主机同时发起,比如一个僵尸网络。这种方式,模拟正常的访问请求,给防御DDoS攻击增加了不少难度。而近年来,随着DDoS攻击的工具化,僵尸网络越来越大而多,不少著名企业遭受了DDoS攻击。

2. DDoS常用工具

2.1 Hping、PenTBox和Zarp

  • Hping常用功能包括网络压力测试、防火墙测试、端口扫描。
  • PenTBox主要是帮组安全人员对网络、系统的安全性和稳定性进行测试,提供密码算法工具、网络工具(压力测试、溢出攻击),web安全测试工具。
  • Zarp是采用Python编写的开源网络攻击测试集成工具,集多种嗅探、DoS攻击压力测试于一身。

2.2 卢瓦(LOIC)

LOIC,低轨道离子炮是一个最受欢迎的DOS攻击工具。 这个工具被去年流行的黑客集团匿名者用于对许多大公司的网络攻击。 下载卢瓦LOIC: http://sourceforge.net/projects/loic/

2.3 XOIC

XOIC是另一个不错的DOS攻击工具。它根据用户选择的端口与协议执行DOS攻击任何服务器。XOIC开发者还声称XOIC比上面的LOIC在很多方面更强大呢。
一般来说,该工具有三种攻击模式,第一个被称为测试模式,是非常基本的; 第二个是正常的DOS攻击模式; 最后一个是带有HTTP / TCP / UDP / ICMP消息的DOS攻击模式。 下载XOIC: http://sourceforge.net/projects/xoic/

2.4 HULK

HULK是另一个不错的DOS攻击工具,这个工具使用某些其他技术来避免通过攻击来检测。它有一个已知的用户代理列表,且使用的是随机请求。在这里下载HULK: http://packetstormsecurity.com/files/112856/HULK-Http-Unbearable-Load-King.html

3 DDos攻击的分类

3.1 FLOOD攻击

  • ICMP FLOOD。ICMP是TCP/IP协议族的核心协议之一。它用于在TCP/IP网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。攻击者使用受控主机向被攻击目标发送大量的ICMP/IGMP报文,进行洪水攻击以消耗目标的带宽资源。现在这种方法已不多见,被攻击目标可以在其网络边界直接过滤并丢弃ICMP/IGMP数据包使攻击无效化。
  • UDP FLOOD。UDP是一种面向无连接的传输层协议,主要提供面向事务的简单不可靠信息传送服务。攻击者通过向目标发送数据包,以消耗宽带资源达到目标。有两种数据包,小包UDP64字节大小,能够增大网络设备处理数据包的压力,造成处理速度的缓慢和传输延等拒绝服务的效果。大包是指1500字节以上的数据包,超过以太网最大传输单元。大包,能有效占用网络接口的传输宽带,迫使攻击目标接收到UPD数据时,进行分片重组,拥塞网络,延迟服务器响应。
  • TCP FLOOD。TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。攻击者,发送大量TCP连接占满攻击目标的连接表,从而迫使目标拒绝服务,以此达到目的。
  • SYN FLOOD。不断向服务器发送连接请求(TCP SYN请求),速度高达每秒150次。服务器忙于应对这些请求,从而无法回应正常的用户。此外,攻击者还可以采用随机伪造源地址的方式。一方面,这使得攻击来源难以追踪;另一方面,随机的源地址也使得过滤和阻断攻击变得非常困难。SYN攻击,占据DDoS攻击的三分之一以上。
  • RST FLOOD。这种方式,借助于TCP连接是通过带有FIN标识报文的四次握手来切断客户端与服务器的TCP连接的。但是,一旦出现意外,无法完成四次握手,就会使用RST报文来强制中断。RST攻击,就是通过伪造带有RST标识位的TCP报文,强制中断客户端与服务器的TCP服务的。
  • SSL FLOOD。SSL攻击的方式主要是消耗攻击目标的CPU资源,以此迫使目标停止响应。攻击者在进行SSL连接并握手之后,不断地进行秘钥重新协商过程。
  • HTTP FLOOD。攻击者利用大量的受控主机不断地向Web服务器恶意发送大量HTTP请求,要求Web服务器处理,占用服务器资源。造成其他用户无法得到响应。

3.2 反射攻击

采用通常的FlooD攻击,攻击源可以被定位。反射攻击的方式是通过修改数据包(通常是UPD,ACK等,无需握手认证的包)源IP实现的。首先向受控主机发送大量数据包,目的IP为反射器(服务器、路由器等网络设备),源IP地址为攻击目标的IP。反射器收到数据包,以为攻击目标请求数据,于是返回大量数据响应,消耗攻击目标的宽带资源。

3.3 放大攻击

放大攻击的思路是,发送较小的数据请求包m,返回较大的响应数据包M,从而成倍的消耗攻击目标的宽带资源,放大倍率size(M)/size(m)。常见的有DNS放大攻击,攻击者发送DNS的查询请求包只有60字节左右,而返回的响应包却高达3000字节,可以获得放大50倍的效果。相同的,还有NTP放大攻击,发送时间同步请求。

3.4 Sockstress 攻击

Sockstress在客户端与服务器建立连接后,设置TCP窗口大小为0,或者一个很小的值。攻击目标会不断探测客户端TCP窗口变化,以此保存连接,消耗连接表。从而达到拒绝服务的目的。

3.5 慢速攻击

慢速攻击采取的策略是,长期占用连接资源,以此消耗目标的应用资源。POST

4. 预防的手段

由于DDoS分布式的特点,很难通过单一特征识别出,发起攻击的主机。防御DDoS攻击可以采取多种方法并行的方式,会有较好的效果。DDoS的防御主要分为三个部分,一个DNS,一个是网络,一个是应用。由于现在DNS主要依靠第三方,针对DNS服务器的攻击影响甚广,第三方DNS服务商常常都非常重视DDoS攻击,做了充足准备。针对网络的攻击,主要是消耗网络带宽。还有一种是针对应用服务器,这种攻击主要是消耗服务器的CPU、内存、数据库连接数等软硬件资源,来达到目的。

  • CDN
    可以保证静态页面不受影响。在页面中,绑定单独域名,通过CDN网络分发静态文件,可能是个不错的选择。能显著提高并发请求量。如果可以的话,将主页设置为静态页面,可以显著提高抗DDoS攻击的能力。
  • 拼带宽
    由于大部分的DDoS具有时间短、流量大的特点,在爆发DDoS的时间段,可以动态的购买大量的带宽,以增加宽带对抗攻击。花费一定数量的钱,避免企业形象受损、提供持续服务,是件性价比不错的事。
  • 流量清洗
    检查访问请求的一些信息,通过设置过滤条件,有选择性的服务。比如,屏蔽掉某些IP的访问。
  • 负载均衡
    将不同的访问来源,分发到不同的服务器上,以此增强服务的可用性。
  • AnyCast
    Anycast技术是一种网络寻址和路由方法。通过使用Anycast, 一组提供特定服务的主机可以使用相同的 IP地址, 同时,服务访问方的请求报文将会被IP网络路由到这一组目标中拓扑结构最近的一台主机上。几乎全部的互联网根域名服务器都部署了Anycast。使用 Anycast技术能够稀释分布式拒绝服务攻击流量, 在Anycast寻址过程中. 流量会被导向网络扑结构上最近的节点, 在这个过程中, 攻击者并不能对攻击流量进行操控,因此攻击流量将会被分散并稀释到最近的节点上,每一个节点上的资源消耗都会减少,因为高防服务器主要是作用在节点上,通过这样的设计能够有效降低高防服务器的压力。

5. 参考