用Coze搞一个简单的安全AI助手
这次先搭一个雏形出来,后续可以不断往里面加料。Bot的定位很明确:辅助日志分析、应急响应。具体能力分三块:日志分析、IP分析、漏洞修复问答。下面一步步拆解实现过程。
设计
整体思路其实不复杂:让一个Bot能看懂日志、能查IP情报、能给出漏洞修复方案。关键是把这三块能力有机整合到一起,而不是三个孤立的工具。
开搞
先给Bot一个整体的角色定位——它是安全分析助手,不是通用问答机器人。
日志分析实现
这块其实最简单。Coze自带的大模型知识储备已经很丰富了,只需要给它一个清晰的定位,让它根据自己的训练数据去回复就行。不用额外写代码或接数据源。
IP分析实现
这个相对复杂一些。思路是利用微步在线的IP信誉查询接口来获取IP情报,这就需要用到Coze的插件功能了。
微步每个账号每天有50次IP信誉查询额度。根据微步官方API文档,在Coze插件中使用IDE模式进行开发,代码如下:
from runtime import Args
from typings.ip_reputation.ip_reputation import Input, Output
import requests
"""
Each file needs to export a function named `handler`. This function is the entrance to the Tool.
Parameters:
args: parameters of the entry function.
args.input - input parameters, you can get test input value by args.input.xxx.
args.logger - logger instance used to print logs, injected by runtime.
Remember to fill in input/output in Metadata, it helps LLM to recognize and use tool.
Return:
The return data of the function, which should match the declared output parameters.
"""
def handler(args: Args[Input])->Output:
url = "https://api.threatbook.cn/v3/scene/ip_reputation"
query = {
"apikey": "your api key",
"resource": args.input.resource
}
response = requests.request("GET", url, params=query)
return response.json()["data"]
同时在元数据中配置好输入参数,限定大模型调用时的传参方式。在插件中运行测试,正常通过后发布工具、发布插件。
漏洞修复问答实现
这个能力显然需要知识库支撑——从知识库中检索信息。这里写了一个爬虫,收集了一些漏洞修复相关的信息,写入一个txt文件。每个漏洞之间用100个连字符(-)作为分割标识。
先创建一个安全知识库,然后导入单元。导入时Coze会让选择切割分段方式,那100个连字符正好用来做分段标识。效果符合预期。
最后启用知识库,这部分能力就做好了。
Bot构建
三块能力都就绪后,需要让Bot知道什么时候该用哪块能力。通过角色设定来约束行为。角色设定如下:
# 角色
你是一名网络安全专家,擅长日志分析、IP 分析和漏洞分析,能够帮助用户进行风险研判,并给出漏洞的修复建议。
## 技能
### 技能 1: 日志分析
1. 对用户提供的日志进行分析,提取出有用的信息。
2. 根据日志信息,判断是否存在安全威胁,并给出相应的建议。
### 技能 2: IP 分析
1. 对用户提供的 IP 地址进行分析,调用ip_reputation插件,根据其返回内容,为用户说明完整的情报,判断是否存在安全风险。
### 技能 3:漏洞分析
1. 根据用户的提问漏洞信息,优先从安全漏洞修复文档知识库中寻找修复方案,如果没有找到,则再通过网络搜索进行查找。
然后导入微步插件、搜索插件以及安全知识库。直接上图更直观:
这样,一个安全助手就搭好了。
能力测试
接下来分别测试三个功能。
日志分析
这些属于基础知识点,测试通过。
IP分析
可以看到正常调用了插件,并根据返回信息总结了IP特征。不过目前返回的信息还不够全面,后续可以优化。
漏洞修复
完美!知识库搜索正常命中。
最后说一句,这只是一个雏形尝试。如果把工作流用上,再创建更多插件,后续能加的东西还有很多。Coze的产品设计确实不错,用户体验很顺滑。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名