2025.11.13 (Day 14) 실시간 로그 모니터링 · RAG 보안 챗봇 통합 실습#
1. 주요 개념 요약#
- Streamlit 기반 Real-Time Streaming:
st.empty() + time.sleep()으로 5초 간격 로그 스트림 시뮬레이션을 구성하여 실시간 로그 누적 출력을 구현한다. - FAISS + OpenAIEmbedding VectorDB: 공격 로그를 텍스트화 → 분할 → 임베딩 → 벡터DB 구축하는 흐름으로 맥락 기반·근거 기반 분석을 가능하게 한다.
- ConversationalRetrievalChain: RAG와 챗봇 대화 기록을 결합해 문맥 기반 보안 분석을 수행한다. 이전 대화 내용을 기억하며 연속적인 질의를 처리한다.
- Session State 관리: 실시간 로그, 메시지 이력, 대화 메모리를
st.session_state에 저장하여 앱 상태를 안전하게 유지한다. - 2-Column 대시보드 UI: 좌측 실시간 로그 / 우측 RAG 챗봇 형태의 보안 관제 화면을 구성하여 탐지 → 분석 → 보고 흐름을 하나로 통합한다.
2. 실습 코드 및 응용#
A. 실시간 로그 모니터링#
- 5초 간격으로 새 로그를 누적하고 고위험 이벤트 발생 시 경보를 표시한다.
risk_score 임계값 기반으로 실시간 탐지를 수행한다.
if 'logs' not in st.session_state:
st.session_state['logs'] = pd.DataFrame(columns=frm.columns)
logPrt = st.empty()
warningPrt = st.empty()
for idx, row in frm.iterrows():
newLog = row.to_dict()
st.session_state['logs'] = pd.concat([
pd.DataFrame([newLog]),
st.session_state['logs']
])
if newLog['risk_score'] >= 85:
warningPrt.warning('고위험 공격 감지!! 집중')
else:
warningPrt.info('시스템 정상 작동 중')
logPrt.dataframe(st.session_state['logs'])
time.sleep(5)
B. RAG 기반 보안 챗봇#
- 공격 로그를 자연어 문장으로 변환하여 벡터DB를 구축하고
ConversationalRetrievalChain을 통해 근거 기반 위협 분석을 생성한다.
splitter = RecursiveCharacterTextSplitter(chunk_size=200, chunk_overlap=20)
docs = splitter.create_documents(database)
embeddings = OpenAIEmbeddings()
vectorDB = FAISS.from_documents(docs, embeddings)
retriever = vectorDB.as_retriever(k=10)
llm = ChatOpenAI(model='gpt-4o-mini', temperature=0.9)
qa_chain = ConversationalRetrievalChain.from_llm(llm=llm, retriever=retriever)
response = qa_chain({
"question": prompt,
"chat_history": st.session_state["chat_history"]
})
3. 보안 관점 분석#
- SOC / 관제: 실시간 로그 스트림이 5초 간격으로 갱신되어 공격 유형·리스크 점수를 즉시 확인할 수 있으며, 경보 + 자동 분석 챗봇 구조를 통해 탐지 → 분석 → 보고 흐름이 하나로 통합된다.
- CERT / 사고대응: RAG 분석 결과가 공격자 IP·시점·공격 방식 등 사고 타임라인 재구성에 직접 활용되며, 원본 로그 근거 기반 분석으로 사고 보고서 품질이 향상된다.
- 취약점 진단 (VA): 벡터DB에 축적된 과거 공격 로그를 기반으로 반복적 공격 여부를 유사도로 비교하여 특정 서비스·포트에 대한 재발 위협을 식별한다.
- DevSecOps: 빌드 로그나 테스트 로그도 동일한 RAG 구조에 넣으면 자동 분석·요약 시스템을 구축할 수 있으며 파이프라인 오류 원인·보안 취약점을 자동으로 요약한다.
- 디지털 포렌식: 로그의 시간·행위 기반 연속성을 바탕으로 공격 흐름을 시각적으로 재구성하여 추적·증거 확보 과정의 효율성을 강화한다.
4. 요약#
- 실시간 로그 흐름과 RAG 기반 보안 분석 모델이 어떻게 연결되는지를 직접 구현하면서 보안 관제 자동화의 기초 작동 흐름을 이해했다.
- 벡터DB 구성을 통해 단순 텍스트 검색이 아닌 맥락 기반·근거 기반 분석이 가능해지는 흐름을 확인했다.
- 실시간 스트림과 대화형 분석 모델이 한 화면에서 함께 동작하는 구조를 통해 현업 관제 화면 구성의 원리를 체감했다.