trs
nutzt OpenAI und Chromadb, um Cyber -Bedrohungsintelligenzberichte und Blogs zu analysieren und zu chatten.
Geben Sie eine URL des Bedrohungsberichts an vorgefertigte Befehle für die Zusammenfassung, die Gehrungsttp-Extraktion, die Erstellung von Mindmap und die Identifizierung von Erkennungsmöglichkeiten an oder führen Sie Ihre eigenen benutzerdefinierten Eingabeaufforderungen gegen den URLS-Textinhalt aus.
Jeder URLS-Text wird in einer Chroma-Vektor-Datenbank gespeichert, sodass Sie mit Ihren gespeicherten Daten die Chat-Sitzungen (Abrufen-Augmented-Generation) von QNA / ARAGE-EUGENDE-Generation abhalten können.
Das OpenAI-Modell gpt-4-1106-preview
wird verwendet, um größere Kontexte leichter zu unterstützen. Sie können dies jedoch für ein anderes Modell austauschen.
Vollständige Dokumentation: https://trs.deadbits.ai
Klon -Repository
git clone https://github.com/deadbits/trs.git
cd trs
Setup Python Virtual Umgebung einrichten
python3 -m venv venv
source venv/bin/activate
Installieren Sie die Python -Anforderungen
pip install -r requirements.txt
Stellen Sie Ihren OpenAI -API -Schlüssel ein:
export OPENAI_API_KEY= " sk-... "
Befehlszeilenanwendung ausführen
python trs-cli.py --chat
Stellen Sie Ihren OpenAI -API -Schlüssel ein:
.streamlit/secrets.toml
Führen Sie die streamlit -Weboberfläche aus
streamlit run trs-streamlit.py
Wichtig
Laut Dokumentation von Streamlit "wird StreamLit Ihr Skript bei jeder Benutzerinteraktion oder Codeständerung von oben bis unten aus." Dies kann zu einem hohen Speicherverbrauch führen, da Chromadb immer wieder in den Speicher geladen wird. Derzeit ist die CLI die empfohlene Interaktionsart.
Hier finden Sie weitere Screenshots.
Befehl | Beschreibung |
---|---|
!summ | Generieren Sie eine Zusammenfassung des URL -Inhalts, einschließlich wichtiger Take -Aways, Zusammenfassung, Absatz, Gehrung TTPs und Mindmap, Mindmap, für einen Berichtsüberblick. |
!detect | Identifizieren Sie alle Möglichkeiten zur Erkennung von Bedrohungen innerhalb des URL -Inhalts. |
!custom | Rufen Sie den URL -Inhalt ab und verarbeiten Sie sie mit einer benutzerdefinierten Eingabeaufforderung. |
alle anderen Eingaben | Führen Sie die Lag -Pipeline mit Eingabe als Abfrage aus |
Bevor Sie die Chat -Funktionalität verwenden können, müssen Sie zuerst eine URL mit einem der obigen Befehle verarbeiten, damit die Vektordatenbank einen Kontext verwendet.
Jede Eingabe, die kein !command
ist, wird an die Rag -Pipeline gesendet.
Wenn die Antwort im Kontext nicht verfügbar ist, erhalten Sie keine Antwort.
? >> 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.
Benutzerdefinierte Eingabeaufforderung Vorlagen können als Textdateien mit der Erweiterung .txt
in den prompts/
Verzeichnissen gespeichert werden. Der Befehl !custom
Befehl sucht in diesem Verzeichnis nach dem Dateibasisname, fügen Sie den Textinhalt der URL zur Vorlage hinzu und senden Sie sie zur Verarbeitung an die LLM.
Benutzerdefinierte Eingabeaufforderungen müssen die Format -Zeichenfolge {document}
enthalten, damit der URL -Textinhalt hinzugefügt werden kann.
Die stromlitische Anwendung bietet einige Funktionen, die das CLI -Tool nicht ausführt, einschließlich:
Sehen Sie sich die Eingabeaufforderung und die Antwortverlauf an
Datenbankdatensätze anzeigen
Dieses Projekt ist unter der APACHE 2.0 -Lizenz lizenziert - finden Sie in der lizenz.md -Datei für Einzelheiten.