09Log Exporter — SIEM으로 로그 내보내기Log Exporter — SIEM으로 로그 내보내기
회사가 Splunk·QRadar·ArcSight 같은 별도의 SIEM(보안 정보·이벤트 관리 시스템)을 쓴다면, Check Point가 만들어 낸 로그를 그쪽으로 흘려보내야 합니다. Log Exporter 가 바로 그 다리입니다 — Management Server나 Log Server에서 syslog 프로토콜로 Check Point 로그를 표준 형식으로 바꿔 외부로 내보내는, 쉽고 안전한 방법 입니다. 설정은 SmartConsole 에서 할 수도 있고 CLI 명령 으로 할 수도 있으며, 더 깊은 동작은 여러 구성 파일 을 직접 손봐서 다듬을 수 있습니다. 이 장은 그 동작 원리부터 SmartConsole·CLI 설정, TLS 암호화, SIEM별 권장 설정, 예전 방식(LEA·CPLogToSyslog)에서의 전환, 그리고 부록의 특수 필드·매핑까지 원문에 담긴 모든 절차와 표, 명령, 파라미터를 빠짐없이 풀어 정리합니다.
Log Exporter가 지원하는 것
Log Exporter는 끊임없이 갱신되는 기능이라 받쳐 주는 범위가 넓습니다. 정리하면 다음과 같습니다.
- Syslog agent를 돌릴 수 있는 여러 SIEM 애플리케이션.
- TCP 또는 UDP 위의 syslog.
- 여러 형식(Syslog, CEF, LEEF, JSON 등).
- TLS 1.2 기반 상호 인증(mutual authentication).
- Security 로그, Audit 로그, 또는 둘 다 내보내기.
- SmartView의 해당 로그 카드 링크와 로그 첨부(Forensics / Threat Emulation 리포트 등) 까지 내보내기.
- 로그 필터링.
지원 버전과 애플리케이션의 가장 최신 정보는 다음 sk 문서에서 확인합니다.
- sk122323 — Log Exporter - Check Point Log Export
- sk144192 — Log Fields Description
어떻게 동작하나 — E-T-L 절차
Log Exporter는 Log Server에서 도는 멀티스레드 데몬 서비스 입니다. 이 데몬은 각 로그를 읽어 원하는 형식·매핑으로 바꾼 다음, 설정해 둔 대상으로 보냅니다.
Multi-Domain Server / Multi-Domain Log Server 환경에서는 규모에 맞춰 데몬이 나뉩니다 — Log Exporter가 여러 Domain에 배포되어 있으면 각 Domain Server가 자기만의 Log Exporter 데몬 을 갖고, 대상이 여러 곳이면 대상마다 별도의 Log Exporter 데몬 이 돕니다.
내부 동작은 이름 그대로 E-T-L 절차로 구현됩니다.
- Extract(추출) — Security Gateway의 로그가 모이는 자기 자신(Log Server / SmartEvent Server)에서 들어오는 로그를 읽습니다.
- Transform(변형) — 설정한 대로 로그를 바꿉니다(형식·매핑·필터 등).
- Export(전송) — 설정한 대상 서버로 로그를 보냅니다.
특히 똑똑한 점은 끊김에 대처하는 방식입니다. 3rd party 서버와 연결이 끊기면 내보내기를 멈추고 마지막으로 보낸 위치를 기억 했다가, 연결이 다시 살아나면 그 마지막 지점부터 자동으로 이어서 내보냅니다. 또한 온라인 로그와 (밀려 있다면) 오프라인 로그를 병렬로 보내되, 대상 서버가 느리면 오프라인 전송 속도를 늦춰 실시간 온라인 로그를 우선 합니다.
SmartConsole에서 설정하기 (R81 이상)
R81부터는 SmartConsole에서 Log Exporter를 직접 만들어 해당 Log Server에 연결할 수 있습니다. 전체 절차는 크게 세 단계 — 객체 만들기, 서버 객체에 연결하기, 데이터베이스 설치하기입니다.
1단계 — Log Exporter/SIEM 객체 만들기
- SmartConsole 상단에서 Objects > More object types > Server > Log Exporter/SIEM 을 클릭합니다.
- Object Name 칸에 새 Log Exporter에 쓸 이름을 입력합니다.
- 왼쪽에서 General 페이지를 클릭합니다.
- Export Configuration 영역에서 Enabled 를 선택해 내보내기를 켭니다.
- Server Configuration 영역에서 대상 서버 정보를 넣습니다.
- Target Server — 대상(목적지) 서버의 IPv4 주소 또는 FQDN.
- Target Port — 대상 서버에서 로그를 받는 수신 포트 번호.
- Protocol — 쓸 프로토콜. UDP(기본) 또는 TCP.
- 왼쪽에서 Data Manipulation 페이지를 클릭합니다.
- Format 칸에서 내보낼 로그의 형식을 고릅니다.
- Syslog(기본)
- Common Event Format (CEF)
- Log Event Extended Format (LEEF)
- Generic
- Splunk
- LogRhythm
- Json
- (선택) Aggregate log updates before export 를 선택하면 모든 로그를 전체 데이터로 내보냅니다. 기본적으로 갱신 로그(update log)는 같은 이벤트의 직전 로그와 비교해 달라진 부분만 담으므로, 매번 전체 데이터를 보내려면 이 옵션을 켜야 합니다.
- Format 칸에서 내보낼 로그의 형식을 고릅니다.
- 왼쪽에서 Attachments 페이지를 클릭합니다. Log Exporter는 기본적으로 첨부를 포함하지 않 습니다. 필요하면 해당 옵션을 골라 첨부를 구성합니다.
- Add link to Log Details in SmartView — SmartView의 로그 상세로 가는 링크 추가.
- Add link to Log Attachment in SmartView — SmartView의 로그 첨부로 가는 링크 추가.
- Add Log Attachment ID — 로그 첨부 ID 추가.
- OK 를 클릭합니다.
2단계 — Management Server / Log Server 객체에 연결하기
- 왼쪽 탐색 패널에서 Gateways & Servers 를 클릭합니다.
- Management Server 또는 전용 Log Server / SmartEvent Server 객체를 엽니다.
- 왼쪽 트리에서 Logs > Export 를 클릭합니다.
- [+] 를 클릭하고 앞에서 만든 Log Exporter / SIEM 객체를 선택합니다.
- OK 를 클릭합니다.
3단계 — 데이터베이스 설치하기
- 상단에서 Menu > Install database 를 클릭합니다.
- 모든 객체를 선택합니다.
- Install 을 클릭합니다.
업그레이드 후에는 한 가지를 꼭 해야 합니다. Management Server / Log Server / SmartEvent Server를 새 버전으로 업그레이드한 다음에는 반드시 Install database를 다시 한 번 돌려야 합니다.
- Log Exporter가 구성된 Management Server / Log Server / SmartEvent Server의 명령줄에 접속합니다.
- Expert mode로 로그인합니다.
- SmartConsole에서 Menu > Install database → 모든 객체 선택 → Install 을 클릭합니다.
CLI에서 설정하기 — cp_log_export
GUI 대신 Expert mode CLI로도 Log Exporter를 다룰 수 있습니다. 모든 설정의 중심에 cp_log_export 명령이 있습니다.
기본 구성 (Basic Configuration)
새 대상을 만드는 가장 흔한 방법입니다.
- Management Server / Log Server의 명령줄에 접속합니다.
- Expert mode로 로그인합니다.
- Log Exporter 설정을 구성합니다.
cp_log_export add name <Name of Log Exporter Configuration>
[domain-server {mds | all}] target-server <HostName or IP
address of Target Server> target-port <Port on Target Server>
protocol {tcp | udp} format {cef | generic | json | leef |
logrhythm | rsa | splunk | syslog} [--apply-now] [<Other
Optional Arguments>]각 파라미터의 뜻은 다음과 같습니다.
| 파라미터 | 설명 | |
|---|---|---|
name <Name of Log Exporter Configuration> | Log Exporter 구성의 이름을 정합니다. 허용 문자는 Latin 문자·숫자(0-9)·마이너스(-)·밑줄(_)·마침표(.) 이며, 반드시 문자로 시작 해야 하고 최소 두 글자 이상이어야 합니다. 이 명령은 지정한 고유 이름으로 $EXPORTERDIR/targets/ 아래에 새 대상 디렉터리를 만듭니다. | |
| `domain-server {mds | all}` | Multi-Domain Server에서는 해당 Domain Management Server 컨텍스트를, Multi-Domain Log Server에서는 해당 Domain Log Server 컨텍스트를 지정합니다. 이 파라미터는 필수 입니다. mds(소문자)는 메인 MDS 레벨의 audit 로그만, all(소문자)은 모든 Domain의 audit 로그를 내보냅니다. |
target-server <HostName or IP address of Target Server> | Log Exporter가 로그를 보낼 대상 서버. IP 주소 또는 FQDN을 입력할 수 있습니다. | |
target-port <Port on Target Server> | 대상 서버에서 로그를 받는 수신 포트. | |
| `protocol {tcp | udp}` | Syslog 트래픽에 쓸 Layer 4 프로토콜 — TCP 또는 UDP. |
format {...} | 내보낼 로그의 형식 — cef(CEF), generic(Generic), json(JSON), leef(LEEF), logrhythm(LogRhythm), rsa(RSA), splunk(Splunk), syslog(Syslog, 기본값). | |
--apply-now | (선택) 새 Log Exporter 인스턴스를 새 설정으로 즉시 시작합니다. 이 파라미터를 쓰지 않으면 아래 명령으로 직접 시작해야 합니다. |
cp_log_export restart고급 구성 (Advanced Configuration)
대상을 더 정교하게 만들고 고치는 방법입니다. 기본 구문은 이렇습니다.
cp_log_export <Command-Name> [<Command-Arguments>]특정 명령의 내장 도움말은 다음으로 봅니다.
cp_log_export <Command-Name> help명령(Commands)
| 명령 | 설명 | |
|---|---|---|
add | 새 Check Point Log Exporter를 구성합니다. `cp_log_export add name <Name> target-server <Target-Server> target-port <Target-Server-Port> protocol {udp | tcp} [Optional Arguments]` |
delete | 기존 Log Exporter를 제거합니다. cp_log_export delete name <Name> | |
reexport | 현재 로그 위치를 초기화하고 설정에 따라 모든 로그를 다시 내보냅니다. | |
restart | Log Exporter 프로세스를 재시작합니다. cp_log_export restart name <Name> | |
set | 기존 Log Exporter 구성을 갱신합니다. cp_log_export set name <Name> [<Optional Arguments>] | |
show | 현재 Log Exporter 구성을 보여 줍니다. cp_log_export show [<Optional Arguments>] | |
start | 기존 Log Exporter 프로세스를 시작합니다. cp_log_export start name <Name> | |
status | Log Exporter 상태 개요를 보여 줍니다. cp_log_export status [<Optional Arguments>] | |
stop | 기존 Log Exporter 프로세스를 멈춥니다. cp_log_export stop name <Name> |
reexport 는 쓰임새가 여러 가지라 형태가 셋입니다.
cp_log_export reexport name <Name> --apply-now
cp_log_export reexport name <Name> start-position <Position of Last Exported Log> --apply-now
cp_log_export reexport name <Name> start-position <Position of Gap Start> end-position <Position of Gap End> --apply-now명령 인자(Command Arguments)
다음 표는 각 인자의 뜻과, 어느 명령에서 필수(Mandatory)·선택(Optional)·해당 없음(N/A)인지 를 정리한 것입니다. 명령은 add / set / delete / reexport 와, 한 묶음으로 묶이는 restart·show·status·start·stop·reconf 로 나눠 봅니다.
| 인자 | 설명 | add | set | delete | reexport | restart·show·status·start·stop·reconf | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
--apply-now | add·set·delete·reexport 명령으로 한 변경을 즉시 적용합니다. | 선택 | 선택 | 필수 | 필수 | N/A | |||||||
ca-cert <Path> | CA 인증서 파일(*.pem)의 전체 경로를 지정합니다. encrypted 값이 true 일 때만 적용 됩니다. | 선택 | 선택 | N/A | N/A | N/A | |||||||
client-cert <Path> | 클라이언트 인증서(*.p12)의 전체 경로를 지정합니다. encrypted 가 true 일 때만 적용. | 선택 | 선택 | N/A | N/A | N/A | |||||||
client-secret <Phrase> | 클라이언트 인증서(*.p12)를 만들 때 쓴 challenge phrase를 지정합니다. encrypted 가 true 일 때만 적용. | 선택 | 선택 | N/A | N/A | N/A | |||||||
| `domain-server {mds | all}` | Multi-Domain Server/Log Server에서 해당 Domain 컨텍스트를 지정합니다. mds(소문자)는 메인 MDS 레벨의 모든 로그만, all(소문자)은 모든 Domain의 모든 로그를 내보냅니다. | 필수 | 필수 | 필수 | N/A | 선택(restart 계열에서 필수) | ||||||
| `enabled {true | false}` | cpstart·mdsstart 실행 시 Log Exporter가 시작되도록 허용할지. 기본값 true. | 선택 | 선택 | N/A | N/A | N/A | ||||||
| `encrypted {true | false}` | 로그 전송에 TLS(SSL) 암호화를 쓸지. 기본값 false. | 선택 | 선택 | N/A | N/A | N/A | ||||||
end-position <Position> | 어느 위치까지 로그를 내보낼지 끝 위치를 지정합니다. | N/A | N/A | N/A | 선택 | N/A | |||||||
| `export-attachment-ids {true | false}` | (있다면) 로그 첨부의 ID를 나타내는 필드를 내보내는 로그에 추가할지. 기본값 false. | 선택 | 선택 | N/A | N/A | N/A | ||||||
| `export-attachment-link {true | false}` | 로그 카드를 보여 주고 첨부를 자동으로 여는 SmartView 링크 필드를 추가할지. 기본값 false. | 선택 | 선택 | N/A | N/A | N/A | ||||||
| `export-link {true | false}` | 로그 카드를 보여 주는 SmartView 링크 필드를 추가할지. 기본값 false. | 선택 | 선택 | N/A | N/A | N/A | ||||||
| `export-link-ip {true | false}` | SmartView 링크가 사용자 지정 IP를 쓰도록 할지(예: NAT 뒤의 Log Server). export-link 나 export-attachment-link 가 true 일 때만 적용. 기본값 false. | 선택 | 선택 | N/A | N/A | N/A | ||||||
| `export-log-position {true | false}` | 로그의 위치(position)를 내보낼지. 기본값 false. | 선택 | 선택 | N/A | N/A | N/A | ||||||
| `filter-action-in {"Action1","Action2",... | false}` | Action 필드에 특정 값이 들어간 로그만 내보낼지. 값마다 큰따옴표로 감싸고, 여러 값은 공백 없이 쉼표(,)로 구분합니다. | 선택 | 선택 | N/A | N/A | N/A | ||||||
| `filter-blade-in {"Blade1","Blade2",... | false}` | Blade 필드(이 로그를 만든 Software Blade의 객체 이름)에 특정 값이 든 로그만 내보낼지. 표기 규칙은 위와 같습니다. | 선택 | 선택 | N/A | N/A | N/A | ||||||
| `filter-origin-in {"Origin1","Origin2",... | false}` | Origin 필드(이 로그를 만든 Security Gateway / Cluster Member의 객체 이름)에 특정 값이 든 로그만 내보낼지. 표기 규칙은 위와 같습니다. | 선택 | 선택 | N/A | N/A | N/A | ||||||
| `format {generic | cef | json | leef | logrhythm | rsa | splunk | syslog}` | 로그를 내보낼 형식. 기본값 syslog. | 선택 | 선택 | N/A | N/A | N/A |
name "<Name>" | Log Exporter 구성의 고유 이름. 표기·길이 규칙은 기본 구성의 name 과 같습니다. | 선택(기본 전체 적용) | 선택(기본 전체 적용) | 필수 | 필수 | 필수(restart 계열) | |||||||
| `protocol {tcp | udp}` | 쓸 Layer 4 전송 프로토콜(TCP/UDP). 기본값 없음. | 필수 | 선택 | N/A | N/A | N/A | ||||||
| `read-mode {raw | semi-unified}` | 로그 파일을 읽는 모드. raw 는 통합 없이 그대로, semi-unified 는 단계별 통합(각 로그를 같은 ID의 이전 로그들과 합쳐 내보냄). | 선택 | 선택 | N/A | N/A | N/A | ||||||
| `reconnect-interval {<Number> | default}` | 연결이 끊긴 뒤 대상 서버에 다시 연결할 때까지의 간격(분). 끄려면 default 입력. 기본값 없음. | 선택 | 선택 | N/A | N/A | N/A | ||||||
start-position <Position> | 어느 위치부터 로그를 내보낼지 시작 위치를 지정합니다. | N/A | N/A | N/A | 선택 | N/A | |||||||
target-port <Target-Server-Port> | 로그를 내보낼 대상 서버의 수신 포트. | 필수 | 선택 | N/A | N/A | N/A | |||||||
target-server <Target-Server> | 로그를 내보낼 대상 서버의 IP 주소 또는 FQDN. | 필수 | 선택 | N/A | N/A | N/A | |||||||
| `time-in-milli {true | false}` | 시간 해상도를 밀리초로 내보낼지. R81 이상 Security Gateway 필요. 기본값 false. | 선택 | 선택 | N/A | N/A | N/A |
filter-action-in 의 유효한 값은 SmartConsole의 Logs & Events 뷰 → Logs 탭에서 상단 쿼리 칸에 action: 과 글자를 입력해 확인할 수 있습니다. 값 예시는 Accept, Block, Bypass, Detect, Drop, HTTPS Bypass, HTTPS Inspect, Prevent, Reject 입니다.
filter-blade-in 의 값도 같은 방식으로 쿼리 칸에 blade: 와 글자를 입력해 봅니다. 값 예시는 Anti-Bot, Firewall, HTTPS Inspection, Identity Awareness, IPS 이며, 유효한 Software Blade 계열(family)은 Access, TP, Endpoint, Mobile 입니다.
TLS로 전송 암호화하기
Log Exporter는 TLS 프로토콜을 써서 암호화된 연결로 로그를 내보낼 수 있습니다. 단, 상호 인증(mutual authentication)만 허용 됩니다. 상호 인증을 위해 Log Exporter는 다음 인증서가 필요합니다.
- PEM 형식의 CA(Certificate Authority) 인증서 파일 — 클라이언트(Log Exporter 쪽)와 대상 서버 인증서를 모두 서명한 CA 여야 합니다.
- Log Exporter가 있는 Management Server / Log Server 위의 P12 형식 클라이언트 인증서.
아직 인증서가 없다면, 아래는 필요한 인증서를 만드는 예시입니다. 이 절차는 Check Point가 아닌 Linux 서버에서 openssl 명령을 씁니다.
자체 서명 CA 만들기
PEM 형식의 신뢰할 수 있는 CA 인증서가 아직 없을 때 실행합니다.
- 루트 CA 키를 생성합니다(누구에게도 주지 마세요).
openssl genrsa -out RootCA.key 2048
- PEM 형식으로 루트 CA 인증서를 생성합니다.
openssl req -x509 -new -nodes -key RootCA.key -days 2048 -out RootCA.pem
- 인증서의 DN(Distinguished Name) 정보를 입력합니다. Common Name(CN)은 인증서를 쓸 호스트의 정확한 FQDN 이어야 하며, 나머지 필드는 선택입니다(CA에서 SSL 인증서를 구매하는 경우 추가 필드가 요구될 수 있음).
클라이언트 인증서(P12) 만들기 — Log Exporter용
- 클라이언트 키를 생성합니다(누구에게도 주지 마세요).
openssl genrsa -out log_exporter.key 2048
- 클라이언트 인증서 서명 요청(CSR)을 생성합니다.
openssl req -new -key log_exporter.key -out log_exporter.csr
- CA 파일로 인증서에 서명합니다.
openssl x509 -req -in log_exporter.csr -CA RootCA.pem -CAkey RootCA.key -CAcreateserial -out log_exporter.crt -days 2048 -sha256
- 인증서 파일을 P12 형식으로 변환합니다.
openssl pkcs12 -inkey log_exporter.key -in log_exporter.crt -export -out log_exporter.p12
Check Point 서버에서 보안 파라미터 갱신하기
인증서를 만든 뒤에는 Management Server / Log Server에서 보안 파라미터를 갱신합니다.
- Management Server / Log Server의 명령줄에 접속합니다.
- Expert mode로 로그인합니다.
- Multi-Domain Server / Multi-Domain Log Server에서는 해당 Domain으로 전환합니다.
mdsenv <IP Address or Name of Domain Management Server / Domain Log Server>
- 해당 Log Exporter 구성 디렉터리로 이동합니다.
cd $EXPORTERDIR/targets/<Name of Log Exporter Configuration>
- 인증서를 둘 새 디렉터리를 만듭니다.
mkdir -v certificates
cd certificates
- 다음 인증서 파일을 새
certificates디렉터리로 옮깁니다 —RootCA.pem,log_exporter.p12. - 인증서 파일에 읽기 권한을 줍니다.
chmod -v +r RootCA.pem
chmod -v +r log_exporter.p12
- 다시 해당 Log Exporter 구성 디렉터리로 이동합니다.
cd $EXPORTERDIR/targets/<Name of Log Exporter Configuration>
targetConfiguration.xml파일을 갱신합니다.
vi targetConfiguration.xml
파일에서 새 인증서 파일의 전체 경로와, P12 인증서를 만들 때 쓴 challenge phrase를 설정합니다. 저장하고 편집기를 닫습니다.
대상 서버 인증서 만들기
- 서버 키를 생성합니다(누구에게도 주지 마세요).
openssl genrsa -out syslogServer.key 2048
- 서버 인증서 서명 요청(CSR)을 생성합니다.
openssl req -new -key syslogServer.key -out syslogServer.csr
- CA 파일로 인증서에 서명합니다.
openssl x509 -req -in syslogServer.csr -CA RootCA.pem -CAkey RootCA.key -CAcreateserial -out syslogServer.crt -days 2048 -sha256
고급 구성 파라미터 — 설정 파일 직접 다루기
새 Log Exporter 인스턴스를 배포하면, 그 배포의 모든 구성 파일은 다음 디렉터리에 놓입니다.
$EXPORTERDIR/targets/<Name of Log Exporter Configuration>/대상 서버 구성 (targetConfiguration.xml)
대상 서버 관련 구성은 다음 파일에 저장됩니다.
$EXPORTERDIR/targets/<Name of Log Exporter Configuration>/targetConfiguration.xml주요 옵션은 다음과 같이 묶입니다.
일반(General)
| 파라미터 | 설명 | 유효/기본값 |
|---|---|---|
<version></version> | 현재 Log Exporter 버전 — 업그레이드에 사용. | |
<is_enabled></is_enabled> | Log Exporter 프로세스를 watch dog이 감시할지 결정. | true / false |
대상(Destination) 파라미터
| 파라미터 | 설명 | 유효/기본값 |
|---|---|---|
type | 향후 사용을 위해 예약됨(Reserved). | |
<ip></ip> | 로그를 받는 대상 서버의 IP 주소. | 모든 IPv4 주소 또는 FQDN |
<port></port> | 대상의 포트. | 유효한 포트 번호 |
<protocol></protocol> | 연결에 쓰는 프로토콜. | TCP 또는 UDP |
<reconnect_interval></reconnect_interval> | 연결이 끊긴 뒤 다시 연결을 시도하는 빈도. | 분 단위 숫자 |
보안(Security) 파라미터 — 자세한 내용은 위 "TLS로 전송 암호화하기" 절을 보세요.
| 파라미터 | 설명 | 유효/기본값 |
|---|---|---|
<security></security> | 연결을 평문으로 보낼지 암호화할지 결정. | clear(평문, 기본) / tls(암호화) |
<pem_ca_file></pem_ca_file> | PEM 형식 루트 CA 인증서 파일의 위치. | |
<p12_certificate_file></p12_certificate_file> | P12 형식 클라이언트 키 쌍의 위치. | |
<client_certificate_challenge_phrase></client_certificate_challenge_phrase> | P12 인증서를 만들 때 쓴 challenge phrase. 값은 Log Exporter가 시작·재시작될 때 해시(hash) 됩니다. |
원본(Source) 파라미터
| 파라미터 | 설명 | 유효/기본값 |
|---|---|---|
<folder></folder> | 로그 파일이 있는 경로. | 기본 위치는 $FWDIR/log/ |
<log_files></log_files> | $FWDIR/log/fw.log 에서 어떤 로그 레코드를 내보낼지, 또는 얼마나 과거까지 읽을지 결정. | <Number>(지정한 일수만큼 과거 로그, 기본=1, 권장) / <Specific File Name>(지정 파일) / on-line / 값이 없으면 on-line |
<log_types></log_types> | 어떤 로그를 내보낼지 결정. | all(Security·Audit, 기본) / log(Security만) / audit(Audit만) |
<read_mode></read_mode> | 완전한 로그를 내보낼지 델타(변경분)만 내보낼지 결정. | semi-unified(기본) / raw |
리졸버(Resolver) 파라미터
| 파라미터 | 설명 | 유효/기본값 |
|---|---|---|
<mappingConfiguration></mappingConfiguration> | 로그 필드 매핑 체계가 담긴 XML 파일을 지정. 비워 두면 기본 설정 사용. | 형식 기반 기본값 |
<exportAllFields>true</exportAllFields> | true 면 매핑 체계에 나오든 안 나오든 모든 로그 필드를 전송(단, 해당 형식 매핑 파일에서 <exported>false</exported> 로 블랙리스트된 필드는 제외). false 면 매핑 파일에 <exported>true</exported> 로 나온 필드만 전송. | true / false |
형식(Format) 파라미터
| 파라미터 | 설명 | 유효/기본값 |
|---|---|---|
<formatHeaderFile></formatHeaderFile> | 로그 헤더 형식 체계가 담긴 XML 파일을 지정. 비워 두면 기본 설정 사용. | 형식 기반 기본값 |
SmartView 링크 파라미터
| 파라미터 | 설명 | 유효/기본값 |
|---|---|---|
export_log_link | 로그 카드를 보여 주는 SmartView 링크 필드를 추가. | true / false(기본) |
export_attachment_link | 로그 카드를 보여 주고 첨부를 자동으로 여는 SmartView 링크 필드를 추가. | true / false(기본) |
export_link_ip | 위 두 링크가 사용자 지정 IP를 쓰도록(예: NAT된 Log Server). | IPv4 주소 / 빈 값(기본) |
필터(Filter) 파라미터 — 이 구성은 몇몇 Software Blade(VPN-1 & Firewall-1, HTTPS Inspection, Security Gateway/Management)의 Security Gateway 트래픽 로그를 걸러냅니다.
| 파라미터 | 설명 | 유효/기본값 |
|---|---|---|
<filter filter_out_by_connection="false"> | Access 로그를 걸러낼지 결정. true 면 VPN-1 & Firewall-1 로그가 걸러집니다(HTTPS Inspection 로그는 여전히 내보냄). 현재 지원되는 유일한 Software Blade 필터 입니다. | true / false |
형식 구성 (FormatDefinition.xml)
Log Exporter의 형식 구성은 다음 파일들에 저장됩니다.
$EXPORTERDIR/targets/<Name of Log Exporter Configuration>/conf/*FormatDefinition.xmlBody — 형식마다 본문(body)을 구성하는 문자가 다릅니다. 다음 표는 형식별 기본값입니다.
| 파라미터 | 설명 | Syslog | Splunk | CEF | LEEF | Generic | LogRhythm | RSA | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
<start_message_body></start_message_body> | 로그 데이터 페이로드 앞에 오는 문자. | [ | ||||||||||
<end_message_body></end_message_body> | 로그 데이터 페이로드 뒤에 오는 문자. | ] | ||||||||||
<message_separator></message_separator> | 로그를 구분하는 구분자. | (\n) | (\n) | (\n) | (\n) | (\n) | (\n) | (\n) | ||||
<fields_separatator></fields_separatator> | 로그 필드를 구분하는 구분자. | '; '(세미콜론+공백) | ` | `(파이프) | ' '(공백) | 	(<TAB>) | ' '(공백) | ` | `(파이프) | ' '(공백) | ||
<field_value_separatator></field_value_separatator> | 할당 연산자. | : | = | = | = | = | = | = | ||||
<value_encapsulation_start>"</value_encapsulation_start> | 값 캡슐화 연산자(시작). | " | " | " | ||||||||
(값 캡슐화 — 끝) | 값 캡슐화 연산자(끝). | " | " | " | ||||||||
<escape_chars> | 원치 않는 문자를 이스케이프. <orig> 로 감싼 문자열을 <escaped> 로 감싼 문자열로 치환. | ;\ --> \\ / " --> \" / = --> \= | ` | --> ; / = --> \=` | ;\ --> \\ / = --> \= / --> ' ' / " --> ' | = --> \= / --> ' ' | \ --> \\ / --> ' ' / --> ' ' / ] --> \] | ` | --> ; / --> ' ' / --> ' '` | = --> \= / --> ' ' / ` | --> \ | ` |
Header
| 파라미터 | 설명 | syslog 기본값 | CEF 기본값 | |
|---|---|---|---|---|
<header_format></header_format> | 헤더 값들 사이의 구분자와 값의 개수. 모든 {} 는 값 하나로 치환 됩니다. | ' '(공백) | ` | ` |
필드 매핑 구성 (FieldsMapping.xml)
형식마다 내보내는 필드의 이름·값을 바꾸고, 불필요한 필드를 걸러내는 등 고유한 필드 구성 파일이 있습니다. 다음 파일들에 저장됩니다.
$EXPORTERDIR/targets/<Name of Log Exporter Configuration>/conf/*FieldsMapping.xml| 파라미터 | 설명 | 유효/기본값 |
|---|---|---|
<table> | 일부 필드는 로그 형식에 따라 표(table)에 나타납니다. 이 정보는 .elg 로그 파일에서 새 필드마다 한 항목으로 확인할 수 있습니다. 한 필드가 여러 표에 나타날 수 있으며, 각 개별 인스턴스는 새 필드로 간주 됩니다. | |
<exported></exported> | (선택) true/false 태그로 특정 필드를 걸러냅니다. 또는 targetConfiguration.xml 의 exportAllFields 가 false 면, 매핑 파일에 나온 필드만 내보냅니다. | true / false |
<origName></origName> | <dstName> 으로 매핑되는 원래 필드 이름. | |
<dstName></dstName> | 해당 필드의 새 매핑 체계 이름. | |
<required></required> | (선택) true 면 이 필드를 포함한 로그만 내보냅니다. | true / false |
SIEM별 설정 방법
이 절은 SIEM 애플리케이션이 로그를 최적으로 받도록 구성하는 법을 보여 줍니다.
Rsyslog
Rsyslog는 기본적으로 RFC 5424 타임스탬프 형식을 쓰도록 설정돼 있지 않습니다. 따라서 Log Exporter 출력 형식과 맞도록 Rsyslog 서버 설정을 직접 바꿔야 합니다.
/etc/rsyslog.conf파일을 엽니다.
vi /etc/rsyslog.conf
- 다음 줄이 주석 처리돼 있지 않다면, 맨 앞에
#을 붙여 주석 처리합니다.
#"$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat"
- 다음 줄을 파일에 추가합니다.
$ActionFileDefaultTemplate RSYSLOG_SyslogProtocol23Format
- 저장하고 편집기를 닫습니다.
- Rsyslog 서비스를 재시작합니다.
service rsyslog restart
ArcSight
ArcSight는 서버 인증서 파일 이름을 syslog-ng 로 짓기를 권장합니다.
인증서 이름 짓기 — 키를 P12 형식으로 변환합니다.
openssl pkcs12 -inkey syslogServer.key -in syslogServer.crt -export -out syslog-ng.p12 -name "syslogng-alias" -password pass:changeit환경 변수 ARCSIGHT_HOME 이 커넥터 설치 디렉터리인지 확인한 뒤 진행합니다.
- Linux KDE 콘솔에서 인증서 관리자를 실행합니다.
$ARCSIGHT_HOME/current/bin/arcsight agent keytoolgui
- File 메뉴에서 keystore를 엽니다.
암호는 changeit 입니다.
3. 메뉴에서 Import Trusted Certificate 를 선택합니다.
4. 파일 대화상자에서 Ca.pem 을 선택해 저장합니다.
5. 변경을 저장하고 인증서 관리자를 닫습니다.
상호 인증을 켜도록 agent.properties 파일을 편집합니다.
- 파일을 엽니다.
vi $ARCSIGHT_HOME//current/user/agent/agent.properties
- 이 값을
true로 바꿉니다.
- 끝에 다음 줄을 추가합니다.
syslogng.tls.keystore.alias=syslogng-alias
- 커넥터 서비스를 재시작합니다.
/etc/init.d/arc_connector_name restart
Splunk
- PEM 형식으로 서버 인증서 파일을 생성합니다.
cat syslogServer.crt syslogServer.key RootCA.pem > splunk.pem
- Splunk 서버의
inputs.conf파일을 갱신합니다.
vi /opt/splunk/etc/apps/<Name of the app, where the configuration is saved>/local/inputs.conf
TLS를 쓰도록 다음을 설정합니다.
serverCert = <Full path to CA PEM file>
sslPassword = <Challenge Password>
requireClientCert = true
[tcp-ssl://<Port>]
index = <Index>
저장하고 편집기를 닫습니다.
3. Splunk 서버의 server.conf 파일을 갱신합니다.
vi /opt/splunk/etc/system/local/server.conf
다음을 설정합니다.
sslRootCAPath = <Full path to CA PEM file>
[SSL]
cipherSuite = TLSv1+HIGH:TLSv1.2+HIGH:@STRENGTH
저장하고 편집기를 닫습니다. 4. Splunk 서비스를 재시작합니다.
/opt/splunk/bin/splunk restart
QRadar
- Authentication Mode 칸에서 TLS And Client Authentication 을 선택합니다. Client Authentication을 쓸 때는 클라이언트 인증서의 절대 경로 를 제공해야 합니다.
- Check Point 인증서와 개인 키를 QRadar의 같은 디렉터리 에 업로드합니다.
- Provide Certificate 옵션에 업로드한 파일의 절대 경로를 입력합니다.

예전 방식에서 Log Exporter로 전환하기
LEA에서 Log Exporter로
기존 LEA 커넥터에서 새 Log Exporter로 옮기는 절차입니다.
- SmartConsole에서, 그 OPSEC 애플리케이션을 오직 LEA에만 쓴다면 OPSEC 애플리케이션 객체를 삭제 합니다. 다른 용도가 있다면 LEA client entity만 제거 합니다.

- 이 OPSEC LEA client가 유일한 클라이언트라면,
$FWDIR/conf/fwopsec.conf파일에서 LEA를 허용하지 않도록 구성합니다.- Log Exporter가 있는 Management Server / Log Server 명령줄에 접속해 Expert mode로 로그인합니다.
- 현재 파일을 백업합니다.
cp -v $FWDIR/conf/fwopsec.conf{,_BKP}
- 현재 파일을 편집합니다.
vi $FWDIR/conf/fwopsec.conf
- 다음 줄들을 주석 처리합니다(맨 앞에
#추가).
| 바꾸기 전(From) | 바꾼 후(To) |
|---|---|
lea_server auth_port 18184 | # lea_server auth_port 18184 |
lea_server port 0 | # lea_server port 0 |
CPLogToSyslog에서 Log Exporter로
기존 CPLogToSyslog에서 새 Log Exporter로 옮기는 절차입니다.
- CPUSE 로 CPLogToSyslog 패키지를 제거합니다(sk92449의 4-C 절 참고).
- Log Exporter 설정을 SmartConsole 또는 CLI로 구성합니다(위 절들 참고).
부록 (Appendix)
특수 로그 필드
| 필드 | 설명 |
|---|---|
loguid | Log Unification ID(로그 통합 ID). 일부 Check Point 로그는 시간이 지나며 갱신되는데, 갱신된 로그는 같은 Log UID 값을 가집니다. Check Point SmartLog 클라이언트는 이 갱신들을 하나의 통합 로그로 묶지만, 3rd party 서버로 보내면 각각 별개의 로그 로 도착합니다. 관리자는 loguid 필드로 갱신 로그들을 묶어 전체 이벤트 사슬을 볼 수 있습니다. (참고: Log Exporter의 새 semi-unified 모드는 이전 로그를 모두 하나로 통합해 마지막 로그가 항상 완전한 데이터 를 보여 줍니다.) 갱신 로그 예: 시간에 따라 누적되는 송수신 총 바이트, 정보가 쌓이며 갱신되는 severity 필드. |
hll_key | High Level Log Key(상위 로그 키). R80.10에서 도입됐습니다. 여러 연결 로그가 하나의 세션을 이루며 공유 HLL Key를 공유 합니다. 예를 들어 웹페이지를 열면 Security Gateway가 같은 세션에 관련된 여러 연결 로그를 만드는데, 그 로그들은 같은 hll_key 값을 가집니다. |
Syslog-NG Listener 구성
Syslog NG 서버에서 source를 구성할 때 syslog-protocol 플래그를 쓰기를 권장 합니다. 예:
source s_network { network(transport("tcp") port(514) flags(syslog-protocol) ); };Splunk Listener 구성
sourcetype 에 다음 시간 설정을 추가하기를 권장합니다.
TIME_FORMAT = %s
TIME_PREFIX = time=
MAX_TIMESTAMP_LOOKAHEAD = 15ArcSight Listener 구성
Log Exporter 솔루션은 OPSEC LEA 커넥터와는 동작하지 않 습니다. 대신 ArcSight Syslog-NG 커넥터 를 설치해야 합니다.
ArcSight CEF(Common Event Format) 매핑
CEF는 확장 가능한 텍스트 기반 형식으로, 가장 관련성 높은 정보를 제공해 여러 장치 유형을 지원합니다. 메시지 구문은 ESM 정규화에 맞도록 간소화돼 있습니다. 구체적으로 CEF는 표준 헤더와 가변 확장(key-value 쌍) 으로 이뤄진 로그 레코드 구문을 정의합니다. 온프레미스 장치에서는 ArcSight Syslog SmartConnector로, 클라우드 서비스에서는 ArcSight Common Event Format REST용 SmartConnector로 쓸 수 있습니다.
CEF Header 형식
| 항목 | Device Vendor | Device Product | Device Version | Device Event Class ID | Item Version | Name | Severity |
|---|---|---|---|---|---|---|---|
| 기본값(Default) | CEF:0 Check Point | Log Update | Check Point | Log | Log | 0 | |
| 값(Values) | - | - | - | Product Name (Blade) | - | Name / Application Name / Matched Category / Service ID / Service / Application Category / Application Properties | Attack Name / Protection Name / Protection Type / Verdict / Severity / DLP Data Type / Application Risk / Risk / Message Info |
QRadar LEEF(Log Event Extended Format) 매핑
LEEF는 IBM Security QRadar용으로 맞춤화된 이벤트 형식입니다.
LEEF Header 형식
| 항목 | LEEF Version | Vendor | Product | Version | EventID |
|---|---|---|---|---|---|
| 기본값(Default) | LEEF:2.0 | Check Point | Log Update | 1.0 | Check Point Log |
| 값(Values) | - | - | Product Name (Blade) | - | Protection Name / Application Name / Action |
다음으로 밀리초 단위 시각으로 내보내는 특수 옵션은 밀리초 단위 로그에서, 첨부를 자동으로 가져오는 API는 로그 API와 첨부 파일 API에서 이어집니다.