목차/05. 로그 다루기와 쿼리 언어

05로그 다루기와 쿼리 언어로그 다루기와 쿼리 언어

SmartConsole은 단순히 로그를 모아 두는 도구가 아니라, 쌓인 로그 데이터를 곧바로 보안 인텔리전스로 바꿔 주는 화면입니다. Security Gateway가 만든 로그는 Security Management Server에 함께 있는 Log Server나, 별도로 분리한 전용 Log Server로 모이고, 그 결과는 SmartConsole의 Logs & Events 뷰 > Logs 탭 에서 한눈에 펼쳐집니다. 검색 결과는 빠르게 떠서 필요한 기록을 즉시 보여 주는데, 이 화면에서 할 수 있는 일은 크게 네 가지입니다.

  • Google 검색처럼 간단한 검색 으로 로그를 빠르게 뒤집니다.
  • 미리 정의된 수많은 검색 쿼리 중에서 골라 원하는 로그를 찾습니다.
  • 강력한 쿼리 언어 로 자신만의 쿼리를 직접 만듭니다.
  • 관리자 활동과 연결을 실시간(real-time) 으로 모니터링합니다.

이 장은 이 모든 기능을 빠짐없이 풀어 정리합니다. Logs 뷰가 어떻게 생겼는지, 어떤 규칙이 어떤 로그를 남기게 할지 정하는 Track 옵션, 세션 로그와 Packet Capture, 검색과 쿼리 언어의 문법, 결과 보기와 컬럼 프로파일, 브라우저로 보는 SmartView Web Application, 로그 고가용성과 syslog 서버 연동까지 차례로 다룹니다.

떨어진(Drop) 연결 로그 분석해 보기 — 맛보기 절차

본격적인 설명에 앞서, 가장 흔한 작업 하나를 끝까지 따라가 보면 전체 그림이 잡힙니다. Drop 동작으로 차단된 연결의 로그 를 찾아 분석하는 예시 절차입니다.

  1. SmartConsole에 로그인합니다.
  2. Log Server가 아니라 Security Management Server의 IP 주소 로 접속합니다.
  3. Security Policies > Access Control > Policy 뷰에서 Drop 동작을 가진 규칙을 하나 고릅니다.
  4. 아래 창(bottom pane)에서 Logs 를 누릅니다. 그러면 그 특정 규칙이 떨어뜨린 연결의 로그만 추려서 보여 줍니다.
  5. 로그 하나를 더블클릭하면 Log Details 창이 열려 그 연결의 상세 내용을 볼 수 있습니다.

이 짧은 절차 안에 이 장의 핵심이 모두 들어 있습니다 — 어디에 접속하고, 어떤 규칙이 로그를 남기며, 어떻게 추려 보고, 상세를 어떻게 펼치는지입니다. 이제 하나씩 자세히 살펴봅니다.

Logs 뷰 — 어디서 무엇을 보나

로그는 SmartConsole의 Logs & Events 뷰 > Logs 탭 에 뜹니다. Management Server의 IP로 접속하면 (indexing이 켜진 경우) 모든 Log Server의 로그를 통합해서 보고, 특정 규칙을 골라 아래 창의 Logs를 누르면 그 규칙이 만든 로그만 추려 줍니다.

① Queries(미리 정의·즐겨찾기 쿼리) ② Time Period ③ 쿼리 검색줄 ④ Log statistics 창(상위 결과) ⑤ Results 창(로그 항목) — Logs 뷰 구성
① Queries(미리 정의·즐겨찾기 쿼리) ② Time Period ③ 쿼리 검색줄 ④ Log statistics 창(상위 결과) ⑤ Results 창(로그 항목) — Logs 뷰 구성

화면의 다섯 영역은 각각 다음 역할을 합니다.

번호영역설명
Queries미리 정의된 쿼리와 즐겨찾기(favorite) 쿼리 목록.
Time Period미리 정의된 기간 또는 직접 지정한 사용자 정의 기간으로 검색합니다.
Query search bar(쿼리 검색줄)사용자 정의 쿼리를 정의하는 칸. GUI 도구를 쓰거나 직접 조건을 입력할 수 있고, 가장 최근 쿼리의 정의 가 표시됩니다.
Log statistics 창가장 최근 쿼리의 상위 결과(top results) 를 보여 줍니다.
Results 창가장 최근 쿼리의 로그 항목(log entries) 을 보여 줍니다.

기간(Default Time Frame)에 관한 주의

기간 설정은 SmartConsole과 SmartView 사이에서 서로 자동으로 맞춰지지 않으니 헷갈리기 쉽습니다. 몇 가지를 알아 두어야 합니다.

  • 선택한 "Default Time Frame" 값은 SmartConsole과 SmartView 사이에서 동기화되지 않 습니다. SmartConsole에서 로그 레코드를 내보낼 때의 기준 기간은, 사용자가 SmartView 오른쪽 위 사용자 아이콘 > "User Preferences" 에서 고른 "Default time frame" 을 따릅니다.
  • "Default Time Frame" 설정은 Primary / Secondary Management Server 사이, 그리고 전용 Log Server / 전용 SmartEvent Server 사이에서도 동기화되지 않습니다.
  • Multi-Domain Security Management Server에서는 이 설정이 Domain별·사용자별로 각각 저장됩니다.

이 동기화 안 됨이 실제로 어떤 결과를 낳는지 예를 들어 보겠습니다.

  1. SmartView의 "User Preferences" 에서 "Last 7 Days" 를 골랐습니다.
  2. SmartConsole의 "Logs" 탭에서는 "Today" 를 골랐습니다.
  3. SmartConsole에서 로그 레코드를 내보냅니다(export).

이때 실제로 내보내지는 레코드는 SmartConsole에서 고른 "Today" 가 아니라, SmartView 기준인 "지난 7일치" 입니다. 화면에서 본 기간과 내보낸 기간이 다를 수 있으니 주의하세요.

로그 다루기 — Track 옵션 정하기

어떤 규칙을 추적할지 고르기

로그는 관심 있는 트래픽 패턴을 보여 줄 때 비로소 쓸모가 있습니다. 그러려면 Security Policy가 필요한 규칙을 빠짐없이 추적하도록 해 두어야 합니다. 그런데 여러 규칙을 한꺼번에 추적하면 로그 파일이 커져 디스크 공간과 관리 작업 부담이 늘어 납니다.

이 두 요구를 균형 있게 맞추려면, 사이버 보안을 개선하는 데 도움이 되고, 사용자 행동을 이해하는 데 보탬이 되며, 리포트에 쓸모 있는 규칙만 골라 추적하는 것이 좋습니다.

정책 규칙에서 추적 설정하기

규칙 하나에 추적을 켜는 방법은 간단합니다.

  1. 규칙의 Track 열 에서 우클릭합니다.
  2. 추적 옵션(tracking option)을 하나 고릅니다.
  3. 정책을 설치(Install policy)합니다.

추적 옵션 — 기본 세 가지

규칙의 Track 열 에서 고를 수 있는 기본 옵션은 다음과 같습니다.

옵션설명
None로그를 만들지 않습니다.
Log기본값 입니다. Security Gateway가 연결을 매칭하는 데 쓴 모든 정보를 보여 줍니다. 최소한 Source, Destination, Source Port, Destination Port 가 기록됩니다. 규칙이 애플리케이션을 지정한 경우 매칭 시 세션 로그에 앱 이름(예: Dropbox) 이 표시되고, 규칙이 Data Type을 지정한 경우 파일 정보와 파일 내용 까지 세션 로그에 나타납니다.
Accounting10분 간격으로 로그를 갱신 해, 그 연결에서 데이터가 얼마나 오갔는지 — Upload bytes, Download bytes, browse time — 를 보여 줍니다.

고급 추적 옵션 — Detailed Log과 Extended Log

Detailed LogExtended Log 는, 해당 레이어(Layer)에 다음 블레이드 중 하나 이상이 켜져 있을 때만 쓸 수 있습니다 — Application & URL Filtering, Content Awareness, Mobile Access 입니다.

옵션설명
Detailed LogLog 옵션과 같되, 규칙이 애플리케이션을 지정하지 않았더라도 매칭된 애플리케이션까지 함께 보여 줍니다.
Extended LogDetailed 옵션과 같되, 거기에 더해 그 연결·세션의 URL과 파일 전체 목록 까지 보여 줍니다. 이 URL·파일은 Logs 뷰의 아래 창(lower pane)에 표시됩니다.

로그 생성 단위 — per Connection과 per Session

로그를 연결마다 하나씩 만들지, 한 세션을 하나로 묶을지 도 고릅니다.

옵션설명
per Connection세션 안의 연결마다 별도 로그 를 만듭니다. Firewall만 켜진 레이어의 기본값 이며, 기본 Firewall 로그입니다.
per Session같은 세션의 모든 연결을 하나의 로그 로 묶습니다. Application & URL Filtering이나 Content Awareness가 켜진 레이어의 기본값 이며, 기본 Application Control 로그입니다.

Alert — 알림 트리거하기

추적과 별개로 Alert 옵션을 두면, 로그를 만들면서 동시에 알림을 트리거할 수 있습니다. 각 알림 옵션의 스크립트는 Menu > Global Properties > Log and Alert > Alerts 에서 정의합니다.

옵션설명
None알림을 만들지 않습니다.
Alerttype Alert 로그를 만들고 명령을 실행합니다 — 팝업 창, 이메일 경고, SNMP trap 경고, 또는 Global Properties에 정의한 사용자 스크립트 등입니다.
SNMPtype Alert 로그를 만들고, Global Properties에 정의한 대로 SNMP GUI로 SNMP 경고 를 보냅니다.
Mailtype Alert 로그를 만들고, Global Properties에 정의한 대로 관리자에게 이메일 을 보냅니다.
User Defined Alerttype Alert 로그를 만들고, Global Properties에 지정한 스크립트로 정의된 세 가지 맞춤 경고 중 하나 를 보냅니다.

세션 로그(Log Sessions)

세션(Session)사용자가 특정 사이트나 특정 애플리케이션에서 한 활동 묶음 입니다. 세션은 사용자가 어떤 앱이나 사이트에 연결하는 순간 시작되며, Security Gateway는 그 세션 동안 사용자가 한 모든 활동을 하나의 세션 로그 에 담습니다. (이는 상위 source·destination·service를 보여 주는 일반 Security Gateway 로그와 대비되는 방식입니다.)

세션 로그 검색·상세 보기

세션 로그를 찾으려면, Logs & Events 뷰의 Logs 탭에서 다음을 입력합니다.

type:Session

세션 로그의 상세를 보려면, Logs 탭에서 세션 로그를 하나 고른 뒤 아래 창의 탭들을 누릅니다.

보이는 내용표시 조건
Connections세션 안의 모든 연결규칙의 Track 옵션에서 Per connection 이 선택돼 있을 때
URLs세션 안의 모든 URL규칙의 Track 옵션에서 Extended Log 이 선택돼 있을 때
Files세션에서 업로드·다운로드된 모든 파일규칙의 Track 옵션에서 Extended Log 이 선택돼 있거나, 연결에서 Data Type이 매칭 됐을 때

어떤 연결이 세션의 일부일 때, 그 연결로부터 세션 로그를 보려면 이렇게 합니다.

  1. Logs 탭에서 세션의 일부인 연결 로그 레코드를 더블클릭 합니다.
  2. Log Details에서 오른쪽 위의 세션 아이콘 을 누르면, 새 탭에서 그 세션 로그를 검색해 보여 줍니다.

세션 타임아웃 바꾸기

기본적으로 세션이 3시간 이어지면 Security Gateway가 새 세션 로그를 시작 합니다. 이 값은 SmartConsole의 Manage & Settings 뷰 > Blades > Application & URL Filtering > Advanced Settings > General > Connection unification 에서 바꿉니다.

규칙별 로그 보기(Viewing Rule Logs)

특정 규칙이 만든 로그만, Security Policy 화면에서 직접 보거나 Logs & Events > Logs 탭에서 검색 해 볼 수 있습니다.

Security Policy 화면에서 보기

  1. SmartConsole 왼쪽 탐색 패널에서 Security Policies 를 누릅니다.
  2. Access Control Policy 또는 Threat Prevention Policy에서 규칙을 하나 고릅니다.
  3. 아래 창에서 다음 탭 중 하나를 누릅니다.
    • Logs — 기본적으로 현재 규칙(Current Rule) 의 로그를 보여 줍니다. Source, Destination, Blade, Action, Service, Port, Source Port, Rule(기본은 Current rule), Origin, User, Other Fields 로 필터링할 수 있습니다.
    • History(Access Control Policy 전용) — 그 규칙과 관련된 규칙 작업(Audit 로그) 목록 을 시간순으로 보여 주며, 규칙 종류와 변경한 관리자 정보가 담깁니다.

로그를 검색해서 보기 (Rule UID 이용)

  1. SmartConsole에서 Security Policies 뷰로 갑니다.
  2. Access Control Policy 또는 Threat Prevention Policy에서 규칙을 고릅니다.
  3. 규칙 번호를 우클릭해 Copy Rule UID 를 누릅니다.
  4. Logs & Events > Logs 탭에서 다음 중 한 가지로 검색합니다.
    • Rule UID를 쿼리 검색줄에 붙여넣고 Enter를 누릅니다.
    • 더 빠른 결과 를 원하면 다음 형식을 씁니다.
     

예를 들어 이렇게 검색줄에 붙여넣고 Enter를 누릅니다.

     

특정 레이어의 로그를 Logs 뷰에서 제외하기

어떤 Policy Layer가 만든 로그를 Logs 뷰에서 빼고 싶다면 다음과 같이 합니다.

  1. SmartConsole 왼쪽 탐색 패널에서 Security Policies 를 누릅니다.
  2. Access Control > Policy 로 가서, 로그를 제외하려는 Policy Layer를 우클릭하고 Edit Policy 를 누릅니다.
  3. 열린 창에서 해당 레이어로 가, 드롭다운 메뉴를 우클릭하고 Edit Layer 를 고릅니다.
  4. 레이어 이름에 아래쪽 화살표(↓) 를 붙입니다. 두 가지 방법이 있습니다.
    • 이 문자를 복사해 붙여넣습니다: ↓
    • 또는 대응하는 ASCII 코드로 입력합니다.
      1. Alt 키를 누른 채 유지합니다.
      2. 숫자 2 를 누릅니다.
      3. 숫자 5 를 누릅니다.
      4. Alt 키를 뗍니다.

레이어를 제외했을 때의 동작에는 몇 가지 규칙이 있습니다.

  • 제외된 레이어는 동작이 block이나 drop이 아닐 때 Logs 뷰에 나타나지 않습니다.
  • 한 레이어를 제외하면, Logs 탭은 제외된 레이어 바로 아래(next Layer below) 레이어 의 규칙 로그를 보여 줍니다.
  • 정책의 모든 레이어를 제외하면, Logs 탭은 정책의 첫 번째(맨 위) 레이어 에 속한 규칙의 로그를 보여 줍니다.

Packet Capture — 실제 패킷까지 들여다보기

네트워크 트래픽을 직접 캡처할 수 있습니다. Packet Capture 의 내용을 보면 그 로그를 만든 트래픽을 훨씬 깊이 이해 할 수 있습니다. 이 기능을 켜면 Security Gateway가 로그와 함께 packet capture 파일을 Log Server로 보내, 나중에 그 파일을 열어 보거나 저장해 두었다가 정보를 다시 꺼내 볼 수 있습니다. 일부 블레이드는 Custom Threat Prevention Policy에서 기본으로 켜져 있습니다.

Packet Capture를 끄려면(Custom Threat Prevention Policy에서만 가능) 이렇게 합니다.

  1. SmartConsole에서 Security Policies 뷰 > Threat Prevention > Custom Threat Prevention 으로 갑니다.
  2. 규칙의 Track 열 에서 우클릭해 Packet Capture 의 체크를 해제합니다.

캡처된 패킷을 보려면 이렇게 합니다.

  1. SmartConsole에서 Logs & Events 뷰 로 갑니다.
  2. 로그를 엽니다.
  3. Packet Capture 필드 의 링크를 누릅니다. 그러면 그 파일 형식에 연결된 프로그램으로 패킷 캡처가 열립니다.
  4. (선택) Save 를 눌러 packet capture 데이터를 내 컴퓨터에 저장합니다.

로그 검색하기(Searching the Logs)

SmartConsole은 미리 정의된 수많은 쿼리나, 사용자가 만든 쿼리로 로그를 빠르고 쉽게 검색하게 해 줍니다. 쿼리는 하나 이상의 조건(criteria) 을 담을 수 있고, 기존 미리 정의된 쿼리를 고치거나 검색 상자에서 새로 만들 수 있습니다.

미리 정의된 쿼리를 보려면 이렇게 합니다.

  1. SmartConsole을 열어 Logs & Events 뷰 로 갑니다.
  2. Queries 를 누릅니다.
  3. 알맞은 미리 정의된 쿼리 를 고릅니다.

미리 정의된 쿼리를 고치려면 쿼리 상자 안을 클릭 해 검색 필터를 더하면 됩니다.

쿼리 텍스트를 직접 입력하려면 이렇게 합니다.

  1. 쿼리 검색줄에서 Enter Search Query(Ctrl+F)를 누릅니다.
  2. 검색 상자에 검색 쿼리를 입력합니다.
  3. 입력하는 동안 검색 상자는 최근 쓴 쿼리 조건이나 전체 쿼리 를 제안합니다. 드롭다운 목록에서 골라 쓰면 됩니다.

쿼리를 수동으로 새로고침하려면 Refresh(F5)를 누릅니다.

쿼리를 계속 자동 갱신(Auto-Refresh)하려면 Auto-Refresh(F6)를 누릅니다. 켜지면 아이콘이 강조됩니다. 자동 갱신이 켜진 동안 쿼리는 5초마다 갱신되며, 5초 동안 로그가 100건을 넘으면 집계(aggregated)되어 요약 보기 로 표시됩니다.

쿼리 필드 고르기(Selecting Query Fields)

쿼리 검색줄에서 직접 조건을 입력할 수 있습니다. 필드 조건을 GUI로 고르는 절차는 다음과 같습니다.

  1. 새 쿼리를 시작한다면 Clear 를 눌러 기존 쿼리 정의를 지웁니다.
  2. 커서를 쿼리 검색줄에 둡니다.
  3. Add a search filter 를 누릅니다.
  4. 드롭다운 목록에서 필터를 고릅니다.
  5. 알맞은 조건을 쿼리 검색줄에 입력합니다.

Action 필터 — 동작별로 거르기

검색 필터 중 하나가 Action 입니다. Action 필터를 고르면 검색에 쓸 수 있는 모든 로그 동작 목록이 뜹니다. 각 동작의 뜻은 다음 표와 같습니다.

Action설명
AcceptSecurity Gateway가 Access Control Security Policy에 따라 트래픽을 허용했습니다.
AllowFirewall·VPN 경고(예: Protocol Violation)나 규칙 예외에 대한 DLP 매칭 이후, Security Gateway가 트래픽을 허용했습니다.
Ask User사용자가 특정 트래픽을 차단할지 허용할지 결정하도록 요청 받았습니다(Access Control 또는 Custom Threat Prevention 정책 기준). 또는 DLP 사고가 포착돼 격리되고, 사용자에게 처리를 묻는 경우입니다.
Block사용자가 UserCheck 차단 동작을 택한 뒤, Security Gateway가 URL Filtering·Application Control 규칙에 따라 트래픽을 차단했습니다.
BypassThreat Emulation·Threat Extraction·Anti-Virus가 파일을 검사하지 않았습니다.
DecryptSecurity Gateway가 VPN 패킷을 복호화해 내용을 드러내고, 추가 검사를 가능하게 했습니다.
DetectThreat Prevention 블레이드가 악성 트래픽을 탐지했지만, Detect 모드라 차단하지는 않 았습니다.
Do not send사용자가 DLP에 포착된 전송을 중단(drop)하기로 했습니다. 전체 권한 또는 View/Release/Discard DLP 메시지 권한을 가진 관리자도 이 전송을 중단할 수 있습니다. 사용자에게 이메일 알림이 발송됐습니다.
DropSecurity Gateway가 Access Control Security Policy에 따라 트래픽을 차단하고, 출처에 통보하지 않았 습니다.
EncryptSecurity Gateway가 VPN 패킷을 암호화해 내용을 보호하고 무단 접근을 막았습니다.
ExtractThreat Extraction이 파일이 네트워크에 들어오기 전에 잠재적 악성 콘텐츠를 추출 했습니다.
Forgot Passcode사용자가 Capsule Workspace 앱에서 Forgot Passcode 를 눌렀습니다.
HTTPS BypassSecurity Gateway가 트래픽이 HTTPS Inspection을 우회 하도록 허용했습니다.
HTTPS InspectSecurity Gateway가 HTTPS 트래픽을 검사했습니다.
Inform User사용자에게 조직의 정책이 무엇인지 알렸 습니다(Access Control 또는 Custom Threat Prevention 정책 기준). 또는 DLP 전송이 탐지·허용되고 사용자에게 통지된 경우입니다.
Inline트래픽이 내부 네트워크에 들어오기 전 에뮬레이션을 위해 보내졌 습니다.
InspectThreat Emulation 또는 Anti-Virus가 파일을 검사했습니다.
IP Changed연결된 호스트의 IP 주소가 (DHCP로) 바뀌어, 특정 IP와 사용자 사이의 연관 이 변경됐습니다.
Key InstallSecurity Gateway가 VPN을 위한 암호화 키 를 만들었습니다.
Open Shell관리자가 Gaia 서버로 명령 셸(command shell) 을 열었습니다.
Packet TaggingSecurity Gateway가 Identity Agent와 packet tagging 키 를 공유했습니다.
PreventSecurity Gateway가 DLP 또는 Threat Prevention 정책에 따라 트래픽을 차단했습니다.
QuarantineSecurity Gateway가 잠재적 보안 위협으로 식별된 이메일 을, 추가 조사가 끝날 때까지 격리했습니다.
RejectSecurity Gateway가 패킷을 거부하고, TCP [RST] 패킷으로 출처에 통보 했습니다.
Remote WipeSecurity Gateway가 Capsule Workspace 앱이 사용자 모바일 기기에 캐시해 둔 오프라인 데이터를 삭제 했습니다.
Reset Passcode사용자가 Capsule Workspace 앱에서 Reset Passcode 를 눌렀습니다.
Run Script관리자가 SmartConsole에서 Gaia 서버에 스크립트를 실행 했습니다.
Send사용자가 DLP 포착 이후 전송을 계속하기로 했습니다. 전체 권한 또는 View/Release/Discard DLP 메시지 권한을 가진 관리자도 계속하기로 결정할 수 있습니다. 사용자에게 이메일 알림이 발송됩니다.
System Backup관리자가 Security Gateway의 Gaia OS 구성을 백업 했습니다.
System Restore관리자가 백업 파일을 가져와 Security Gateway의 Gaia OS 구성을 복원 했습니다.
UpdateSecurity Gateway가 최신 버전이나 Hotfix를 내려받아 설치 했습니다.
VPN RoutingSecurity Gateway가 VPN 트래픽을 알맞은 특정 VPN 터널이나 Security Gateway로 라우팅했습니다.

표 컬럼에서 조건 고르기(Selecting Criteria from Table Columns)

로그 표의 컬럼 머리글을 이용해 쿼리 조건을 고를 수도 있습니다.

  1. Results 창에서 컬럼 머리글을 우클릭 합니다.
  2. Add Filter 를 고릅니다.
  3. 필터 조건을 고르거나 입력합니다.

그러면 그 조건이 쿼리 검색 상자에 나타나고 쿼리가 자동으로 실행 됩니다.

새 쿼리 저장하기(Saving a New Query)

자주 쓰는 쿼리는 Favorites 목록에 저장합니다.

  1. Queries > Add to Favorites 를 누릅니다. Add to Favorites 창이 열립니다.
  2. 쿼리 이름을 입력합니다.
  3. 쿼리를 저장할 폴더를 고르거나 새로 만듭니다.
  4. Add 를 누릅니다.

검색 결과 보기(Viewing Search Results)

쿼리 결과는 수만 건의 로그 레코드 에 이를 수 있습니다. 성능 저하를 막기 위해, SmartConsole은 Results 창에 처음엔 첫 묶음만, 보통 50건 만 보여 줍니다.

아래로 스크롤하면 더 많은 결과가 나옵니다. 스크롤할 때마다 SmartConsole은 Security Management Server나 Log Server의 로그 인덱스에서 레코드를 더 꺼내 결과 묶음에 더합니다. 현재 몇 건이 나왔는지는 Results 창 위쪽에 표시됩니다. 예를 들어 쿼리를 처음 실행하면 15만 건 넘는 결과 중 처음 50건 만 보이고, 아래로 스크롤하면 15만 건 넘는 결과 중 처음 100건 으로 늘어나는 식입니다.

Results 창 오른쪽의 Tops 창 은 상위 source, 상위 action 같은 상위 통계 를 보여 줍니다.

Results 창 꾸미기 — 컬럼 프로파일(Column Profile)

기본적으로 SmartConsole은 쿼리에서 고른 블레이드에 맞춰 미리 정해진 컬럼 묶음 을 보여 줍니다. 이를 Column Profile 이라 합니다. 예를 들면 이렇습니다.

  • DLP 컬럼 프로파일에는 Blade, Type, DLP Incident UID, severity 컬럼이 들어 있습니다.
  • Threat Prevention 컬럼 프로파일에는 Origin, Action, Severity, Source User 컬럼이 들어 있습니다.

컬럼 프로파일은 쿼리 결과에서 가장 자주 나타난 블레이드를 기준으로 자동 배정 됩니다. 이를 Automatic Profile Selection(자동 프로파일 선택)이라 하며, 기본으로 켜져 있습니다.

Column Profile은 Results 창에 어떤 컬럼이 어떤 순서로 보일지 를 정하며, 환경에 맞춰 바꿀 수 있습니다.

기본 자동 배정을 쓰려면, 컬럼 머리글을 우클릭하고 Columns Profile > Automatic Profile Selection 을 고릅니다.

수동 배정을 기본값으로 쓰려면, 컬럼 머리글을 우클릭하고 Columns Profile > Manual Profile Selection 을 고릅니다.

다른 Column Profile을 수동으로 배정하려면 이렇게 합니다.

  1. 컬럼 머리글을 우클릭하고 Columns Profile 을 고릅니다.
  2. 옵션 메뉴에서 원하는 Column Profile을 고릅니다.

Column Profile을 편집하려면 이렇게 합니다.

  1. 컬럼 머리글을 우클릭하고 Columns Profile > Edit Profile 을 고릅니다.
  2. Show Fields 창에서 바꿀 Column Profile을 고릅니다.
  3. Available Fields 열에서 더할 필드를 고른 뒤 Add 를 누릅니다.
  4. Selected Fields 열에서 뺄 필드를 고른 뒤 Remove 를 누릅니다.
  5. Selected Fields 에서 필드를 하나 고른 뒤 Move Up / Move Down 으로 Results 창에서의 위치를 바꿉니다.
  6. Width 열을 더블클릭해 그 필드의 기본 컬럼 폭을 바꿉니다.

컬럼 폭을 바꾸려면, Results 창에서 컬럼 오른쪽 경계를 끌어 조정한 다음, 우클릭해 Save Profile 을 고릅니다. 컬럼에 가한 변경은 다음 세션까지 저장 됩니다.

사용자 정의 쿼리 만들기(Creating Custom Queries)

쿼리는 하나 이상의 조건을 담을 수 있고, 기존 미리 정의된 쿼리를 고치거나 쿼리 상자에서 새로 만들 수 있습니다. 미리 정의된 쿼리를 고치려면 쿼리 상자 안을 클릭해 검색 필터를 더하면 되고, 만든 쿼리는 앞에서 본 것처럼 Queries > Add to Favorites 로 저장합니다.

조건을 입력하는 방법은 세 갈래입니다.

  • 쿼리 필드 고르기 — 쿼리 검색줄에서 직접 조건을 입력합니다. 새 쿼리라면 Clear 로 지운 뒤 커서를 검색줄에 두고, 드롭다운에서 조건을 고르거나 검색줄에 직접 입력합니다.
  • Grid 컬럼에서 조건 고르기 — Grid 뷰의 컬럼 머리글로 조건을 고릅니다(이 방법은 Table 뷰에서는 쓸 수 없습니다). Results 창에서 컬럼 머리글을 우클릭 > Add Filter > 조건을 고르거나 입력하면, 그 조건이 검색줄에 나타나고 쿼리가 자동 실행됩니다.
  • 직접 입력하기 — 쿼리 검색줄에 조건을 직접 입력합니다. 새 쿼리를 만들거나 검색줄에 떠 있는 기존 쿼리를 고칠 수 있고, 입력하는 동안 최근 쓴 조건이나 전체 쿼리 가 제안되어 드롭다운에서 골라 쓸 수 있습니다.

쿼리 언어 한눈에 보기(Query Language Overview)

강력한 쿼리 언어를 쓰면 조건에 맞는 레코드만 골라 볼 수 있습니다. 복잡한 쿼리를 만들 때는 Boolean 연산자, 와일드카드, 필드, 범위(range) 를 씁니다. SmartConsole로 쿼리를 만들면, 알맞은 조건이 쿼리 검색줄에 표시됩니다.

기본 쿼리 문법은 다음과 같습니다.

[<Field>:] <Filter Criterion>

여러 조건을 한 쿼리에 묶으려면 Boolean 연산자를 씁니다.

[<Field>:] <Filter Criterion> {AND|OR|NOT} [<Field>:] <Filter Criterion> ...

대부분의 쿼리 키워드와 조건은 대소문자를 가리지 않지만, 예외가 있습니다. 예컨대 source:<X>대소문자를 구분Source:<X> 로는 매칭되지 않습니다. 원하는 결과가 안 나오면 대소문자를 바꿔 보거나 대·소문자를 모두 시도 해 보세요. 그리고 조건을 두 개 이상 쓰면 AND가 자동으로 적용 되므로 굳이 적지 않아도 되며, 필요할 때만 OR 등 다른 Boolean 연산자를 적습니다.

조건 값(Criteria Values)

조건 값은 하나 이상의 텍스트 문자열 로 씁니다. 단어·IP 주소·URL처럼 한 단어라면 구분자 없이 그대로 입력하고, 한 단어보다 긴 구절이라면 반드시 따옴표로 감 쌉니다.

한 단어 예시입니다.

  • John
  • inbound
  • 192.168.2.1
  • mahler.ts.example.com
  • dns_udp

구절(phrase) 예시입니다.

"John Doe"
"Log Out"
"VPN-1 Embedded Connector"

IP 주소(IP Addresses)

로그 쿼리에 쓰는 IPv4·IPv6 주소는 한 단어로 셉 니다. IPv4는 점으로 구분한 십진수 표기(dotted decimal)로, IPv6는 콜론(:)으로 적습니다. 예시는 다음과 같습니다.

  • 192.0.2.1
  • 2001:db8::f00:d

와일드카드 * 와 표준 네트워크 접미사(suffix)를 함께 써서, 범위 안의 IP에 매칭 되는 로그를 찾을 수도 있습니다.

예시매칭 범위
src:192.168.0.0/16source IP 192.168.0.0 ~ 192.168.255.255(양끝 포함)
src:192.168.1.0/24source IP 192.168.1.0 ~ 192.168.1.255(양끝 포함)
src:192.168.2.*source IP 192.168.2.0 ~ 192.168.2.255(양끝 포함)
192.168.*192.168.0.0 ~ 192.168.255.255(양끝 포함)

NOT 값(NOT Values)

필드 키워드 앞에 NOT 을 붙이면, 그 필드 값이 쿼리의 값이 아닌 로그를 찾습니다. 문법과 예시는 다음과 같습니다.

NOT <field>: <value>
NOT src:10.0.4.10

와일드카드(Wildcards)

표준 와일드카드 문자 *? 를 쿼리에 써서, 로그의 변하는 문자나 문자열에 매칭할 수 있습니다. 와일드카드는 하나만 쓰지 않고 여러 개 써도 됩니다.

  • ?(물음표)는 한 글자 에 매칭됩니다.
  • *(별표)는 문자열 에 매칭됩니다.

예시로 감을 잡으면 됩니다.

  • Jo? 는 Joe·Jon에 매칭되지만 Joseph에는 매칭되지 않 습니다.
  • Jo* 는 Jon·Joseph·John Paul에 매칭됩니다.

조건 값에 단어가 둘 이상이면 각 단어마다 와일드카드 를 쓸 수 있습니다. 예를 들어 Jo N 는 Joe North, John Natt, Joshua Named 등에 매칭됩니다.

필드 키워드(Field Keywords)

미리 정의된 필드 이름을 조건의 키워드로 쓸 수 있습니다. 필드 이름을 쓰면 그 필드에서 조건에 매칭되는 레코드만 나오고, 필드 이름을 쓰지 않으면 모든 필드 에서 조건에 매칭되는 레코드가 나옵니다. 일부 필드는 기본 키워드 대신 입력할 수 있는 키워드 별칭(alias) 도 지원합니다.

키워드별칭설명
severity이벤트의 심각도(severity)
app_risk이벤트에서 애플리케이션이 줄 수 있는 잠재적 위험
protectionprotection의 이름
protection_typeprotection의 종류
confidence_level이벤트가 악성일 가능성의 신뢰 수준
action보안 규칙이 취한 동작
bladeproductSoftware Blade
destinationdst트래픽 destination IP 주소, DNS 이름, 또는 Check Point 네트워크 객체 이름
originorig로그를 낸(originating) Security Gateway의 이름
service로그 항목을 만든 서비스
sourcesrc트래픽 source IP 주소, DNS 이름, 또는 Check Point 네트워크 객체 이름
user사용자 이름

필드 이름 쿼리의 문법은 다음과 같습니다.

<field name>:<values>
  • <field name> — 미리 정의된 필드 이름 중 하나
  • <values> — 하나 이상의 필터

규칙 번호 를 찾으려면 Rule 필드를 씁니다. 예를 들면 이렇습니다.

rule:7.1

규칙 번호를 필터로 쓰면, 그 번호를 가진 모든 레이어의 규칙 이 매칭됩니다.

반면 규칙 이름 을 찾을 때는 Rule 필드를 쓰지 않고 자유 텍스트(free text) 로 검색합니다. 예를 들면 이렇습니다.

"Block Credit Cards"

필드 키워드 쿼리 예시는 다음과 같습니다.

action:(Reject OR Block)

OR 연산자를 괄호 안에 써서 여러 조건 값을 한 필드에 담을 수 있습니다.

Boolean 연산자(Boolean Operators)

Boolean 연산자 AND, OR, NOT 으로 여러 조건을 엮어 필터를 만들 수 있고, 여러 Boolean 식을 괄호로 묶을 수 있습니다. 연산자 없이 조건을 둘 이상 입력하면 AND가 자동 적용 되며, 괄호 없이 여러 조건을 쓰면 AND보다 OR가 먼저 적용됩니다.

예시로 동작을 확인해 보겠습니다.

blade:"application control" AND action:block

Application & URL Filtering Software Blade에서 트래픽이 차단된 로그를 보여 줍니다.

192.168.2.133 10.19.136.101

두 IP 주소에 모두 매칭되는 로그를 보여 줍니다. AND가 자동으로 가정 됩니다.

192.168.2.133 OR 10.19.136.101

두 IP 주소 중 하나라도 매칭되는 로그를 보여 줍니다.

(blade: Firewall OR blade: IPS OR blade:VPN) AND NOT action:drop

Firewall·IPS·VPN 블레이드의 로그 중 drop되지 않은 것을 모두 보여 줍니다. 괄호 안 조건이 AND NOT 조건보다 먼저 적용됩니다.

source:(192.168.2.1 OR 192.168.2.2) AND destination:17.168.8.2

destination IP가 17.168.8.2 인 경우, 두 source IP에서 온 로그를 보여 줍니다. 필드 조건에 Boolean 연산자를 함께 쓰는 방법을 잘 보여 주는 예시입니다.

SmartView Web Application — 브라우저로 보기

SmartView Web Application 은 환경에서 일어나는 이벤트를 분석하는 SmartEvent 클라이언트 중 하나로, SmartConsole과 같은 실시간 이벤트 모니터링·분석 뷰 를 제공합니다. 가장 큰 편의는 클라이언트를 설치하지 않아도 된다 는 점입니다.

SmartView Web Application으로 SmartEvent에 로그인하려면 브라우저로 다음 주소에 접속합니다.

https://<IP Address of Management Server>/smartview/

또는

https://<Host Name of Management Server>/smartview/

여기에는 알아 둘 주의점들이 있습니다.

  • URL의 /smartview/ 부분은 대소문자를 구분 합니다.
  • Standalone 서버(Security Management Server와 Security Gateway를 한 대에서 함께 돌리는 서버)에서 SmartView Web Application을 열면, 다음 웹 포털들이 멈춥 니다.
  Gaia Portal (https://<Server IP Address> 와 https://<Server IP Address>:4434)
  API 문서 포털 (https://<Server IP Address>/api_docs)
  Web SmartConsole (https://<Server IP Address>/smartconsole)
  
  • SmartView Web Application 로그인은 SmartConsole의 관리자 객체에 설정된 Check Point Password 인증만 지원합니다.

SmartView의 장점은 다음과 같습니다.

  • 비관리자(non-admin) 사용자도 쓸 수 있습니다.
  • 로그를 최대 1,000,000건까지 내보낼 수 있습니다.
  • 상위 통계(top statistics)와 docked card가 통합돼 있습니다.
  • High Contrast 테마를 지원합니다.

SmartView 안에서

SmartView는 기본적으로 General Overview 탭으로 열려, 통계·Software Blade·타임라인 등을 보여 줍니다. 이전 세션에서 열어 둔 탭은 그대로 유지 됩니다.

새 탭을 열려면 + 를 누릅니다. Audit Logs 탭은 관리에서 일어난 변경(audit 로그)을, Logs > Logs View 탭은 블레이드 활동을 보여 줍니다.

앞의 사용 사례처럼 먼저 애플리케이션으로 거른 뒤 사용자로 거르려면 이렇게 합니다.

  1. + 아이콘을 눌러 새 탭을 엽니다.
  2. Views > Access Control 을 누릅니다.
  3. User 컬럼을 우클릭해 사용자 활동을 파고들거나(drill down), 현재 뷰에 그 사용자에 대한 필터를 만듭니다.

한 사용자의 모든 활동을 스케줄링할 수는 있지만, 특정 임계치(threshold)에서 알림을 트리거하도록 설정할 수는 없 습니다.

어떤 컬럼을 보일지 고르려면 이렇게 합니다.

  1. 컬럼 머리글을 우클릭하고 Profile editor 를 고릅니다. Profile editor 창이 열립니다.
  2. 선택한 프로파일에 더하거나 뺄 필드를 고릅니다.
  3. OK 를 누릅니다.

사용자 표시 환경설정(User Preferences)은 이렇게 정합니다.

  1. 사용자 이름 옆 드롭다운 화살표를 눌러 User Preferences 를 고릅니다.
  2. Locale — 표시 언어를 고릅니다.
  3. First day of the week — 주간 로그가 시작될 요일을 고릅니다.
  4. Theme — Default 또는 High Contrast를 고릅니다(High Contrast는 검은 배경에 흰 글씨).
  5. Default time frame — 모든 기능에 적용될 기본 기간을 정합니다(기본값은 Last 24 hours).
  6. Email server settingsEdit 를 눌러 이메일 서버 정보를 입력합니다.
  7. OK 를 누릅니다.

SmartView에서 로그 내보내기(Exporting Logs)

필터를 적용해 내보낼 로그를 고른 뒤 내보냅니다. 현재 CSV로만 내보낼 수 있습니다.

  1. Logs 탭에서 Options 를 눌러 Export > Export to CSV 를 고릅니다. CSV Export 창이 열립니다.
  2. Logs Amount(로그 개수)를 고릅니다.
  3. Exported Columns 를 고릅니다 — All columns(모든 컬럼) 또는 Visible columns(보이는 컬럼).
  4. OK 를 누릅니다.
  5. 내보내기가 시작되면 팝업 창이 뜹니다.

내보내기가 성공했다는 메시지가 뜨면 Download 를 누릅니다. 내보낸 로그는 모두 archive 탭에도 나타 납니다.

로그 고가용성(Log Server High Availability)

SmartConsole에서, 게이트웨이가 한 Log Server에 로그를 못 보낼 때 보조(secondary) Log Server로 보내게 구성할 수 있습니다. 이 구성을 뒷받침하려면 여러 Log Server를 하나의 SmartEvent Correlation Unit에 추가 합니다. 그러면 SmartEvent Correlation Unit이 두 서버 모두에서 끊김 없는 로그 스트림 을 받아 모든 로그를 계속 상관분석(correlate)합니다.

Syslog 서버 연동(Working with Syslog Servers)

Syslog란

Syslog(System Logging Protocol)는 시스템 로그나 이벤트 메시지를 특정 서버, 즉 syslog 서버로 보내는 표준 프로토콜 입니다. 라우터·스위치 같은 대부분의 네트워크 장비에서 켜져 있고, 많은 로그 분석 도구가 syslog를 씁니다. 그런 도구를 쓰려면, Security Gateway가 Check Point 로그를 syslog 형식으로 syslog 서버에 보내 게 해야 합니다.

Check Point가 지원하는 syslog 프로토콜은 RFC 3164(구)와 RFC 5424(신) 입니다. 다만 IPv6 로그와 Software Blade 로그는 지원되지 않 습니다.

Security Gateway 구성하기

기본적으로 Security Gateway 로그는 Security Management Server로 갑니다. 이를 바꿔 게이트웨이가 syslog 서버로 직접 로그를 보내게 할 수 있습니다.

1단계 — SmartConsole에서 syslog 서버 객체 정의하기

먼저 syslog 서버를 나타내는 Host 객체 를 만듭니다.

  1. SmartConsole로 Management Server에 접속합니다.
  2. 왼쪽 탐색 패널에서 Gateways & Servers 를 누릅니다.
  3. Object Explorer에서 New > Host 를 누르고 다음 필드를 설정합니다.
    • Name — 고유한 이름을 입력합니다.
    • IPv4 address — syslog 서버의 올바른 IPv4 주소를 입력합니다.
    • IPv6 address — (선택) syslog 서버의 IPv6 주소를 입력합니다. 이때 Security Gateway / 각 Cluster Member에서 IPv6 Support가 켜져 있어야 합니다.
  4. OK 를 누릅니다.

다음으로 syslog 서버를 나타내는 Syslog Server 객체 를 만듭니다.

  1. Object Explorer에서 New > Server > More > Syslog 를 누르고 다음 필드를 설정합니다.
    • Name — 고유한 이름을 입력합니다.
    • Host — 기존 host를 고르거나 New 를 눌러 새 컴퓨터·어플라이언스를 정의합니다.
    • Port — syslog 서버의 올바른 포트 번호를 입력합니다(기본값 514).
    • VersionBSD Protocol 또는 Syslog Protocol 을 고릅니다.
  2. OK 를 누른 뒤 Object Explorer를 닫습니다.

2단계 — Security Gateway / Cluster 객체에서 syslog 서버 객체 고르기

  1. Security Gateway 객체를 더블클릭합니다.
  2. 왼쪽 트리에서 Logs 를 누릅니다.
  3. Send logs and alerts to these log servers 표에서 초록색 (+) 버튼을 눌러, 앞서 만든 Syslog Server 객체를 고릅니다.

여기에는 알아 둘 규칙이 있습니다.

  • 하나의 Security Gateway / Cluster Member를 여러 syslog 서버로 보내게 구성할 수 있습니다.
  • Security Gateway / Cluster 객체에서 고른 모든 syslog 서버는 같은 프로토콜 버전(BSD Protocol 또는 Syslog Protocol)을 써야 합니다.
  • Syslog 서버를 백업 서버로는 구성할 수 없 습니다.

설정을 마쳤으면 OK 를 누르고 정책을 설치(Install policy)합니다.

3단계 — 게이트웨이 로깅 속성 구성하기 (fwsyslog_enable)

커널 파라미터 fwsyslog_enable높은 로그율(high log rate)이 필요한 환경에서 로깅 성능을 최적화 합니다. 다만 이 파라미터는 Check Point Support가 명시적으로 지시할 때만 켜세요.

동작
fwsyslog_enable=0Firewall 로그가 user space의 Syslog 데몬 을 거쳐 Syslog Server로 갑니다(기본값).
fwsyslog_enable=1Firewall 로그가 Gaia OS 커널에서 직접 Syslog Server로 갑니다.

현재 fwsyslog_enable 값을 보려면 이렇게 합니다.

  1. Security Gateway / 각 Cluster Member의 명령줄에 접속합니다.
  2. Expert mode로 로그인합니다.
  3. 다음을 실행합니다.
   fw ctl get int fwsyslog_enable
   

출력에서 "fwsyslog_enable = 0" 은 user space Syslog 데몬을 거친다는(기본값) 뜻이고, "fwsyslog_enable = 1" 은 Gaia OS 커널에서 직접 보낸다는 뜻입니다.

값을 1로 임시로(재부팅하면 사라짐) 바꾸려면 이렇게 합니다.

  1. Security Gateway / 각 Cluster Member의 명령줄에 접속해 Expert mode로 로그인합니다.
  2. 다음을 실행합니다.
   fw ctl set int fwsyslog_enable 1
   
  1. SmartConsole에서 이 Security Gateway / Cluster 객체에 정책을 설치합니다.

값을 1로 영구히(재부팅해도 유지) 바꾸려면 이렇게 합니다.

  1. Security Gateway / 각 Cluster Member의 명령줄에 접속해 Expert mode로 로그인합니다.
  2. $FWDIR/boot/modules/fwkern.conf 파일을 편집합니다.
   vi $FWDIR/boot/modules/fwkern.conf
   
  1. 다음 줄을 추가합니다.
   
  1. 파일을 저장하고 편집기를 빠져나온 뒤, Security Gateway / 각 Cluster Member를 재부팅합니다.

값을 0으로 임시로 되돌리려면 명령줄에서 Expert mode로 로그인해 다음을 실행합니다.

fw ctl set int fwsyslog_enable 0

값을 0으로 영구히 되돌리려면, $FWDIR/boot/modules/fwkern.conf 를 열어 다음 중 하나를 한 뒤 저장하고 재부팅합니다.

  • 커널 파라미터 값을 0으로 설정합니다.
  
  • 또는 해당 줄을 통째로 삭제합니다.
  

CoreXL Firewall 인스턴스의 로그 카운트

Security Gateway / 각 Cluster Member에서 CoreXL Firewall 인스턴스가 보낸 syslog 로그의 현재 개수 를 볼 수 있습니다.

하나의 CoreXL Firewall 인스턴스의 로그 카운트를 보려면, 명령줄에서 Expert mode로 로그인해 다음을 실행합니다.

fw -i <CoreXL Firewall Instance Number> ctl get fwsyslog_nlogs_counter

출력 예시는 다음과 같습니다.

fwsyslog_nlogs_counter = 21

모든 CoreXL Firewall 인스턴스의 로그 카운트를 보려면 이렇게 합니다.

  1. Security Gateway / 각 Cluster Member에 명령줄 연결을 두 개 엽니다.
  2. 두 연결 모두 Expert mode로 로그인합니다.
  3. 첫 번째 셸에서 다음을 실행합니다.
   fw ctl zdebug | grep logs
   
  1. 두 번째 셸에서 다음을 실행합니다.
   fw ctl set int fwsyslog_print_counter 1
   
  1. 첫 번째 셸에서 각 CoreXL Firewall 인스턴스별 카운터와 전체 합계 를 봅니다. 출력 예시는 다음과 같습니다.
   ;[cpu_2];[fw4_0];Number of logs sent from instance 0 is 43;
   ;[cpu_2];[fw4_0];Number of logs sent from instance 1 is 39;
   ;[cpu_2];[fw4_0];Number of logs sent from instance 2 is 50;
   ;[cpu_2];[fw4_0];Total logs sent from kernel (all instances) = 132;
   
  1. 첫 번째 셸에서 CTRL+C 를 눌러 디버그를 멈춥니다.

syslog에 관한 더 깊은 내용, 특히 형식 파싱은 Syslog 수동 파싱을, 형식 변환 없이 SIEM과 연동하는 방법은 Log Exporter를 참고하세요. 분석 화면 전반과 리포트는 View와 Report에서 다룹니다.