배경(Problem)
[ 보안뉴스 ] (2025.5.21)
[ 보안뉴스 ] (2025.12.15)
→ ‘BPF도어’ 악성코드에 감염됐음에도 이를 신고하지 않았던 것으로 확인됨
작년 통신사들을 대상으로 해킹 사건이 다수 발생했습니다. 최근 보안 위협이 고도화되면서 위의 기사들과 같이 기업들의 보안 사고가 끊이지 않고 있습니다. 저희 팀은 작년의 해킹 사건들을 기반으로 다음과 같은 배경에서 프로젝트를 구성했습니다.
기획 배경
•
은닉형 악성코드의 위협 증가
◦
작년 국내 대형 통신사들을 타겟으로 한 은닉형 악성코드 'BPFdoor' 사태가 발생했습니다. 이 사태를 조사하는 과정에서 시스템 방화벽을 우회하는 공격 기법과 이를 방어하기 위한 커널 제어 기술인 'eBPF(extended BPF)'에 주목하게 되었습니다.
•
초기 대응의 골든타임 확보와 인력 부족
◦
침해사고 발생 시 정보통신망법에 의해 24시간 내에 사고 원인과 피해 내용을 보고해야 하는 법적 의무가 있습니다. 하지만 정보보안 전문 인력이 부족한 환경(중소기업 등)에서는 초기 대응과 보고서 작성이 어렵습니다.
•
증거 보존의 어려움
◦
공격자가 안티 포렌식 기법으로 흔적을 지우기 전에 증거를 확보해야 하지만, 기존의 방식으로는 실시간 대응에 한계가 존재했습니다.
⇒ 목표
따라서 위와 같은 배경으로, 커널 샌드박스 내에서 소스 수정 없이 시스템 콜과 네트워크 패킷의 길목을 직접 후킹하여 강력한 감시망을 제공하는 eBPF의 차별성을 활용한 새로운 EDR 솔루션을 구성해보면 좋을거 같다는 생각에 진행하게 되었습니다.
서비스 소개(Solution)
“K9” 솔루션 설명
저희가 개발한 솔루션의 이름은 'K9'으로, 커널(Kernel)의 'K'와 저희 팀명인 '9르밍'의 '9'를 합쳐 만들었습니다 . K9은 커널 레벨에서 발생하는 위협 행위를 실시간으로 모니터링하고 관리자에게 즉시 알리는 방어 체계를 제공합니다. 나아가 탐지에 그치지 않고, 침해사고 발생 시 법적 의무 사항인 정보통신망법 형식에 맞춘 보고서 초안을 자동으로 생성하는 '사용자 친화적 EDR(Endpoint Detection and Response)' 입니다.
기대 효과
저희의 솔루션 기대 효과로는 크게 3가지를 꼽을 수 있습니다
1.
실시간 탐지 및 즉각 알림
위협 발생 순간을 커널 레벨에서 포착하고, 관리자의 Slack으로 즉시 알림을 전송하여 신속한 방어를 지원합니다.
2.
AVML 메모리 덤프 지원
침해 사고 발생 시 증거 확보를 위해, 관리자의 명령(원클릭)으로 시스템의 메모리 덤프를 즉각 수행합니다.
3.
침해 대응 과정(IR)의 자동화
위협 탐지부터 시각화 분석, 최종 보고서 작성까지 이어지는 파이프라인을 통해 전문 인력이 부족한 환경에서도 초기 대응 역량을 대폭 보강합니다.
아키텍처 및 핵심 기능
실제 시스템 아키텍쳐 구성도
K9 솔루션은 실제 로그를 수집하는 에이전트(Agent)와 수집된 로그를 분석하고 보고서를 작성하는 분석 서버(Central Server)로 구성된 End-to-End 파이프라인입니다. 왼쪽이 에이전트, 오른쪽이 분석 서버 입니다.
전체 시스템 아키텍처 흐름 설명
1.
데이터 수집 (Agent)
Tetragon 엔진을 기반으로 커널 이벤트, 네트워크 흐름, OS 로그를 멀티 센서로 통합 수집합니다.
2.
데이터 스트리밍
수집된 로그는 Fluent-bit를 거쳐 중앙 서버의 Kafka 메시지 큐로 병목 없이 스트리밍됩니다. (AVML 덤프 파일은 별도로 S3 버킷에 안전하게 보관됩니다 ).
3.
위험도 분석 및 라우팅
Python 기반 Worker가 Kafka에서 수집된 로그 데이터를 추출하여, 사전에 정의된 탐지 룰과 자체 알고리즘을 통해 실시간으로 위험 점수를 산출하고 데이터를 각각의 목적지에 맞게 라우팅합니다.
4.
데이터 적재 및 시각화
분석된 데이터는 OpenSearch와 Neo4j에 각각 적재되며, 최종적으로 사용자는 React와 Grafana 기반의 웹 대시보드에서 분석 결과와 Neo4j 기반의 프로세스 트리를 통해 연관된 프로세스 정보 간의 상관관계를 시각적으로 분석합니다.
5.
LLM 기반 맞춤형 보고서 생성
최종적으로 위협 탐지부터 심층 분석 단계까지 수집된 모든 정보를 바탕으로, LLM 엔진이 정보통신망법 법정 신고 양식에 맞춘 침해사고 대응(IR) 보고서 초안을 자동으로 작성 및 제공합니다.
솔루션 핵심 기능 설명
에이전트의 중요 기능
커널 단독 수집의 오버헤드를 막기 위해 eBPF 엔진(프로세스, 네트워크, 파일, 권한 상승 감시)과 전용 컬렉터(Nginx 웹 페이로드, Auditd/Journald, Firewall, Agent 자원)를 병행 운용하여 가시성을 확보했습니다.
•
실제 수집하는 8개의 로그 영영
1.
Tetragon.process : 프로세스 실행 및 종료
2.
Tetragon.file : 민감 시스템 파일 접근 및 변조 행위
3.
Tetragon.network : 커널 레벨 네트워크 소켓 및 연결 감시
4.
Tetragon.auth : Setuid 등 비정상 권한 상승 탐지
5.
Nginx : 애플리케이션 웹 통신
6.
Auditd + Journald : OS 로그인 감사 및 시스템 계정 권한
7.
Firewall : 네트워크 방화벽 차단 및 연결
8.
Agent resource : 에이전트 실시간 리소스 상태
•
8개 영역 분할 수집의 2가지 이유
1.
수집 영역 분리를 통한 '시스템 부하(Overhead)의 극적인 최소화'
•
eBPF Engine
◦
프로세스, 파일, 네트워크 소켓, 권한(Auth) 등 커널에서 일어나는 치명적인 '시스템 콜'은 eBPF(Tetragon)가 맡습니다. 커널 레벨에서 발생하는 수많은 이벤트 중 보안상 중요한 행위만 가볍고 빠르게 낚아챕니다.
•
Dedicated Collectors(Tetragon 이외의 Collector 역할)
◦
Nginx의 긴 웹 페이로드 분석, Auditd의 복잡한 세션 기록 파싱 등 문자열 처리가 많고 무거운 작업은 커널(eBPF)에서 억지로 처리하지 않고 각 전용 콜렉터(User-space)로 넘겼습니다.
⇒ 결과: 커널 패닉이나 CPU 스파이크를 방지하면서도 안전하게 로그를 수집하는 분산 처리 구조를 완성.
2.
공격의 단계의 충분한 가시성 확보
현대의 해킹은 한 계층에서만 이루어지지 않습니다. 8개 영역은 공격자가 들어와서 목적을 달성하기까지의 로그를 최대한 수집합니다.
•
외부 유입 및 침투 (Dedicated)
◦
Firewall(네트워크 접근), Nginx(웹 페이로드/웹쉘 시도), Auditd (SSH 등 OS 로그인) 영역에서 공격자가 문을 두드리고 들어오는 초기 침투 정황을 캡처합니다.
•
내부 장악 및 실행 (eBPF Engine)
◦
뚫고 들어온 공격자가 악성 프로세스를 실행하고, auth를 통해 루트(Root) 권한을 탈취하며, /etc/shadow 같은 민감 파일을 변조하고, C&C 서버와 통신하기 위해 network 소켓을 여는 실질적인 파괴 행위를 최대한 놓치지 않고 캡처합니다.
⇒ 결과 : 애플리케이션 계층부터 커널 계층까지, 공격의 전체 생애주기(Life-Cycle)를 추적하는 가시성 확보
[ 실제 에이전트가 수집한 RAW 데이터 로그의 예시 2가지 ]
•
Nginx Collector가 수집한 로그
•
Tetragon.file Collector 가 수집한 로그
AVML (Acquire Volatile Memory for Linux) 이란?
리눅스(Linux) 운영체제에서 작동하는 '메모리(RAM) 추출(Dump) 도구’ 입니다.
(마이크로소프트에서 오픈소스로 개발해 사용되고 있습니다.)
AVML 정의 및 목적
•
침해 사고 대응을 위한 증거 확보
◦
침해 사고 발생 시 휘발성 데이터인 시스템 메모리 상태를 즉각적으로 추출하여 원본 증거 데이터를 확보하는 기능입니다.
•
안티 포렌식 대응
◦
공격자가 흔적을 지우기 전, 커널 레벨에서 발생하는 행위를 기록하고 메모리 상의 증거를 실시간으로 보존하는 것을 목표로 합니다.
K9 솔루션에서의 구현 및 동작 방식
1.
사용자 요청 기반 실행
관리자가 슬랙(Slack) 알림을 통해 위험을 인지하거나 웹의 포렌식 덤프 페이지에서 특정 호스트에 대한 'AVML 덤프' 버튼을 클릭하면 에이전트로 명령이 전달됩니다.
2.
즉각적인 덤프 수행
명령을 수신한 에이전트는 즉시 해당 시스템의 메모리 덤프를 진행합니다.
3.
안전한 데이터 전송 및 보관
추출된 덤프 파일은 분석 서버의 S3 버킷으로 즉시 업로드되어 중앙 서버에 안전하게 보관됩니다.
4.
로컬 흔적 제거
보안 및 저장 공간 관리를 위해 S3 업로드가 완료된 후 에이전트 내에 생성되었던 로컬 덤프 파일은 즉시 삭제됩니다.
5.
사고 분석 활용
수집된 데이터는 중앙 서버에서 사고 원인 분석 및 법적 대응을 위한 결정적인 증거 자료로 활용됩니다.
[ 실제 웹 페이지를 통해 구현한 에이전트의 AVML 시연 영상 ]
정의 및 목적
•
안전한 엔드포인트 관리
◦
인가되지 않은 악의적인 노드(서버)가 무분별하게 연결되어 가짜 로그를 전송하거나 시스템 부하를 일으키는 것을 원천 차단하기 위한 보안 프로세스입니다.
•
관리자 편의성 극대화
◦
에이전트 배포 후 복잡한 인증 절차 없이, Slack과 웹 대시보드를 연동하여 관리자가 손쉽게 통제할 수 있도록 사용자 친화적으로 구현했습니다.
구현 및 동작 방식
1.
에이전트 실행 및 등록 요청
모니터링 대상 서버(호스트)에서 에이전트 바이너리를 실행하면, 에이전트가 호스트명(Hostname), OS 버전, MAC 주소 등 고유 식별 정보를 담아 분석 서버로 최초 인증 요청을 보냅니다.
2.
Slack 실시간 알림 및 원클릭 승인
분석 서버가 등록 요청을 인지하는 즉시 관리자의 Slack 채널로 알림을 발송합니다. 관리자는 Slack 메시지 내의 '승인(Approve)' 버튼 또는 웹 대시보드의 ‘에이전트 관리’ 페이지의 승인 버튼을 눌러 모바일/PC 어디서든 원클릭으로 승인이 가능합니다.
3.
컬렉터 활성화 및 로그 스트리밍 시작
관리자의 승인이 완료된 시점부터 에이전트가 공식적으로 활성화됩니다. 이때 내부 로그 수집기(Tetragon, Nginx, Auditd 등)와 로그 전송기(Fluent-bit)가 구동되며, 중앙 서버를 향한 실시간 로그 전송이 안전하게 시작됩니다.
[ 실제 에이전트 설치 과정 시연 영상 ]
분석 서버의 중요 기능
분석 서버의 역할
에이전트로부터 수집된 방대한 데이터를 가공하고, 시각화 및 자동화된 대응을 지원하는 중앙 플랫폼 역할의 기능들입니다. 아래는 실제 구현된 웹 페이지들의 전반적인 형태를 확인할 수 있는 시연 영상 입니다.
[ 실제 구현된 웹 페이지들의 생김새 ]
•
에이전트에서 전송된 대량의 로그를 병목 현상 없이 안정적으로 수용하기 위해 Kafka 메시지 큐를 활용합니다.
•
기존 솔루션(Data Prepper)의 성능 한계를 극복하고자 Python 기반의 Worker를 도입하여, Kafka로부터 데이터를 빠르게 추출하고 정제하는 파이프라인을 구축했습니다.
이벤트 발생 현황 등 Grafana 활용 실시간 시각화, 최근 24시간 내 Top 5 위협 표시 페이지
•
실시간 위협 모니터링
◦
시스템 활동 로그와 전체 보안 현황을 Grafana와 연동하여 실시간 시각화 데이터로 제공합니다.
•
주요 위협 우선순위화
◦
최근 24시간 이내에 발생한 로그 중, 자체 위험도 산출 로직을 통해 판별된 상위 5개(Top 5)의 고위험 이벤트를 표시합니다.
•
심층 분석 연계
◦
대시보드에 노출된 고위험 로그의 '분석하기' 버튼을 클릭하면, 즉시 해당 이벤트의 '프로세스 분석' 페이지로 전환되어 끊김 없는 침해사고 대응(IR) 동선을 제공합니다.
수집된 수많은 이벤트 로그 속에서 관리자가 치명적인 위협을 놓치지 않도록, 단순 탐지를 넘어 공격의 맥락(Context)을 파악하는 자체적인 위험도 평가 알고리즘을 설계했습니다. 위험도 산출 로직은 4가지 핵심 요소(Action, Target, Env, Mitre)를 조합하여 단일 이벤트에 대한 최종 위협 점수를 계산합니다. 이 가중치 방식을 통해 대시보드의 Top 5 위협과 슬랙의 보안 알림을 관리하게 됩니다.
최종 점수 = (Base × Target × Env) + Mitre (※ 최대 100점으로 제한)
요소 (Element) | 산정 방식 | 상세 설명 |
[A] Action | Base Score | 데이터베이스(DB)에 사전에 정의된 각 보안 위협 규칙(Rule)의 기초 점수입니다 (1~100점 부여). |
[T] Target | Target Multiplier | 행위의 타겟이 /etc/shadow와 같은 민감한 시스템 파일이거나 보안상 중요한 네트워크 포트(예: 22번 포트)에 접근하는 경우, 기본 점수에 20%를 가중합니다. |
[E] Env | Env Multiplier | 해당 행위를 실행한 주체의 권한이 Root(UID 0)와 같이 시스템 장악력이 높은 위험한 환경일 경우, 10%의 추가 가중치를 부여합니다. |
[M] Mitre | Mitre Bonus | 탐지된 행위가 MITRE ATT&CK 프레임워크의 어떤 전술(Tactic)에 속하는지 매핑하고, 해당 전술의 중요도 및 파급력에 따라 보너스 점수를 최종 합산합니다. |
위험도 산출 과정에서 eBPF(Tetragon) 엔진이 수집한 커널 포인트는 아래와 같이 구체적인 MITRE ATT&CK ID와 매핑되어 보너스 점수 산정에 활용됩니다. 아래의 MITRE ATT&CK ID 외에도 리눅스 OS 관련한 ID들을 기반으로 Mitre 요소를 관리합니다.
룰 이름 (Rule Name) | 마이터 ID | 탐지 논리 (eBPF/Tetragon 포인트) |
WordPress Config Access | T1552.001 | cat, grep 등의 명령어를 이용한 웹 애플리케이션의 핵심 설정 파일(wp-config.php) 접근 및 읽기 시도 |
System User Discovery | T1087.001 | whoami, id, groups 등의 명령어를 통한 현재 탈취한 계정의 권한 및 유저 정보 확인 행위 |
Network Config Discovery | T1016 | ifconfig, ip, netstat 등의 명령어를 통한 피해 서버의 네트워크 구성 정보 조회 및 내부망 탐색 |
위의 위험도 산출 로직 기반으로 실제 관리자의 계정으로 보안 알림을 전송하게 됩니다
[ 관리자 슬랙으로 보안 알림 전송 확인 시연 영상 ]
등록된 자산 정보(상태, 호스트명, IP, OS 정보, CPU, 메모리 정보 등) 조회 페이지
•
엔드포인트 가시성 확보
◦
에이전트가 설치된 모든 호스트의 기본 정보(호스트명, IP, OS 정보 등)를 한곳에서 조회할 수 있습니다.
•
리소스 모니터링
◦
각 자산별 CPU, 메모리 등 실시간 리소스 사용률을 제공합니다.
•
우선순위 식별
◦
위협이 발생한 자산의 상태를 즉각적으로 파악하여, 보안 관리자가 어떤 시스템부터 우선적으로 처리해야 할지 판단하는 근거를 제공합니다.
에이전트로부터 등록 요청을 처리 페이지
•
인증 및 통제
◦
신규 호스트에서 에이전트가 실행되며 고유 정보를 담아 인증 요청을 보낼 때, 이를 확인하고 승인하는 중앙 통제 페이지입니다.
•
다중 채널 승인
◦
웹 페이지 내에서의 수락뿐만 아니라, Slack 채널로 발송된 알림을 통한 원클릭 승인도 지원합니다.
•
수집 활성화 트리거
◦
관리자의 승인이 완료되는 즉시 Fluent-bit 및 각 수집 컬렉터가 활성화되며 안전하게 실시간 로그 스트리밍이 시작됩니다.
Neo4j 활용 프로세스 상관분석을 위한 그래프 DB 시각화, LLM API 활용 보고서 생성 페이지
•
그래프 DB(Neo4j) 기반 시각화
◦
단일 로그 기반 프로세스의 구조를 직관적인 그래프 노드로 렌더링합니다 .
•
상세 맥락 분석
◦
그래프 상의 의심 탐지 노드를 클릭하면 우측에 상세 분석 창이 활성화되어, 명령어 라인(Full Command Line), 부여된 위험도 점수, 자동으로 매핑된 MITRE ATT&CK ID(예: T1003.008)를 확인할 수 있습니다.
•
AI 시나리오 보고서 생성 원클릭
◦
하단의 '[AI] 시나리오 보고서 생성' 버튼을 누르면, 매핑된 데이터와 타임라인을 기반으로, LLM(Gemini API)을 활용해 법적 의무 사항인 정보통신망법 형식에 맞춘 사고 시나리오 초안 보고서를 버튼 클릭 한 번으로 자동 생성하여 정보보안 인력의 행정적 부담을 줄여줍니다.
◦
AI 보고서 생성하기 버튼을 통해 만들어진 실제 보고서 PDF 파일
[ 슬랙 알림을 통한 즉각적 프로세스 분석 페이지 이동 시연 영상 ]
[ 프로세스 분석 페이지에서의 분석과 AI 보고서 생성 시연 영상 ]
opensearch에 저장된 전체 로그 조회 페이지
•
전체 데이터 통합 보관
◦
8개 영역의 멀티 컬렉터에서 수집된 모든 보안 이벤트 원천 로그가 저장되는 메인 데이터 저장소입니다.
•
초고속 검색 및 필터링
◦
OpenSearch 엔진을 기반으로 구축되어, 방대한 대량의 로그 속에서도 위험도가 높게 산정된 이벤트나 특정 조건의 로그를 실시간으로 빠르게 필터링하여 조회할 수 있습니다.
AVML 활용 에이전트 메모리 덤프 기능 페이지
•
실시간 증거 확보 (AVML)
◦
치명적 위협 발생 시 관리자가 해당 호스트에 대한 'AVML 덤프' 버튼을 클릭하면, 에이전트 단으로 메모리 덤프 명령이 즉달됩니다 .
•
안전한 증거 이관
◦
에이전트가 휘발성 메모리를 덤프한 후 그 즉시 분석 서버의 S3 버킷으로 업로드하며, 공격자의 눈을 피해 로컬 덤프 파일은 자동 삭제하는 프로세스를 거칩니다.
에이전트 정책 설정 관리 페이지
•
동적 정책 관리
◦
에이전트의 작동 방식을 중앙에서 통제하는 화면으로, YAML 형식을 통해 설정을 관리합니다.
•
실시간 동기화
◦
8개 로컬 컬렉터의 활성화/비활성화 여부 및 로그 수집 경로 등을 관리자가 업데이트하면, 에이전트 재시작 없이 즉시 해당 정책이 동기화되어 유연하고 민첩한 보안 운영이 가능합니다.
활용 라이브러리 및 개발 환경
에이전트 설치 서버 환경 및 에이전트 기술 스택
1.
에이전트 설치된 서버 환경
•
OS : Ubuntu 22.04 (커널 3.18 이상 환경)
•
Web/DB : Nginx 1.18.x, PHP-FPM 8.1.x, MariaDB 10.6.x
•
Target App : WordPress 6.9.x
커널 레벨이 꼭 3.18 이상 이어야지만, eBPF 를 지원하기 때문에 OS가 제공하는 커널 버전 확인 필요합니다.
2.
에이전트 기술 스택
컴포넌트 | 기술 (버전) | 역할 |
Language | Go (Golang) | 고루틴(Goroutine)과 채널을 활용한 비동기 데이터 수집 |
eBPF Engine | Tetragon | 커널 레벨의 파일, 프로세스, 네트워크 콜 정밀 후킹 및 감시 |
OS/Net/Sys | Auditd, Journald, Conntrack, Nftables, gopsutil | 권한 상승, 네트워크 흐름, 시스템 리소스 사용량 등 통합 감시 |
Log Shipper | Fluent-bit | 멀티 센서에서 수집된 대규모 커널/OS 로그를 병목 없이 중앙 서버(Kafka)로 실시간 무손실 스트리밍 |
분석 서버 환경 및 기술 스택
1.
분석 서버 환경
•
OS: Ubuntu 22.04 LTS
•
Runtime: Docker 20.10+ & Docker Compose v2.0+
•
Hardware: 최소 8GB RAM 이상 (OpenSearch, Kafka, Neo4j 구동을 위한 권장 사양)
2.
분석 서버 기술 스택
컴포넌트 | 기술 (버전) | 역할 |
Frontend | React (18.3.1) | 메인 웹 기능 및 UI 구성 |
Backend | FastAPI (0.135.1) | API 서버 구축 및 비즈니스 로직 처리 |
Message Queue | Apache Kafka (3.8.0) | 실시간 로그 버퍼링 및 분산 큐잉 |
Detection Worker | Python (3.11-slim) | 룰 기반 위협 탐지, 데이터 정규화 및 ETL |
Search Engine | OpenSearch (2.12.0) | 분산 로그 검색 및 보안 이벤트 저장 |
Graph DB | Neo4j (5.15.0) | 프로세스 실행 계층 및 행위 상관관계 분석 |
Management DB | PostgreSQL (15.6) | 탐지 룰(Detection Rules) 및 메타데이터 관리 |
Visualization | Grafana (10.4.0) | 실시간 보안 관제 및 위협 통계 대시보드 |
3.
분석 서버 주요 라이브러리
분류 | 컴포넌트 (라이브러리) | 버전 (Version) | 설명 |
Backend | SQLAlchemy | 2.0.48 | 파이썬 코드 기반의 데이터베이스(PostgreSQL) 관리 및 ORM 매핑 |
Backend | Pydantic | 2.12.5 | 데이터 형식 검증 및 API 입출력 스키마 정의 |
Frontend | Cytoscape.js | 3.33.1 | Neo4j 그래프 데이터를 활용한 프로세스 간 상관관계 시각화 |
Frontend | Axios | 1.13.6 | 프론트엔드와 백엔드 간 비동기 데이터 통신(API 요청) 처리 |
트러블 슈팅
프로젝트 개발 과정에서 발생한 주요 기술적 난제들을 다음과 같이 해결했습니다.
에이전트 배포 독립성 확보 (의존성 문제)
Problem
•
로그 전송을 담당하는 Fluent-bit가 단일 실행 바이너리 파일을 제공하지 않아, 다양한 환경의 에이전트 배포 과정에서 의존성 충돌 문제가 발생할 위험이 높았습니다.
⇒ Solution
•
소스 코드를 직접 빌드(MAKE)한 후, 필수 동적 라이브러리들을 추적하여 단일 디렉토리에 포함시켰습니다. 이를 tar 아카이브로 패키징하여 다양한 환경에서도 작동하는 포터블(Portable) 실행 환경을 완성했습니다.
이기종 컬렉터 간의 데이터 정규화 및 성능 병목
Problem
•
8개 영역의 멀티 컬렉터에서 수집되는 로그들의 필드명과 JSON 구조가 상이하여 분석 서버 통합에 난항을 겪었고, 시스템 부하가 우려되었습니다.
⇒ Solution
•
데이터의 대표성을 확보하기 위해 토픽별로 10개씩의 샘플 로그를 추출하여 데이터 프로파일링을 거쳤습니다. 이후 공통 항목을 우선순위로 묶어 처리하는 표준화 파이프라인을 구축하여 병목을 해소했습니다.
AI 자동 보고서(PDF) 다국어 렌더링 오류
Problem
•
LLM(Gemini API)을 통해 자동 생성된 보고서를 PDF로 변환하는 과정에서, 기존 라이브러리(xhtml2pdf)가 최신 웹 표준을 지원하지 않아 한글 폰트가 깨지는 현상이 발생했습니다.
⇒ Solution
•
브라우저 자동화 도구인 Playwright로 PDF 생성 엔진을 전면 교체하였습니다. 가상의 브라우저 환경에서 직접 렌더링하는 방식을 통해 웹 폰트 적용과 레이아웃 호환성 문제를 해결했습니다.
팀 소개
팀명 소개 “9르밍”
저희 팀명 '9르밍'은 매일 밤 9시에 모여 회의를 진행하며, 보안 위협 99.99% 탐지 성공률을 목표로 하겠다는 의지를 담아 지었습니다.
에이전트 part 개발 인원
팀장
취약 서버(테스트베드) 구축, eBPF 에이전트 코어 기능 구현, 부분적 분석 서버와의 통신 모듈 개발.
•
프로젝트 리뷰
◦
eBPF 기술, EDR 에 대한 개념 및 동작 과정에 대해서 깊이 있게 알아 볼 수 있는 기회였고, 특히 팀원들과 Github 나 노션 등을 통해서 협업하는 방식을 채득할 수 있는 경험이였습니다
◦
특히 팀장의 역할을 최선을 다하려 했지만 부족함이 많았을텐데, 열심히 해준 팀원들에게 감사합니다.
팀원1
취약 서버 구축, eBPF 에이전트 기능 구현, 분석 서버 간의 인증 및 보안 통신 로직 담당.
•
프로젝트 리뷰
팀원2
eBPF 에이전트 세부 기능 구현 및 실증을 위한 테스트 공격 시나리오 기획 및 실행.
•
프로젝트 리뷰
◦
팀원들과 협업을 통해 역할 분담과 의사소통의 중요성을 경험하였으며 GitHub와 노션을 활용한 협업 방식에 익숙해질 수 있었습니다.
◦
프로젝트를 진행하며 기획 및 설계 단계의 중요성을 체감하였고, 에이전트 개발을 위해 eBPF 기술을 학습하는 과정에서 관련 보안 개념과 개발 환경에 대한 이해를 넓힐 수 있었습니다.
◦
공격 시나리오를 구성하고 검증하는 과정을 통해 실제 공격 흐름이 어떻게 동작하는지 확인할 수 있었습니다.
분석 서버 part 개발 인원
팀장
로그 파이프라인(Kafka) 연동, 데이터 분석 워커 로직 구현, FastAPI/React 기반 통합 대시보드 및 LLM 보고서 생성 시스템 개발.
•
프로젝트 리뷰
◦
"New Standard, New Challenge": 최근 보안 기술의 기준인 eBPF를 학습하며, 이를 프로젝트에 적용함으로써 탐지/대응/보고 과정의 자동화를 경험
◦
"with 9르밍": 다양한 팀원들과 노션, 디스코드 등을 활용한 커뮤니케이션과 깃허브를 통한 협업 경험
팀원1
분석 서버 측의 핵심인 다중 요소 기반 위험도(Scoring) 알고리즘 설계 및 전체 API 명세서 구조화.
•
프로젝트 리뷰
◦
정기적인 팀 회의를 통해 팀원들과 의견을 조율하며 협업 역량을 키웠고, eBPF를 비롯해 프로젝트에 도입된 다양한 기술 스택을 직접 다뤄보는 좋은 경험을 할 수 있었습니다. 특히 위험도 평가 로직을 개발하는 과정에서, 개별 로그들이 연결되어 나타나는 전체적인 공격의 흐름을 파악하는 시야를 얻을 수 있었습니다.



.png&blockId=35d4e699-7fb0-81a4-9740-d2cd7ed1783a)
.png&blockId=35d4e699-7fb0-8101-9ff4-f67b9600cd3e)









