机器人会梦到安全网络吗?教AI系统网络安全
本文探讨如何为自主AI代理装备网络安全知识,使其能够对互联网安全做出明智决策,例如识别可信链接和网站。它演示了一个使用LangChain和OpenAI的概念验证,结合Cisco Umbrella API,为AI代理提供实时威胁情报以评估域名状态。
通过学习评估域名的安全性,AI代理可以培养更好的网络卫生习惯,做出更智能的决策,而不仅仅是受到安全网关的限制,这对于下一代自主AI系统至关重要。
实施步骤
先决条件
要实现此示例,您需要Cisco Umbrella的API密钥和一个付费的OpenAI账户:
- 从有可用余额的OpenAI账户获取新的API密钥
- 按照这些步骤获取Cisco Umbrella API密钥和密钥
- 确保为密钥范围勾选"Investigate"框
- 将密钥保存为名为
OPENAI_API_KEY、UMBRELLA_KEY和UMBRELLA_SECRET的shell环境变量
代码实现
完整的示例代码可以在Talos的GitHub存储库中找到。
首先,我们需要向AI代理描述工具:
|
|
接下来,我们创建要使用的大型语言模型(LLM)实例:
|
|
然后,让我们使用以问题、思考、行动、观察格式结构化的自然语言向LLM提供指令:
|
|
作为查询Umbrella API的一部分,我们必须获取一个会话令牌以随请求传递给Umbrella API。这是使用我们的API密钥和密钥从身份验证调用中获得的。
接下来,让我们定义我们向AI系统描述的工具:
|
|
上述代码中的关键功能是getDomainDisposition,它将域名传递给Umbrella API以检索域名的状态和分类信息。
测试结果
我们现在可以将输入文本传递给agent_executor来发现代理的意见:
测试1:安全域名
|
|
测试2:恶意域名
|
|
测试3:多个域名
|
|
测试4:无域名问题
|
|
讨论
这虽然是非常概念验证的代码,但它确实展示了我们如何将提供实时权威事实(如Umbrella的域名安全状态)的API集成到AI代理的决策过程中。
我们可以使用其他方法达到相同的结果。我们可以将AI代理放在Web安全网关后面,或要求代理使用Umbrella DNS,这将强制执行不连接到恶意站点的限制。然而,这样做会剥夺AI代理学习理解潜在冲突信息和做出良好决策的能力。
当前基于LLM的生成式AI系统只是即将到来的自主代理AI进展的开始。在构建下一代AI系统的过程中,我们需要确保它们不仅做出良好的决策,还要理解网络卫生并能够访问实时威胁情报来支持其决策制定。