DevSecOps 中的人工智能安全风险

DevSecOps 中的 AI 安全风险:代码, Pipelines 和代理人

人工智能安全风险:DevSecOps 团队必须了解哪些内容才能确保人工智能系统的安全

人工智能安全风险不再局限于模型行为或数据隐私。如今,它们还影响着软件的编写、审查、构建和发布方式。随着人工智能编码工具、智能体人工智能系统和人工智能驱动的工作流程的普及,人工智能安全风险日益凸显。 SDLCDevSecOps 团队面临着一种新的风险:更快的代码、更快的自动化和更快的错误。

然而,这并不意味着团队应该放慢人工智能的采用速度。相反,他们需要与人工智能辅助开发速度相匹配的安全控制措施。在本指南中,我们将解释最重要的人工智能安全风险,它们如何在实际工程工作流程中体现,以及团队如何降低代码、依赖项和密钥等方面的风险敞口。 pipeline以及代理人。

如需更全面地了解人工智能如何改变威胁形势,请参阅我们的指南。 人工智能网络安全.

人工智能安全风险有哪些?

人工智能安全风险是指在实际系统中设计、训练、集成或使用人工智能时出现的弱点、威胁或故障模式。这些风险可能影响模型、数据、提示、应用程序接口 (API)、代码等。 pipeline以及连接它们的工具。

NCSC关于人工智能和网络安全的指导 解释说,网络安全是安全可靠的人工智能系统的核心要求。同样地, NIST 人工智能风险管理框架 为组织提供通过治理、衡量和实际控制来管理人工智能风险的架构。

对于DevSecOps团队而言,问题更为具体。人工智能如今已成为软件交付链的一部分。它编写代码、建议依赖项、生成配置、调用API,有时甚至会自主运行。因此,人工智能安全风险必须在DevSecOps团队内部进行处理。 SDLC不仅限于模型层。

为什么人工智能安全风险与以往不同

传统的网络安全风险通常来自人为编写的代码、存在漏洞的软件包、薄弱的凭证或配置错误的基础设施。这些风险依然存在。然而,人工智能改变了这些风险出现的速度和检测的难度。

人工智能生成的代码可能看起来正确,但仍然会遗漏授权检查。人工智能编码助手可能会推荐存在漏洞的软件包。智能体工作流可能会调用错误的工具、访问错误的文件,或者在日志中泄露机密信息。此外,人工智能系统通常依赖于上下文、提示、连接器和外部工具,这会增加安全漏洞的出现几率。

OWASP 十大法学硕士申请问题 它重点关注诸如快速注入、敏感信息泄露、供应链问题和过度代理等风险。这些类别很有用,因为它们将人工智能行为与实际应用安全问题联系起来。

换句话说,人工智能安全风险不仅仅关乎模型本身,而是关乎围绕模型的整个系统。

DevSecOps 团队面临的核心 AI 安全风险

以下是人工智能在开发、应用安全和软件安全领域中使用时最重要的风险。 CI/CD 工作流程。

1. 人工智能生成代码的漏洞

AI编码工具可以生成能够运行但并不安全的代码。例如,它们可能会创建参数化不规范的SQL查询,跳过输入验证,或者采用弱身份验证逻辑。

这是因为许多人工智能系统会根据训练数据生成看似合理的代码模式。然而,看似合理的代码并不总是安全的代码。实际上,模型可能会重现不安全的示例,因为它们在公共代码库中很常见。

常见的例子包括:

  • SQL注入
  • 跨站脚本
  • 缺少授权检查
  • 会话处理能力较弱
  • 不安全的反序列化
  • 缺少 CSRF 保护

因此,在通过安全测试之前,人工智能生成的代码应被视为不可信。 SAST政策检查和审查。

内部链接建议:将此部分链接到您在[此处插入文章链接]上的帖子。 AI SAST.

2. 供应链和依赖性风险

人工智能工具不仅能生成代码,还能推荐软件包、版本、脚本和安装命令。这使得人工智能推荐与软件供应链风险之间形成直接联系。

例如,人工智能工具可能会建议:

  • 过时的软件包
  • 拼写错误占位依赖
  • 幻觉中的包装名称
  • 包含可疑安装脚本的软件包
  • 一个存在漏洞但仍被广泛使用的库

此外,攻击者可以利用这种行为,注册人工智能工具可能创建的软件包名称。这种风险通常被称为“域名抢注”(slopsquatting)。它将模型幻觉转化为软件包供应链攻击。

为了降低这种风险,团队需要 SCA恶意软件检测、依赖策略执行和可达性分析。他们还应该使用可利用性信号,例如 每股收益 以及来自以下方面的积极利用情报 CIS已知已利用漏洞目录.

3. 人工智能工作流程中的秘密泄露

密钥泄露是人工智能安全领域最实际的风险之一。开发人员经常将上下文信息粘贴到人工智能工具中。这些上下文信息可能包括 API 密钥、令牌、凭证、URL 或内部配置。

此外,人工智能生成的代码可能包含看起来很真实的占位符,更糟糕的是,还会将秘密信息复制回源文件。 pipeline 脚本或日志。一旦密钥进入 Git 历史记录或 CI/CD 即使原始日志被删除很久之后,它们仍然可以被利用。 commit.

常见暴露途径包括:

  • 提示历史
  • 生成的代码
  • 混帐 commits
  • CI/CD 日志
  • IaC 档
  • 容器图像
  • 共享工作空间

因此,团队应该将IDE级别的扫描与以下方法结合起来: pre-commit 检查、存储库历史扫描、 CI/CD 日志扫描和自动撤销。

内部链接建议:将此部分链接到您的安全产品或相关内容。

4. 人工智能代理和工具的滥用

代理人工智能 这就引入了一层新的风险,因为代理人不仅会提出行动建议,他们还可以采取行动。

人工智能代理可以运行 shell 命令、编辑文件、调用 API、打开 pull requests修改持续集成 (CI) 工作流程或与云服务交互。虽然这能大幅提高生产力,但也扩大了出错的影响范围。

主要风险包括:

  • 不安全的 shell 执行
  • 权限过高的 API 密钥
  • 未经授权的代码更改
  • MCP 或 API 连接器配置错误
  • 超出批准范围的工具调用
  • 超出任务所需的环境访问权限

OWASP LLM Top 10 中的“过度授权”类别在此尤为重要。如果代理拥有过多的权限,错误的指令、快速注入或被入侵的工具都可能演变成真正的安全事件。

5. CI/CD 以及 Pipeline 风险

人工智能生成的代码最终会到达 pipeline此时,风险从源代码转移到构建、工件、密钥、依赖项和部署工作流程。

例如,人工智能辅助的改变可能包括:

  • 添加一个不安全的构建步骤
  • 修改 GitHub Actions 工作流
  • 安装过程中拉取恶意软件包
  • 将密钥打印到构建日志中
  • 禁用安全控制
  • 更改部署逻辑

所以, CI/CD 安全对于人工智能的应用至关重要。 Pipeline guardrails 应该在不安全模式进入生产环境之前就加以阻止。更多详情,请参阅我们的相关内容。 CI/CD 安全性 以及 software supply chain security.

6. 数据泄露和提示注入

提示注入是人工智能安全领域最广为人知的风险之一,但人们常常误解它。它并非仅限于聊天机器人,任何接受外部输入并利用这些输入来指导操作的人工智能工作流程都可能受到其影响。

例如,恶意的问题描述、README 文件、支持工单或依赖项文档页面可能包含隐藏指令。如果人工智能代理读取并执行这些内容,攻击者就可能影响工具调用、代码更改或数据访问。

数据泄露可能以类似的方式发生。模型可能会泄露敏感信息、汇总私人文件或将机密数据发送给外部服务。因此,人工智能系统需要及时过滤、输出控制、工具限制以及明确的数据访问权限边界。

人工智能安全风险遍布全球 SDLC

人工智能安全风险出现在软件生命周期的各个阶段。关键在于确保每个阶段的安全,而不仅仅是最终应用程序的安全。

 
SDLC 阶段 人工智能安全风险 例如: 推荐控制
IDE 不安全的AI生成代码 人工智能编码助手建议使用不安全的身份验证逻辑。 实时流量可 SAST 并提供安全的代码反馈。
Commit 秘密曝光 令牌出现在生成的代码中或 commit 历史。 秘密检测, pre-commit 检查和自动撤销。
Pull Request 绕过政策 生成的代码未经审核即更改访问控制规则。 PR guardrails 以及政策执行。
构建 恶意依赖 人工智能推荐的软件包存在可疑的安装行为。 SCA恶意软件检测和依赖策略检查。
CI/CD Pipeline 操纵 代理修改工作流文件或部署脚本。 CI/CD 安全检查和异常检测。
运行时 即时注入或数据泄露 外部输入会导致人工智能工作流程揭示敏感信息。 提示控制、访问限制和监控。

人工智能安全风险与传统网络安全风险

传统网络安全依然重要。然而,人工智能带来的新行为模式需要不同的控制措施。

区域 传统网络安全风险 人工智能安全风险
代码 人为编写的漏洞。 AI以更高的速度生成不安全模式。
依赖 已知存在漏洞的软件包。 人工智能推荐的虚假、恶意或不安全的软件包。
秘密 凭证意外泄露 commit由开发者编写。 密钥被复制到提示符、生成的代码或日志中。
工具 手动误用开发者工具。 自主代理滥用工具或API。
Pipelines 配置错误 CI/CD 工作流程。 代理生成的工作流程变更或不安全的自动化。

现实世界的人工智能安全风险示例

人工智能安全风险并非纸上谈兵。目前已有多个公共框架和研究项目对这些问题进行更正式的跟踪。

麻省理工学院人工智能风险库 OWASP 收录了超过 1,700 种不同原因和领域的 AI 风险。同时,OWASP 为 LLM 应用风险提供了实用的分类,包括快速注入、敏感信息泄露、供应链漏洞和过度代理。

对于DevSecOps团队而言,最相关的例子通常出现在软件交付过程中:

  • 人工智能工具会建议使用存在漏洞的代码
  • AI代理修改工作流程文件
  • 人工智能生成的依赖关系引入了供应链风险
  • 秘密通过提示、日志或其他方式泄露。 commits
  • Agentic 工作流调用超出批准范围的工具

简而言之,当人工智能系统能够接触代码、凭证和软件包时,人工智能安全风险就会变得更加严重。 pipeline或基础设施。

人工智能安全风险

如何在实践中降低人工智能安全风险

降低人工智能安全风险的最佳方法是将人工智能辅助开发视为……的一部分。 SDLC这意味着要尽早扫描、经常验证,并在开发人员实际工作的地方强制执行策略。

1. 在集成开发环境 (IDE) 中扫描 AI 生成的代码

开发者在编写或接受 AI 生成的代码时应该能够看到安全反馈。这可以减少上下文切换,并有助于在问题提交到 Git 之前将其修复。

使用方法:

  • SAST 在 IDE 中
  • 内联漏洞解释
  • 安全修复建议
  • 政策感知型补救措施

这一点对于人工智能编码助手来说尤其重要,因为不安全的建议可能会很快进入代码库。

2. 构建前验证依赖项

AI建议的依赖项必须在安装或发布之前进行验证。因此,团队应在开发过程中强制执行依赖项控制。 CI/CD.

使用方法:

  • SCA
  • 恶意软件检测
  • 拼写错误检测
  • EPSS评分
  • 可达性分析
  • 基于策略的封锁

这有助于优先考虑代表实际风险而非仅仅是理论上的风险敞口的包裹。

3. 自动检测和撤销密钥

密钥扫描必须涵盖更广泛的内容,而不仅仅是源代码。人工智能辅助的工作流程可能会在很多地方暴露凭据。

使用方法:

  • Pre-commit 扫描
  • 存储库历史扫描
  • Pipeline 日志扫描
  • IaC 扫描
  • 容器镜像扫描
  • 自动撤销

因此,各团队缩短了暴露到控制疫情之间的时间。

4. 执行 Guardrails in CI/CD

Guardrails 应决定变更是否足够安全,可以继续进行。报告固然有用,但对于重大风险,阻止变更才是必要的。

Guardrails 应涵盖:

  • 新的关键漏洞
  • 秘密
  • 恶意依赖
  • 未固定或不受信任的软件包
  • 不安全的工作流程变更
  • 失踪 SBOMs
  • 违反政策

此外,团队应在需要时先采用仅报告模式,然后随着信心的增强逐步过渡到阻止模式。

5. 监控代理工具行为

智能体人工智能系统需要可观测性。如果智能体可以编辑文件、触发构建或调用 API,团队需要知道它做了什么、何时做的,以及该操作是否在预期之内。

监控:

  • 工具调用
  • 工作流文件更改
  • 存储库写入活动
  • 网络目的地
  • 秘密访问
  • Pull request 创建
  • Pipeline 触发

如果没有这种可见性,代理的自主性就难以信任。

Xygeni如何帮助降低人工智能安全风险

Xygeni 专注于保障整个软件交付链中 AI 辅助开发的安全。它并没有将 AI 风险视为一个单独的类别,而是将代码、依赖项、密钥、 pipeline以及业务背景。

例如:

  • SAST 有助于及早发现不安全的AI生成代码。
  • SCA 验证依赖关系并检测恶意软件包。
  • 机密安全 检测跨存储库暴露的凭据, pipelines.
  • CI/CD 安保防护 在不安全的变更发生之前强制执行相关政策。
  • 异常检测 识别开发和交付工作流程中的异常行为。
  • ASPM 将调查结果整合到一个风险视图中,以便团队能够优先考虑重要事项。

这一点至关重要,因为人工智能安全风险本质上是跨层的。易受攻击的依赖项、暴露的令牌和不安全的流程变更,在单个工具中可能看起来彼此独立。然而,它们结合起来可能构成一条更大的攻击路径。

了解人工智能安全风险管理框架

多种框架可以帮助团队构建工作流程。

NIST 人工智能风险管理框架 帮助组织机构绘制、衡量、管理和控制人工智能风险。它对领导层、合规部门和风险管理项目都非常有用。

OWASP 十大法学硕士申请问题 对于应用安全团队来说,这更加实用,因为它直接对应于技术风险,例如快速注入、敏感数据泄露、供应链漏洞和过度代理。

NCSC人工智能和网络安全指南 对于需要了解人工智能如何改变组织网络风险的安全领导者来说,这非常有用。

这些资源共同表明了一个明确的一点:人工智能安全必须从人员、流程、系统和软件交付工作流程等方面进行管理。

清单:如何降低人工智能安全风险

将此清单作为实际操作的起点。

控制区 该怎么办 为什么重要
AI生成的代码 运行 SAST 在 IDE、PR 和 CI/CD pipeline. 防止不安全的代码进入生产环境。
依赖 绝大部分储备使用 SCA恶意软件检测、EPSS 和可达性。 屏蔽人工智能推荐的风险包裹。
秘密 Scan 扫描 commits、日志、历史记录、 IaC和容器。 减少凭证泄露和滥用。
CI/CD 执行 pipeline guardrails 以及政策关卡。 阻止不安全的构建和部署。
代理工具 监控工具调用、API 访问和工作流程变更。 限制过度自主和意外行为。
风险管理 绝大部分储备使用 ASPM 将不同层面的研究结果关联起来。 帮助团队专注于真正的业务风险。

关键精华

  • 人工智能安全风险现在会影响代码、依赖项和密钥。 pipeline以及代理人。
  • 传统应用安全工具仍然是必要的,但它们必须更早运行,并结合更多上下文信息。
  • 人工智能生成的代码在经过验证之前应视为不可信。
  • AI代理工作流程需要 guardrails权限和可观测性。
  • DevSecOps团队需要统一的可见性 SDLC 有效管理人工智能风险。

常见问题解答:人工智能安全风险

人工智能安全风险有哪些?

人工智能安全风险是指在构建、集成或使用人工智能系统时出现的威胁或漏洞。它们可能影响模型、数据、提示、代码、依赖项、API 等。 pipelines.

DevSecOps团队面临的最大AI安全风险是什么?

最大的风险包括不安全的AI生成代码、易受攻击的依赖项、密钥泄露、提示注入、过多的代理权限以及不安全因素。 CI/CD 自动化。

人工智能安全风险与传统网络安全风险有何不同?

人工智能系统可以生成代码、建议依赖关系、调用工具并自主行动。因此,风险出现得更快,并且渗透到更多层面。 SDLC.

团队如何降低人工智能安全风险?

团队可以通过扫描人工智能生成的代码、验证依赖关系、检测密钥、强制执行等方式来降低风险。 CI/CD guardrails通过监测代理行为并将结果关联起来 ASPM.

人工智能生成的代码安全吗?

人工智能生成的代码默认情况下并不安全。在投入生产环境之前,应该对其进行审查、扫描、测试和验证。

结语:人工智能安全风险需求 SDLC-级别控制

人工智能改变了软件风险的速度和形式。它帮助团队更快地构建产品,但也为不安全的代码、泄露的机密信息、不安全的依赖项和高风险的自动化流程进入交付链引入了新的途径。

因此,人工智能安全不能仅仅依靠模型治理或政策文件来解决,还需要在人工智能内部实施切实可行的控制措施。 SDLC:IDE反馈, SAST, SCA、秘密检测、 CI/CD guardrails、异常检测和 ASPM水平相关性。

能够有效管理人工智能安全风险的团队,不会成为阻碍人工智能普及的绊脚石。相反,他们会为人工智能构建起完善的安全防护层。

sca-tools-软件-成分分析工具
确定软件风险的优先级、进行补救并加以保护
7-day免费试用
无需信用卡

保护您的软件开发和交付

使用 Xygeni 产品套件