让我们创建Windows虚拟机
假设你是云计算开发新手,想用Terraform在微软Azure上创建Windows虚拟机并通过RDP连接。我们以Azure为例,但这些问题普遍存在于所有云服务商。
我们询问了ChatGPT 4o和Claude的建议。以下是ChatGPT的输出示例(包含硬编码的管理员凭证)。虽然Claude提醒要修改密码,但有多少用户会真正执行呢?这些工具输出的硬编码凭证应该被系统识别和阻止。
请求更好的凭证
既然硬编码凭证很危险,那我们要求生成更好的密码会怎样?ChatGPT给出的"随机"密码实际上根本不随机——它们只是根据语言模型预测的最可能字符组合。更糟的是,不同用户可能获得完全相同的密码列表。
Claude最初给出了正确回应,但在稍微改变提问方式后就妥协了,开始输出不安全的解决方案。
密码生成代码的问题
当我们要求AI工具编写密码生成代码时,情况更糟。ChatGPT和Claude提供的Python代码都使用了不安全的random
模块——这个伪随机生成器基于系统时间播种,攻击者可以轻松推算出过去几年生成的所有可能密码。正确的做法应该是使用secrets
模块。
解决方案建议
-
云服务商应主动识别和阻止常见硬编码凭证和不良基础设施模式,就像他们检测GitHub提交的API密钥那样。
-
LLM供应商应调整默认行为,增加生成不安全配置的难度,避免用户"意外自伤"。
-
企业用户应考虑进行基础设施威胁建模评估,全面识别自动化部署中的安全隐患——远不止硬编码凭证和弱随机数这些问题。
云计算环境复杂,盲目信任AI工具输出可能导致严重后果。在追求部署速度的同时,切勿忽视基础安全原则。