攻击事件简短分析|为什么恶意盗刷CDN/OSS/COS流量行为日益增加?

发布于 2020-04-24  545 次阅读


观前提示!请勿滥用评论,合理性意见可以提出,如辱骂/乱喷/人身攻击等,则可能被剥夺评论权,甚至被封禁!

由于此行为危害性较大,本文不再提供示例代码!

用此行为进行攻击严重违反《中华人民共和国网络安全法》,违法者必将受到法律的制裁!

本文适用于普遍现象,请勿谈论关于自己抓鸡/0成本DDoS平台等内容

#正文

前两天逛酷安的时候呢,看见这么一位兄台:

这个比我还惨,且最近我的友站也遭到了不同程度的盗刷流量,以下是我关于这种行为的个人观点。

传统的DDoS攻击实质上对个人站长造不成什么太大损失(你又不靠博客盈利,租服务器什么的,顶多让你心情郁闷),发动一次DDoS攻击均价百元(也有国外平台保底5G-10G的免费DDoS),而换来的只不过是对方网站机子封机几个小时(除非像上次我哪有一解封就再次被封机断断续续的封了一周),基本上对方不会有什么(经济)损失,而攻击者这边不论是自己抓鸡还是买的,都要付出精力和财产,显然是很亏的,对于CC更不用说了,起码普通DDoS如UDP Flood等按现在国内服务商的规则,基本都不打死也封机了,而CC的价格不比UDP Flood低,且不说在对方有waf的情况下能不能打死(量大或者对方机器配置低依然可以打死),这个更亏。

而刷流量这种行为,以国内常见价格OSS/COS/服务器按量付费带宽/EIP 0.8/G ,CDN 0.21/GB的出网流量算,一张500KB大小的图片,按每秒10次防止WAF封禁(有可能回源的情况下),一分钟可产生292.96875Mb流量,一小时就是17.1661377GB的出网流量,则COS/OSS/EIP/服务器按量付费带宽需要支付约13.7元,CDN需要支付约3.6元,一天(24小时算)即分别为328.8元和86.4元,别忘了静态资源一般不会回源,而真刷流量频率也不会这么低,甚至在半夜你睡着了开始刷,等你真的发现了被盗刷了已经损失惨重了!发动这种攻击只需要一台服务器,一台电脑,甚至是一张Linux卡片电脑(如Raspberry Pi等)。

你说Referer防盗链?这种低级防盗链破解只需要伪造Referer即可,这不是什么难事,如下图,还有可能带参数请求以刷你源服务器/回源流量(是的,某些CDN算的清清楚楚包括动静态请求http/s请求,是否回源等等等等。)

# 如何预防?

# 1.配置Referer防盗链

这个大部分CDN都有,源站服务器也可以配置,一般防盗链配置为:

www.你的域名.com

*.你的域名.com

如果纯加速静态资源建议开启/关闭“禁止空Referer请求/允许Referer为空请求”,Nginx配置在下面。

此方法仅针对低级萌新的攻击,更严格的防盗需求请研究鉴权时间戳防盗链。

尽量少使用如七牛等小CDN,加速效果不好,且七牛是月结,可能导致一个月后结账七牛直接来收你房子了。

# 2.Nginx配置规则

以下是本站目前正在使用的规则,按需自行(必须仔细阅读注释,否则可能会出现意外!)修改:

#安全相关设置
    #禁止非GET|POST请求
    if ($request_method !~* GET|POST) {
      return 444;
}
                #禁止网站解析压测工具,这条可以忽略
    if ($http_referer ~* "www.jsons.cn") {
      return 444;
}
#禁止Host非本站域名请求,请把自己域名替换
if ($host = !www.gymxbl.com){
   return 444;
}
#禁止敏感文件
location ~* \.(ini|docx|doc|log|data|jsp|asp|aspx|sql|zip|rar|c|py|ioi|psd|7z|tar.gz|gz|tar)$ { 
     return 403; 
}
#禁止空UA
if ( $http_user_agent = "" )  
{  
  return 444;  
} 
#禁止ApacheBeach压测工具
if ( $http_user_agent = "ApacheBeach/2.3" )  
{  
  return 444;  
}
#一招禁止大部分恶意请求,如果你不在乎那些旧浏览器的话,也一般没人用这种浏览器
if ( $http_user_agent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)
" )  
{  
  return 444;  
}
if ( $http_user_agent = "python-requests/2.23.0" )  
{  
  return 444;  
}
#获取阿里云CDN真实IP,如不知道Header头,可填x-forwarded-for或x-real-ip或咨询CDN服务商
real_ip_header X-Forwarded-For;
real_ip_recursive on;
set_real_ip_from 0.0.0.0/0;
#该请求头为了防止XSS
add_header                  Set-Cookie "HttpOnly";
add_header                  Set-Cookie "Secure";
add_header                  X-Frame-Options "SAMEORIGIN";
    #危险!如果你站尚未启用HTTPS,那么请勿删掉下一行的HSTS注释,这将导致你站在15768000秒内无法访问!
#add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload";
    #并发限制,如果你是宝塔用户且已经配置了并发限制请不要重复添加此条
limit_conn perserver 1000; #站点最大并发
limit_conn perip 10; #单IP最大并发
limit_rate 512k; #单IP最大请求的流量上限,单位KB
 #防盗链配置,域名请替换,文件可增加,如你是宝塔用户且已经配置防盗链请勿重复配置。
    location ~ .*\.(jpg|jpeg|gif|png|js|css)$
    {
        expires      30d;
        access_log /dev/null;
        valid_referers none blocked gymxbl.com www.gymxbl.com;
        if ($invalid_referer){
           return 444;
        }
    }
    #如果需要空Referer访问请使用下面这种,二选一,删除另外一种
    location ~ .*\.(jpg|jpeg|gif|png|js|css)$
    {
        expires      30d;
        access_log /dev/null;
        valid_referers gymxbl.com www.gymxbl.com;
        if ($invalid_referer){
           return 444;
        }
    }

# 3.寻求公安机关帮助

如果损失过大,建议寻求公安机关帮助,运用法律的武器保护自己的合法权益,使用该方法的攻击者均严重违反《中华人民共和国网络安全法》,受害的是你,不要畏惧他。

# 总结

此行为均严重违反《中华人民共和国网络安全法》,且按现在形式来看,未来很可能会代替DDoS成为网站建设者的头号威胁,难防难控,需要运营商处做出更好的防护。

# 正文补充内容 2020/4/24/22:13

仍有不少人使用免费的建站空间建站,大多是刚接触建站的萌新,这些免费空间多限制10-50GB/月的免费流量,刷满了也是会停的,对于一个萌新来说这个打击有多大不言而喻,所以希望有看到本篇文章的IDC所有者,遇到类似情况还请理解并协助萌新抵御攻击,能帮助一个萌新,日后就可能出现一个大佬。


努力学习ing