OPENAI_API_KEY=
CHROMA_OPENAI_API_KEY=
-
밀접하게 밀집된 점(인근 이웃이 많은 점)을 그룹화하여 저밀도 지역의 점을 이상점으로 표시
-
장점
- 사전 클러스터 개수를 설정하지 않아도 됨
-
단점
- 고차원 데이터에서 잘 작동하지 않음 → “고차원의 저주”
-
클러스터링 데이터: Infostealer, Ransomware, RAT, Trojan, Worm 5가지 유형의 공격을 실행한 trace log data (총 292개)
-
각 트레이스 파일을 자연어로 요약 (gpt-4o 모델 사용)
-
임베딩 모델 paraphrase-multilingual-mpnet-base-v2(768차원) 사용
- 다국어 지원, 문맥 파악 능력이 뛰어난 모델
-
UMAP 을 사용해 768 → 10 차원으로 축소
- 연산 속도가 빠르고 데이터의 전역적 구조 보존에 뛰어남
-
새로운 로그 입력 시 벡터 DB 내 유사한 로그의 cluster_id를 찾아 공격 유형을 빠르게 파악하도록 하는 것
-
이 의도였으나.. 데이터셋 내 서로 다른 유형의 공격(ex. worm, trojan)에서 동일한 자연어 요약문장이 있는 것을 보아
1. 공격 행위만을 담은 로그를 얻고(노이즈 없는)
2. 정확한 공격 유형으로 라벨링하기
가 필요할 듯함
-
이 단계에서 유사 로그가 없을 시 LLM에게 판단을 맡김
-

⇒ [로그 검색 결과]
- 전원 로그 수집과 라벨링해서 벡터 DB에 저장하기
- 최소 100,000개 필요하다 치면
- 하루 100개씩 5명 → 1일 500개, 20일 해도 10,000개
- 기존처럼 클러스터링 없이 [LLM + 벡터 DB 유사도 검색] 성능 개선