06SmartEvent로 이벤트 분석SmartEvent로 이벤트 분석
로그가 수십억 건이면 사람이 다 못 봅니다. SmartEvent 는 그 로그를 우선순위가 매겨진 보안 이벤트로 압축해, 실시간 그래픽으로 보여 주는 통합 이벤트 관리·분석 솔루션입니다. 이 장은 이벤트가 무엇이고 로그가 어떻게 이벤트로 바뀌는지, SmartEvent의 구조, 그리고 Event Policy를 어떻게 손보는지를 정리합니다. 세부 절차는 원문(p.123~166)을 함께 보세요.
이벤트란 무엇인가
핵심은 이벤트가 하나 이상의 로그 + Event Policy의 규칙 으로 만들어진다는 점입니다. 로그 하나로 되는 이벤트도 있고(예: 심각도 High인 Anti-Bot 로그 하나 → High Severity Anti-Bot 이벤트), 여러 로그가 모여야 되는 이벤트도 있습니다(예: 같은 인증서로 다른 사용자가 로그인한 로그 둘 → Certificate Sharing 이벤트).
로그가 이벤트로 바뀌는 방식은 둘입니다. Firewall·VPN·HTTPS Inspection이 아닌 로그는 SmartEvent가 자동으로 이벤트로 정의 하고, 하나 이상의 로그가 만드는 의심스러운 패턴은 Correlation Unit이 상관분석해 이벤트(correlated event)로 생성 합니다. 반대로 대부분을 차지하는 Firewall·VPN·HTTPS 로그는 성능을 위해 기본적으로 이벤트로 만들지 않습니다.
SmartEvent의 구조
여러 부품이 협력해 위협을 추적합니다.

흐름을 따라가면 이렇습니다 — Security Gateway(①)가 로그를 Log Server(②)에 보내면, SmartEvent Correlation Unit(③)이 각 로그 항목을 분석해 Event Policy의 패턴과 맞는지 보고, 위협 패턴을 찾으면 이벤트를 만들어 SmartEvent Server로 전달 합니다. SmartEvent Server(④)는 SmartView용 로그 인덱싱, Event Policy 정의, Correlation Unit 관리 를 맡고, 그 이벤트를 Events Database(⑤)에 담습니다. 운영자는 SmartConsole이나 SmartView(⑥)로 이벤트를 보고 필터·종료하고 정책을 설치합니다.
규모가 크면 부품을 여러 컴퓨터에 나눠 배포(distributed) 하길 권하며, 한 Correlation Unit이 여러 Log Server의 로그를 분석 할 수 있습니다. 반대로 여러 Correlation Unit이 같은 Log Server를 읽게 해 한쪽이 죽어도 이어지는 중복(HA) 도 가능한데, 이때 같은 이벤트가 DB에 중복되니 Detected By 필드로 어느 Unit이 탐지했는지 구분합니다.
Correlation Unit이 로그를 이벤트로 바꾸는 단계
Correlation Unit이 로그를 받으면 정해진 순서로 거릅니다. 먼저 Global Exclusions(이벤트에 기여하지 않을 로그)와 맞는지 보고, 맞으면 버립니다. 그다음 각 Event Definition 의 필터와 견줍니다 — 필터는 제품별로 나뉘어, 로그의 Product 값이 허용 목록에 있는지 먼저 보고, 있으면 그 제품의 세부 조건(Action·Event Type·Port 등)을 확인 합니다. 맞으면 그 로그는 Event Candidate(이벤트 후보)에 더해집니다.

후보는 "몇 초 안에 몇 건"이라는 임계(threshold)를 넘을 때까지 로그를 추적 하는 임시 묶음입니다. 같은 Event Definition이라도 출처(source) 같은 속성이 다르면 별도의 후보가 새로 생겨, 후보들이 모인 풀(Event Candidate Pool) 을 이룹니다. 예컨대 "차단 연결 급증" 이벤트는 게이트웨이마다 후보를 두어, 한 게이트웨이의 차단 로그가 임계를 넘으면 그 후보가 이벤트로 승격 됩니다. 승격 직전 Event Exclusion 과도 한 번 더 견주어, 맞으면 이벤트를 만들지 않습니다. 이벤트가 생긴 뒤에도 관련 로그가 임계 기간 동안 계속 들어오면 그 이벤트에 더해, 같은 사건을 하나로 묶고 시작·종료 시각을 정확히 유지합니다.
Event Policy 손보기
Event Policy는 SmartEvent GUI(Logs & Events > + > SmartEvent Settings & Policy)의 Policy 탭에서 다룹니다. 화면은 왼쪽 Selector Tree(탐색), 가운데 Detail 창(설정), 오른쪽 Description 창(설명) 으로 나뉩니다. 중요한 점은 변경은 저장(File > Save)하고 Correlation Unit에 설치(Actions > Install Event Policy)해야 적용 된다는 것이며, 저장 전이라면 File > Revert Changes로 되돌릴 수 있습니다.
이벤트마다 손볼 수 있는 요소는 Threshold(몇 초 안에 몇 건이면 이벤트), Severity(Critical·Medium 등), Automatic Reaction, Exception, Time Object(Working Hours) 입니다. 오탐(false alarm)이 많으면 임계의 건수나 기간을 늘려 줄입니다. 다만 Threat Prevention 로그 기반 이벤트의 심각도는 여기 설정이 아니라 protection 타입에서 가져옵니다(원하면 Event Format 탭에서 덮어쓰기 가능).
Automatic Reaction — 이벤트가 떴을 때 자동으로
이벤트 탐지 시 Automatic Reaction 을 발동시킬 수 있습니다. 종류는 Mail(관리자에게 이메일), Block Source(그 출처 IP를 일정 시간 차단), Block Event Activity(여러 출처·목적지의 분산 공격 차단), External Script(직접 만든 스크립트 실행), SNMP Trap 입니다. 만드는 흐름은 Reaction 객체 생성 → 이벤트(또는 예외)에 할당 → 저장 → Correlation Unit에 Event Policy 설치 입니다. External Script는 $RTDIR/bin/ext_commands/ 아래에 두고 실행 권한을 주며, 10분을 넘기면 SmartEvent Server가 강제 종료 합니다. 스크립트 안에서는 EVENT=$(cat) 으로 이벤트를 받아 awk·sed 로 필드를 파싱하는데, 이벤트는 (name: value; ...) 꼴의 name-value 집합입니다.
Working Hours·Exception으로 정교하게
Working Hours(Time Object)는 근무 시간 외의 비정상 접근을 잡는 데 씁니다. Exception 은 같은 이벤트라도 특정 출처·목적지·서비스에만 다른 기준을 적용 하게 합니다(예: "내부망 Port Scan"이 60초에 30건이면 이벤트인데, 호스트 A에서는 10초에 2건도 이벤트로). 직접 새 이벤트를 만들려면 기존 정의를 우클릭하거나 Actions > New Custom Event로 마법사를 띄워, 한 로그로 볼지 여러 로그로 볼지, 어떤 제품·필드로 매칭할지, 임계와 후보 구분 필드를 무엇으로 할지 를 정합니다. 미리 정의된 이벤트를 고치면 결과는 새 User Defined Event로 저장됩니다.
오탐 줄이기
네트워크 스캔 소프트웨어나 바쁜 웹 서버처럼 정상인데도 트래픽이 많아 이벤트로 오인되는 경우가 있습니다. 이럴 때는 그 출처를 스캔 이벤트에서 제외하거나, 그 서버의 허용 연결률을 높여 줍니다. 원문에는 SNMP·DNS·LDAP·HTTP Proxy·SMTP·Anti-Virus 정의 서버 등 서버 종류별로 흔히 오탐을 내는 이벤트와 그 이유를 정리한 표(p.153~) 가 있으니, 임계·예외를 조정할 때 바탕으로 삼으세요. SmartEvent 시스템 관리(Correlation Unit·Log Server 추가, Internal Network 정의, 객체 생성)는 Policy 탭의 General Settings에서 합니다 — 특히 Internal Network 를 정의해야 SmartEvent가 트래픽의 방향(Incoming·Outgoing·Internal)을 판단 할 수 있고, 이는 초기 sync가 끝난 뒤에야 가능합니다.