当前位置: 首页 > 科技观察

RSA创新沙盒清单-Apiiro——代码风险平台

时间:2023-03-12 18:14:32 科技观察

MicrosoftInternetExplorer402DocumentNotSpecified7.8磅。CapePrivacy、Deduce、OpenRaven、STARATA、WIZ。绿盟科技将从背景介绍、产品特点、评论分析等方面为大家介绍入围的十大厂商。今天,我们要介绍的厂商是:Apiiro。一、公司介绍Apiiro是业内第一家提出代码风险平台的公司。它因其多维应用程序风险管理和可视化而被选为RSA大会2021创新沙盒的10个决赛入围者之一。Apiiro总部位于以色列特拉维夫和美国纽约,于2020年10月完成了一轮3500万美元的融资,由顶级风险投资公司GreylockPartners和KleinerPerkins共同投资。图1Apiiro公司创始人Apiiro公司的两位创始人分别是IdanPlotnik和YonatanEldar,他们都是以色列国防部的退伍军人。CEO是Idan,他曾创立Aorato,主要业务是利用机器学习检测云端以及本地和混合云环境中的可疑攻击。该公司在2014年被微软以2亿美元收购。在Idan被Aorato收购后,他在微软担任工程总监。Yonatan曾任微软工程团队负责人,负责处理微软庞大工程团队的产品风险检测和评估,确定风险优先级,提供补救计划并与其他高管沟通。2.相关背景安全开发生命周期(SecurityDevelopmentLifecycle,SDLC)是一个软件开发过程,可以帮助开发人员构建更安全的软件并解决安全合规性要求,同时降低开发成本。安全应用从安全设计开始,很大一部分软件安全问题都是由于设计不安全而引入的,安全设计对软件安全的重要性尤为明显[1]。SDLC是一种软件开发过程,可帮助开发人员构建更安全的软件并解决安全合规性要求,同时降低开发成本。自2004年以来,Microsoft已将SDLC作为公司范围内的强制性政策。SDLC的核心理念是将安全考虑融入软件开发的每个阶段:需求分析、设计、编码、测试和维护。从需求、设计到产品发布的每个阶段都增加了相应的安全活动,以减少软件中的漏洞数量,最大限度地减少安全漏洞。SDLC是一个以软件开发为核心的安全保证过程,旨在开发安全的软件应用程序。简单来说,SDLC是微软提出的一种从安全角度来指导软件开发过程的管理模型。传统软件开发生命周期的每个阶段都增加了一些必要的安全活动。在软件开发的不同阶段进行的安全活动也不同。即使单独执行,这些活动中的每一项都有助于软件安全。当然,缺乏特定的安全活动也会影响软件的安全性。图2MicrosoftSDLCSecurityActivitiesDiagramSDLC过程是一个专注于软件开发安全保障的过程。在SDLC过程中,不同的阶段需要使用不同的测试工具(例如CI/CD上的SAST工具)。SAST通过扫描代码获取数据流、控制流、函数调用关系来检测代码漏洞。但SAST只关注漏洞,忽略了代码组件、数据、安全控制、部署位置、开发人员体验和业务影响等风险。这也是SAST误报率高的原因。业界商用SAST工具的误报率普遍在30%以上。误报会降低工具的实用性,消除误报可能比修复漏洞需要更多的时间。SCA(SoftCompositionAnalysis)在发现、管理和监控OSS许可和相关安全漏洞方面也存在一些问题。这些工具的本质是查看相关的软件包或代码,缺乏多维度的分析。Apiiro的代码风险平台源于两位创始人在微软工作时面临的挑战:现有的安全和合规工具和流程大多是手动和常规的,为了便于集成控制,同时也满足风险管理要求,这些安全要求很多时候成为发展过程中的障碍。Apiiro处于DevSecOps、应用程序安全、DevOps生产力和云安全市场的交叉点。Apiiro代码风险平台可以帮助客户在SDLC流程的早期进行有效的风险管理,加强应用治理和合规性检测,防止针对CI/CD的高级攻击。Apiiro在整个开发过程中分析数据,以帮助组织识别、确定优先级和补救有风险的重大变更。Apiiro通过提供跨应用程序、基础设施、开发人员知识和业务影响的风险可见性,帮助组织构建应用程序风险计划[2]。3、代码风险平台Apiiro产品关键技术介绍源于软件开发过程中的技术痛点和业务痛点。Apiiro希望构建一个解决方案,弥合开发、安全和合规团队之间的差距,从而加快交付速度和上市时间。Apiiro打造了业界首个代码风险平台,实现了从设计到代码再到上云全流程任何变化的全面风险可视化。同时,该平台在应用程序、基础设施、开发人员知识和业务影响方面提供安全和合规风险的全面视图。Apiiro的方法可以与外部安全工具集成。该公司的技术创建了跨开发人员和代码行为的统一风险概况,重点关注业务风险。例如,在银行应用程序开发过程中,Apiiro不是简单地扫描银行应用程序的漏洞,而是研究与风险相关的问题,例如给定的API是否可以转账,或者被分析的服务是否暴露在互联网上,这增加了洞察力该业务上下文中的开发人员行为。3.1多维码风险如今可以说代码无处不在,从应用开发、个人身份信息(PII)添加、网络策略变更、IAM(身份识别和管理系统)角色添加到云API网关发布新API配置授权访问控制会使您的代码面临风险。在考虑代码风险时,目前的趋势是考虑SAST(静态应用程序安全测试)、SCA(软组合分析)、DAST(动态应用程序安全测试)和ISAT(交互式应用程序安全测试)等安全漏洞检测工具。从根本上说,这些工具遗漏了很多上下文,导致了很多噪音和误报,这不仅阻碍了开发进度,还会误导开发过程。在软件开发过程中,如果有多个SDLC进程门,每个进程门独立于其他功能运行,不同应用程序的安全程序完全不同。图3SDLC流程门控在大多数情况下,通常检查每个门控而不是查看所有开发阶段的上下文。很多漏洞是由于各种代码和配置的变化引起的,所以从设计到开发再到生产的各个阶段都需要考虑。因此,无法从单一维度仅针对某一阶段提供完整的视角和脉络。与其关注漏洞的风险,不如关注业务的实际风险,这需要对上下文有广泛的了解。不同类型的风险维度可以分类如下:图4多维风险维度如果在代码风险分析过程中考虑多维方法,SDLC工具和分析过程可以通过构建不同的和完整的上下文信息,使代码风险分析过程得到优化。例如,根据对历史代码变化的分析,为每个开发人员建立相关的知识库,可以帮助开发人员做出更好的决策。知识库的相关特征包括他们提交了多少代码更改,这些更改是否是与安全相关的更改,以及它们是否有任何业务影响。还可以考虑数据处理、部署位置和Internet公开。结合以上内容,上下文模型可用于多维风险分析,这将有助于安全架构师和开发人员关注最重要的变化。这种方法的好处将帮助公司的不同利益相关者:1.CIO和CISO将在业务的实际风险中获得高级别的上下文风险;2.安全架构师和AppSecurity领导者将获得一个可操作的工作计划,该计划需要具有高业务影响(HBI)的主要源代码更改。安全工具可以专注于仅扫描那些代码更改,从而以最小的FP实现快速切换;3.渗透测试人员将获得与恶意代码更改相关的上下文警报,允许他们开始增量测试;4.开发5.法律或法规可以更容易和准确地识别代码合规性问题,例如开源软件许可证、版权等,以及通知文件。3.2检测恶意代码提交Apiiro代码风险平台的功能之一是能够使用UEBA和异常检测技术(专利申请中)来检测和防止恶意代码提交。该功能模块是基于机器学习和人工智能算法设计的。算法分析组织中不同实体的行为(例如,代码组件、安全控制、数据类型、贡献者的知识、组织行为、存储库、项目等)。同时,该模块提取了数十个面向领域的特征(包括逻辑、上下文和时间序列特征)来构建每个实体的属性,例如分析元数据、内容、拉取请求和历史提交代码的工单,提取相关的数字、时间和内容特征。该模块的另一个数据来源是平台生成的历史跨库代码特征。Apiiro代码风险平台在特征提取和富集后,基于历史代码实时构建和训练自适应行为模型。除了每个实体的单独模型外,Apiiro的算法还训练更高级别的模型,这些模型用于增加检测事件的信心,实现高恶意活动检测率,同时减少不相关异常的检测。错误检测。Apiiro能够根据受感染用户的异常行为检测恶意代码提交。异常检测算法将提交标记为可疑,因为根据用户过去的活动和存储库中其他贡献者的活动,它偏离了用户的正常活动。触发异常警报的一些指标包括:1.提交代码与用户最近提交的强度不匹配;2.提交代码的时间与用户预期的活动日期和时间有偏差;3.贡献者偏离了同行的贡献模式;4.提交的代码信息与分析后的代码有较大出入;5.提交的代码与存储库模型预测的代码明显不同。Apiiro的检测是实时自动完成的,与语言和托管无关。一旦检测到攻击,该平台可以自动评论可疑提交,甚至可以在Slack中为安全运营中心触发警报。图5恶意代码提交检测和处理流程误报率是当前任何异常检测系统面临的关键挑战之一。Apiiro在过去两年对php-src仓库的分析引发了4起可疑事件,其中只有一次涉及在标记的高风险指标之外添加主要代码,即上图中描述的恶意代码submit.该平台的低误报率使操作员能够专注于众多可疑事件,而不是被无休止的异常行为所淹没。Apiiro的异常检测算法能够通过分析不同类型实体的各种活动行为,成功检测出恶意提交,同时保持极低的误报率。图5展示了Apiiro的一些异常检测功能。3.3SolarWindsbuild-time代码注入攻击检测01SolarWinds事件简介2020年底,针对SolarWinds的复杂供应链攻击成为全球头条新闻。在构建过程中,攻击者将实施后门的恶意代码注入到源代码中,使每个SolarWinds客户都面临严重风险。尽管供应链攻击是一个众所周知的概念,但这是首次公开发现如此复杂和规模的攻击。微软对这次攻击的内部和外部调查发现,该恶意软件正在SolarWindsOrionIT管理的构建环境中运行,并等待C#编译器(msbuild.exe)运行。SolarWindsOrion是SolarWinds网络和计算机管理工具套件的一部分,包括在关键计算机停机时监控和通知用户的功能,以及自动重启服务的能力。该软件可能安装在企业最关键的系统上,在系统出现故障时阻止工作进程。调查发现,早在2020年3月,就有人成功对SolarWindsOrion软件构建过程进行了恶意修改,包括植入木马。因此,当用户安装最新版本的SolarWindsOrion时,木马程序开始在受害者的计算机上运行,??从而实现远程控制。在所谓的软件“供应链攻击”中,受害者直接或间接感染了SolarWindsOrion软件。更具体地说,Orion软件框架包含一个SolarWinds.Orion.Core.BusinessLayer.dll文件,这个文件有SolarWinds数字签名,但在攻击中,这个文件包含一个后门,可以通过HTTP与第三方服务器通信沟通。木马植入后,有长达两周的初始休眠期,然后它会检索并执行称为“作业”的命令,包括传输文件、执行文件、分析系统、重启计算机以及禁用系统服务。该恶意软件伪装成OrionImprovedProgram(OIP)协议网络流量,并将侦察结果存储在兼容的插件配置文件中,使其对常规SolarWinds活动不可见,并允许攻击者远程控制计算机。微软发现,即使删除了SolarWinds后门,攻击者仍可以继续访问整个目标网络。02应对SolarWinds安全事件的挑战在本次SolarWinds安全事件中,被感染的二进制文件是一个.Net程序集,其中包含Orion框架的许多合法命名空间、类和方法。这样,攻击者就可以将他们自己的代码与合法代码融合在一起。如何有效检测相关的DLL文件成为本次检测事件的关键。最直接的方法是使用二进制代码还原原始代码进行分析,但是将二进制代码还原为原始源代码实际上是不可能完成的任务,因为编译是一个复杂的、不可逆的动作。已编译的二进制文件包含不断变化的信息、优化和元数据。即使在不同时间编译相同的源代码,生成的二进制文件也不会完全相同。除了二进制代码恢复的挑战之外,CI/CD工具和方法的种类繁多。每个团队都以不同的方式使用这些工具(每个团队都以独特的方式处理依赖性、公共代码和其他资源)。此外,CI/CD管道被设计为对其用户不可见,并且几乎从不检查,因此这是一个很大的DevSecOps盲点。03解决方案针对SolarWinds安全事件,需要深入了解源代码,利用相关技术对源代码及相关二进制文件进行分析。Apiiro使用从源代码和开发人员经验中学习的基于风险的人工智能引擎。Apiiro平台了解所有代码组件、安全控制、逻辑流程、数据类型及其关系后,可以使用这些知识来分析二进制文件。以SolarWinds安全事件中被感染的.NET二进制文件为例,Apiiro平台将解析该可执行文件并执行以下操作:1理解所有可能的逻辑流程和符号;2清除所有自动生成的编译逻辑;3调整运行时版本之间的预期差异;以此为基础,构建了标准化的二进制文件实体关系。Apiiro通过图匹配算法对源代码和二进制文件生成的实体关系图进行对比分析,实现二进制文件对比分析。Apiiro还设计了一种有效的算法来检测变异过程中所有可能的合规代码变化(AOP框架、优化等),同时对插入的恶意代码(如配置文件更新、后门、等)等等)。4.总结SDL的核心思想是将安全融入软件开发的每一个阶段:需求分析、设计、编码、测试和维护。从需求、设计到产品发布的每个阶段都增加了相应的安全活动,以减少软件中的漏洞数量,最大限度地减少安全漏洞。然而,大多数现有的代码安全和合规性工具和流程都是手动和常规的。为了集成控制和满足风险管理要求,在产品交付过程中遇到安全障碍,严重拖慢了开发进程。针对这一需求,Apiiro提出了业界首个代码风险平台。ApiiroCodeRiskPlatform可帮助客户在开发生命周期的早期有效管理风险,实施应用程序治理和合规性,并防止针对CI/CD的高级攻击。Apiiro在整个开发过程中分析数据,以帮助组织检测恶意代码、确定风险的重大变更的优先级和补救措施。Apiiro通过提供跨应用程序、基础设施、开发人员知识和业务影响的风险可见性以及高度创新,帮助组织构建应用程序风险计划。