DryRun Security 提供基于 AI 的应用安全帮助,快速且与上下文相关的流程,现在还支持用会话语言表达的安全策略。
译自 Root Out Vulnerabilities in GitHub as You Merge Code Changes,作者 Susan Hall。
尽管人们一直在谈论需要将安全措施“左移”到软件开发生命周期的更早期阶段,但几乎没有什么措施真正让开发人员的工作变得轻松。这是DryRun Security的首席执行官兼联合创始人James Wickett的观点。
“这实际上把很多负担都转移到了开发人员身上,但并没有真正改善他们的生活……作为一个行业,我们把那些原本为渗透测试人员和应用安全代码审查人员设计的工具拿过来,这些工具原本需要运行很长时间,然后再进行筛选。我们把这些工具原封不动地移到了更早的阶段……然后让开发人员去处理这些工具的输出结果,”他说。
“这些工具太嘈杂了,它们太容易产生我们所说的误报。它们没有为开发人员生成真正的结果,并且运行时间过长。仅凭这三点,就足以使这些工具不适合开发人员使用,无法为开发人员提供帮助。但这就是目前大多数工具的现状。”
位于德克萨斯州奥斯汀的DryRun Security在GitHub上应用人工智能和机器学习技术,以在每次代码更改时发现漏洞。它刚刚推出了自然语言代码策略(NLCP),使用户能够用简单、对话式的语言为其所有代码库定义安全策略,而无需担心语言或框架。
人工智能编程助手的使用,例如GitHub Copilot,正在迅速增长——在Stack Overflow的一项调查中,76%的受访者正在使用或计划使用这类工具。这意味着开发人员能够更快地生成更多的代码。
“生成更多代码很棒,但这也导致了代码之后发生的所有事情的增加——而后续的事情有很多。从安全测试,到单元测试,再到整体治理,部署的次数,以及引入的依赖项数量。”Harness的《2025年软件交付现状报告》的领域首席技术官 Martin Reynolds 说。
根据DryRun的说法,在开发过程中增加的安全控制机制会延长构建时间,这使得开发人员不愿意使用它们,或者减少代码提交的频率。
首先,DryRun旨在帮助开发人员快速发现问题。它声称在GitHub上运行的一个名为上下文安全分析的过程仅需10秒。
上下文安全分析利用开发人员编写代码时收集的上下文数据(代码路径、函数、作者、语言)来近乎实时地进行上下文感知断言。它专为现代分布式、基于微服务并大量依赖API和第三方组件的应用程序而设计。“
该过程会针对任何代码更改查看五个关键因素……我们使用SLIDE这个缩写来思考上下文安全分析:表面、语言、意图、设计和环境,我们围绕这些元素收集大量数据,并为该特定代码更改构建出一个上下文窗口,”Wickett解释道。
大多数安全工具仅使用静态应用安全测试(SAST)或软件成分分析(SCA)——这两种数据点——然而还有大量其他数据可以用来评估代码变更的风险,联合创始人Ken Johnson在领英一篇文章中解释道。
“我们这个行业一直以来所积累的那些工具,它们都是基于模式的,实际上,我们在代码分析方面一直采用相同的方法,大概有20到25年甚至更久,”Wickett 说。
它们都基于正则表达式和模式,调用语法树。这通常是每种工具,甚至是更现代的工具所采用的方法。但这只有在你提前知道要查找哪些模式的情况下才有效,而且它也给你的开发人员或应用安全人员带来了很大的负担,他们必须编写大量的规则,并学习另一种领域特定语言,用它来表达针对不同编程语言的规则,无论是Java、Python还是其他语言。
DryRun提供了一系列分析器,用于检查身份验证/授权是否正确使用,是否暴露了秘密或敏感信息等等。
我们有自己的策略,开箱即用,可以满足大约80%到90%用户的需求。然后,通常情况下,我们的客户会发现他们有一些问题,或者他们有关于授权问题、加密设置以及与他们合作的第三方供应商更改的特定代码策略。这就是人们如何使用自然语言问题扩展产品——例如,“这个代码更改是否影响了我们的密码重置流程?”“这个代码更改是否修改了加密?”“这个代码更改是否改变了我们公司进行授权的方式?”他们可以填写与他们相关的更多详细信息,Wickett说。
这家拥有10名员工的初创公司于2023年成立,最近宣布获得870万美元的种子轮融资。Wickett和Johnson是应用安全领域的资深人士,定期在网络研讨会和会议上发表演讲,最近一次是关于在应用安全中整合大型语言模型(LLM)。
他们像其他人一样正在学习AI,并记录了他们如何将LLM整合到他们的工作中。
“人们使用LLM和AI做的一些事情,就是获取一段代码并将其交给AI系统,看看它会说什么。我们有自己的知识库,基于我们所有的语言和框架。我们还发现了自己独特的代码查询方法,它完全基于LLM。因此,在我们收集所有这些上下文并能够回答问题时,我们每一层都在使用LLM。
“但是……我们能够快速、准确地为开发人员提供真正的指导……我们不会将他们引导到网络上某个通用的地方,上面写着‘嘿,你看,你这里有跨站脚本,或者你有IDOR(不安全的直接对象引用)或其他漏洞。’我们实际上是在用他们自己的代码、他们自己的变量、他们的函数以及他们正在调用的方法来解释他们代码中的问题。所以它与开发人员高度相关。”Wickett说。
他坚持认为,AI和LLM能够解决传统SAST方法无法解决的问题。
“这一点尤其正确,我们发现这几乎适用于我们所有客户的授权问题,他们发布新的端点,但没有正确应用授权。开发人员意外地将错误的角色或错误的授权组件放在不同的端点上,这是一个真正的安全问题,传统的SAST工具由于其匹配模式的方式而无法解决。”
DryRun是一个在GitHub内部工作的应用程序,它与Copilot协同工作。GitLab版本正在开发中。Wickett认为,现代IDE越来越能够消除许多简单的错误,但错误只会变得越来越复杂,这强化了这样一个观点:开发人员需要快速、上下文相关的帮助来解决这些错误。
“GitHub集成确保我们的开发人员直接在其工作流程中获得精确和即时的反馈,使他们能够毫不费力地修复安全问题。该工具不仅帮助我们及早发现硬编码凭据等风险,而且还培养了开发人员的安全文化。DryRun Security是我们应用安全工具包中不可或缺的一部分,”PlanetArt的CTO Gary Gonzalez说。