분석 · 관제핵심 · 12분 읽기
SIEM: 로그를 조사 가능한 사건으로
SIEM은 여러 출처의 기록을 모아 검색하고 연관성을 분석하는 체계다. 좋은 대시보드보다 신뢰할 수 있는 수집과 조사 근거가 먼저다.
개념부터 찾아보기
정의·역할·동작 원리를 독립 페이지에서 확인하세요. 본문의 밑줄 용어에도 설명이 있습니다.
이 노트에서 설명할 수 있게 되는 것
- 파싱·정규화·보강·상관분석·사건 관리의 출력을 구분한다.
- 시간 창과 연결 키로 탐지 가설이 만들어지는 방식을 설명한다.
- 중복·지연·공유 주소로 생기는 잘못된 연결을 찾아낸다.
01개념과 구성 요소
- 여러 출처의 이벤트를 수집·해석·검색하고 관계를 연결해 조사 가능한 사건으로 만드는 시스템이다.
- 자료 층원본, 파싱 필드, 정규화·보강 정보, 경보·사건은 서로 다른 자료다.
- 연결 기준시간·자산·주체·요청·흐름 식별자와 출처별 결과 필드가 판단 근거를 만든다.
02로그에서 조사 사건까지의 처리 순서
- 수집·원본 식별수신 시각·출처·파일 offset 또는 이벤트 ID를 남겨 원본으로 돌아갈 경로를 만든다.
- 파싱메시지를 시각·주체·주소·행동·결과로 분해하고 실패 자료와 파서 버전을 구분한다.
- 정규화·보강공통 필드 의미와 단위를 맞춘 뒤 사건 당시의 자산·계정 정보를 연결한다.
- 상관분석발생 시각·시간창·연결 키로 이벤트를 묶는다. 지연·역순·재전송과 중복 증거를 처리한다.
- 사건 평가규칙의 심각도, 근거의 신뢰도, 실제 관찰 영향을 나누고 필요한 원본을 조사한다.
- 대응·재검토결정과 조치·복구 결과를 연결하며 규칙·원본·정규화 관계를 남겨 과거 판단을 재현할 수 있게 한다.
03로그를 모으는 일과 의미를 연결하는 일
- 중앙 분석은 여러 소스의 이벤트를 수집·파싱·정규화·저장하고 검색·탐지·조사로 연결한다. 모든 로그를 한곳에 넣는 것만으로 상관분석이 생기지는 않는다.
- 정규화의 한계로그인 실패의 사용자, HTTP 출발지, 방화벽 방향과 처리 결과가 정확한 의미로 표현되어야 다른 자료를 연결할 수 있다.
- 설계 범위ALPACA 통합 문서는 소스별 원본 구조와 공통 검색 필드를 나누었다. 소스 담당 파서가 1차 분석 를 내보내되 최종 사건에서 원본으로 돌아갈 참조를 유지한다.
- 저장 모델소스별 저장 구조와 통합 이벤트 모델은 분석 질문과 원본 추적 요구에 맞게 정한다.
04Parsing·Normalization·Enrichment
- ·은 필드를 추출하고 은 같은 의미의 이름·타입·단위를 맞춘다. 는 자산 중요도·사용자 역할·네트워크 영역 같은 맥락을 더한다.
- Severity 의미제품 A의 severity=1과 제품 B의 level=1이 같은 심각도를 뜻한다고 가정하지 않는다.
- 실패·미지정실패한 파싱과 빈 값은 정상 값으로 위장하지 않는다. 모르는 port를 0, 모르는 결과를 success로 채우면 검색에 잘못된 사실이 생긴다.
- 파서 버전원문과 파서 버전을 남겨야 추출 규칙 변경 뒤 과거 판단을 재검토할 수 있다.
05발생·수신·저장 시각
- 세 시각event_time은 장비가 기록한 시각, received_time은 수집기 수신 시각, stored_time은 저장 시각이다. 차이는 전달 지연을 설명한다.
- 검색 시간시계가 틀어진 장비의 event_time만 절대 순서로 믿으면 응답이 요청보다 먼저 보일 수 있다.
- 시간대 근거UTC·ISO8601 통일은 비교 기준을 맞추는 방법이다. timezone 변환 전 원문과 해석 기준도 남겨야 연도·오프셋 추정 오류를 찾을 수 있다.
- 정밀도소수점 여섯 자리는 포맷 정밀도이며 실제 모든 장비가 마이크로초 정확도로 측정했다는 증거가 아니다.
06주소·계정·주체와 센서 위치
- 주소와 주체src_ip는 패킷 출발지이며 실제 사용자의 신원과 항상 같지 않다. ·proxy 뒤에서 여러 사용자가 같은 주소를 쓸 수 있고 신뢰하지 않는 X-Forwarded-For는 조작 가능하다.
- Proxy 신뢰정규화할 때 원래 네트워크 주소와 신뢰 가능한 전달 정보를 구분한다.
- 방향 역할요청과 응답의 src/dst는 반대다. flow의 endpoint A/B와 initiator/responder를 나누고 sensor ID·관찰 위치를 보존하면 같은 연결을 방향에 따라 다르게 해석하는 오류를 줄인다.
- 시점별 자산같은 주소의 이벤트라고 같은 주체의 공격으로 자동 귀속하지 않는다.
07소스 고유 필드가 사건을 연결한다
- 거래의 unique_id·rule_id·matched_data·engine_mode·intercepted, auditd의 audit_serial·pid/ppid·uid/auid·success·exit_code, DB의 connection_id·query_id·operation·return_code는 각각 다른 조사 근거다.
- 결과 필드message 한 줄로만 보관하면 이 관계가 흐려진다.
- Audit SerialAudit의 여러 레코드는 같은 serial로 한 사건을 설명할 수 있다. 의 탐지 전용 mode에서는 규칙 일치와 차단이 다르다.
- DB 연결 키DB QUERY는 실행 결과 코드까지 함께 보아야 한다. 공통 필드로 바꾸더라도 원래 코드와 상세 구조를 보존한다.
| 출처 | 연결 키 | 결과 필드 |
|---|---|---|
| HTTP/ | request_id·unique_id | status·intercepted·mode |
| Audit | host·audit_serial | success·exit_code·auid |
| DB | connection_id·query_id | operation·return_code |
| sensor·flow_id·tx_id | event_type·.action |
08Alert·Event·Incident와 중복 증거
- ··는 규칙 일치 결과, 는 관측 또는 정규화 자료 단위, 는 조사 결과 대응이 필요한 사고 단위로 구분할 수 있다. 제품마다 용어가 다르므로 내부 정의를 명시한다.
- 중복 증거같은 요청에 ··웹 로그가 남았다고 공격 세 번으로 세지 않는다.
- 독립성같은 미러 패킷에서 파생된 경보 세 개를 독립 증거 세 개로 점수에 더하면 신뢰를 과장할 수 있다. event_evidence 같은 관계에는 원본·개별 탐지·최종 사건을 연결하고 각각 어떤 이유로 판단에 기여했는지 남긴다.
09시간창과 지연 도착
- 시간창같은 계정의 반복 인증 실패 뒤 성공, 새로운 위치에서 중요 자료 접근이 이어지면 조사 가설이 된다. 정상 사용자의 오입력·자동 재시도·IP 이동도 가능하므로 임계값만으로 탈취를 확정하지 않는다.
- Group Keygroup key와 window가 어떤 행위를 묶는지 정의해야 한다.
- LiveTimeliveTime은 실시간 비교 대상으로 유지하는 기간이며 DB 기록 삭제를 뜻하지 않는다. 늦게 온 사건·역순 사건·재전송을 어떻게 처리할지에 따라 탐지 결과가 달라진다.
- 늦은 자료실시간 창 밖의 자료도 장기 검색에서는 조사 근거가 될 수 있다.
원리 심화
10발생 시간 창과 늦게 도착한 이벤트의 처리
- 이벤트 시간상관분석은 사건 발생 시각을 기준으로 볼지 수집·처리 시각을 기준으로 볼지 정해야 한다. 지연 도착은 두 선택의 결과를 다르게 만든다.
- 허용 지연설계한 허용 지연을 넘은 이벤트를 폐기·별도 분석·재계산 중 어떻게 처리할지 명시한다. 모든 제품이 같은 기본 정책을 갖는 것은 아니다.
- 창의 경계고정 구간·슬라이딩 구간·두 사건 사이의 시간 차이는 서로 다르다. 경계 바로 전후의 이벤트가 같은 사건인데 나뉠 수 있다.
- 중복 키소스의 안정적인 이벤트 ID와 발생 위치를 이용해 중복을 식별한다. 계정·시각만 같다는 이유로 서로 다른 행위를 합치지 않는다.
- 정정 가능성재수집·파서 수정 후 사건의 근거가 바뀔 수 있다. 경보와 사건에 적용한 규칙·필드·시각 정책의 버전을 남긴다.
예제로 추적
11가상 실패 뒤 성공이 늦게 도착한 사례
- 상관 조건같은 계정에서 실패 뒤 2분 이내 성공이 있으면 검토 대상으로 삼는 교육용 규칙을 가정한다. 악성 행위 확정 규칙은 아니다.
- 실패 기록실패 발생=09:59, 수집=10:00이다. 계정·서비스·요청 식별 문맥이 함께 보존되어 있다.
- 성공 기록성공 발생=10:01, 수집=10:04다. 발생 시각 차이는 2분이지만 수집 시각 차이는 4분이다.
- 시간 선택발생 시간 기준으로는 조건을 만족할 수 있고 수집 시간 기준의 2분 창에서는 놓칠 수 있다. 제품의 경계 포함 방식도 명시한다.
- 늦은 처리이미 닫힌 분석 창에 도착했다면 재평가 또는 지연 사건 처리 정책이 필요하다. 단순 정렬 변경만으로 실시간 경보 이력이 자동 수정되지는 않는다.
검증·예외
12상관분석 건수가 갑자기 달라질 때
- 파싱 변화계정 이름·시각·행동 필드의 추출률과 타입이 바뀌었는지 확인한다. 수집량이 같아도 결합 가능한 자료는 줄 수 있다.
- 중복 영향원본·중계·제품 경보를 같은 근거로 여러 번 셌는지 본다. 다른 센서의 독립 관찰과 동일 이벤트 재전송은 구분한다.
- 시계 품질시간대 변환·시계 오차·늦은 도착 분포를 비교한다. 정확한 시각이 없는 자료에는 순서 불확실성을 남긴다.
- 주체 결합 주소·공유 계정·프록시를 사람 한 명으로 취급하지 않는다. 가능한 주체 범위를 유지하며 추가 증거로 좁힌다.
13심각도·신뢰도·관찰된 영향
- 심각도·신뢰도·영향Severity는 규칙 심각도, confidence는 근거 신뢰, actual impact는 관찰된 영향이다. 중요한 자산의 경보가 우선순위는 높아도 공격 성공을 증명하는 추가 증거가 저절로 생기는 것은 아니다.
- 점수 정책점수 입력·가중치·정책 버전을 남겨야 분석가가 결과를 설명할 수 있다.
- 센서 중복두 센서가 같은 패킷을 본 것과 서버에서 실제 파일 변경이 발생한 것은 관찰 계층이 다르다. independent_source_count는 단순 로그 개수가 아니라 증거의 독립성을 검토한 값이어야 한다.
- 관찰 사실경보 제목보다 원본이 말하는 사실을 먼저 읽는다.
14원본 바이트와 검색 저장소
- 원시 Payload원본 Packet·대량 payload를 파일에 두고 raw_file_id·offset·length·checksum·record_count를 검색 DB에 연결할 수 있다. 검색 문서에서 필요한 바이트로 되돌아가는 색인이다.
- 파일 참조원본 파일의 이동·삭제·압축과 색인 갱신이 맞지 않으면 근거 링크가 깨진다.
- 복구의 범위검색 인덱스 재생성과 원본 복구는 다른 시험이다. 접근 권한과 보존 기간은 양쪽 모두에 적용한다.
- 민감정보비밀번호·세션 토큰을 모든 검색 필드와 화면에 그대로 복제하는 것은 조사 편의와 별도로 제한해야 한다.
15수집 경로 자체를 관찰하기
- 큐·전달 건수Parse failure 비율, queue 깊이, 소스별 마지막 수신, 색인 오류, 발생부터 검색 가능까지 지연은 탐지 기반이 작동하는지 보여 준다. 경보 감소가 위협 감소인지 수집 중단인지 구분하려면 별도의 source heartbeat와 기대 유입량이 필요하다.
- 재현 가능한 판단규칙·원본·정규화·증거 관계를 함께 관리하면 과거 사건의 판단 근거를 재현할 수 있다. 을 분석할 때는 데이터가 의미를 얻는 지점과 유실·중복·오해가 발생하는 경계를 구분한다.
설명과 함께 보는 보조 도식
처리 과정
모식도 · SIEM의 데이터 처리 단계
단계마다 입력·출력·실패 상태를 남기는 논리적 구조다.
01원본 수집로그·센서·자산 데이터
02파싱출처별 필드 추출
03정규화·보강공통 의미와 자산 문맥
04상관분석시간 창·연결 키·규칙
05경보·사건근거와 조사·조치 결과
01
수집
원본과 수신 시각을 보존한다.
전체 단계를 한 번에 읽기
- 01
수집
원본과 수신 시각을 보존한다.
- 02
파싱
실패한 형식도 별도 상태로 남긴다.
- 03
의미 연결
주체·행동·결과의 의미를 맞추고 자산 정보를 보강한다.
- 04
가설 평가
중복·지연·공유 주소 조건을 고려한다.
- 탐지
- 사고 확정 전의 후보
- 05
조사
근거 이벤트와 원본 참조로 결론을 남긴다.
학습 확인
이해했는지 확인하기
- 원본·정규화 필드·자산 정보가 연결되는지 확인한다.
- 상관분석의 시간 창과 연결 키·오탐 조건을 명시한다.
- 경보부터 조사·조치·재검증까지 담당과 근거를 남긴다.