随着企业加快将安全与合规规则以代码形式落地,“政策即代码(Policy as Code)”正在快速普及,借助AI生成策略代码的做法也越来越常见。不过,业内提醒,AI生成的策略表面上可能没有语法问题,但在实际运行中,可能会放行原本不应被允许的访问请求。
Apple资深安全工程师、独立研究者Bachal Gupta近日在接受SecurityWeek采访时表示,大语言模型(LLM)生成的策略“往往语法正确,但语义经常出错”。他指出,只要遗漏某个条件,或误解某个属性,“谁能访问什么”的边界就可能被彻底改写。
据Bachal Gupta归纳,这类错误主要可分为五种。
第一类是上下文条件缺失。对于需要按地域、部门、资源所有权等维度限制访问的策略,如果相关条件被遗漏,策略即便看起来有效,也可能被扩大适用于原本不该覆盖的全部对象。
第二类是拒绝逻辑缺失。访问控制通常遵循“默认拒绝”原则,再在此基础上设置例外规则,但AI可能只生成例外条款,却遗漏底层限制条件。
第三类是“幻觉”问题。AI可能在策略中写入系统并不存在的属性。此类代码或许能够通过语法校验,但在运行时可能产生偏离预期的结果。
第四类是时间和情境条件被过度简化。原本仅限特定时段、或必须经过审批流程的访问权限,可能被改写为不受时限或情境约束的放行规则。第五类是行为分类错误。原本用于限制删除等敏感操作的策略,最终可能限制到更宽泛的操作,甚至误伤完全不同的行为。
Bachal Gupta警告称,这类错误通常不会导致构建失败,也未必会触发告警,而是会“悄无声息地逐步扩大访问范围”。更值得警惕的是,策略并不是一次生成后就结束,而是会在生成、修改、部署的循环中持续迭代,细小错误也会在这一过程中不断累积。
他表示,如果策略生成过程本身不可靠,风险就会扩散到整个系统。尤其在数千条策略同时运行的环境中,单条策略中的微小缺陷看似不起眼,但叠加之后,可能形成难以识别的攻击面。
在Bachal Gupta看来,问题不在于是否使用AI,而在于如何调整信任模型。企业不应默认生成结果天然正确,而应在策略生成与上线之间设置必要的验证和审查机制。他强调,自动化不应成为终点,准确性、可审计性和可验证的信任才是目标;在访问控制场景中,“差不多正确”远远不够。