trs
ใช้ประโยชน์จาก OpenAI และ Chromadb เพื่อวิเคราะห์และแชทกับรายงานและบล็อกข่าวกรองภัยคุกคามไซเบอร์
จัดหา URL รายงานภัยคุกคามให้กับคำสั่งที่สร้างไว้ล่วงหน้าสำหรับการสรุปการสกัด TTP MITER การสร้าง MindMap และการระบุโอกาสในการตรวจจับหรือเรียกใช้พรอมต์ที่กำหนดเองของคุณเองกับเนื้อหาข้อความ URL
ข้อความ URL แต่ละรายการจะถูกเก็บไว้ในฐานข้อมูล chroma Vector เพื่อให้คุณสามารถมีการแชท QNA / Retrieval-Augmented-Generation (RAG) ด้วยข้อมูลที่เก็บไว้ของคุณ
OpenAI Model 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
รันเว็บอินเตอร์เฟส Streamlit
streamlit run trs-streamlit.py
สำคัญ
ตามเอกสารของ Streamlit "StreamLit เรียกใช้สคริปต์ของคุณจากบนลงล่างในการโต้ตอบของผู้ใช้หรือการเปลี่ยนแปลงรหัสทุกครั้ง" สิ่งนี้สามารถนำไปสู่การใช้หน่วยความจำสูงเนื่องจาก 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.
เทมเพลตพรอมต์แบบกำหนดเองสามารถบันทึกลงใน prompts/
ไดเรกทอรีเป็นไฟล์ข้อความที่มีส่วนขยาย .txt
คำสั่ง !custom
จะค้นหาพรอมต์โดยไฟล์ basename ในไดเรกทอรีนั้นเพิ่มเนื้อหาข้อความของ URL ลงในเทมเพลตและส่งไปยัง LLM สำหรับการประมวลผล
พรอมต์ที่กำหนดเอง จะต้อง รวมสตริงรูปแบบ {document}
เพื่อให้สามารถเพิ่มเนื้อหาข้อความ URL ได้
แอปพลิเคชัน Streamlit มีฟังก์ชั่นบางอย่างที่เครื่องมือ CLI ไม่ได้รวมถึง:
ดูประวัติและประวัติการตอบสนอง
ดูบันทึกฐานข้อมูล
โครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0 - ดูไฟล์ License.md สำหรับรายละเอียด