作者:hacker发布时间:2023-04-04分类:渗透网站浏览:256评论:5
DDoS攻击与对策
DDo(Distributed Denial of Service),即分布式拒绝服务攻击,是指黑客通过控制由多个肉鸡或服务器组成的僵尸网络,向目标发送大量看似合法的请求,从而占用大量网络资源使网络瘫痪,阻止用户对网络资源的正常访问。
从各安全厂商的DDoS分析报告不难看出,DDoS攻击的规模及趋势正在成倍增长。由于攻击的成本不断降低,技术门槛要求越来越低,攻击工具的肆意传播,互联网上随处可见成群的肉鸡,使发动一起DDoS攻击变得轻而易举。
DDoS攻击技术包括:常见的流量直接攻击(如SYN/ACK/ICMP/UDP FLOOD),利用特定应用或协议进行反射型的流量攻击(如,NTP/DNS/SSDP反射攻击,2018年2月28日GitHub所遭受的Memcached反射攻击),基于应用的CC、慢速HTTP等。关于这些攻击技术的原理及利用工具网上有大量的资源,不再赘述。
1.1 DDoS防御常规套路
防御DDoS的常规套路包括:本地设备清洗,运营商清洗,云清洗。
1.本地设备清洗
抗DDoS设备(业内习惯称ADS设备)一般以盒子的形式部署在网络出口处,可串联也可旁路部署。旁路部署需要在发生攻击时进行流量牵引,其基本部署方案如图18-1所示。
图18-1 ADS 设备部署方式
图18-1中的检测设备对镜像过来的流量进行分析,检测到DDoS攻击后通知清洗设备,清洗设备通过BGP或OSPF协议将发往被攻击目标主机的流量牵引到清洗设备,然后将清洗后的干净流量通过策略路由或者MPLS LSP等方式回注到网络中;当检测设备检测到DDoS攻击停止后,会通知清洗设备停止流量牵引。
将ADS设备部署在本地,企业用户可依靠设备内置的一些防御算法和模型有效抵挡一些小规模的常见流量攻击,同时结合盒子提供的可定制化策略和服务,方便有一定经验的企业用户对攻击报文进行分析,定制针对性的防御策略。目前国内市场上,主要以绿盟的黑洞为代表,具体可以访问其官网进一步了解。
本地清洗最大的问题是当DDoS攻击流量超出企业出口带宽时,即使ADS设备处理性能够,也无法解决这个问题。一般金融证券等企业用户的出口带宽可能在几百兆到几G,如果遇到十G以上甚至上百G的流量,就真的麻烦了,更别谈T级别的DDoS攻击了。
2.运营商清洗
当本地设备清洗解决不了流量超过出口带宽的问题时,往往需要借助运营商的能力了,紧急扩容或者开启清洗服务是一般做法,前提是要采购相应的清洗服务,而且一般需要通过电话或邮件确认,有的可能还要求传真。
运营商的清洗服务基本是根据netflow抽样检测网络是否存在DDoS攻击,而且策略的颗粒度较粗,因此针对低流量特征的DDoS攻击类型检测效果往往不够理想。再加上一些流程上的操作如电话、邮件、传真等,真正攻击到来时处理可能会更慢,需要重点关注。
值得一提的是中国电信的云堤服务,提供了“流量压制”和“近源清洗”服务,而且还提供了自助平台供用户操作,查看流量、开启清洗也非常方便。
3.云清洗
内容分发网络(Content Delivery Network,CDN)是指,通过在网络各处放置节点服务器,让用户能够在离自己最近的地方访问服务,以此来提高访问速度和服务质量。CDN主要利用了四大关键技术:内容路由,内容分发,内存存储,内容管理。更详细的技术原理可以参考中国电信研究院出版的《CDN技术详解》。
CDN技术的初衷是为了提高互联网用户对静态网站的访问速度,但是由于分布式、就近访问的特点,能对攻击流量进行稀释,因此,一些传统CDN厂商除了提供云加速功能外,也开始推出云清洗的服务,当然还有一些安全公司基于其自身优势进入云清洗市场。基本原理都一样,需要先在云端配置好相应的记录,当企业遭受大规模攻击时,通过修改其DNS记录将要保护的域名CNAME到云端事先配好的记录上,等待DNS生效即可。
使用云清洗需要注意以下几个问题:
1. -·云清洗厂商需要提前配置好相应记录。 ·DNS修改记录后,需要等待TTL超时才生效。
2. ·直接针对源IP的攻击,无法使用云清洗防护,还要依靠本地和运营商清冼。
3. ·针对HTTPS网站的防御,还涉及HTTPS证书,由此带来的数据安全风险需要考虑,市面上也有相应的Keyless方案{n1}。
由于国内环境不支持Anycast技术,所以不再赘述,如果有海外分支机构的网站需要防护,可以关注。
{nt1|其细节可以参考cloudflare公司博客上的文章,链接:[]()。
一些经验
结合笔者的一些经验,对DDoS防护落地做一些补充,仅供参考。
1.自动化平台
金融企业由于高可用要求,往往会有多个数据中心,一个数据中心还会接入多家运营商线路,通过广域网负载均衡系统对用户的访问进行调度,使之访问到最近最优的资源。当任何一条接入线路存在DDoS攻击时,能通过广域网负载均衡系统将该线路上的访问需求转移至其他互联网线路。在针对IP地址开展的DDoS攻击中,此方案能够有效保障正常客户的访问不受影响,为了实现快速切换,需要通过自动化运维平台来实现,如图18-2所示。
图18-2
线路调整一键应急配合必要的应知应会学习和应急演练,使团队成员都能快速掌握方法,在事件发生第一时间进行切换,将影响降到最小。接下来才是通知运营商进行清洗处理,等待流量恢复正常后再进行回切。
当某一个业务的IP受到攻击时,可以针对性地处置,比如一键停用,让正常用户访问其他IP;也可以一键开启清洗服务。
2.设备抗D能力
除了ADS设备外,还有一些设备也需要关注抗DDoS能力,包括防火墙、负载均衡设备等。
出于安全可控需求,金融企业往往会采用异构模式部署防火墙,比如最外层用产品A,里面可能会用产品B。假如产品A的抗DDoS能力差,在发生攻击时,可能还没等到ADS设备清洗,产品A已经出问题了,比如发生了HA切换或者无法再处理新的连接等。
在产品选型测试时,需要关注这方面的能力,结合笔者所在团队经验,有以下几点供参考:
1. ·某些产品在开启日志记录模块后会存在极严重的性能消耗,在可能存在攻击的环境内建议关闭。
2. ·尽管理论和实际会有偏差,但根据实际测试情况,还是建议当存在大量TCP、UDP新建连接时,防火墙的最大连接数越大越好
3. 多测试多对比,从对比中可以发现更优的方案,通过适当的调整优化引入更优方案。
4. ·监控防火墙CPU和连接数,当超过一定值时开始着手优化规则,将访问量多的规则前移、减少规则数目等都是手段。
负载均衡设备也需要关注以上问题,此外,负载均衡由于承接了应用访问请求分发调度,可以一定程度上针对性地防护基于IP速率、基于URL速率的DDoS攻击以及慢速攻击等。图18-3所示为F5的ASM的DDoS防护策略。
图18-3
负载均衡设备ASM防DDoS功能
请求经过防火墙和负载均衡,最后到了目标机器上处理的时候,也需要关注。系统的性能调优设置、Nginx的性能参数调整以及限制连接模块配置等,都是在实际工作中会涉及的。
3.应急演练
部署好产品,开发好自动化运维平台,还要配合必要的应知应会、应急演练才行。因为金融行业的特殊性,DDoS攻击发生的次数相比互联网行业还是少很多的,有的企业可能几年也碰不到一次。时间久了技能就生疏了,真正需要用到时,可能连登录设备的账号口令都忘了,又或者需要现场接线的连设备都找不到,那就太糟糕了。
此外,采购的外围的监控服务、运营商和云清洗产品的服务能力也需要通过演练来检验有效性。签订合同时承诺的秒级发现、分钟级响应是否经得起考验,要先在心里打上一个问号。建议在不事先通知的情况下进行演练,观察这中间的问题并做好记录,待演练完成后一并提交给服务商要求整改。这样的演练每年要不定期组织几次。
翻译总结于:《A Methodology for Penetration Testing Docker Systems》
文章从两个攻击模型进行分析,结合错误配置和已知漏洞对docker渗透测试进行总结归纳,并给出了一份docker渗透测试检查清单。
作者讨论了两种情况:在容器内和在容器外。在容器内部,攻击者会聚焦在逃逸隔离(即容器逃逸)。在容器外部,即宿主机上,攻击者还没有主机特权,这时候攻击者将会使用Docker(即Docker daemon攻击)来获得权限。
容器逃逸重点在攻击和绕过隔离和保护机制,其中又可分成两种:一种是从容器逃逸到主机(CVE-2017-7308),另一种是从容器逃逸到另一个容器获取其中数据。
作者从错误配置和安全漏洞两个角度对上述两个场景中的安全问题进行了梳理。漏洞问题是自身程序问题,错误配置更多的是用户使用问题。
前两个错误配置与在主机上执行的Docker Daemon有关,其他错误配置与从容器内执行的容器逃逸攻击有关。
(2)可读写的Docker Socket:一些管理员设置了所有用户的读写权限,给了所有用户Docker Daemon的权限,尽管用户不在docker group也能使用docker。
(3)setuid bit:系统管理员在docker二进制文件上设置setuid位。setuid位是Unix中的权限位,它允许用户运行二进制文件而不是其本身作为二进制文件的所有者。如果为docker二进制文件错误配置了setuid位,那么用户将能够以root身份执行docker。
(1)Container Escape Using the Docker Socket:如果/var/run/docker.sock作为volume挂载到容器上,那么容器中的进程可以完全访问主机上的docker。
(2)Sensitive Information:当容器可以访问/var/run/docker.sock时,用户可以查看现有容器的配置,其中可能包含一些敏感信息。
(3)Remote Access:如果没有配置docker API只监听本地主机,那么网络上的每个主机都可以访问docker,攻击者可以利用这种错误配置启动其他容器。
文章中列举了一些最近的且已完全公开的可能在渗透测试期间使用的bug。
(1)CVE-2019-16884
(2)CVE-2019-13139
(3)CVE-2019-5736
(4)CVE-2019-5021
(5)CVE-2018-15664
(6)CVE-2018-9862
(7)CVE-2016-3697
首先需要对目标系统执行侦查来收集数据,然后使用收集到的信息来识别弱点和漏洞。
(2)识别容器的操作系统(或者Docker镜像)
(3)识别主机操作系统:因为容器使用宿主的内核,所以可以使用内核版本来标识宿主信息,从而检测一些内核利用。
(4)读环境变量:环境变量是启动容器时与容器通信信息的一种方式。当一个容器启动时,环境变量被传递给它,这些变量通常包含密码和其他敏感信息。
(5)检查Capabilities:通过查看/proc/self/status来查看容器的内核功能。其中CapEff是当前功能的值,可以使用capsh工具从十六进制值获取功能列表。可以使用这个来检查是否有可以用来容器逃逸的功能。
(6)检查特权模式:如果容器以特权模式运行,它将获得所有功能,因此可以通过查看能力(0000003fffffffff是所有能力的表示)来检查是否以特权模式运行进程。
(7)检查volumes:卷中可能包含敏感信息,可以通过查看挂载的文件系统位置来查看。
(8)检查挂载的docker socket
(9)检查网络配置
(2)拥有docker使用权限的用户
(3)配置:/etc/docker/daemon或/etc/default/docker
(4)可获得的镜像和容器
(5)iptables规则:使用 iptables -vnL 和 iptables -t nat -vnL,可以看到默认表filter和nat的规则。所有关于docker容器的防火墙规则都在filter中的docker -user链中设置。
2018web渗透教程百度网盘免费资源在线学习
链接:
提取码: 5h3s
2018web渗透教程 解压密码:xindong
6.提权
5.正反向代理与端口转发
4.中间人攻击与抓包
3.工具 1.php编程 9.绕过安全狗全过程.rar 8.实战.zip 7.内网.zip
2.web安全基础.rar 编程.pptx
1.PHP编程.docx 9.return+引用函数.mp4 8.函数.mp4
标签:2018渗透工具
已有5位网友发表了看法:
访客 评论于 2023-04-04 20:19:47 回复
ocker。 (2)Sensitive Information:当容器可以访问/var/run/docker.sock时,用户可以查看现有容器的配置,其中可能包含一
访客 评论于 2023-04-05 01:09:25 回复
要等待TTL超时才生效。 2. ·直接针对源IP的攻击,无法使用云清洗防护,还要依靠本地和运营商清冼。 3. ·针对HTTPS网站的防御,还涉及HTTPS证书,由此带来的数据安全风险需要
访客 评论于 2023-04-05 04:11:28 回复
器的内核功能。其中CapEff是当前功能的值,可以使用capsh工具从十六进制值获取功能列表。可以使用这个来检查是否有可以用来容器逃逸的功能。 (6)检查特权模式:如果容器以特权模式运行,它将获得所有功能,因此可以通过查看能力(0000003fffffffff是所有能力的表示)来检查是否以特权模式
访客 评论于 2023-04-05 05:06:05 回复
绿盟的黑洞为代表,具体可以访问其官网进一步了解。 本地清洗最大的问题是当DDoS攻击流量超出企业出口带宽时,即使ADS设备处理性能够,也无法解决这个问题。一般金融证券等企业用户的出口带宽可能在几百兆到几G,如果遇到十G以上甚至上百G的流量,就真的麻烦了,更别谈T级别的DDoS攻
访客 评论于 2023-04-05 04:21:49 回复
LSP等方式回注到网络中;当检测设备检测到DDoS攻击停止后,会通知清洗设备停止流量牵引。 将ADS设备部署在本地,企业用户可依靠设备内置的一些防御算法和模型有效抵挡一些小规模的常见流量攻击,同时结合盒子提供的可定制化策略和服务,方便有一定经验的企业用户对攻击报文进行分