聊聊我对安全产品的思考和理解

2023-12-21

文章共计 - 5.5k 字 阅读需要 - 18 分钟


聊聊我对安全产品的思考和理解

聊起这个话题是因为作为安全从业人员,对这样一个问题的思考:

假如你作为一家公司的安全负责人,该如何进行安全建设?

咋一看很像CSO级别考虑的问题,我们抛掉这个问题的宏观部分(毕竟还达不到这个级别T^T), 从实际落地与施行上考虑,作为安全人员,如何给一家想要提升安全级别的公司提出合理可靠的建议与建设方案呢?

聊聊需求

昨天读完了赵武老师的《网安创业的核心竞争力是成本控制》,里面提到了对国内安全市场的看法,特别的指出了了监管、金融、互联网等行业对安全需求与其他行业的不同。

现在有两类客户是不同的,一类是监管用户,一类是金融互联网这样的企业。第一类好理解,网络安全问题跟地缘安全一样,最终都是国家买单,所以上层领导们总是急的,看到问题多,也想要解决,但是这么多环节,层层下达,效率总差强人意,同时下面捂被子的情况也是丝毫不见改善,越是这样越急,越急也就对技术要求不一样,一下就拉高了起来。另外金融和互联网离钱太近,网络安全问题几乎都会直接对应金钱的损失,所以有没有监管,都是自驱地选择更好或者更创新的方案。这些情况,安全公司自然都感受到了,不约而同地都往这些地方靠拢,除此之外,出海也无外乎这两种类型的客户。

既然要进行安全建设,那么第一个要思考的问题就是:为什么要进行安全建设?

其实也可以理解为:我的需求到底是什么?

I.硬性需求: 法律

想起来刚入行时的一个困惑,就是为什么企业明明被攻击了、被偷窃了数据,反而要遭到监管的处罚呢?当时的前辈给做了一个很形象的比喻:

一家博物馆,开了一场珍贵的展出,展出了各位收藏家的珍品,但是由于没做任何安全防护、没有请任何安保措施,导致场厅内的展品都被偷了,此时警察应不应该处罚博物馆的负责人呢?

同样的类比,在中心化的互联网架构中,各个服务商就是博物馆,而我们作为用户,各种个人信息就是我们的“珍品”,交到了服务商手中,服务商有责任和义务维护好其安全。

由此,国家变出台了《中华人民共和国网络安全法》、《信息系统安全等级保护基本要求》(GB/T 22239-2008)、《网络安全等级保护管理办法》 等法律法规,来要求企业和服务商进行安全防护。

但引用罗翔老师的一句话:

“法律是对人最低的道德要求,如果一个人标榜自己遵纪守法,这个人完全有可能是人渣”

等保只是法律所规定的最低标准,如果所有企业都仅以此为最终目标,那国内的安全就没有任何希望了。这里就更不要提连等保都不满足的一些场景还存在。

这里我说等保只是最低标准的意义,并不是实际指等保内的防护内容比较基本,实际上等级保护中的很多要求完全满足一些防护的最佳实践;但是大家懂得都懂,真实落地时候具体是怎样的、实际业务各种各样奇怪的网络需求导致真实的配置并不能完全按照等级保护所描述的那样配置;再加上计算机技术飞速迭代导致法律中所规定的一些服务技术栈已废弃不在使用、新技术的规范又没有及时加入等等因素,由此等保确实只能作为安全建设要求中的"最低标准"。

除了国家的等级保护,国际上还有很多其他的安全标准如:ISO-27001、ISO-27701等等,这类合规类证书的要求驱动了安全整体的基本建设;除此之外,这类认证也能快速的给用户在选择时提供一份安心的保证。

回到正题,这是安全的第一个需求:想要业务合法合规的运行,要满足国家等级保护法规。应之而生的安全服务有:等保检测、各类合规工具等等,来协助企业完成和通过等保检查。

II.显性需求: 损失

现在我们的企业已经拿到了各类安全认证,安全的建设就完成了吗?

业务刚刚上线,收到了运维的告警:服务不可用了,我们遭到了DDOS攻击。过一会又发现其中的几台核心机器,赫然出现了勒索信的字样:我们被勒索了。

由于仅仅做了等级保护中要求的部分,业务除此之外都属于“裸奔”的状态,很快遭到了各类攻击。其中能在感受上最直接、最明显的就为DDOS、勒索等直接的攻击了。

这类问题我把它称作显性需求,不想办法解决总有一天可能会爆炸,也是企业最容易理解、最愿意花钱买单的场景:毕竟是直接感受得到的问题,不处理服务无法使用、业务开展不下去的情形。

换句话说,真实的给企业带来了损失,能真让企业感受到了疼痛的问题,我都认为是属于这类需求;不论是一个短信认证接口被用于了短信炸弹导致服务账单超出了几百倍、还是机器上弱口令导致的勒索事件,这些想要解决的问题,都属于显性需求。

这类需求解释成本低,用户接受度高,毕竟真正涉及到了钱包,想必是能够接受和愿意付费的;和买了新车肯定也要买一份保险一样。

III. 隐性需求: 规范

把显性需求比做得了病需要赶紧吃药的话,隐性需求则更像是一味中药:见效慢,但是是从病根子治起。

大家都知道中药好,但是在实际操作中,对待安全问题的态度往往还是和我们吃西药的态度一样:一个弱口令问题,改掉就好了,下次再出现再改;一个硬编码的密钥,禁用掉重新生成一个就好了,完全不考虑如何通过建设安全的规范和制度,让这类问题直接不会出现。

这确实是很困难的,大家也都知道多运动多健身就能少得病,但是真实做下来有多少能坚持下来的呢?

对应这类需求,比如SDLC、业务上线前的安全检测服务等等,我认为都属于这类,包括一些

没有他完全不耽误我挣钱,就是不知道什么时候会因为这点小毛病而生一场大病。

IV. 其他

为什么还有其他这一类呢?因为既然有了需求,自然而然就会有人来取满足这些需求;有了人,自然而然的就有生成了新的需求。

我把这类需求分化到其他的类别来,比如各类安全工具:burp、cs、yakit等等,服务于安全行业的人的一些工具和企业,也算做是安全行业的需求之一。

安全的产品

聊完了我认为的安全需求的划分,我们再来看看现在市面存在的安全解决方案和安全产品。继续我们上面的场景,按照给企业进行安全建设的思路来对这些安全产品进行划分。

业务安全/应用安全

WAF: WAF可能是最常见的安全设备之一了,他的全程叫做:Web Application Firewall(网络应用防火墙),主要是防御web方向的攻击的(owasp top 10), 但随着业务的发展,对waf的期望和要求也越来越高,要求waf能够防护bot机器人流量、一定的抗ddos功能等等。

RASP: RASP (Runtime Application Self-Protection)运行时应用程序自我保护,是一种应用程序安全技术和解决方案。RASP 技术旨在在应用程序运行时动态保护应用程序免受各种安全威胁和攻击, 不同于WAF, RASP 与应用程序代码紧密集成。它运行在应用程序的运行时环境中,能够实时监视和保护应用程序;而WAF更多的是针对已知的攻击进行拦截。

风控类: 统一把各类风控产品作为了业务安全的一部分,包括但不限于内容审查、各类资质认证服务、黑灰产威胁等等,不再一一列举。

网站监测: 这类产品主要应对与一些静态和官网,这类网站更新节奏慢、可访问性需求高,因此需要一款产品来对其进行监控,及时发现不可用的情况以及防止被挂黑页等等。

DevSecOps: 软件开发生命周期(SDLC)是开发团队用来设计和构建高质量软件的高性价比、节省时间的过程。SDLC 的目标是通过前瞻性的规划将项目风险降到最低,从而使软件不论是在在生产过程中,还是长远而言都能满足客户的期望。此方法概述了将软件开发过程划分为可以分配、完成和度量的任务的一系列步骤。今天,大多数团队都认识到安全性是软件开发生命周期中不可分割的一部分。(from aws)

我的理解,DevSecOps实际上解决的是整个开发流程的规范问题,包括代码质量、review机制、安全测试等等,当流程规范了,自然而然的可以从源头上减少安全问题的产生(理想上)。
目前市面上应对 DevSecOps 的产品有:
SAST: 静态应用程序安全测试,也就是我们常说的白盒扫描,通过静态分析研发代码,编写检测规则,对代码级别的安全问题进行审查。
DAST: 动态应用程序安全测试, 也称为黑盒测试。针对的是业务API接口信息,常见的漏扫就属于此类。
IAST: 交互式应用程序安全测试,也叫灰盒测试,结合了黑盒与白盒的优势,通过扫描与验证,能够更加准确进行告警。

SRC: 这个就不做多解释了。

网络安全/基础安全/主机安全

VPN: 解决员工异地连接内部网络的问题

Firewall 防火墙: 传统网络流量监控和控制设备,以阻止未经授权的访问和恶意流量进入网络。

IPS: IPS (入侵防护系统) 是一种网络安全设备,用于检测和阻止网络上的恶意流量和攻击。它可以分析流经网络的数据包,并根据已知的攻击模式进行拦截或报警。

IDS: IDS(入侵检测系统)也是一种网络安全设备,用于检测网络中的恶意活动和攻击。与IPS不同,IDS 通常只报警,而不主动阻止流量。它监视网络流量以寻找异常行为。

堡垒机: 堡垒机(Bastion Host)是一种用于增强网络安全性的特殊计算机系统或设备。其主要目的是控制和管理对内部网络的远程访问,以确保只有经过授权的用户才能进入敏感网络区域。以下是堡垒机的主要特点和功能:

HIDS: HIDS(主机入侵检测系统)是一种安装在单个主机或服务器上的入侵检测系统,用于监视该主机的活动,以检测是否有恶意活动或入侵尝试。它关注主机级别的安全。

EDR/XDR: EDR(终端 是一种安全解决方案,专注于监视和保护终端设备(如计算机和移动设备)。它用于检测和响应终端设备上的恶意活动和威胁。

终端杀毒/终端控制: 指常见的办公电脑安装的杀毒软件,目标在于解决办公机器的运行安全

蜜罐: 蜜罐(Honeypot)是一种安全技术,用于诱使恶意攻击者、黑客或病毒入侵者攻击虚拟或模拟的目标,从而帮助组织监视、检测和学习有关威胁行为的信息。蜜罐实际上是一种陷阱,旨在吸引潜在的攻击者,以便分析他们的攻击技巧、策略和意图。以下是蜜罐的主要特点和功能:

零信任: 零信任安全(Zero Trust Security)是一种新型的安全策略,它不信任任何内部或外部用户或设备,并要求对所有访问进行身份验证和授权。

安全运营

SIEM: SIEM 是一种综合性安全解决方案,用于集中收集、分析和管理来自各种安全源的信息和事件,以检测和响应威胁。

SOC: SOC (Security Operations Center) 安全运营中心是一个组织内部或外部的安全团队,专门负责监视、检测、分析和响应信息安全事件和威胁。SOC 的主要目标是保护组织的信息技术环境,确保系统和数据的安全性、完整性和可用性。

数据安全

DLP: DLP 是一种安全技术,旨在监视和防止敏感数据泄漏或不当使用。它可以检测和阻止数据在内部或外部传输时的风险。

SaaS、安全服务、情报产物、其他等

这个模块也不做细拆分了,主要涵盖了一些人力的安全服务、渗透测试、安全培训、威胁情报等等等等,

还有一些更贴合行业分类的安全产品,如区块链安全中的合约审计、工控安全等等,与行业强贴合,了解的不是很多,因此在此处略过。

最终

再回到最开始的问题,现在我们作为安全负责人,面对这么多的安全种类和产品,该如何进行选择才能实现我们的需求呢?

这又成为了一个头疼的问题,简单的按照层次来执行这样的策略:先解决显性问题,然后再解决隐性问题来实现持续的问题,好像市面的产品并没有哪一款可以按照这种模式来实现:上了waf能防勒索嘛?上了流量监控能抗ddos嘛?做了devsecops是不是就没漏洞了?

都需要我针对每一个小问题去进行大动干戈的设备部署、业务改造等等,最终可能解决的只是需求中的一小部分,而代价却往往是不菲的:昂贵的设备、高额的改造成本,最终落地的可能仅仅是不一定存在的安全攻击。

这可能也符合安全的背景:安全就是离散的、在不同领域每个点下需要不断深入才能达到效果的。安全厂商知道这一点

更何况,安全也是不断在对抗和迭代的与时俱进的赛道,今天的产品能否防御的住明天出现的新型攻击,都是一个未知数;最为用户,于此我要付出高额的代价,可能最终大家都会算清楚这笔账来。

因此我在思考,我想要一种怎样的安全产品?

更精准、更细致、更专业、更简单的防护

这一点其实最开始是在waf身上体现出的:拦截机器人请求、抗ddos这些需求到底是不是应该丢给waf的工作?

当然为了产品能卖出去,各家的做法都是,一股脑的塞进去,做就完了。

我个人认为,waf就应该起到一个拦截 or not 的角色,其他任何功能都应该独立组合,waf提供规范化的语言来让其他决策引擎调用,从而实现防护。

说白了,各类安全产品并没有形成一个完美的合作生态,能各个组件之间自然而然的就形成了联动:流量监测监控的异常 -> 决策引擎识别研判 -> waf自动封禁的场景永远成为了一个幻想乡,就算是同一家厂商的设备,都恨不得自己的产品一口气做完所有的事情:异常+研判+封禁。这就导致了在每个方面都无法做到最精致,而显得不够专业;同时给使用者也带来的很大的学习成本和使用困扰。

于安全人员而言,这样的划分也能够让其专精于自己研究的领域,而不会导致一个专精于如何实现快速拦截的工程师去考虑和研究如何设置内置策略而导致的精力分散。

更便宜的花费

如何制定商业模式,才能让安全从一个“奢侈”的行业印象转变为“人人都用得起的必备的”概念,可能是一个值得思考的问题。一旦我为了防御而花费的精力以及成本大于了我遭受攻击的损失,那裸奔永远都会是人的第一选择,除了部分资金雄厚以及不做不行的行业。

就好比让我父母去做体检,老人家总觉得去医院就要花上大笔大笔的钱,最终可能啥都没有检查出来,浪费钱;但如果体检一次的花费能够让更多的人接受,或是让更多的人认可这个价值,

至于如何平衡这个成本,可能是这个问题的最难点吧。

更能够直接的贴合需求

这个可能是我个人的一个幻想吧,但是经历过自己实际防御和对抗一些攻击的场景时,确实是一个深切的体会。

比如我的blog天天被一些脚本小子拿着扫描器扫,一个纯静态的页面根本不可能存在的问题,但是却占用了我的带宽和流量;我要为此上一整套的waf来防护吗?当然不,其实挂cdn+静态缓存就可以简单的解决我的需求。

诸如此类的场景,实际上用户的量级和事件的严重程度并没有达到天崩地裂的地步,安全的厂家却像医院一样做了一通拍片做了一堆检查后,最后开了一堆昂贵的药(waf),还得吃上三个疗程,其实最后就是个小感冒而已。

当然这和我之前说的,简单的方案很可能是治标不治本的临时措施,很容易再次出现相同的问题;这可能也是安全难做切矛盾的所在吧。作为用户,我确实希望更简单有效直接的方法实现;而作为安全人员,完整的安全建设才是一个比较健康稳妥且长远的方案。

去安全产品化

既然已经提出了一堆不切实际的想法,不如再大胆一些,“去安全产品化”!

也有很多人已经提出过这个观点,安全实际上和医生一样是需要根据病情来对症下药的,不同的公司和企业技术栈和整体架构都有所不同,统一化的设备产品很可能最终导致的就是驴唇不对马嘴;用户也不知道该如何使用,发挥出这个产品的最大功能;因此,安全必定是“神医”策略:不需要众多的护士,只需要关键的一位神医一针见效即可。

所以,安全产品应该是做一些更小的问题:这类问题才是大家可能平时都会遇到的,像头疼脑热之类的,随手买包感冒灵解决的问题;被ssh暴力扫描了,我运行一个脚本改个端口好了,不需要夸张的搞一整套的入侵检测 + 数据大屏作展示;当然,如果有更好的脚本(更有效的药)来平替,比如敲门机制解决这个问题,当然是更好的。这样把整体的中心转移到不断琢磨如何设计机制和对抗当中。


最后给出我对这个问题的回答:如何进行安全建设?

我的想法是,有病治病,没病就赶紧该吃吃该喝喝~

可能这就是我为啥做不了CSO的原因吧......(T^T)

参考链接

0.《网安创业的核心竞争力是成本控制》 : https://mp.weixin.qq.com/s/Er6J3tJ4L6QyyT2wFBWtdA

☡ 留言板 ☡