偶遇DDoS攻击-江湖厮杀之一波三折

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 偶遇DDoS攻击-江湖厮杀之一波三折
+关注继续查看

序言

3天前网站遭遇DDoS攻击,持续时间10分钟左右,时间较短最后不了了之,然而,昨天下午出现了持续较久的攻击,对此不得不做出反击,本文第一次尝试将以小说的形式来分享一下被攻击经历。


初遇DDoS?

人在公司坐,锅从天上来。昨天下午刚从门派会议结束出来,网站客服小妹就匆忙过来说:网站出现问题了,很卡,有时还访问不了。我打开网站访问一下,访问不了,再看了一下预警系统,也给钉钉发送了多条预警信息,果真出问题了。结合着2天前也出现了这种情况,知道这是黑客通过第一次试探之后,现在正式发起猛烈攻击了。

迎接挑战

由于是公司的一个社区网站,访问量也不高,高层的意见是不再增加人手去开发拓展新功能,维持网站正常运行即可,所以网站是搁浅了一年多,指派了我来维护,对于以往的一些配置并没有过多的了解。按照道理,一个小网站并没有什么攻击价值,但是却出现了多次相同的攻击事件。也许是公司对手的搞事情,因为以前出现过挖人才事件。我知道对于这次攻击,并不能再像以前那样放任不管了,不然以后还会出现相同的事情,是时候迎接挑战了。

初次交锋

对方攻击在持续进行中。对于这样的情况,首先到了服务器的云监控控制台中观看整体情况。发现网络流出率与网络流量还有TCP连接数均很高用神器XShell连接到该服务器 使出free -m命令

free -m

16667f873586f95f~tplv-t2oaga2asx-zoom-in-crop-mark_4536_0_0_0.png

并未发现有内存溢出情况 再使出一招top -c查看CPU使用情况与进程

top -c

这时发现连接控制台就非常卡了,没有完整展示出来

对于这样的情况再使出一招ps -ef | grep nginx查看nginx的进程号

ps -ef | grep nginx

16667f749b6a8ecd~tplv-t2oaga2asx-zoom-in-crop-mark_4536_0_0_0.png然后再使用一招 kill -9 [pid]强制性把痛点nginx给切掉了

kill -9 8625 25610

这时再往云监控控制台观察发现所有的指标都开始恢复正常了

再次启动nginx

./nginx -c /usr/local/nginx/conf/nginx.conf

发现各项指标又开始飙升,对方是不肯收手啊

对此再使出一招 tail -f access.log查看nginx日志(该图是刚截的,当时没有截图)

tail -f access.log

16667f749e591fb0~tplv-t2oaga2asx-zoom-in-crop-mark_4536_0_0_0.png终现敌踪通过日志发现有几个地址被大量访问GET /sw_db_pics/5bbe05a9e4b087bd13ca362c通过分析,知道这是一个图片链接,是早期其他开发人员配置的图片访问地址,知道了这个就好办了,对方竟然根据图片没设防盗链进行攻击导致TCP访问量大增。

再次出击通过 vi nginx.conf命令

vi /usr/local/nginx/conf/nginx.conf

找到了以下代码:

location /sw_db_pics/ {
 ……
}

使出一招过滤防盗链,增加代码如下:

location /sw_db_pics/ {
  valid_referers xxx.com;
  if ($invalid_referer) {
           return 403;
  }
……
}

过滤掉了非指定网站进来的连接统一返回403错误,这时再重启一下nginx

./nginx -t
./nginx -s reload

再次查看日志

16667f749e591fb0~tplv-t2oaga2asx-zoom-in-crop-mark_4536_0_0_0.png

发现非正常访问的连接都返回了403代码 网站访问一下,可以正常访问了,图片也正常显示,这回算是解决问题了吧,当然也可以通过过滤IP这种形式来解决,只是这样很容易造成误伤后果。

坑爹的微信(误伤)

本以为刚才的操作能够解决问题了,我也可以到茶水间去喝杯82年的咖啡压压惊,叫了网站客服小妹再试一下网站是否正常。发现PC端网站没有问题,但是微信公众号端却出现图片无法访问的情况。公司的网站做了PC版跟微信版的。 在次到nginx上查看日志发现微信端进入的网站在日志里的UA竟然没有带域名,再把微信端的网址在PC浏览器上访问一下发现是可以正常显示图片的,难道微信内置浏览器是使用了代理的吗?referer竟然是空的,当然自己也没去研究过微信的内置是怎么实现的,有空可以去研究一下。这样对于刚才的一顿操作算是失败了。

再次交锋

既然不能通过这样的设置,只能再找别的办法了。通过日志分析,该攻击方式很有特点,浏览器的内核竟然都是Dalvik/2.1.0(谷歌的Android虚拟机) 或者 WeChat/6.7.2.34(微信的)

这样就可以通过过滤特定的浏览器来达到拦截效果 接下来使出一招查看UA攻击的情况

tail -n 10000 /usr/local/nginx/logs/access.log | awk -F\" '{A[$(NF-1)]++}END{for(k in A)print A[k],k}' | sort -n | tail

16667f749a5fa887~tplv-t2oaga2asx-zoom-in-crop-mark_4536_0_0_0.png这样就可以拦截对应的不正常的浏览器内核了

nginx对应位置修改如下:

location /sw_db_pics/ {
  valid_referers none blocked xxx.com;
  if ($invalid_referer) {
           return 403;
  }
  if ($http_user_agent ~* (Dalvik/*|\-|WeChat/*|Alexa\ Toolbar|Sogou\ web|Semrushbot|Scrapy|Curl|HttpClient)) {
           return 403;
  }
……
}

再次重启nginx,发现PC端网站与微信端网站都能正常访问了,这算是短暂的胜利了吧!

安全提升

通过这次攻击经历,其实网络并不是想象中那样安全,看似平静,实质上波涛汹涌。对于DDoS攻击,尽量多做一些安全性设置,比如:云监控设置报警阈值,nginx隐藏版本防止已知漏洞被利用,设置IP白名单、设置缓存、设置IP连接数、并发量等等

下次再战

对于这次短暂的交锋,自身对安全意识有一定的提升,接下来可能还会有各种各样的攻击出现,希望自己能够接住考验哈~

第一次这样写文章,也算是缓解一下情绪吧,好了下班了,喝杯82年的雪碧压压惊

相关文章
|
26天前
|
云安全 负载均衡 安全
掌握抗DDoS攻击,守护网络服务无懈可击!
抗DDoS攻击是一种防御措施,旨在保护网络服务免受分布式拒绝服务(DDoS)攻击的影响。DDoS攻击是一种常见的网络攻击,通过发送大量无用的请求来耗尽网络资源,从而使得合法用户无法访问受攻击的网络服务。
21 0
|
29天前
|
网络安全
|
2月前
|
网络安全
关于最近很火的”DDOS”攻击
什么叫DDOS攻击? DDoS攻击,全称Distributed Denial of Service Attack,即分布式拒绝服务攻击,是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。 DDoS攻击利用分布式网络来发起大量的请求,导致目标服务器或网络资源的过载,从而使其无法正常处理请求,使目标系统瘫痪,无法正常提供服务。攻击者通常会利用多个计算机或设备的协同攻击来进行DDoS攻击,这些计算机或设备被称为“僵尸机器”。
|
2月前
|
缓存 监控 安全
Django防止DDOS攻击的措施
Django防止DDOS攻击的措施
|
3月前
|
网络协议 网络安全
什么是 DDos 攻击?
什么是 DDos 攻击?
|
4月前
|
监控 网络安全
DDOS攻击成本高昂,与防御成本紧密相连110.42.2.1
DDOS攻击成本高昂,与防御成本紧密相连110.42.2.1
|
4月前
|
监控 网络协议 安全
DoS和DDoS攻击
DoS和DDoS攻击
366 0
|
5月前
|
机器学习/深度学习 算法 物联网
【DDoS攻击检测】基于改进的非洲秃鹫优化算法和一种新的DDoS攻击检测传递函数的特征选择方法(Matlab代码实现)
【DDoS攻击检测】基于改进的非洲秃鹫优化算法和一种新的DDoS攻击检测传递函数的特征选择方法(Matlab代码实现)
|
5月前
|
安全 网络安全 数据安全/隐私保护
通俗易懂的告诉你什么是DDoS攻击?
本文通过一系列漫画图片给大家做了生动的演示
44 0
通俗易懂的告诉你什么是DDoS攻击?
|
6月前
|
安全 网络安全 CDN
被ddos攻击了怎么办和有效解决方案
阿里ddos高防能不能抗住攻击 是部分担心遭到DDOS攻击的用户比较关心的问题,遭遇到DDoS攻击是很多用户非常烦恼的事情,业务一旦遭到DDOS攻击很容易导致业务无法访问而又难以解决,下面我们一起看看!
相关产品
云迁移中心
推荐文章
更多