安全圈子里,大家都在讲下一代安全,今天角度转换,我们来讨论下一代攻击者会是什么样。多年来,黑客类型不断变化。但能跟上这种变化的防守方却在少数。如果不了解攻击者,任何一场安全博弈都可能走向失败。
1. 安全能力的进步
过去,入侵一个网络很常见也很简单。同种类型的攻击活动几乎随处可见。很多网络访问的 “小技巧” 众所周知。无论 是0day,还是 “100day、1000day” 这些已知漏洞,都可以轻易地收集到。但如今像 Microsoft 这样的公司在安全方面做得越来越好,要找到类似 MS17-010 的漏洞已经不太容易。
不仅是因为旧的漏洞被修复了,而且新的可利用漏洞也越来越难以被发现。再早些年,缓冲区溢出会出现在绝大部分应用中。像 EMET、雳鉴这样的现代化工具以及越来越有效的安全编码标准让这种漏洞出现概率日益降低。
近几年来,白帽子发现 SQL 注入漏洞的难度也越来越大。曾经有段时期流行用 PHP 开发 Web 应用,开发人员需要手动地加上安全防御方法。而现代 Web 应用则通过一些 Web 框架构建,如 Django、Flask、Vue、Spring 等,这些框架都自带漏洞防范措施。
例如,CSRF(跨站请求伪造)在过去就是一种需要开发人员为所有返回的 POST 表单构建特殊的 token 凭证来加以缓解的攻击方式。但 Flask 的 WTF 表单能够自动处理这一风险。除此之外,对于 PHP 脚本,开发人员经常将未经信任的用户输入的未经处理的内容回显到页面上,从而产生 XSS(跨站脚本)漏洞,而 Flask 的 Jinja2 模板引擎会自动转义此类内容。
注:Jinja2 在极少数情况下仍有可能产生 XSS,例如,当变量被回显到 HTML 标记的属性部分时,该变量可能被解释为 Javascript。但相比过去还是有了很大的进步。
全新的技术与方法让恶意程序和恶意流量走投无路,网络世界越来越安全。至少在应对传统威胁方面的确是这样。
全球安全局势似乎越来越好,因为防御方识别、跟踪和消除威胁的能力越来越强。但是并不是所有的漏洞都消失了,新的漏洞都不会产生了。没有绝对安全的网络。黑暗势力的 “进化” 速度远远超过了正义的力量。
2. 一个真实的黑客故事
这个故事是资深白帽黑客 Ben Donnelly 的亲身经历——成功入侵某个 Web 应用。该应用找不到任何 SQL 注入漏洞和 XSS 跨站脚本漏洞。他们的安全团队十分自信地向 Ben 保证这款应用的安全性无懈可击。但没过多久,Ben 很快就发现了它最大的弱点:过分依赖各种 Web 框架。当出现新的威胁模型时,它是无力应付的。
Ben 不从 OWASP 的十大漏洞类型出发,而是通过每次请求时从它们呈现给客户的 Javascript 列表中提取隐藏 token 值的方式,逐步深入网站。不久 Ben 就找到了隐蔽但不安全的终端节点,这些终端节点生成身份验证令牌后,他对该站点进行了进一步研究。最后,他发现了一个能够添加用户至该站点的 Administrators 组中的终端节点,除了已经生成的令牌之外,无需再作其它身份验证。
走到这一步,这个 Web 应用实际上已经 game over ——Ben 已经可以访问该网站上所有的个人信息。无需比对和尝试已有的攻击方式,而是从攻击目标本身入手,一层层解开目标站点的逻辑,最终让它 “自取灭亡”。
这就是未来会越来越常见的攻击方式。不采取新的行动,网络竞争中的滑铁卢几乎无法避免。
3. 新的攻击者已经来临
新技术不会越来越安全,只会越来越复杂。新产品和管道的复杂性正在提高网络攻击的门槛。攻击者也随之不断 “进化”。
仅拥有杀毒软件未知的自定义恶意软件和 Metasploit 的基本知识已经不足以实现一次入侵。一类新型攻击者已经来临。他们利用庞大的基础架构、高级计算和复杂的攻击方式,试图从各个角度攻破你的安全防线。
这些新型攻击者能做什么?举个例子吧。2017 年 2 月,由 Google 安全研究人员和荷兰国家数学和计算机中心 CWI 组成的 “SHAttered” 团队宣布,他们完成了针对第一例 SHA-1(安全哈希算法)真实世界的碰撞攻击,创造了两个 hash 值完全相同但内容截然不同的 PDF 文件。也就是说,很多软件系统可能会将两个不同文件误认为是同一个 PDF 文件,那么攻击者就有可能用修改了信息的文件替代原有文件,欺骗和误导系统或操作人员。
很多人都知道 SHA-1 是公开的,但都不以为意。对于传统的供给者来说这种观念可能不会出现差错。但对于拥有先进计算能力和庞大基础架构的下一代攻击者来说,这样的高级攻击手段只是小菜一碟。
SQL 注入、XSS、CSRF 和通用 RCE 攻击等等可能会逐渐退出历史舞台。形成完整供应链和定制化的逻辑攻击将会越来越普遍。
4. 下一代安全体系建设现状
面对这样的下一代攻击者,对 “下一代安全防御”的思考刻不容缓。
从技术应用来说,离不开机器学习和自动化。只有机器学习才能应付每天都在爆发的新型威胁。一个真正能够被冠名 “下一代” 的安全平台不仅应该能够检测风险,还能自动修复风险,但目前很多安全平台仍然处于每天产生大量误报和无效告警的阶段。
从技术方向来说,国内正在兴起的欺骗防御和软件全流程安全等理念和实践都是有益的探索。欺骗防御的核心目标就是在不同网络环境中部署沙箱、伪装代理、诱饵等形成蜜网,全方位欺骗 APT 攻击者落入陷阱,甚至通过设备指纹等技术对攻击者溯源。软件全流程安全主要从发现应用系统在开发、测试、预发布、上线后等完整开发流程中安全风险的角度出发,不但包括对传统漏洞的检测,有的高级解决方案甚至已经支持检测业务逻辑漏洞,并包含能够发现第三方开发组件中安全风险的 SCA(软件成分分析)等功能。
部分观点参考来源:
https://www.cisomag.com/nex-gen-attackers/