前言
# 0.前言
互联网并非一片净土,只要是在互联网上的服务,都有可能被攻击。
# 为什么会被攻击
没人知道为什么,可能是黑客觉得你的网站触动了他们的蛋糕,可能是无聊,还有可能是用于练习黑客技术等。
例如,鱼皮就经常被攻击,还列了一个《程序员之耻》的系列视频 (opens new window):
除了个人网站,GitHub、Google、亚马逊等大型公司的网站也都遭受过攻击,哪怕是游戏服务器,也有可能被攻击:
- GitHub 的公告:February 28th DDoS Incident Report - The GitHub Blog (opens new window)
- Google 的公告:How Google Cloud blocked largest Layer 7 DDoS attack yet, 46 million rps | Google Cloud Blog (opens new window)
- 求生之路(一款游戏):网络黑社会是怎么榨干《求生之路》最后一丝价值的? (opens new window),视频版点这里 (opens new window)
- .......
# 被攻击后的影响
当服务器被被攻击,会有很多很多的影响,例如系统可用性:
- 比如你做了一个博客,那么博客可能会挂掉,不可用;个人网站倒还好,一般影响不大;如果是企业的网站被攻击呢?这影响就可大可小了,例如 GitHub 被攻击时,响应速度会变慢,成千上万的用户就会受到影响。
- 游戏服务器:那么服务器被攻击的时候,几乎是玩不了的。
- 如果是涉及到交易类的系统,那么被攻击后可能会导致用户的损失,那麻烦就大了。
金钱上的损失:有些产品(例如 CDN)是可以欠费使用的,所以可能会导致巨额账单,例如鱼皮:没想到又被攻击了!赔了 1.5 万,我真服了!哔哩哔哩 (opens new window)。
# 常见的攻击手段和术语
DDOS:全称 Distributed Denial of Service(一般读作 D 的读音 + DOS 的读音,D-DOS)。DDOS 是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击。可以理解为黑客控制了很多台电脑,同时向你的服务器攻击。由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务攻击。
举个例子:我开了一家有五十个座位的重庆火锅店,由于用料上等,童叟无欺。平时门庭若市,生意特别红火,而对面二狗家的火锅店却无人问津。二狗为了对付我,想了一个办法,叫了五十个人来我的火锅店坐着却不点菜,让别的客人无法吃饭。
肉鸡:这里指肉鸡不是吃的那种,是中了木马,或者被一些人留了后门的电脑,这些电脑很容易成为被远程操控的机器。肉鸡可以是普通人的个人电脑,也可以是一家公司、企业、学校甚至是政府军队的服务器。当黑客进行 DDOS 的时候,黑客经常会用很多肉鸡来发动攻击。(用火锅店的例子来说就是:黑客操控了很多人去火锅店占位)
CC:全称 Challenge Collapsar,挑战黑洞,是 DDOS 攻击的一种类型,攻击者借助大量免费的代理服务器生成指向受害主机的合法请求,实现 DDOS 和伪装。每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC 就是模拟多个用户不停地进行访问那些需要大量数据操作(就是需要大量 CPU 时间)的页面,造成服务器资源的浪费,CPU 长时间处于 100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。
暴力破解:原理就是一个个去枚举用户名和密码字典,尝试是否能够登录。
端口扫描:端口就是服务器开放的服务窗口,如果把黑客入侵理解成抢银行的话,必须要有门进去,这个门就相当于端口,也就是说你开了某个服务,就要有一个对应的端口打开与另一台机器或者服务器进行交互。可以说扫描是攻击的前奏,扫描到漏洞入侵者才有机可乘。
一些基本的防护措施介绍(还是拿重庆火锅店举例):
- 高防服务器:我给重庆火锅店增加了两名保安,这两名保安可以让保护店铺不受流氓骚扰,并且还会定期在店铺周围巡逻防止流氓骚扰。高防服务器主要是指能独立硬防御 50Gbps 以上的服务器,能够帮助网站拒绝服务攻击,定期扫描网络主节点等。也有个别名叫盾机,指加了防护盾的机器。东西不错,就是贵
- 黑名单: 面对火锅店里面的流氓,我一怒之下将他们拍照入档,并禁止他们踏入店铺,但是有的时候遇到长得像的人也会禁止他进入店铺。这个就是设置黑名单,此方法秉承的就是“错杀一千,也不放一百”的原则,会封锁正常流量,影响到正常业务。
- CDN 加速:为了减少流氓骚扰,我干脆将火锅店开到了线上,承接外卖服务,这样流氓找不到店在哪里,也耍不来流氓了。在现实中,CDN 服务将网站访问流量分配到了各个节点中,这样一方面隐藏网站的真实 IP,另一方面即使遭遇 DDoS 攻击,也可以将流量分散到各个节点中,防止源站崩溃。
- DDOS 清洗:就是我发现客人进店几分钟以后,但一直不点餐,我就把他踢出店里。DDOS 清洗会对用户请求数据进行实时监控,及时发现 DOS 攻击等异常流量,在不影响正常业务开展的情况下清洗掉这些异常流量,让正常流量能发送到客户网站上。有些 CDN 会对该服务进行收费。
- 蜜罐技术:简单来说就是一个做个陷阱,专门吸引别人来进攻,以此来获取攻击者的信息。传统的网络防御技术都属于被动防御,难以有效应对攻击者随时随地发起的攻击和威胁,因此就出现了蜜罐这种技术。
DDOS 是一个古老但很有效的攻击手段,尤其是应对大流量的攻击更是需要时间来磨,防守同样需要大量的资金注入(比如流量和盾机都需要钱)。
# 如何提高网站的安全性
从几个方面入手:
- 提高服务器本身的安全性:例如 SSH 防护,反扫描
- 使用高防 CDN(防止国内攻击)
- 接入 CloudFlare(防护境外攻击):大部分的攻击都是来自境外的,没多少人敢用国内服务器进行大规模攻击。
- 更换 IP 并隐藏源站 IP
- 防止评论区插件泄漏源站 IP
- .............
本系列目前只讲个人的一些基础的防护,因为本博客是静态类的,主要是展示内容;对于企业级的项目,大部分有动态类的功能,还需要考虑 SQL 注入、XSS 攻击等。
题外话:笔者所在的公司,每年会定期找专业的第三方安全公司,专门对系统进行渗透测试。安全无小事。
# 参考
什么是 DDoS 攻击? 又拍云的回答 - 知乎 (opens new window)
网络安全之蜜罐是什么?有哪些不同的类型? (opens new window)
「网络安全」常见攻击篇(1)——暴力破解 (opens new window)