机器智能通过实现更智能的错误发现、自动评估甚至自主威胁搜寻,正在改变应用程序安全 (AppSec)。这篇文章深入介绍了基于 AI 的生成式和预测性方法如何在应用程序安全领域发挥作用,专为安全专业人员和决策者撰写。我们将研究 AppSec 中 AI 的演变、其当前功能、障碍、自主 AI 代理的兴起以及即将到来的方向。让我们开始分析支持 ML 的 AppSec 防御的历史、现在和未来。

AI for Application Security 的演变和根源

迈向自动化 AppSec
的第一步 早在 AI 成为流行语之前,安全团队就寻求自动发现漏洞。在 1980 年代后期,Barton Miller 博士在模糊测试方面的开创性工作证明了自动化的力量。他 1988 年的研究实验随机生成了使 UNIX 程序崩溃的输入——“模糊测试”揭示了大约四分之一到三分之一的实用程序可能会因随机数据而崩溃。这种简单的黑盒方法为后续的安全测试方法铺平了道路。到 1990 年代和 2000 年代初,工程师使用自动化脚本和扫描应用程序来查找广泛的缺陷。早期的静态分析工具的行为类似于高级 grep,检查代码是否存在不安全的函数或硬编码的凭据。虽然这些模式匹配策略是有益的,但它们经常会产生许多不正确的标志,因为与上下文无关,任何与模式匹配的代码都会被报告。

机器学习安全工具
的增长在接下来的几年里,大学研究和企业解决方案取得了进步,从严格的规则过渡到智能分析。机器学习逐步进入 AppSec。早期的例子包括用于系统流量异常检测的神经网络,以及用于垃圾邮件或网络钓鱼的贝叶斯过滤器 — 不是严格的 AppSec,而是趋势的证明。同时,代码扫描工具通过数据流分析和基于 CFG 的检查来跟踪信息在应用程序中的移动方式。

形成的一个关键概念是代码属性图 (CPG),它将语法、控制流和数据流组合到一个统一的图形中。这种方法支持更多的上下文漏洞评估,后来赢得了 IEEE“时间测试”奖。通过将代码表示为节点和边缘,安全工具可以识别出简单关键字匹配之外的复杂缺陷。

2016 年,DARPA 的 Cyber Grand Challenge 证明了完全自动化的黑客平台——能够实时发现、确认和修补安全漏洞,无需人工干预。表现最好的“Mayhem”结合了高级分析、符号执行和 AI 计划措施,以对抗人类黑客。这一事件是自治网络保护措施的一个里程碑式的时刻。

用于漏洞检测
的 AI 的重大突破 随着更好的算法和更多训练数据的兴起,AppSec 中的 AI 加速了发展。大公司和小公司都取得了里程碑。一个显著的飞跃涉及预测软件漏洞和漏洞利用的机器学习模型。漏洞利用预测评分系统 (EPSS) 就是一个例子,它使用大量功能来估计哪些漏洞将面临实际利用。这种方法使防御者能够解决最危险的弱点。

在代码分析中,深度学习方法已经被提供给大量的代码库来发现不安全的结构。Microsoft、Alphabet 和各种组织已经表明,生成式 LLM(大型语言模型)通过自动化代码审计来提升安全任务。例如,Google 的安全团队利用 LLM 为开源项目开发随机输入集,从而在减少开发人员干预的情况下扩大覆盖范围并发现其他漏洞。

AppSec 中的当前 AI 功能

当今的应用程序安全利用了两大类 AI:生成式 AI,生成新的输出(如测试、代码或漏洞),以及预测性 AI,分析数据以检测或预测漏洞。这些功能涵盖安全生命周期的每个阶段,从代码检查到动态扫描。

AI 生成的测试和攻击
生成式 AI 生成新数据,例如揭示漏洞的攻击或代码段。这在 AI 驱动的模糊测试中很明显。传统的模糊测试源自随机或突变输入,而生成模型可以生成更具针对性的测试。Google 的 OSS-Fuzz 团队实施了基于文本的生成系统,为开源项目开发了专门的测试工具,从而提高了缺陷发现结果。

同样,生成式 AI 可以帮助构建漏洞利用程序。研究人员谨慎地证明,一旦了解了漏洞,AI 就会促进 PoC 代码的创建。在对抗方,红队可能会使用生成式 AI 来扩大网络钓鱼活动。在防御方面,公司使用 AI 驱动的漏洞利用生成来更好地验证安全态势并创建补丁。

用于漏洞检测和风险评估
的预测性 AI 预测性 AI 分析数据集以定位可能的可利用缺陷。模型可以从数千个易受攻击与安全的软件片段中推断出,而不是固定的规则或签名,从而注意到基于规则的系统可能会遗漏的模式。这种方法有助于标记可疑模式并预测新发现的问题的可利用性。

确定缺陷的优先级是预测性 AI 的第二个好处。漏洞利用预测评分系统就是一个例子,其中机器学习模型根据 CVE 条目在野外受到攻击的概率对它们进行排名。这允许安全程序专注于代表最高风险的前 5% 的漏洞。一些现代 AppSec 解决方案将拉取请求和历史错误数据馈送到 ML 模型中,以估计系统的哪些区域特别容易受到新缺陷的影响。

AppSec Testing
的机器学习增强功能 Classic 静态应用程序安全测试 (SAST)、DAST 工具和 IAST 解决方案越来越多地通过 AI 进行增强,以提高吞吐量和精度。

SAST 在不运行的情况下扫描源文件以查找安全漏洞,但如果没有足够的上下文,通常会触发大量不正确的警报。AI 通过机器学习控制流分析对通知进行分类并忽略那些无法真正利用的通知来做出贡献。Qwiet AI 等工具集成了 Code Property Graph 和 ML 来判断漏洞利用路径,从而大大降低了误报。

DAST 扫描正在运行的应用程序,发送恶意请求并分析响应。AI 通过允许自主爬取和不断发展的测试集来增强 DAST。代理可以更有效地解释多步骤工作流、现代应用程序流和微服务终端节点,从而增加覆盖范围并减少监督。

IAST 在运行时检测应用程序以记录函数调用和数据流,可以产生大量遥测数据。AI 模型可以解释该数据,找到用户输入未经过滤到达关键接收器的易受攻击的流。通过将 IAST 与 ML 结合使用,可以修剪不相关的警报,仅突出显示有效风险。

比较 AppSec
中的扫描方法当代代码扫描工具通常混合了多种技术,每种技术都有其优点/缺点:

Grepping (Pattern Matching):最基本的方法,搜索字符串或已知的正则表达式(例如,可疑函数)。快速,但由于没有语义理解,极易出现误报和漏报问题。

签名(规则/启发式):专家对已知漏洞进行编码的启发式扫描。它对常见的 bug 类很有用,但仅限于新的或不常见的弱类。

代码属性图 (CPG):一种更现代的上下文感知方法,将 AST、控制流图和 DFG 统一为一种表示形式。工具处理有风险数据路径的图形。与 ML 相结合,它可以发现零日模式并通过数据路径验证消除噪声。

在实际实现中,提供程序将这些方法组合在一起。他们仍然使用已知问题的规则,但通过图形驱动的上下文分析和机器学习来确定警报的优先级,从而对它们进行补充。

保护容器并解决供应链威胁
随着公司采用云原生架构,容器和依赖性安全性得到了优先考虑。AI 在这方面也有帮助:

容器安全:AI 驱动的图像扫描程序会仔细检查容器文件,以查找已知的 CVE、错误配置或敏感凭据。一些解决方案会评估在执行时是否实际使用了漏洞,从而减少不相关的结果。同时,运行时基于 AI 的异常检测可以检测异常的容器作(例如,意外的网络调用),从而捕获传统工具可能错过的攻击。

供应链风险:由于 npm、PyPI、Maven 等中有数百万个开源包,人工审查是不现实的。AI 可以分析包元数据中的恶意指标,从而暴露后门。机器学习模型还可以估计某个组件可能受到威胁的可能性,同时考虑使用模式。这使团队能够专注于最可疑的供应链要素。同时,AI 可以监视构建管道中的异常情况,确保仅部署合法代码和依赖项。

障碍和缺点

虽然 AI 为 AppSec 带来了强大的功能,但它并不是一个神奇的解决方案。团队必须了解缺点,例如错误分类、可行性检查、训练数据偏差和处理零日威胁。

误报和漏报
所有自动化安全测试都处理误报(标记不易受攻击的代码)和漏报(缺少真正的漏洞)。AI 可以通过添加上下文来缓解前者,但它可能会导致新的错误来源。模型可能会错误地检测到问题,或者如果训练不当,可能会错过严重的错误。因此,专家验证通常对于验证准确的警报仍然至关重要。

确定实际影响
即使 AI 检测到不安全的代码路径,也不能保证攻击者实际上可以访问它。评估现实世界的可利用性很复杂。一些套件尝试约束求解来证明或消除漏洞利用的可行性。然而,全面的实际验证在商业解决方案中仍然不常见。因此,许多 AI 驱动的发现仍然需要专家的意见才能认为它们的严重性较低。

安全 AI
AI 算法中的固有训练偏差从历史数据进行训练。如果该数据过度表示某些编码模式,或者缺乏新威胁的情况,则 AI 可能无法检测到它们。此外,如果训练集认为某些平台不太容易被利用,则系统可能会忽略这些平台。频繁的数据刷新、包容性数据集和模型审计对于缓解此问题至关重要。

处理未知
机器学习擅长于它以前见过的模式。如果一个全新的漏洞类型与现有知识不匹配,它可能会绕过 AI。恶意方还与对抗性 AI 合作,以误导防御工具。因此,基于 AI 的解决方案必须不断更新。AI 驱动的 AppSec一些研究人员采用异常检测或无监督聚类来捕捉经典方法可能会遗漏的奇怪行为。然而,即使是这些基于异常的方法也可能无法捕捉到巧妙伪装的零日漏洞或产生红鲱鱼。

代理 AI 在安全领域的兴起

AI 世界中最近的一个术语是代理 AI,即不仅可以产生输出,还可以自主执行任务的自主代理。在网络防御中,这意味着 AI 可以管理多步骤作,适应实时响应,并在最少的人工监督下做出选择。

定义自主 AI 代理
代理 AI 程序提供了总体目标,例如“发现此应用程序中的弱点”,然后它们确定如何做到这一点:聚合数据、执行测试并根据结果改变策略。影响是巨大的:我们从作为帮助者的 AI 转变为作为自主实体的 AI。

用于攻击和防御
进攻的代理工具(红队)用途:代理 AI 可以自主发起红队演习。FireCompass 等供应商提供了一个 AI,可以列举漏洞、制定攻击手册并演示入侵 — 所有这些都是靠自身实现的。同样,开源“PentestGPT”或相关解决方案使用 LLM 驱动的分析来链接多阶段入侵的攻击步骤。

防御(蓝队)使用:在防御方面,AI 代理可以监控网络并自动响应可疑事件(例如,隔离受感染的主机、更新防火墙规则或分析日志)。一些事件响应平台正在实施“代理手册”,其中 AI 动态执行任务,而不仅仅是遵循静态工作流。

自主渗透测试和攻击模拟
完全自主的渗透测试是许多网络专家的雄心壮志。在没有人工监督的情况下全面列举漏洞、制作攻击序列并报告它们的工具正在成为现实。DARPA 网络大挑战赛的胜利和新的自主黑客攻击表明,人工智能可以结合多步骤攻击。

AI 代理
的潜在陷阱 自主性越强,风险就越大。自治系统可能会无意中在生产环境中造成损害,或者攻击者可能会纵系统以启动破坏性作。强大的护栏、沙盒和对风险任务的人工批准是必不可少的。尽管如此,代理 AI 代表了安全自动化的下一个发展。

AI 增强安全性的即将推出的方向

AI 在应用程序安全中的作用只会越来越大。我们预计短期和十年内将出现重大变化,出现监管问题和负责任的考虑。

短期预测
在未来几年内,组织将更普遍地采用 AI 辅助编码和安全性。开发人员工具将包括由 AI 模型驱动的漏洞扫描,以实时标记潜在问题。基于 AI 的模糊测试将成为标准。具有自主测试的定期 ML 驱动扫描将补充年度或季度渗透测试。随着反馈循环完善机器智能模型,警报精度有望得到提高。

攻击者还将利用生成式 AI 进行社会工程,因此必须发展防御对策。我们将看到近乎完美的社交骗局,需要新的基于 AI 的检测来打击 AI 生成的内容。

监管机构和合规机构可能会开始发布框架,以便在网络安全中透明地使用 AI。例如,规则可能要求组织审核 AI 建议以确保监督。

长期展望(5-10+ 年)
从长远来看,AI 可能会完全重塑软件开发,可能导致:

AI 增强开发:人类与 AI 协作,AI 生成大部分代码,并在进行过程中嵌入安全编码。

自动漏洞修复:不仅可以检测缺陷,还可以自主解决缺陷的工具,验证每项修正案的可行性。

主动、持续的防御:自动观察器全天候扫描应用程序、预测攻击、动态部署安全控制并实时对抗对抗性 AI。

安全设计架构:AI 驱动的威胁建模,确保从基础开始以最少的漏洞利用向量构建应用程序。

我们还预测,AI 本身将受到监管,关键行业使用 AI 的合规性规则。这可能需要透明的 AI 和训练数据的审计。

AI 在合规性和治理中的应用随着
AI 成为网络防御中不可或缺的一部分,合规性框架也将不断发展。我们可能会看到:

AI 驱动的合规性检查:自动合规性扫描以确保实时满足要求(例如 PCI DSS、SOC 2)。

AI 模型的治理:要求公司跟踪训练数据,证明模型公平性,并为监管机构记录 AI 驱动的行动。

事件响应监督:如果 AI 代理执行系统锁定,哪一方负责?定义 AI 误判的责任是合规机构将解决的一个复杂问题。

道德和对抗性 AI 风险
除了合规性之外,还存在道德问题。使用 AI 进行员工监控存在隐私侵犯的风险。如果 AI 存在缺陷,仅依靠 AI 做出以安全为中心的决策可能会有风险。同时,恶意运营商使用 AI 来逃避检测。数据中毒和 AI 开发可能会损坏防御性 AI 系统。

对抗性 AI 代表着一种高度的威胁,威胁行为者专门破坏 ML 基础设施或使用生成式 AI 来逃避检测。确保 ML 代码的安全性将是未来几年 AppSec 的一个重要方面。

最后的思考

AI 驱动型方法已开始彻底改变应用程序安全性。我们已经讨论了基础、现代能力、障碍、自动驾驶系统的使用和长期愿景。要点是 AI 是安全团队的强大盟友,有助于更快地检测漏洞、对最大的威胁进行排名并自动执行复杂的任务。

然而,这并不是万能的。虚假的标志、偏见和零日漏洞需要专家审查。黑客和防御者之间的竞争仍在继续;AI 只是这场冲突的最新舞台。负责任地整合 AI 的组织,将其与专家分析、法规遵从性和持续更新相结合,能够在不断发展的应用程序安全世界中蓬勃发展。

归根结底,AI 的机会是一个防御更完善的数字环境,在这里,漏洞可以及早发现并迅速修复,安全专业人员可以正面打击网络犯罪分子的快速创新。随着 AI 技术的持续研究、合作和进步,这种情况可能会在不远的时间表内实现。

 

出处:https://dev.to/

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
意见
建议
发表
评论
返回
顶部