DDoS、CC,网站被攻击怎么办?
不少站长们苦心经营自己的网站,眼看着流量上涨,正准备能赚点奶茶钱,网站就被攻击了。更别说企业的站点,尤其是涉及交易、用户敏感信息的电商、金融、游戏等网站,容易因为高额利润、商业竞争等原因被黑客盯上。 一旦被攻击,可能会导致网站无法访问,辛苦积攒的用户飞了,严重的还会影响重要的交易、被盗取数据、被引流至非法网站,甚至受到黑客的删库勒索。不仅觉睡不好,还要承受钱财、形象等的损失。 今天,D妹带大家一起来了解下,网站一般会受到哪些攻击?我们又应该如何对网站进行保护?
DDoS攻击
■ DDoS攻击是什么?
DDoS攻击(Distributed Denial of Service Attack,分布式拒绝服务攻击)是一种历史悠久、让各位站长吃尽苦头的网络攻击方式。 黑客通过控制大量的僵尸网络同时向目标服务器发送大量的请求,以消耗服务器的资源,导致服务器无法正常响应合法用户的访问请求。这个攻击就好比一群捣蛋鬼来了餐厅,光占座不点餐,搞到其他真正要吃饭的顾客没办法点餐,餐厅就此错失了客户与收入。 黑客会先通过木马、蠕虫等恶意程序去感染大量设备,这些设备可能是服务器、个人电脑、手机、甚至物联网设备等等,当然有钱的黑客还能直接采购大量设备,把它们变成“肉鸡”,指挥它们对目标服务器发起进攻。 当目标服务器的带宽、CPU被大量占用,甚至宕机,那么运行在服务器的应用程序/网站就无法访问了。 一般“肉鸡”们会集中攻击网络通信系统七层的其中一层,因此就衍生出DDoS攻击的多种方式,包括大家比较熟悉的SYN洪水攻击、UDP洪水攻击等。
由于篇幅有限,D妹就来讲下与DNS比较相关的DDoS攻击 —— DNS洪水攻击、DNS放大攻击。
DNS洪水攻击(DNS Flood Attack),有点特别,它不是攻击目标服务器,而是攻击DNS服务器。
黑客控制“肉鸡”对DNS服务器发起大量的解析请求,将DNS服务器的资源耗尽,用户输入域名时就无法解析出IP地址,最终导致应用程序/网站无法访问。
DNS放大攻击(DNS Amplification Attack),就是利用DNS的放大效果攻击目标服务器。 黑客将自己的IP伪造为目标服务器IP,不断向DNS服务器发起解析请求,DNS服务器响应请求并返回解析结果给目标服务器。由于DNS的运作原理,黑客用某些手段让DNS尽可能大响应,因此DNS服务器的应答数据包是请求包的数十倍或数百倍,导致目标服务器容易被大量的响应淹没,从而资源耗尽,正常用户无法访问。这招可谓“借刀杀人”,四两拨千斤。
这些被利用的DNS服务器一般是开放的DNS服务器,站长们还不好做点啥,要根治还是需要提供DNS服务器的互联网服务提供商(ISP)过滤伪造IP的流量,避免被利用。
■ 如何应对DDoS攻击?
1、针对DNS洪水攻击,可以使用DNS安全防护服务,例如我们DNSPod的DNS安全防护套餐,最高可以承受1亿QPS,也就是每秒1亿次查询请求,DNS服务器即使遭到攻击也很难耗尽资源。(详情也可以查看公众号第二篇推文)
针对其他类型的DDoS攻击,目前比较主流的应对方法是在自己的终端加强防护:
2、在自己的服务器使用DDoS防护服务,例如腾讯云轻量应用服务器Lighthouse就提供了DDoS高防保险,当然你也可以选购更高规格的DDoS防护套餐。
3、通过内容分发网络(CDN)、负载均衡等将流量分发到各个地方,缓解被攻击时的高峰流量,减轻资源被耗尽的风险。 4、部署智能全局流量管理(IGTM),自动监控IP的健康状况,IP被攻击不幸故障时,可以自动切换到备用IP,保障网站运行的连续性。 5、部署Web应用防火墙(WAF),主要用来防御应用层的DDoS攻击,能够有效识别并阻止恶意请求。
CC攻击
■ CC攻击是什么?
CC攻击(Challenge Collapsar Attack)是DDoS攻击的一员,专门针对应用层。也就是其他DDoS攻击会攻击更底层的服务器,而CC攻击是攻击能直接看得到的应用程序/网站。 黑客通过控制“肉鸡”或代理服务器模拟正常用户行为,大量请求服务器上的资源,尤其是需要较长时间计算或数据库交互的资源,例如登录页面、需要提交表单页(搜索页、注册页、评论页等)、带有大量图片或音视频的页面、API接口等,从而导致服务器的CPU被大量占用,正常用户访问慢或无法访问。 CC攻击对比其他DDoS攻击,模仿的是正常用户行为,因此很难区分IP是正常用户还是黑客,更具隐蔽性。 ■ 如何应对CC攻击? 1、部署Web应用防火墙(WAF),主要用来防御应用层的DDoS攻击,能够有效识别并阻止恶意请求。 2、定期检查系统日志,关注短时间内发送大量请求的IP地址,并将这些攻击源IP加入黑名单,后续可进一步设置IP地址白名单和黑名单策略。 3、为每个用户或IP地址设置请求速率限制,例如每秒最多允许访问的次数,从而降低单个用户或IP地址对服务器的压力。
SQL注入攻击
■ SQL注入攻击是什么?
SQL注入(SQL Injection)是利用程序员编写应用程序/网站时忽略的网络安全漏洞进行攻击。
如果一个应用程序/网站需要接受客户端用户输入的内容或传递的参数,且前端数据传到后端时没有做严格校验,这个内容或参数被当作SQL语句的一部分执行,从而导致数据库数据泄露、数据篡改、数据丢失等。
举个简单的例子,你的网站是需要用户登录的,用户输入账号与密码后,服务器就会向后端的数据库查询用户数据,这时就会用到SQL语言。
SQL语言(图源:google)
如果黑客在登录的时候不好好输入账号与密码,而是输入恶意SQL代码(如下图例子所示),那么后端就不会正常查询数据库,执行出来的SQL语句的意思就变味了。
当正常用户输入账号密码:
后端SQL语句为:从用户表单里选取用户名为dmei、密码为dns666的用户
SELECT * FROM users WHERE username = 'dmei' AND password = 'dns666'
当黑客输入带有恶意SQL代码的账号名:
后端SQL语句为:从用户表里选取用户名为dmei的用户即可。
(在MySQL里,-- 后面的内容被认为是注释,不会作为代码执行,黑客就能绕过密码检查。)
SELECT * FROM users WHERE username = 'dmei' --' AND password = '123456'
这样,黑客即使不知道密码也可以直接登录。有的黑客会导出数据库里的所有用户数据,用于牟利或者其他非法用途,有的会篡改数据库,甚至有的会删库跑路。
■ 如何应对SQL注入攻击?
1、后端程序员在编写应用程序/网站的时候设置检测过滤,对用户的输入进行校验,过滤不正常的输入;同时也可以通过参数化查询的方法,将查询与数据分离,确保用户输入的数据不会被解释为SQL代码。
2、此外,还可以使用Web应用防火墙(WAF)、定期更新和限制数据库用户权限等措施来加强对数据库的防护。
结语
网站被攻击的形式还有很多,例如DNS劫持、DNS缓存投毒等等,D妹下期继续和大家讲解讲解~ 还是要提醒一句,实施网络攻击是违法的,大家不要效仿哦。面对这些困扰已久又无法彻底根治的网络攻击,各位站长们平时在运营网站时要记得保持警惕,做好备份与防护!
共有 0 条评论