trs
memanfaatkan Openai dan Chromadb untuk menganalisis dan mengobrol dengan laporan dan blog Ancaman Cyber Ancaman.
Menyediakan URL Laporan Ancaman ke perintah pra-dibangun untuk ringkasan, ekstraksi MITER TTP, penciptaan MindMap, dan identifikasi peluang deteksi, atau menjalankan petunjuk kustom Anda sendiri terhadap konten teks URLS.
Setiap teks URL disimpan dalam database vektor Chroma sehingga Anda dapat memiliki sesi obrolan QNA / Retrieval-Augmented-Generation (RAG) dengan data tersimpan Anda.
Model OpenAI gpt-4-1106-preview
digunakan untuk mendukung konteks yang lebih besar dengan lebih mudah, tetapi merasa bebas untuk menukar ini dengan model lain.
Dokumentasi Lengkap: https://trs.deadbits.ai
Repositori Klon
git clone https://github.com/deadbits/trs.git
cd trs
Mengatur lingkungan virtual Python
python3 -m venv venv
source venv/bin/activate
Pasang persyaratan Python
pip install -r requirements.txt
Atur tombol API OpenAI Anda:
export OPENAI_API_KEY= " sk-... "
Jalankan aplikasi baris perintah
python trs-cli.py --chat
Atur kunci API OpenAI Anda:
.streamlit/secrets.toml
Jalankan Antarmuka Web StreamLit
streamlit run trs-streamlit.py
Penting
Per dokumentasi streamlit, "StreamLit menjalankan skrip Anda dari atas ke bawah di setiap interaksi pengguna atau perubahan kode." Hal ini dapat menyebabkan penggunaan memori yang tinggi karena Chromadb dimuat ke dalam memori berulang -ulang. Saat ini, CLI adalah mode interaksi yang disarankan.
Lebih banyak tangkapan layar tersedia di sini.
Memerintah | Keterangan |
---|---|
!summ | Hasilkan ringkasan konten URL termasuk takeaways kunci, paragraf ringkasan, MITER TTPS, dan putri duyung MindMap untuk tinjauan laporan. |
!detect | Identifikasi peluang deteksi ancaman dalam konten URL. |
!custom | Ambil konten URL dan prosesnya dengan prompt khusus. |
semua input lainnya | Jalankan pipa kain dengan input sebagai kueri |
Sebelum Anda dapat menggunakan fungsi obrolan, Anda harus terlebih dahulu memproses URL dengan salah satu perintah di atas sehingga database vektor memiliki beberapa konteks untuk digunakan.
Input apa pun yang bukan !command
Jika jawabannya tidak tersedia dalam konteks, Anda tidak akan mendapatkan jawaban.
? >> 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.
Templat prompt khusus dapat disimpan ke prompts/
direktori sebagai file teks dengan ekstensi .txt
. Perintah !custom
akan mencari petunjuk dengan nama dasar file di direktori itu, tambahkan konten teks URL ke templat, dan kirim ke LLM untuk diproses.
Prompt khusus harus menyertakan format string {document}
sehingga konten teks URL dapat ditambahkan.
Aplikasi StreamLit menawarkan beberapa fungsi yang tidak dimiliki oleh alat CLI, termasuk:
Lihat Sejarah Prompt dan Respons
Lihat catatan database
Proyek ini dilisensikan di bawah lisensi Apache 2.0 - lihat file lisensi.md untuk detailnya.