SheepNav
新上线26天前0 投票

AI在寻找隐藏软件漏洞方面变得惊人地强大——即使是几十年前的旧代码

AI的“双刃剑”:漏洞发现能力飙升,但自身也制造更多Bug

在软件开发的漫长历史中,寻找和修复代码中的漏洞一直是耗时费力且容易出错的过程。如今,人工智能技术正在这一领域展现出前所未有的潜力。最新趋势表明,AI工具在检测隐藏软件漏洞方面的能力正变得“惊人地强大”,甚至能够有效分析几十年前的遗留代码,识别出人类开发者可能长期忽视的安全隐患。

AI如何“看穿”旧代码?

传统上,老旧代码库由于文档缺失、技术栈过时或原始开发者离职,往往成为安全审计的难点。AI通过以下方式突破这些限制:

  • 模式识别与异常检测:AI模型经过海量代码训练,能够识别出不符合常见安全模式的“异常”代码片段,即使这些代码是用早已淘汰的语言编写。
  • 上下文理解:先进的自然语言处理技术让AI能部分理解代码注释和变量命名背后的意图,从而推断潜在的逻辑错误。
  • 跨版本比对:AI可以自动分析同一项目不同版本间的代码差异,快速定位引入漏洞的具体变更。

这种能力对于维护关键基础设施(如金融系统、政府数据库)中仍在运行的遗产系统具有重大价值,有望显著降低因未知漏洞导致的安全事件风险。

不容忽视的另一面:AI自身也在制造Bug

然而,伴随其强大检测能力而来的,是一个值得警惕的发现:AI在协助开发过程中,自身也会引入新的软件缺陷。数据显示,AI生成的代码中,Bug数量平均约为人类开发者的1.7倍,而且这些缺陷并非无关紧要的小问题——其中包括关键性(Critical)和重大(Major)级别的漏洞,可能直接影响软件的安全性、稳定性或核心功能。

这揭示了当前AI辅助编程工具的一个根本性挑战:虽然它们能基于统计模式高效生成代码,但缺乏对深层业务逻辑、边缘案例和长期维护需求的真正理解。AI可能会:

  • 过度依赖训练数据中的常见模式,而忽略特定场景的特殊要求。
  • 生成看似正确但存在隐蔽逻辑错误的代码,尤其是在处理复杂条件或并发时。
  • 无法像经验丰富的开发者那样,预见代码在未来迭代中可能引发的问题。

对行业意味着什么?

这一“双刃剑”现象正在重塑软件开发实践:

  1. 工具定位的重新思考:AI不应被视为完全替代人类开发者的“自动编程机”,而更适合作为增强分析工具和初级代码助手。其价值在于快速扫描、提供修复建议,但最终决策和复杂逻辑实现仍需人类把关。
  2. 开发流程的进化:采用AI辅助的团队需要建立更严格的代码审查机制,特别是对AI生成或修改的部分。“AI生成,人类复核” 可能成为新的标准流程。
  3. 技术发展的方向:减少AI自身引入的Bug,将成为下一代编程AI的核心改进目标。这需要模型在代码生成时,更好地整合形式化验证、测试用例生成等质量保障技术。

小结

AI在漏洞发现领域的进步是显著的,它为处理技术债务、提升软件安全提供了强大工具。但业界必须清醒认识到,当前阶段的AI既是“漏洞猎人”,也是“Bug制造者”。明智的做法是拥抱其效率优势,同时通过健全的工程实践来管理其带来的新风险。未来,如何让人工智能的“创造力”与软件的“可靠性”更好结合,将是开发者与AI研究者共同面临的持续课题。

延伸阅读

  1. 太空数据中心能否支撑SpaceX的巨额估值?
  2. 在日本,机器人不是来抢工作的,而是填补没人愿意干的岗位
  3. 我让Google Maps里的Gemini规划我的一天,结果出乎意料地好
查看原文