甲方安全建设-利用AI大模型协助安全运营

admin 2024年7月3日08:14:00评论3 views字数 3786阅读12分37秒阅读模式

前言

现在AI流行,chatgpt官方和很多公司都开放了类gpts接口,也就是用户可以创建自己的gpt,内置好自己的知识库和处理逻辑,然后根据用户的输入进行处理和输出,那么在安全运营的工作中,我们也可以借助AI帮我们完成如攻击payload分析、告警日志分析、IP威胁情报查询并自动封禁等安全运营工作。

coze使用

coze简称扣子,是字节开放的大模型 AI 应用开发平台,用户可以借助该平台完成bot的开发以完成用户特定的需求。记得使用coze.com而不是coze.cn,com里面包含的大模型更多。

coze有很多组件,包括bot、plugin、workflow、code、bot Prompt、workflow Prompt等等,到现在笔者都只摸索了大致含义。

bot: 机器人,对接用户的输入并返回结果,可以理解为就是一个chatgpt              plugin: 插件,可以用python3、nodejs的方式编写代码,对输入的内容进行处理和输出              workflow: 工作流,能够编排多个阶段,并对每个阶段的输入输出进行处理              code:workflow中的code,能够编写简单的python、nodejs代码来处理输入和输出              bot Prompt:更偏向于让bot更好的解析用户的输入,也包括对输出的格式不符合要求时对其要求进行格式化              workflow Prompt:更偏向于在多步骤的流水线中,能否准确的处理上一步的数据和格式化输出结果。

本文将以安全小助手为例,给用户带来分析攻击payload、分析告警日志、总结技术文章的能力。虽然很多功能仅靠一个bot就能完成,但是因为考虑到未来编排的可能性,因此bot仅仅是获取输入,核心处理逻辑都是在workflow上面。             
先以文章总结为例,workflow的流程应为:获取用户的输入->访问url获取网页内容->llm总结网页内容。在创建该worflow时,发现有个browser plugin,但是测试并不满足需求,其一网页返回的数据必须是json格式,其二是返回的网页内容被截断:             

甲方安全建设-利用AI大模型协助安全运营

             
本想借助workflow中的code完成,但是貌似只有几个内置的函数,且可能为了防止SSRF等一些安全问题出现,限制了请求的url:             

甲方安全建设-利用AI大模型协助安全运营

甲方安全建设-利用AI大模型协助安全运营

因此索性自己写一个plugin吧。也很简单,直接使用python3 requests完成即可,https://www.coze.com/docs/guides/plugin_ide?_lang=zh会给出相应的代码demo,告诉你如何获取参数。最终的代码如下:

from runtime import Args              from typings.get_web_response.get_web_response 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 = args.input.url                  args.logger.info(url)                  try:                      response = requests.get(url, timeout=30, verify=False).text                  except Exception as e:                      response = str(e)                  args.logger.info(response)                  return {"response": response }

注意,代码中的args.input代表输入,return代表输出,都需要在Metadata中定义好:             

甲方安全建设-利用AI大模型协助安全运营

             
完成访问网站的plugin后,就可以继承到workflow中,然后最后丢给llm进行分析即可:

如下是网页内容:{{response}}              请对内容进行总结。总结内容可包括内容目录、内容结构、内容大概讲了什么、总结全文等。

甲方安全建设-利用AI大模型协助安全运营

             
完成workflow后可点击右上角的test run进行测试,保证流程没问题。

接下来完成对日志进行解析的workflow,很简单,直接把日志丢给llm就行,然后定义好让llm返回什么:

# 角色              你是一位资深的安全专家,专注于技术向导和安全问题解析。## 技能              ### 技能 1: 安全问题解答              - 根据用户面临的安全问题,提供专业的解决方案。- 执行全面的安全检查并采取相应的补救措施。- 检查用户的网络环境和系统,发现并解决威胁。### 技能 2: 恶意代码和数据包分析              - 分析用户提供的信息,进行威胁分析并给出专业的指导意见。- 解读数据包,进行安全分析并提供相应的修复方案。### 技能 3: 安全性建议和修复代码供应              - 根据需要,给出个性化的安全建设方案和漏洞修复建议。- 提供有效的代码修复方案。## 约束条件              - 只讨论与信息安全相关的问题。- 努力保护用户的隐私和数据安全。- 尽量减少行业术语,以用户易于理解的方式解释问题。- 在确认信息的准确性的基础上,从多个可靠的信息源获取信息以支持答案。内容如下:{{input}}              对内容进行分析,并返回分析结果。分析结果包含是否存在威胁,如果存在威胁,威胁是什么、处置建议是什么、检测方案是什么。处置建议可以基于WAF、HIDS等安全设备纬度提供,检测方案可以基于Suricata、Falco、YARA、Sysmon等防护设备的规则提供。

甲方安全建设-利用AI大模型协助安全运营

             
最后我们创建bot,这里得感谢倾旋,不然我还不知道怎么让bot调用workflow:

# 角色              您是网络安全行业里的杰出人才,专门针对各类复杂的安全问题进行深入解读和处理。## 技能              ### 技能 1: 用户输入的精准解析              - 您的解析能力高效且准确,能够透彻理解用户的需求。如果用户输入了一个网址,您需要立刻把这个任务交到`browser_web_and_llm``url`参数去处理。如果用户提交的是日志或数据包,您需要立即将这些数据输入到`log_analyze`工作流的`input`参数,进行详细的分析处理。对于其他类型的输入,您应依据自己的专业理解提供相应的反馈。### 技能 2: 用户需求的精确响应              - 针对用户的不同输入类型,您需要根据相应工作流的处理结果,以中文向用户反馈工作流的原始内容。每个结果反馈都应详尽而直接地展现所处理过程的各个信息。### 技能 3: 持续等待工作流的反馈              - 您会不断等待工作流的反馈,且过程中不会因为超时而终止工作流。

甲方安全建设-利用AI大模型协助安全运营

最后注意下,bot这里建议选chatgpt,你选gemini他不知道你在说什么,因此也不会把输入传给工作流。而workflow那里可以选gemini,因为他处理比较快,毕竟平台所有模型都是免费的,用的人很多,因此如果响应慢的话得自行调节模型选择。

手动测试bot

输入url:             

甲方安全建设-利用AI大模型协助安全运营

输入日志:             

甲方安全建设-利用AI大模型协助安全运营

甲方安全建设-利用AI大模型协助安全运营

甲方安全建设-利用AI大模型协助安全运营

自动调用bot

coze也提供了api,可以对接机器人实现自动化对话:             
https://www.coze.com/docs/developer_guides/coze_api_overview?_lang=zh

curl --location --request POST 'https://api.coze.com/open_api/v2/chat' --header 'Authorization: Bearer xxxxx' --header 'Content-Type: application/json' --header 'Accept: */*' --header 'Host: api.coze.com' --header 'Connection: keep-alive' --data-raw '{                  "bot_id": "xxxxxx",                  "user": "my",                  "query": "GET /index.php?file=../../../../../etc/passwd",                  "stream": false              }'

甲方安全建设-利用AI大模型协助安全运营

总结

本文通过coze完成了bot的创建,并利用bot完成对日志的分析、文章的解读,最终目的是为了提升安全运营效率,减少人工。当然在自动化路上,本文讲的还不够,未来可以基于llm的分析结果进行自动化的应急处置,如分析日志->判断是否存在威胁->如果存在威胁则提取攻击IP->交给安全设备进行自动化封禁。或者获取IP->威胁情报网站查询是否是恶意IP->自动化封禁等等。

甲方安全建设-利用AI大模型协助安全运营

原文始发于微信公众号(中国白客联盟):甲方安全建设-利用AI大模型协助安全运营

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月3日08:14:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   甲方安全建设-利用AI大模型协助安全运营https://cn-sec.com/archives/2868391.html

发表评论

匿名网友 填写信息