Bro가 MySQL 트래픽을 얼마나 깊이 들여다보는가
이번 챕터에서 읽으면서 제일 흥미로웠던 부분이 Bro의 MySQL 추적 기능이다. 그냥 "MySQL 접속이 있었다" 수준이 아니라, 어떤 쿼리 명령이 몇 번 실행됐는지, 구체적으로 어떤 테이블에 어떤 SELECT문이 날아갔는지까지 전부 로그에 남긴다.
책에서 보여주는 예시가 꽤 직관적인데, ELSA에서 특정 IP를 조회하고 groupby:service로 분류하면 dhcp, dns, http 같은 서비스들 옆에 mysql이 보인다. 거기서 bro_mysql을 골라 groupby:cmd로 다시 추리면 query, login, quit, init_db 같은 명령어 분포가 막대 그래프로 펼쳐진다. 38개의 query 중에는 이런 것도 있다.
SELECT LOGFILE_GROUP_NAME, FILE_NAME, TOTAL_EXTENTS ...
FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'UNDO LOG'
... TABLE_NAME IN ('account_real') ...
백업 DB의 account_real 테이블에 접근하는 쿼리다. 해커가 개인정보 DB를 덤프하려 했다면 이런 흔적이 고스란히 남는다는 얘기다. 단순히 "연결이 있었다"가 아니라 "어떤 명령을 내렸는지"까지 추적되니까, 사후 분석할 때 타임라인 재구성이 훨씬 정밀해진다.
file-extraction 스크립트 한 줄 수정으로 추출 범위가 달라진다
Bro의 파일 추출 기능도 그냥 지나치기 아까웠다. 기본 설정에서는 application/x-dosexec, 즉 EXE 파일만 뽑는다. /opt/bro/share/bro/file-extraction/extract.bro를 열어보면 그 이유가 바로 보인다.
if ( ! meta?$mime_type || meta$mime_type != "application/x-dosexec" )
return;
이 한 줄을 아래처럼 바꾸면 얘기가 달라진다.
global ext_map: table[string] of string = {
["application/x-dosexec"] = "exe",
["text/plain"] = "txt",
["image/jpeg"] = "jpg",
["image/png"] = "png",
["text/html"] = "html",
} &default = "";
if ( ! meta?$mime_type || meta$mime_type !in ext_map )
return;
저장하고 sudo nsm_sensor_ps-restart --only-bro를 실행하면 이제 /nsm/bro/extracted 폴더에 txt, html 파일들도 쌓이기 시작한다. MIME type 종류는 수십 가지가 넘으니 필요한 것만 골라 추가하면 되고, 실제로 침해 분석 중에 해커가 내려받은 파일을 서버에서 이미 지웠더라도 Bro가 미리 캡처해뒀다면 여기서 꺼낼 수 있다. 꽤 실용적인 포인트다.
Xplico가 pcap을 재조립하는 방식, 그리고 쓸 때 진짜 편한 점
Bro 기반 분석이 로그와 CLI 중심이라면, Xplico는 pcap 파일을 통째로 던져넣고 GUI로 결과를 보는 방식이다. Security Onion에 기본 포함돼 있고 9876 포트로 접근한다. 계정은 xplico/xplico.
사용 흐름은 이렇다. New Case를 만들고, 그 안에 Session을 생성한 뒤 pcap 파일을 업로드하면 Xplico가 자동으로 디코딩을 시작한다. 완료되면 HTTP, Mail, VoIP, SMB, syslog 등 프로토콜별로 분류된 결과가 나온다.
특히 인상적인 기능이 두 가지다. 하나는 [Web] 메뉴의 Site 항목인데, 이 트래픽에서 접속한 모든 URL 목록이 나오고 각 항목마다 [Info]를 누르면 해당 페이지를 실제로 재구성해서 보여준다. 침해 분석 중에 피해자가 어느 사이트에 들어갔고 그 페이지가 어떻게 생겼는지 확인하고 싶을 때 요긴하다. 다른 하나는 [Shell] 메뉴의 syslog인데, 네트워크 트래픽 내에서 전송된 syslog 데이터를 따로 모아준다. 로그 전송 내역까지 pcap 안에서 건질 수 있다는 얘기다.
근데 Xplico는 서비스망보다는 개인 PC 트래픽 분석에 더 적합하다고 챕터에서도 언급하고 있다. 이미지나 접속 URL 단위로 파고드는 구조라서, 특정 사용자가 어떤 행동을 했는지 재현할 때 Bro 로그만으로는 아쉬운 부분을 채워준다.
'study' 카테고리의 다른 글
| [도서] 인프라보안 - 13장: Bro와 Xplico를 이용한 네트워크 포렌식 (0) | 2026.01.12 |
|---|---|
| [컨퍼런스] 토스 가디언즈 - 동의서 정복하기 (0) | 2026.01.05 |
| [도서] 인프라보안 - 11장: IDS 튜닝과 주요 명령어 (0) | 2025.12.24 |
| [도서] 인프라보안 - 10장: Security Onion 설치 (0) | 2025.12.10 |
| [도서] 인프라보안 - 9장: VPN을 통한 외부 접근 제어 (0) | 2025.12.01 |