trs
OpenAI 및 ChromADB를 활용하여 사이버 위협 인텔리전스 보고서 및 블로그를 분석하고 채팅합니다.
위협 보고서 URL을 요약, Miter TTP 추출, 마인드 맵 생성 및 탐지 기회 식별을 위해 사전 구축 명령에 제공하거나 URL 텍스트 콘텐츠에 대해 자신의 사용자 지정 프롬프트를 실행하십시오.
각 URLS 텍스트는 Chroma 벡터 데이터베이스에 저장되므로 저장된 데이터와 함께 QNA / 검색-세대 (RAG) 채팅 세션을 가질 수 있습니다.
OpenAI 모델 gpt-4-1106-preview
더 큰 컨텍스트를보다 쉽게 지원하기 위해 사용되지만 다른 모델을 위해이를 자유롭게 교체하십시오.
전체 문서 : https://trs.deadbits.ai
복제 저장소
git clone https://github.com/deadbits/trs.git
cd trs
파이썬 가상 환경 설정
python3 -m venv venv
source venv/bin/activate
파이썬 요구 사항을 설치하십시오
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의 문서에 따라 "Treamlit은 모든 사용자 상호 작용 또는 코드 변경에서 스크립트를 위에서 아래로 실행합니다." 이로 인해 ChromADB가 메모리에 반복해서로드되어 높은 메모리 사용이 발생할 수 있습니다. 현재 CLI는 권장되는 상호 작용 모드입니다.
더 많은 스크린 샷이 여기에서 제공됩니다.
명령 | 설명 |
---|---|
!summ | 보고서 개요에 대한 주요 테이크 아웃, 요약 단락, Miter TTP 및 Mermaid Mindmap을 포함한 URL 컨텐츠 요약을 생성하십시오. |
!detect | URL 컨텐츠 내에서 위협 탐지 기회를 식별하십시오. |
!custom | URL 컨텐츠를 가져와 사용자 정의 프롬프트로 처리하십시오. |
다른 모든 입력 | 입력으로 래그 파이프 라인을 실행하여 쿼리로 실행하십시오 |
채팅 기능을 사용하기 전에 먼저 위의 명령 중 하나를 사용하여 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
Command는 해당 디렉토리의 파일 기준으로 프롬프트를 찾아 템플릿에 URL의 텍스트 내용을 추가 한 다음 처리를 위해 LLM으로 보내십시오.
사용자 정의 프롬프트에는 URL 텍스트 내용을 추가 할 수 있도록 형식 문자열 {document}
가 포함되어야 합니다 .
Streamlit 응용 프로그램은 다음을 포함하여 CLI 도구가없는 기능을 제공합니다.
프롬프트 및 응답 기록을보십시오
데이터베이스 레코드를 봅니다
이 프로젝트는 Apache 2.0 라이센스에 따라 라이센스가 부여됩니다. 자세한 내용은 License.md 파일을 참조하십시오.