前言
前两天休假看到了spaceraccoon的一篇关于网络安全反模式的文章,讲的是无效忙碌陷阱这个概念,说实话挺有意思的。作为一个经常和漏洞打交道的安全工程师,很多内容说到了我的心坎里,花点时间整理一下笔记。
那些年,把我们淹没的告警海洋
老实说,这篇文章里描述的John Doe的故事在我见过的企业里还是挺常见的。一开始都是好心办坏事:某次安全事件后,安全团队立马提议买个安全设备(通常价格不菲),然后像打了鸡血一样推广。
几个月后呢?大家都收到一堆邮件通知,Jira tickets堆成小山,开发团队天天被追着修复各种高危漏洞,而这些漏洞有多少是真正可利用的?可能连10%都不到。
你们公司是不是也有类似情况?某个安全工具动辄扫出上千个问题,然而:
-
开发团队:「这根本没法全修!」 -
安全团队:「合规要求必须修!」 -
管理层:「为什么我们的安全指标这么差?」
就这样,大家开始了无休止的会议、邮件和文档循环,陷入了文章所说的无效忙碌陷阱。
从解决现有问题到预防新问题的转变
文章中有个观点特别戳中我:解决现有问题和预防新问题完全是两回事。
想想看,这就像打扫房间和保持房间整洁的区别。你可以花一整天大扫除(解决现有问题),但如果没有建立保持整洁的习惯和系统,一周后房间又会乱七八糟。
我见过太多团队投入大量资源修复扫描出的安全漏洞,却没有同步建立机制防止新问题产生。结果?下一轮扫描又是一堆新问题。
记得有个朋友的团队经历过一次依赖库漏洞紧急修复,熬了三个通宵把所有问题都解决了。结果三个月后,同样的问题再次出现,因为他们没有建立自动化检查机制和标准开发流程。这不就是在一遍遍地舀水,而没有堵住漏洞吗?
安全冰淇淋锥:解决方案也有高下之分
文章中提到的Shortridge的安全解决方案冰淇淋锥太有道理了。想想看,我们平时接触的安全解决方案有多少是在锥底部?
说实话,很多企业的安全措施都集中在告警和人工干预层面。每当发生问题,第一反应不是如何从设计上避免这类问题,而是如何更好地发现并提醒修复这类问题。
这让我想起一个朋友分享的案例。他们团队发现了大量SQL注入漏洞,解决方案居然是增加Code Review,要求开发人员写SQL前必须通过安全审批。结果可想而知,流程变慢了,开发体验变差了,而且漏洞依然时有发生。
后来,他们转向了冰淇淋顶部的思路,推广使用一个带安全特性的ORM框架,默认参数化所有查询。不仅减少了安全风险,还提高了开发效率。一举两得!
tj-actions事件:供应链攻击的现实案例
文章中提到的tj-actions供应链攻击案例特别有意思。这起事件让我想起了前段时间闹得沸沸扬扬的GitHub社区供应链攻击,那事儿直接吓得不少团队彻查了一遍所有的GitHub Actions依赖。
说真的,谁能想到通过一系列精心设计的fork、commit和标签操作,攻击者能实现如此隐蔽的攻击?这简直就是一个完美犯罪!
回头看许多开源项目,还有不少GitHub Action在用@v1、@v35这种标签引用,没有固定到具体commit hash。这种松散引用简直就是在等着被攻击啊!
最讽刺的是,很多安全团队看到这个问题时的第一反应是:"那我们再加个检测工具,专门扫描这类问题如何?",瞧,又一个无效忙碌制造机诞生了!
实践经验的启发
这篇文章引发了我对安全实践的思考,以下是一些值得推广的做法:
-
设立"够用就好"的标准:不再追求修复100%的问题,而是基于可利用性和业务风险设立优先级。高风险、可直接利用的问题必修,其他的按需处理。
-
构建安全组件库:与其检查开发人员是否遵循安全规范,不如直接提供内置安全特性的组件库。开发人员只要用这些组件,就自动获得安全保障。
-
跨团队协作:安全团队和平台工程团队应该深度协作。比如在CI/CD流程中加入自动检查,确保所有GitHub Actions依赖都使用固定的commit hash。
-
培养安全设计思维:把安全考量融入设计评审,而不是等代码写完再去检查问题。这种安全左移机制大大减少了后期修复成本。
说实话,这些改变不容易实施。最大的障碍不是技术,而是思维定式。很多安全团队习惯了"发现问题—>提出告警—>追踪修复"的工作模式,要他们转向"预防设计—>内生安全—>自动化检查"需要相当大的心态转变。
结语
读完这篇文章,让我想到:我们是否太关注做事很忙而非做得有效?安全团队的考核指标是否合理?如果团队整天忙于追踪各种扫描结果和合规指标,那还有谁能思考那些真正提升安全的方案呢?
在这个攻击手法日益复杂的时代,与其不断地舀水,不如花点心思修好船。与其追求表面上的"零事故",不如建立能持续预防问题的机制。
说到底,安全不是为了安全而存在的,而是为了支持业务的安全发展。当安全成为无形的基础设施,默默保护而不需要开发者时刻关注,那才是真正成功的安全解决方案。(润物细无声)
正如文章所言:培养良好品味很重要,即使一开始我们做不到最好。随着经验积累,我们会逐渐缩小理想与现实的差距。安全建设是场马拉松,不是短跑。
你们遇到过哪些徒增工作量却不太有效的安全实践?欢迎在评论区分享你的经历!
原文始发于微信公众号(RedTeam):超越漏洞修复的安全观
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论