Linux Foundation 启动了 Akrites,一项面向全行业的新计划,目标是保护全球关键开源软件,应对快速演进的 AI 驱动型网络威胁。现有公开摘要并未披露 Akrites 的具体工具、治理结构或接入方式,但它传递了一个清晰信号:开源安全正在进入攻击自动化与防御协作同时加速的新阶段。
AI 改变的是攻击规模,而不只是攻击手法
AI 并没有让依赖混淆、凭据泄露、恶意提交和供应链投毒这些风险凭空出现。真正的变化在于成本和速度:攻击者可以更快分析公开代码、生成漏洞变体、编写具有迷惑性的贡献内容,并批量寻找维护资源薄弱的项目。
关键开源项目尤其值得关注,因为一个基础库、构建插件或容器镜像可能被成千上万个下游系统间接使用。攻击者不必逐一突破这些系统,只需找到供应链中权限较高、审查较弱或发布流程不透明的节点。
因此,Akrites 所代表的行业级防御方向很重要。单个维护者可以修复一个漏洞,却很难独立解决跨项目的威胁情报、身份验证、构建来源证明、自动化检测和事件响应问题。行业协作的价值,在于把这些能力沉淀为可复用的规则、工具和响应机制。
不要把一项计划误当成可直接安装的安全产品
根据现有摘要,Akrites 被描述为一项行业范围的 initiative,而不是已经公布接口和命令行工具的软件产品。因此,团队不应假设安装某个 Akrites 软件包就能获得完整防护,也不应虚构其扫描能力或兼容范围。
在更多技术细节公布前,可以先围绕几个可验证的控制点建设防线:
- 对依赖版本和来源进行锁定,降低依赖解析结果漂移的风险。
- 为发布构件生成软件物料清单,也就是 SBOM。
- 在 CI 中执行依赖、密钥和静态代码扫描,并保存结果。
- 限制发布权限,启用多因素认证和受保护分支。
- 对镜像或制品签名,在部署前验证签名与来源证明。
- 为自动生成的代码和外部贡献保留人工审查环节。
这些措施不能消灭 AI 驱动的攻击,但可以提高攻击成本,并让异常行为留下可调查的证据。
可以这样实践:为仓库加入最小供应链检查
下面是一个可改造的 GitHub Actions 工作流。它不代表 Akrites 的官方实现,而是一套可立即采用的基础控制:使用 Trivy 扫描仓库中的漏洞、错误配置和泄露的密钥,再用 Syft 生成 CycloneDX 格式的 SBOM。
将以下内容放入 .github/workflows/supply-chain-security.yml。如果仓库包含私有依赖,需要按相应包管理器的方式配置只读凭据。
name: Supply Chain Security
on:
pull_request:
push:
branches: [main]
permissions:
contents: read
jobs:
scan-and-inventory:
runs-on: ubuntu-latest
steps:
- name: Check out source
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Scan vulnerabilities, secrets, and configuration
uses: aquasecurity/trivy-action@master
with:
scan-type: fs
scan-ref: .
scanners: vuln,secret,misconfig
severity: HIGH,CRITICAL
ignore-unfixed: true
exit-code: "1"
- name: Generate CycloneDX SBOM
uses: anchore/sbom-action@v0
with:
path: .
format: cyclonedx-json
output-file: sbom.cdx.json
- name: Upload SBOM
uses: actions/upload-artifact@v4
with:
name: sbom-cyclonedx
path: sbom.cdx.json
if-no-files-found: error
这段配置会在拉取请求和 main 分支更新时运行。高危或严重问题会阻止流水线继续,生成的 SBOM 则作为构建产物保存。正式使用时还应把 Action 固定到完整提交哈希,避免仅依赖可移动的版本标签;同时配置依赖更新流程,定期更新这些固定引用。
本地也可以运行相同类型的检查。以下命令假设已安装 Docker,会把当前目录挂载到扫描容器中:
docker run --rm \
-v "$PWD:/src" \
aquasec/trivy:latest \
fs --scanners vuln,secret,misconfig \
--severity HIGH,CRITICAL \
--exit-code 1 /src
docker run --rm \
-v "$PWD:/src" \
anchore/syft:latest \
dir:/src -o cyclonedx-json=/src/sbom.cdx.json
为了保证构建可复现,生产环境应把示例中的 latest 替换为经过验证的固定版本或镜像摘要。
自动化防御也有边界
扫描器依赖已知规则和漏洞数据,无法证明代码没有后门。AI 生成的恶意修改还可能表现为貌似合理的重构、测试调整或边界条件处理,仅凭关键词和静态规则很难识别。
团队需要把工具结果放进权限与审查体系中:敏感目录配置 CODEOWNERS,发布任务与普通 CI 分离,长期凭据替换为短期身份令牌,并要求高风险变更由两名以上维护者批准。对外部贡献者提交的工作流文件、构建脚本和依赖清单,应采用比普通业务代码更严格的审查标准。
采用 Akrites 相关成果时,也应检查其规则是否透明、误报如何处理、数据是否需要上传,以及能否在本地或隔离环境运行。行业协作可以提供共同防线,但项目维护者仍需根据自身威胁模型决定哪些检查必须阻断发布,哪些结果只用于告警和调查。