2021年RSAC创新沙盒比赛已经结束,冠军Apiiro为何能获得评委青睐,从众多黑马中杀出重围?它解决了什么问题,创新点在哪里?默安科技安全研究院院长——程进深入剖析了Apiiro及其产品。程进是《上医治未病——企业安全开发体系建设指南》一书的主要作者之一,在SDL和DevSecOps领域有着独特的见解和丰富的落地经验。

Apiiro的产品与常见的DevSecOps工具链中SAST/SCA/IAST/DAST等产品都不一样,非常特别,并且网上公开的资料也很少,没有白皮书、用户手册这些常规产品资料,更别说技术架构介绍了,因此笔者只能从第三方资料和Apiiro自己的Blog中窥见一些端倪,总结分享给大家。

在趋于成熟的赛道上另辟蹊径

Apiiro由首席执行官 Idan Plotnik 和研发副总裁 Yonatan Eldar 共同创立,他们此前曾创立 Aorato 公司。Aorato 是UEBA(记住这个词)用户及实体行为分析领域的早期先驱,后被微软收购。Idan 和 Yonatan随后创立Apiiro,直到获得创新沙盒冠军,这家公司也才30余人,产品不一定非常成熟,但是从中可以体会到,一个靠谱的创新思路有多重要。

Apiiro目前只有Code Risk Platform一个产品,并宣称是业界第一个代码风险平台。很多人可能会疑惑不就是代码安全平台吗,怎么会是业界第一个?

其实从名字就能看出点端倪,经常看国外安全产品研究报告的人会发现,Risk这个词所代表的含义不仅仅是漏洞,例如Risk-based vulnerability management,就是说漏洞管理工作不仅是看漏洞的CVE评分,更要与业务结合,综合考量暴露面、业务流、业务敏感度、上下文等因素,从真实风险的角度管理漏洞。Apiiro的Code Risk Platform也是一样,还记得他们创始人之前做过UEBA么,Apiiro就是把UEBA应用到代码安全方面,跟SAST融合,形成了他们的Code Risk Platform。

产品能力与创新点

在看Apiiro的Code Risk Platform解决了什么问题之前,先了解下他们的产品到底有哪些能力。

Apiiro并未公开产品资料,但Apiiro今年也入选了Gartner的DevSecOps Cool Vendor报告,从Gartner的描述中可以略窥一二:

Apiiro提供了一种自动识别代码重大变更、需要安全介入的方法,自动去除大部分不会带来安全风险的代码变更,减少安全测试投入。通过对代码和开发元数据(例如提交消息、pull请求、用户故事)以及开发人员资历等因素进行深度持续的分析来实现。Apiiro能够与企业源码管理和工单系统连接,也可与应用安全测试工具(如SAST)、软件成分分析工具和API网关连接。

再看TechRepublic今年3月对Apiiro的报道:

该平台从多个来源获取数据,计算具体更改带来的安全与合规风险。Apiiro发现一个异常提交后,会给出将其标记为风险的原因。一般包括非正常时段的活动、前端人员提交后端代码、开发人员在不同位置或使用不同计算机更改了敏感文件等。

Apiiro会学习目标单位的代码库以及开发人员的习惯。在提交过程中,该平台将二进制文件中的DLL文件中的更改与源码管理器进行比较,并在发现安全风险后自动中断后台构建过程。

Idan Plotnik说:“当攻击者尝试入侵某个网络内的合法帐户时,我们还能在它进入CI/CD管道前告警并将其捕获。”

从以上两部分内容就可以大致勾勒出Apiiro的产品能力:利用UEBA技术,通过连接开发工具链中的各类平台,例如Gitlab、Confluence、Jira等,获取开发过程中提交、修改、上线、测试等信息,结合UEBA技术,来识别存在安全与合规风险的代码修改和开发人员的异常修改行为。

从官网介绍也能看到,Apiiro集成了很多DevOps攻击链上的工具,以此作为代码风险平台的输入,如下图:

Apiiro的博客也提到了一些详细的输入因子:

通过源代码层以及SAST的引擎能力,获取历史代码变更记录,分析数据类型、数据变量、开源组件等信息;结合Jira上的标签、风险等级、bug信息,代码仓库的commit信息、代码pull的discussions信息等元数据,分析出代码业务的重要性与影响。同时,加上开发人员地理位置、历史活动轨迹、常见提交时间等形成行为基线,结合UEBA发现开发人员活动中的异常。另外还会整合DevSecOps中第三方安全工具链以及API网关的数据。

笔者也不认为Apiiro短期内就已拥有SCA/SAST/IAST/DAST开发安全全套安全工具的能力,所以这部分应该还是通过API联动第三方产品,不过Apiiro的产品作为一款代码风险平台,应该也具备一些SAST的能力。

所以Apiiro的产品核心差异化和创新点是什么?答案是AI和UEBA。不只通过AI分析了异常,还得出了代码关联的业务重要性。这也确实是笔者所见到的唯一一家把AI和UEBA能力应用到DevSecOps中的产品,不为安全工具服务,而是为整个DevSecOps活动服务,正如他们所宣传的“Industry-first Code Risk Platform”。

解决了哪些市场痛点

总结来说,Apiiro的产品包括两个主要能力,第一是识别开发过程中的重大变更,通过各种信息判断这次变更的业务重要性,然后利用SAST能力进行安全检测;第二是识别开发过程中开发人员的异常活动。

把这两个能力套用到各种场景上,就成了他们对外的业务打法和业务宣传点。

供应链安全问题

这次Apiiro也算是占据了天时,SolarWinds事件爆发没多久,全美对此次事件非常重视,微软的总裁评价这次事件“是史上影响最广、最复杂的一次攻击”。事件发生后Apiiro他们就推出了业界首个供应链安全解决方案。

大家都听说过SolarWinds事件,攻击者潜伏进SolarWinds Orion的内网,篡改了他们的软件更新包,还不是直接篡改二进制包的方式,而是攻击者在内网拿到了很高的权限,修改了软件源代码和签名,避免后门被杀毒软件发现,从而使北美很多政府单位和多家世界500强中招。FireEye也官宣中招,他们的红队武器库被偷。

这个问题正好是Apiiro能够解决的问题,攻击者修改源代码的行为明显是开发过程中开发人员的异常行为,再不济也能被识别为重大业务变更,能够发出需要安全审查的警告。

传统DevSecOps过程中的效率问题

提到DevSecOps的效率问题,Apiiro重点解决两个关键点:

第一,开发安全工具对任何项目都执行几乎一样的扫描动作,每个开发阶段和安全阶段的信息都是孤立的,没有联动,导致工具的误报越来越高,特别是SAST工具,项目组成员大量时间浪费在误报上。

第二,漏洞的修复优先级仅依赖CVE评分或CWE等级是不合理、不科学的,应结合业务重要度进行分析。

对于第一个点,Code Risk Platform能够整合大部分开发工具链中的信息,通过这些信息对业务重要度和开发人员历史行为进行分析,并筛选出最需要进行安全审查的代码,从而针对这些代码进行安全检测。比如,若某部分代码业务重要度高且是新手开发的,那么就需要进行代码安全检查,若业务重要度不高且是资深开发编写的,那么可以忽略或降低优先级,从而有效减少开发安全过程中的安全扫描活动,尽可能减少安全活动给开发带来的负担。

对于第二个点,Apiiro多次引用Gartner的研究结论:“试图找到代码中所有未知的漏洞会带来大量误报。相反,应让开发人员的注意力集中在那些最严重、准确度最高的漏洞上。”Apiiro能够通过AI技术分析上下代码语境、开发人员活动等,来分析这部分代码所归属的业务重要度,再结合漏洞自身的风险等级,综合判断得出漏洞的修复优先级,从而把最宝贵的时间花在最值得修复的漏洞上,以此提高效率。

CEO Idan Plotnik在创新沙盒决赛竞演时也提到了Code Risk Platform重新构建了适合敏捷和云原生的开发模式,也就是说他们的解决方案相较于传统方案,效率提升非常大,使“敏捷”更加敏捷。

机遇远大于挑战

Apiiro现在拥有的是分析代码的业务重要度能力,属于编码过程;扩展一下,如果也能分析API的业务重要度,那么测试过程中的效率问题就解决了;需求层面的业务重要度应该更好做,那么威胁建模阶段的效率问题也可以得到一部分解决。因此,Apiiro的开发安全业务全景应该是覆盖整个开发过程中的业务重要度分析和用户行为分析,重点是为开发安全效率服务。

Apiiro并不着急构建SCA/SAST/IAST/DAST能力,因为目前的产品属于开发安全中的“高端产品”。目标用户往往已经有了安全工具链,希望通过Apiiro的平台提高效率,因此只需要做API对接即可。而且他们的产品与目前所有的DevSecOps方案都不冲突,反而互为补充,市场切入点非常刁钻和准确,值得安全厂商学习。

但正如Gartner所指出的那样,Apiiro的解决方案根据风险指标自动去除不需要关注潜在风险的代码变更,易产生漏报问题;而且用户在使用产品前,必须做需求评审,确定需求以及如何将这些需求在Apiiro的工具中体现出来。这是平台自身存在的一些问题。但总体来看,Apiiro创造了一个存在真实需求的细分市场,商业机遇远大于挑战,自然被认可为一个优秀的创业项目。

声明:本文来自默安科技,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。