最近又有小伙伴的博客遭受攻击,杜老师曾是受害者之一,下面简单聊聊博客的常见攻击方式及防御手段,尽可能站在理论和实用角度分享,希望对小伙伴们有帮助!
之前和小伙伴聊过这个话题,在话题初我们谈到攻击原因。
站在商业角度,竞争企业之间可能存在攻击行为,就像杜老师之前的一家公司,就被同行公司攻击官网,导致活动期间网站无法访问。
那么对于我们这类的小站长,既无利益纠纷、也无个人恩仇,为什么我们成为了攻击目标。
说实话杜老师不太了解,讨论到最后时,只能说是一些人的无聊。也有些人怀疑是大厂的阴谋,通过流量耗损增加收费,虽说不无可能,但个人感觉没必要!
言归正传,首先聊到的是恶意代码。
这种攻击形式,主要针对动态博客。
动态博客不同的 URI 对应不同数据请求,而攻击者通过一些数据注入等方式将恶意代码传入,造成对网站数据库、源码,甚至服务器环境的篡改以及破坏,进而达到攻击目的。
静态博客用户也许注意恶意代码,毕竟服务器的服务环境也会存在漏洞,如被攻破也会导致服务器环境的篡改以及破坏。
杜老师使用宝塔面板专业版 Nginx 防火墙插件实现这类攻击防护,目前效果还是很不错的。如没有专业版,或是使用其它面板,还可自行安装防护模块实现效果,这里暂不做详细的介绍,如有需要可以留言探讨!
另外有小伙伴对网上的动态程序安全性做了个排序,大厂开源>商业程序>个人开源>破解程序。
需要说明的是,大厂开源是指如 WordPress 这种,源代码受全世界的使用者们监控,如果出现漏洞,会被第一时间发现并予修复;商业程序是指公司开发付费程序,这类程序为了企业的安全性,发布之前都会进行漏洞测试;个人开源可能由于作者疏忽,或是能力有限,导致存在漏洞,所以安全性差一些;破解程序并不代表一定会有漏洞,但一定是因为漏洞才可破解。
这里只是举了几种程序类型,主要是想提醒小伙伴们,不要轻易使用破解程序,请至官网获取相关源码!
拒绝访问一般通过 CC 或是 DDoS。
CC 攻击的原理就是攻击者不停发大量数据包给对方服务器造成服务器资源耗尽,直到宕机崩溃。
DDoS 攻击可以使很多的计算机在同一时间遭受到攻击,使攻击的目标无法正常使用,在进行攻击的时候,可对源 IP 地址进行伪造,这样就使得这种攻击在发生的时候隐蔽性很好,同时对攻击进行检测也是非常困难的。
实际两者都称为 DDoS 攻击,只是相比于 DDoS,CC 攻击可防御。
以上攻击都是直接作用于服务器,通过大量请求数据包使服务器无法响应正常的请求数据,进而导致服务器负载大,最终导致无法响应各种请求。
目前可通过防火墙一定程序防御 CC 类攻击,但对 DDoS 除了高防 IP 外暂无有效的防御手段。
杜老师的方式是尽可能隐藏服务器 IP,防止攻击者直接针对服务器,比较推荐套 CDN。
另外 DDoS 攻击时,攻击者也会有成本产生,所以一般情况攻击不会太久,对于小博来说遇到攻击关站即可,攻击结束后服务器也可自动恢复。
上面提到通过套 CDN 防止服务器 IP 泄露,防止 DDoS 类攻击,并不意味着就一劳永逸,因为还有针对 CDN 的攻击方式。
针对 CDN 的攻击较为单纯。因为 CDN 的节点较多,DDoS 成本大,且效果不明显,所以攻击者会针对 CDN 的运营成本进行攻击。
杜老师的小伙伴们被攻击的方式大多都是这种:CDN 被刷了大量流量。轻者耗尽套餐流量,重者导致账号欠费。
一般的 CDN 厂家并不提供数据清洗服务,有的也是属于付费功能,所以对于这种恶意行为,都会按照正常流量进行付费。
当然也有防御手段。通过几次攻击行为分析,发现这种攻击在产生时,都会在短时间产生大量流量请求,而这就需要带宽的支持。
可以通过 CDN 自带的带宽上限功能进行限制,当达到一定带宽时,直接停用 CDN 或进行回源,避免流量被刷导致经济损失。
杜老师曾分析过部分的攻击来源,一般攻击行为产生都是源自境外,可以通过 DNS 做境外独立解析,比如杜老师说境外解析至 Vercel。
文章最后分享一下杜老师的带宽阈值参考,目前杜老师说带宽上限是 10M,去不图床带宽上限是 20M。小伙伴们如有不同想法,也可在评论区留言,大家互相交流学习!