安全产品的灯下黑
安全产品自己安全么?
背景
前段时间护网行动中(为了避免混淆我就不说红蓝方了),进攻方第一天就*飞了很多防守方,原因是他们所使用的某乙方 EDR 与 VPN 出现了严重的安全漏洞,不是 RCE 就是 admin 垂直越权...进攻方号称“一天就把活干完了”...这些安全产品的 0day 直接给那几个安全厂商喂了大嘴巴子,其他厂商估计也慌得够呛。
胡思与乱想
网络安全产品有很多,例如早期出现的 vpn、防火墙,晚一些出现的扫描器、IDS。很多人都有一种错觉,认为安全产品比普通产品要更加安全,实际上这只是美好的幻想罢了。网络安全产品本质上就是一个产品,而决定一个产品安不安全的因素主要在于:
- 产品规划的侧重点
- 产品研发开发人员的安全素质
- 测试人员的侧重点
- 领导的态度
- ...
产品规划的侧重点
首先我想说的是,提到安全产品的安全问题,大家可能立马想到的是乙方的产品,实际上大家对乙方安全产品的安全性的了解会更多一些,只不过是因为曝光的概率大一些,毕竟人家要卖出去的,出了问题就是一大批客户倒霉的,有问题大家也会吐槽,所以平时消息就会多一些;而甲方的安全产品很多是自研自用,被攻破了也没啥人知道(甚至甲方自己都不知道...),所以消息就会很少,但是这并不意味着甲方的安全产品就没问题。
产品研发开发人员的安全素质
就在我甲方视角的观察来说,乙方的研发能力平均是要弱于甲方的,但是安全能力要强于甲方。原因在于甲方养得起专门研发的人,乙方养得起专门研究安全的人,当然,这只是平均着来说。
咋一看,乙方的安全产品似乎安全很多,因为甲方安全测试的能力稍弱,有些安全问题就测不出来;而乙方开发能力稍弱,顶多做出来的东西难用一些,但是至少相对安全一些。
可是各位问问自己,作为安全人员,平时在写代码的时候,会考虑到普适性以及安全性的问题么?还是“又不是不能用”呢?所以这往往导致,在乙方,安全人员写出的安全产品,由于研发能力稍弱,做出的安全产品体验就不是很好;并且由于缺乏编写安全代码的经验,相比与纯研发人员写出的代码是安全了一些,却也好不到哪里去...缺乏编写代码经验,是不是在一定程度上意味着缺乏编写安全代码的经验呢?所以,乙方的安全产品可能要比甲方安全,但也不过是五十步笑百步罢了。
那有人会说了,如果我的公司有纯开发人员也有安全人员,是不是就能把一个安全产品做好呢?实际上这不就是甲方么?但是很多公司甲方的安全产品都是由安全人员负责的,甚至是包揽了产品、研发、测试、运维,安全性甚至是功能性可想而知。我甚至在想,是不是在以前安全产品就是由开发人员开发的,后面发现需要安全测试,还得再招一个专门测试的,那为了降低成本,干脆就把研发与安全的职责合并到一个人身上,变成了安全研发工程师?
并且就算想做安全测试,也会遇到各种实际的问题。就目前来说,领导不会浪费宝贵的安全人员去挖自己家产品的漏洞,要挖那也得去挖竞品的安全产品的漏洞或者投入到业务的漏洞挖掘中,自己挖自己有什么可说的呢?挖到别人的那就是业绩了。安全很多时候是幕后工作,好不容易能有台前亮眼的机会,怎么能浪费呢?
最后,开发人员学起安全其实是要比直接学安全容易上手的,很多时候安全是研发层面往深入♂一点的细节。并且由于拥有开发经验,开发人员有时候提出的解决方案甚至要比安全人员更优。
测试人员的侧重点
说来说去,一个很明显的问题就是安全产品缺乏安全测试,就算乙方安全技术强,对安全产品的安全测试也未必就比甲方做的更好更细,因为实在是没有这个动力。虽然市面上一直都缺安全研发工程师,不过我大胆预计一下,今后会招专门测试自家安全产品的安全测试人员,尤其是乙方。这是一个 flag,各位可以留意一下,如果看到了请告诉我,让我开心一下!
领导的态度
说实话,做安全需要成本,就算不是安全这个领域,其他做产品的,哪个不是在成本上抠抠搜搜的?以及安全部门挖自己家产品的漏洞,颇有左右互搏的意思,甚至是吃力不讨好的事情。未来到底何去何从,其实还是得看各公司领导自己了。
结语
从目前暴露的事情来看,乙方的安全测试做得并没有大家想象中的那么好,导致安全产品本身容易被人*穿,这个是事实,也是大家都够能看到的。但是,对于那些甲方自用的安全产品这样隐蔽的角落,会不会更加糟糕呢?这就留给身处甲方的朋友们自己细品了。
以上均为个人观点
由于我自己的经历有限
可能会比较片面
各位酌情参考