trs
利用OpenAI和Chromadb来分析和聊天网络威胁情报报告和博客。
向预先构建的命令提供威胁报告URL,以进行摘要,MITER TTP提取,思维图创建和识别检测机会,或者针对URL文本内容运行您自己的自定义提示。
每个URL文本都存储在Chroma Vector数据库中,因此您可以使用存储的数据将QNA /检索仪(RAG)聊天会话。
使用OpenAI模型gpt-4-1106-preview
用于更轻松地支持较大的上下文,但可以随意将其换成另一个模型。
完整文档: https://trs.deadbits.ai
克隆存储库
git clone https://github.com/deadbits/trs.git
cd trs
设置Python虚拟环境
python3 -m venv venv
source venv/bin/activate
安装Python要求
pip install -r requirements.txt
设置您的OpenAI API密钥:
export OPENAI_API_KEY= " sk-... "
运行命令行应用程序
python trs-cli.py --chat
设置您的OpenAI API密钥:
.streamlit/secrets.toml
运行简化的Web界面
streamlit run trs-streamlit.py
重要的
根据简化的文档,“简化在每个用户互动或代码更改时,将您的脚本从上到下运行。”由于Chromadb一遍又一遍地将记忆加载到内存中,这可能会导致高内存使用。目前,CLI是推荐的交互方式。
这里提供更多屏幕截图。
命令 | 描述 |
---|---|
!summ | 生成一个URL内容的摘要,包括关键要点,摘要段落,MITER TTPS和MERMAID MINDMAP,以获取报告概述。 |
!detect | 确定URL内容中的任何威胁检测机会。 |
!custom | 获取URL内容并使用自定义提示进行处理。 |
所有其他输入 | 运行带有输入的RAG管道作为查询 |
在使用聊天功能之前,必须先用上面的命令之一处理一个URL,以便矢量数据库具有一些上下文。
任何不是!command
输入都将发送到RAG管道。
如果答案在上下文中不可用,您将无法得到答案。
? >> Summarize the LemurLoot malware functionality
2023-10-14 14:51:51.140 | INFO | trs.vectordb:query:84 - Querying database for: Summarize the LemurLoot malware functionality
2023-10-14 14:51:51.840 | INFO | trs.vectordb:query:90 - Found 3 results
2023-10-14 14:51:51.841 | INFO | trs.llm:qna:98 - sending qna prompt
2023-10-14 14:51:51.841 | INFO | trs.llm:_call_openai:41 - Calling OpenAI
2023-10-14 14:51:51.854 | INFO | trs.llm:_call_openai:59 - token count: 2443
? >>
The LemurLoot malware has several functionalities. It uses the header field “X-siLock-Step1’ to receive commands from the operator, with two well-defined commands: -1 and -2.
Command “-1” retrieves Azure system settings from MOVEit Transfer and performs SQL queries to retrieve files. Command “-2” deletes a user account with the LoginName and
RealName set to "Health Check Service". If any other values are received, the web shell opens a specified file and retrieves it. If no values are specified, it creates the
“Health Check Service” admin user and creates an active session.
可以将自定义提示模板保存到带有.txt
扩展名的文本文件中的prompts/
目录中。 !custom
命令将在该目录中查找文件Basename的提示,将URL的文本内容添加到模板中,然后将其发送到LLM进行处理。
自定义提示必须包括格式字符串{document}
以便可以添加URL文本内容。
简化应用程序提供了一些CLI工具没有的功能,包括:
查看提示和响应历史记录
查看数据库记录
该项目已在Apache 2.0许可证下获得许可 - 有关详细信息,请参见许可证文件。