trs
использует OpenAI и ChromADB для анализа и общения с отчетами и блогов Cyber Arge Intelligence.
Предоставьте URL-адрес отчета об угрозе для предварительно построенных команд для суммирования, извлечения MITRE TTP, создания MINDMAP и определения возможностей обнаружения, или запустите свои собственные пользовательские подсказки против текстового содержимого URL.
Каждый текст URLS хранится в базе данных вектора Chroma, поэтому вы можете провести сеансы чата 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
Установите свой ключ API OpenAI:
export OPENAI_API_KEY= " sk-... "
Запустить приложение командной строки
python trs-cli.py --chat
Установите свой ключ API OpenAI:
.streamlit/secrets.toml
Запустите веб -интерфейс Streamlit
streamlit run trs-streamlit.py
Важный
За документацию Premlit «Streamlit запускает ваш скрипт сверху вниз при каждом взаимодействии пользователя или изменения кода». Это может привести к высокому использованию памяти из -за того, что ChromADB загружается в память снова и снова. Прямо сейчас CLI является рекомендуемым способом взаимодействия.
Здесь доступно больше скриншотов.
Командование | Описание |
---|---|
!summ | Создайте краткое изложение контента URL, включая ключевые выводы, краткий обзор отчета. |
!detect | Определите любые возможности обнаружения угроз в рамках контента URL. |
!custom | Принесите контент URL и обработайте его с помощью пользовательской подсказки. |
Весь другой ввод | Запустите тряпичный трубопровод с вводом в качестве запроса |
Прежде чем вы сможете использовать функциональность чата, вы должны сначала обработать URL -адрес с одной из приведенных выше команд, чтобы у векторной базы данных был какой -то контекст для использования.
Любой вход, который не является !command
Будет отправлена в Rag Pipeline.
Если ответ недоступен в контексте, вы не получите ответа.
? >> 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.
Пользовательские шаблоны быстрого приглашения могут быть сохранены в prompts/
Directory в качестве текстовых файлов с расширением .txt
. Команда !custom
команда будет искать подсказки по базовому делу файла в этом каталоге, добавьте текстовый содержимое URL в шаблон и отправьте его в LLM для обработки.
Пользовательские подсказки должны включать в себя строку формата {document}
чтобы можно было добавить текстовый контент URL.
Приложение Streamlit предлагает некоторые функциональные возможности, которые не выполняют инструмент CLI, включая:
Просмотреть ход и историю ответов
Просмотреть записи базы данных
Этот проект лицензирован по лицензии Apache 2.0 - для получения подробной информации см. В файле Licence.md.