본문 바로가기
정보보호 (Security)

FireEye HX APT 솔루션 다양한 보안 이벤트 탐지 분석 대응

by 날으는물고기 2024. 8. 25.

FireEye HX APT 솔루션 다양한 보안 이벤트 탐지 분석 대응

FireEye HX는 다양한 보안 이벤트를 탐지하고 분석할 수 있는 강력한 APT/EDR 솔루션입니다.

FireEye HX에서 이벤트 수집 방법

1. 로그인 및 대시보드 접근

FireEye HX 관리 콘솔에 로그인합니다. 대시보드에서 현재 상태와 최근 이벤트를 확인할 수 있습니다.

2. 이벤트 설정

  1. 설정 접근: 관리 콘솔에서 "Settings"로 이동합니다.
  2. 정책 및 규칙 설정: "Policies" 또는 "Rules" 섹션으로 이동하여 필요한 이벤트 수집 정책을 설정합니다.
    • 기본 정책: 기본 제공되는 정책을 활용할 수 있으며, 필요에 따라 수정하거나 새로운 정책을 추가할 수 있습니다.
    • 규칙 설정: 특정 조건에 맞는 이벤트를 탐지하기 위해 규칙을 설정합니다. 예를 들어, 특정 파일 접근, 네트워크 연결, 프로세스 실행 등 다양한 조건을 설정할 수 있습니다.

3. 이벤트 수집 활성화

  1. 수집 정책 적용: 설정된 정책을 활성화하여 적용합니다.
  2. 에이전트 배포: 수집 대상 시스템에 FireEye HX 에이전트를 설치하고, 설정된 정책에 따라 이벤트를 수집하도록 합니다.

4. 이벤트 모니터링

  1. 이벤트 로그 확인: "Events" 섹션에서 수집된 이벤트를 실시간으로 모니터링할 수 있습니다.
  2. 필터 적용: 특정 이벤트 유형, 심각도, 타임스탬프 등을 기준으로 필터링하여 필요한 정보만 확인할 수 있습니다.

5. 이벤트 수집 데이터 내보내기

수집된 이벤트 데이터를 외부로 내보내기 위해 다음 단계를 수행합니다.

  1. 이벤트 내보내기: "Export" 기능을 사용하여 필요한 이벤트 데이터를 CSV, JSON 등 원하는 형식으로 내보낼 수 있습니다.
  2. API 사용: FireEye HX는 RESTful API를 제공하므로, 이를 활용하여 프로그램적으로 이벤트 데이터를 수집하고 외부 시스템과 연동할 수 있습니다.

예시 코드: FireEye HX API를 이용한 이벤트 수집

FireEye HX API를 이용하여 이벤트를 수집하는 예시 Python 코드입니다.

import requests
import json

# FireEye HX API 엔드포인트 및 인증 정보 설정
hx_api_url = 'https://<fireeye_hx_url>/hx/api/v3'
api_username = 'your_api_username'
api_password = 'your_api_password'

# 이벤트 수집 API 호출
def get_events():
    headers = {
        'Accept': 'application/json',
        'Authorization': 'Basic ' + base64.b64encode(f'{api_username}:{api_password}'.encode()).decode()
    }

    response = requests.get(f'{hx_api_url}/events', headers=headers)

    if response.status_code == 200:
        events = response.json()
        return events
    else:
        print(f"Error: {response.status_code}")
        return None

# 수집된 이벤트 출력
events = get_events()
if events:
    print(json.dumps(events, indent=4))

주의사항

  1. API 보안: API 호출 시 인증 정보를 안전하게 관리하고, 필요 시 API 키를 주기적으로 변경합니다.
  2. 접근 제어: 이벤트 데이터에 접근할 수 있는 사용자를 제한하고, 접근 로그를 모니터링합니다.
  3. 데이터 암호화: 전송 중인 데이터는 TLS를 사용하여 암호화합니다.

이와 같이 FireEye HX를 활용하여 이벤트를 수집하고 모니터링할 수 있습니다. FireEye HX에서 벌크 이벤트 수집 기능을 사용하여 한 번에 많은 이벤트를 수집하는 방법은 다음과 같습니다. 이는 API를 통해 대량의 이벤트 데이터를 한 번에 가져오는 것을 의미합니다. 이를 위해 FireEye HX RESTful API를 사용할 수 있습니다.

FireEye HX 벌크 이벤트 수집 방법

1. API 인증

FireEye HX API를 사용하기 위해서는 API 인증이 필요합니다. 기본 인증 방법은 API 키 또는 사용자 이름과 비밀번호를 사용하는 방법입니다.

2. API 엔드포인트

FireEye HX는 이벤트 데이터를 가져오기 위한 여러 API 엔드포인트를 제공합니다. 벌크 이벤트 수집을 위해 주로 사용되는 엔드포인트는 /hx/api/v3/alerts 또는 /hx/api/v3/events입니다.

3. API 요청

API 요청을 통해 특정 기간 동안 발생한 이벤트를 한 번에 수집할 수 있습니다. 이를 위해 적절한 쿼리 파라미터를 설정하여 요청을 보냅니다.

예시 코드: FireEye HX API를 이용한 벌크 이벤트 수집

아래는 FireEye HX API를 이용하여 특정 기간 동안 발생한 이벤트를 벌크로 수집하는 Python 코드 예시입니다.

import requests
import json
import base64
from datetime import datetime, timedelta

# FireEye HX API 엔드포인트 및 인증 정보 설정
hx_api_url = 'https://<fireeye_hx_url>/hx/api/v3'
api_username = 'your_api_username'
api_password = 'your_api_password'

# 기본 인증을 위한 헤더 생성
def get_headers():
    auth_str = f'{api_username}:{api_password}'
    b64_auth_str = base64.b64encode(auth_str.encode()).decode()
    headers = {
        'Accept': 'application/json',
        'Authorization': f'Basic {b64_auth_str}'
    }
    return headers

# 특정 기간 동안의 이벤트 수집
def get_bulk_events(start_time, end_time):
    headers = get_headers()
    params = {
        'start_time': start_time,
        'end_time': end_time
    }
    response = requests.get(f'{hx_api_url}/events', headers=headers, params=params)

    if response.status_code == 200:
        events = response.json()
        return events
    else:
        print(f"Error: {response.status_code}")
        return None

# 기간 설정 (예: 지난 24시간)
end_time = datetime.utcnow()
start_time = end_time - timedelta(days=1)

# 날짜 포맷 설정 (ISO 8601)
start_time_str = start_time.strftime('%Y-%m-%dT%H:%M:%SZ')
end_time_str = end_time.strftime('%Y-%m-%dT%H:%M:%SZ')

# 벌크 이벤트 수집
events = get_bulk_events(start_time_str, end_time_str)
if events:
    print(json.dumps(events, indent=4))
else:
    print("No events found.")

위 코드는 FireEye HX API를 통해 특정 기간 동안 발생한 이벤트를 한 번에 수집하는 방법을 보여줍니다. 이 방법을 통해 벌크 이벤트 수집을 효율적으로 수행할 수 있습니다.

FireEye HX 에이전트 DB에서 프로세스 이벤트를 특정 주기마다 수집하여 파싱한 후 Elasticsearch로 넣는 방식으로 가능합니다. 이를 위해 다음과 같은 단계로 작업을 진행할 수 있습니다.

1. FireEye HX에서 프로세스 이벤트 수집

위에서 제공한 예시 코드를 기반으로 주기적으로 FireEye HX API를 호출하여 프로세스 이벤트를 수집합니다.

2. 수집한 이벤트 데이터 파싱

수집된 이벤트 데이터를 파싱하여 필요한 정보만 추출합니다. 이는 JSON 데이터를 다루는 Python의 json 모듈을 사용하여 쉽게 구현할 수 있습니다.

3. 파싱된 데이터를 Elasticsearch로 전송

파싱된 데이터를 Elasticsearch에 인덱싱합니다. 이를 위해 elasticsearch Python 라이브러리를 사용할 수 있습니다.

4. 자동화를 위한 스케줄링

자동화를 위해 스케줄링 도구를 사용합니다. 예를 들어, cron 또는 Python의 schedule 라이브러리를 사용할 수 있습니다.

아래는 전체 워크플로우를 구현한 예시 Python 코드입니다.

import requests
import json
import base64
from datetime import datetime, timedelta
from elasticsearch import Elasticsearch
import schedule
import time

# FireEye HX API 설정
hx_api_url = 'https://<fireeye_hx_url>/hx/api/v3'
api_username = 'your_api_username'
api_password = 'your_api_password'

# Elasticsearch 설정
es = Elasticsearch([{'host': 'localhost', 'port': 9200}])

# 기본 인증을 위한 헤더 생성
def get_headers():
    auth_str = f'{api_username}:{api_password}'
    b64_auth_str = base64.b64encode(auth_str.encode()).decode()
    headers = {
        'Accept': 'application/json',
        'Authorization': f'Basic {b64_auth_str}'
    }
    return headers

# 특정 기간 동안의 이벤트 수집
def get_bulk_events(start_time, end_time):
    headers = get_headers()
    params = {
        'start_time': start_time,
        'end_time': end_time
    }
    response = requests.get(f'{hx_api_url}/events', headers=headers, params=params)

    if response.status_code == 200:
        events = response.json()
        return events['data'] if 'data' in events else []
    else:
        print(f"Error: {response.status_code}")
        return []

# 이벤트 파싱 및 Elasticsearch로 전송
def parse_and_send_to_elasticsearch(events):
    for event in events:
        es.index(index='fireeye-events', doc_type='_doc', body=event)
    print(f"Indexed {len(events)} events to Elasticsearch")

# 메인 함수: 이벤트 수집, 파싱 및 전송
def collect_and_index_events():
    end_time = datetime.utcnow()
    start_time = end_time - timedelta(hours=1)  # 지난 1시간 동안의 이벤트 수집
    start_time_str = start_time.strftime('%Y-%m-%dT%H:%M:%SZ')
    end_time_str = end_time.strftime('%Y-%m-%dT%H:%M:%SZ')

    events = get_bulk_events(start_time_str, end_time_str)
    if events:
        parse_and_send_to_elasticsearch(events)
    else:
        print("No events found.")

# 스케줄 설정 (예: 매 시간마다 실행)
schedule.every().hour.do(collect_and_index_events)

# 스케줄 실행
while True:
    schedule.run_pending()
    time.sleep(1)
  1. API 및 Elasticsearch 인증 정보 보호: 코드에서 인증 정보를 안전하게 관리하고, 필요 시 환경 변수로 처리합니다.
  2. 접근 제어: FireEye HX API 및 Elasticsearch에 대한 접근 권한을 제한합니다.
  3. 데이터 암호화: 데이터 전송 시 TLS를 사용하여 암호화합니다.
  4. 로그 및 모니터링: 이벤트 수집 및 전송 과정을 로그로 남기고, 주기적으로 모니터링합니다.

위 코드를 사용하면 FireEye HX 에이전트 DB에서 프로세스 이벤트를 주기적으로 수집하여 파싱한 후 Elasticsearch로 전송하는 자동화된 시스템을 구현할 수 있습니다. FireEye HX는 다양한 유형의 정보를 수집할 수 있으며, 이러한 정보는 보안 이벤트 분석과 위협 탐지에 중요한 역할을 합니다. 수집 가능한 정보 유형을 나열하고 각각에 대해 간략히 설명하겠습니다.

수집 가능한 정보 유형

  1. 파일 이벤트(File Events)
    • 설명: 파일의 생성, 수정, 삭제 및 실행과 관련된 이벤트를 수집합니다.
    • 사용 사례: 악성 파일 탐지, 파일 무결성 검사.
  2. 프로세스 이벤트(Process Events)
    • 설명: 시스템에서 실행되는 프로세스와 관련된 정보를 수집합니다. 프로세스의 시작, 종료, 부모-자식 관계 등을 포함합니다.
    • 사용 사례: 악성 프로세스 탐지, 비정상적인 프로세스 활동 모니터링.
  3. 네트워크 이벤트(Network Events)
    • 설명: 네트워크 연결 시도, 연결 성공, 실패 및 데이터 전송과 관련된 이벤트를 수집합니다.
    • 사용 사례: 비정상적인 네트워크 활동 탐지, 외부 연결 모니터링.
  4. 로그온/로그오프 이벤트(Logon/Logoff Events)
    • 설명: 사용자 로그온 및 로그오프 활동을 모니터링합니다.
    • 사용 사례: 비정상적인 로그인 활동 탐지, 계정 도용 방지.
  5. 레지스트리 이벤트(Registry Events)
    • 설명: 레지스트리 키 및 값의 생성, 삭제, 수정과 관련된 이벤트를 수집합니다.
    • 사용 사례: 레지스트리 기반의 악성 활동 탐지, 시스템 설정 변경 모니터링.
  6. 시스템 이벤트(System Events)
    • 설명: 시스템의 다양한 이벤트, 예를 들어 서비스 시작/중지, 시스템 부팅/종료 등의 정보를 수집합니다.
    • 사용 사례: 시스템 무결성 검증, 시스템 운영 상태 모니터링.
  7. 악성 코드 탐지 이벤트(Malware Detection Events)
    • 설명: FireEye HX가 탐지한 악성 코드와 관련된 이벤트를 수집합니다.
    • 사용 사례: 악성 코드 제거, 감염 경로 분석.
  8. 정책 위반 이벤트(Policy Violation Events)
    • 설명: 설정된 보안 정책을 위반한 활동에 대한 정보를 수집합니다.
    • 사용 사례: 정책 위반 탐지, 보안 정책 강화.

이벤트 유형별 수집 데이터 예시

파일 이벤트 예시

{
  "event_type": "file",
  "file_path": "C:\\Windows\\Temp\\malware.exe",
  "action": "created",
  "timestamp": "2024-08-02T10:00:00Z"
}

프로세스 이벤트 예시

{
  "event_type": "process",
  "process_name": "cmd.exe",
  "pid": 1234,
  "parent_process_name": "explorer.exe",
  "parent_pid": 5678,
  "timestamp": "2024-08-02T10:01:00Z"
}

네트워크 이벤트 예시

{
  "event_type": "network",
  "source_ip": "192.168.1.10",
  "destination_ip": "8.8.8.8",
  "port": 443,
  "action": "connection_attempt",
  "timestamp": "2024-08-02T10:02:00Z"
}

로그온/로그오프 이벤트 예시

{
  "event_type": "logon",
  "username": "admin",
  "logon_type": "interactive",
  "timestamp": "2024-08-02T10:03:00Z"
}

레지스트리 이벤트 예시

{
  "event_type": "registry",
  "registry_path": "HKEY_LOCAL_MACHINE\\Software\\Malware",
  "action": "modified",
  "timestamp": "2024-08-02T10:04:00Z"
}

시스템 이벤트 예시

{
  "event_type": "system",
  "event_description": "System reboot",
  "timestamp": "2024-08-02T10:05:00Z"
}

악성 코드 탐지 이벤트 예시

{
  "event_type": "malware_detection",
  "malware_name": "Trojan.XYZ",
  "file_path": "C:\\Windows\\Temp\\malware.exe",
  "action": "quarantined",
  "timestamp": "2024-08-02T10:06:00Z"
}

정책 위반 이벤트 예시

{
  "event_type": "policy_violation",
  "policy_name": "Unauthorized Software Installation",
  "action": "blocked",
  "timestamp": "2024-08-02T10:07:00Z"
}

이러한 다양한 유형의 정보를 수집하여 Elasticsearch와 같은 분석 플랫폼으로 전송하면 보안 이벤트를 더욱 효과적으로 모니터링하고 대응할 수 있습니다.

FireEye HX와 osquery는 모두 보안 이벤트를 수집하고 관리하기 위한 도구이지만, 이들의 데이터 수집 및 관리 방식에는 차이가 있습니다. 아래에 각 도구의 데이터 관리 방식을 비교하고, 유사점과 차이점을 설명하겠습니다.

FireEye HX

  1. 데이터 수집 및 저장
    • 에이전트 기반: FireEye HX 에이전트는 엔드포인트에 설치되어 실시간으로 보안 이벤트를 수집합니다.
    • 중앙 집중식 관리: 수집된 데이터는 FireEye HX 관리 서버로 전송되어 중앙 집중식으로 저장 및 관리됩니다.
    • 데이터베이스: FireEye HX 관리 서버는 수집된 데이터를 자체 데이터베이스에 저장하여 분석 및 탐지에 활용합니다.
    • 이벤트 유형: 파일 이벤트, 프로세스 이벤트, 네트워크 이벤트, 로그온/로그오프 이벤트, 레지스트리 이벤트 등 다양한 유형의 보안 이벤트를 수집합니다.
  2. 주요 특징
    • 실시간 탐지 및 대응: 실시간으로 위협을 탐지하고 대응할 수 있는 기능을 제공합니다.
    • 위협 인텔리전스: FireEye의 위협 인텔리전스 데이터베이스와 연동하여 최신 위협 정보를 제공합니다.
    • 중앙 집중식 관리: 여러 엔드포인트에서 수집된 데이터를 중앙에서 관리하고 분석할 수 있습니다.

osquery

  1. 데이터 수집 및 저장
    • 에이전트 기반: osquery는 엔드포인트에 설치된 에이전트를 통해 데이터를 수집합니다.
    • 로컬 데이터베이스: 수집된 데이터는 SQLite 데이터베이스에 저장됩니다. 이 데이터베이스는 로컬 시스템에 저장되어 쿼리를 통해 접근할 수 있습니다.
    • 쿼리 기반: osquery는 SQL과 유사한 쿼리 언어를 사용하여 다양한 시스템 정보를 수집하고 분석합니다. 예를 들어, 파일 시스템, 프로세스, 네트워크 연결, 레지스트리, 사용자 활동 등을 쿼리할 수 있습니다.
  2. 주요 특징
    • 쿼리 유연성: SQL과 유사한 언어를 사용하여 다양한 시스템 정보를 쿼리할 수 있는 유연성을 제공합니다.
    • 로컬 데이터 저장: 수집된 데이터는 로컬 SQLite 데이터베이스에 저장되며, 필요한 경우 외부 서버로 전송할 수 있습니다.
    • 확장성: 오픈 소스 기반으로 다양한 플러그인과 확장이 가능하여 사용자 맞춤형 쿼리를 작성할 수 있습니다.

비교 요약

데이터 수집 방식 에이전트 기반, 실시간 수집 에이전트 기반, 쿼리 기반 수집
데이터 저장 위치 중앙 집중식 관리 서버 로컬 SQLite 데이터베이스
데이터 접근 방식 관리 서버를 통한 접근 로컬 쿼리를 통한 접근
이벤트 유형 다양한 보안 이벤트 (파일, 프로세스, 네트워크 등) 시스템 정보 (파일 시스템, 프로세스, 네트워크 등)
실시간 탐지 및 대응 가능 주기적 쿼리 실행
위협 인텔리전스 FireEye 위협 인텔리전스 연동 직접 연동 필요
확장성 제한적 (주로 FireEye 솔루션) 오픈 소스 기반, 높은 확장성

FireEye HX는 주로 중앙 집중식 관리 서버를 통해 보안 이벤트를 실시간으로 수집하고 대응하는 데 중점을 두고 있으며, FireEye의 위협 인텔리전스와 연동하여 최신 위협 정보를 제공합니다. 반면, osquery는 로컬 SQLite 데이터베이스에 데이터를 저장하고 SQL과 유사한 쿼리 언어를 사용하여 다양한 시스템 정보를 유연하게 수집하고 분석할 수 있는 도구입니다.
 
이 두 도구는 각기 다른 방식으로 보안 이벤트를 관리하지만, 각각의 장점을 활용하여 조직의 보안 환경을 개선할 수 있습니다. FireEye HX는 실시간 탐지와 중앙 집중식 관리가 필요한 환경에 적합하며, osquery는 로컬에서 유연하게 시스템 정보를 수집하고 분석할 수 있는 환경에 적합합니다.
 
FireEye와 osquery의 벌크 수집 기능을 비교하는 것은 각 도구가 데이터를 수집, 저장 및 분석하는 방법을 이해하는 데 중요합니다. 두 도구는 모두 보안 이벤트를 수집하지만, 수집 방식과 저장 구조에는 차이가 있습니다.

FireEye HX 벌크 수집

  1. 데이터 수집 방식
    • 에이전트 기반: FireEye HX 에이전트는 엔드포인트에 설치되어 실시간으로 보안 이벤트를 수집합니다.
    • API 호출: FireEye HX API를 사용하여 대량의 이벤트 데이터를 한 번에 가져올 수 있습니다.
  2. 데이터 저장 위치
    • 중앙 집중식 관리 서버: 수집된 데이터는 FireEye 관리 서버로 전송되어 중앙에서 저장 및 관리됩니다.
  3. 이벤트 유형
    • 다양한 보안 이벤트: 파일 이벤트, 프로세스 이벤트, 네트워크 이벤트, 로그온/로그오프 이벤트, 레지스트리 이벤트 등 다양한 유형의 보안 이벤트를 수집합니다.
  4. 특징
    • 실시간 탐지 및 대응: 실시간으로 위협을 탐지하고 대응할 수 있습니다.
    • 위협 인텔리전스: FireEye의 위협 인텔리전스 데이터베이스와 연동하여 최신 위협 정보를 제공합니다.
    • 중앙 집중식 관리: 여러 엔드포인트에서 수집된 데이터를 중앙에서 관리하고 분석할 수 있습니다.

osquery 벌크 수집

  1. 데이터 수집 방식
    • 에이전트 기반: osquery는 엔드포인트에 설치된 에이전트를 통해 데이터를 수집합니다.
    • 쿼리 기반: osquery는 SQL과 유사한 쿼리 언어를 사용하여 다양한 시스템 정보를 수집합니다.
  2. 데이터 저장 위치
    • 로컬 SQLite 데이터베이스: 수집된 데이터는 로컬 시스템의 SQLite 데이터베이스에 저장됩니다.
  3. 이벤트 유형
    • 시스템 정보: 파일 시스템, 프로세스, 네트워크 연결, 레지스트리, 사용자 활동 등을 포함한 다양한 시스템 정보를 수집합니다.
  4. 특징
    • 유연성: SQL과 유사한 언어를 사용하여 다양한 시스템 정보를 쿼리할 수 있는 유연성을 제공합니다.
    • 로컬 데이터 저장: 수집된 데이터는 로컬 SQLite 데이터베이스에 저장되며, 필요한 경우 외부 서버로 전송할 수 있습니다.
    • 확장성: 오픈 소스 기반으로 다양한 플러그인과 확장이 가능하여 사용자 맞춤형 쿼리를 작성할 수 있습니다.

비교 요약

데이터 수집 방식 에이전트 기반, API 호출 에이전트 기반, 쿼리 기반
데이터 저장 위치 중앙 집중식 관리 서버 로컬 SQLite 데이터베이스
데이터 접근 방식 관리 서버를 통한 API 접근 로컬 쿼리를 통한 접근
이벤트 유형 다양한 보안 이벤트 시스템 정보
실시간 탐지 및 대응 가능 주기적 쿼리 실행
위협 인텔리전스 FireEye 위협 인텔리전스 연동 직접 연동 필요
확장성 제한적 (주로 FireEye 솔루션) 오픈 소스 기반, 높은 확장성

벌크 수집 기능 비교

FireEye HX

  • 목적: 주로 보안 이벤트의 실시간 탐지와 대응을 위한 중앙 집중식 수집 및 관리.
  • 방법: API를 통해 특정 기간 동안 대량의 보안 이벤트 데이터를 한 번에 수집.
  • 유스 케이스: 공격 탐지, 위협 대응, 보안 정책 준수 확인.

osquery

  • 목적: 시스템의 다양한 상태와 활동을 유연하게 모니터링하고 분석.
  • 방법: SQL과 유사한 쿼리를 주기적으로 실행하여 필요한 데이터를 로컬 데이터베이스에 저장하고, 필요한 경우 외부로 전송.
  • 유스 케이스: 시스템 모니터링, 감사 로그 수집, 규정 준수 확인, 위협 사냥.

 
FireEye HX는 주로 보안 이벤트의 실시간 탐지와 대응에 중점을 두며, 중앙 집중식으로 데이터를 수집하고 관리합니다. 반면, osquery는 시스템의 다양한 상태와 활동을 유연하게 모니터링하고 분석할 수 있으며, 로컬 데이터베이스에 데이터를 저장하여 필요한 경우 외부로 전송할 수 있습니다.
 
두 도구는 각기 다른 장점과 사용 사례를 가지고 있으며, 조직의 보안 요구사항에 따라 적절한 도구를 선택하거나 병행해서 사용할 수 있습니다. FireEye HX는 실시간 위협 탐지와 대응이 필요한 환경에 적합하고, osquery는 유연하고 확장 가능한 시스템 모니터링이 필요한 환경에 적합합니다.
 
FireEye HX, osquery, Wazuh는 모두 보안 이벤트 수집 및 분석 도구이지만, 각기 다른 접근 방식을 취하고 있습니다. 이들의 주요 기능과 데이터 수집 및 관리 방식을 비교하여 차이점을 이해해보겠습니다.

FireEye HX

  1. 데이터 수집 방식
    • 에이전트 기반: FireEye HX 에이전트는 엔드포인트에 설치되어 실시간으로 보안 이벤트를 수집합니다.
    • API 호출: 중앙 관리 서버에 의해 수집된 데이터를 API를 통해 접근할 수 있습니다.
  2. 데이터 저장 위치
    • 중앙 집중식 관리 서버: 수집된 데이터는 FireEye 관리 서버에 저장됩니다.
  3. 이벤트 유형
    • 다양한 보안 이벤트: 파일 이벤트, 프로세스 이벤트, 네트워크 이벤트, 로그온/로그오프 이벤트, 레지스트리 이벤트 등 다양한 보안 이벤트를 수집합니다.
  4. 특징
    • 실시간 탐지 및 대응: 실시간으로 위협을 탐지하고 대응할 수 있습니다.
    • 위협 인텔리전스: FireEye의 위협 인텔리전스와 연동하여 최신 위협 정보를 제공합니다.
    • 중앙 집중식 관리: 여러 엔드포인트에서 수집된 데이터를 중앙에서 관리하고 분석할 수 있습니다.

osquery

  1. 데이터 수집 방식
    • 에이전트 기반: osquery는 엔드포인트에 설치된 에이전트를 통해 데이터를 수집합니다.
    • 쿼리 기반: SQL과 유사한 쿼리 언어를 사용하여 다양한 시스템 정보를 수집합니다.
  2. 데이터 저장 위치
    • 로컬 SQLite 데이터베이스: 수집된 데이터는 로컬 시스템의 SQLite 데이터베이스에 저장됩니다.
  3. 이벤트 유형
    • 시스템 정보: 파일 시스템, 프로세스, 네트워크 연결, 레지스트리, 사용자 활동 등 다양한 시스템 정보를 수집합니다.
  4. 특징
    • 유연성: SQL과 유사한 언어를 사용하여 다양한 시스템 정보를 쿼리할 수 있는 유연성을 제공합니다.
    • 로컬 데이터 저장: 수집된 데이터는 로컬 SQLite 데이터베이스에 저장되며, 필요한 경우 외부 서버로 전송할 수 있습니다.
    • 확장성: 오픈 소스 기반으로 다양한 플러그인과 확장이 가능하여 사용자 맞춤형 쿼리를 작성할 수 있습니다.

Wazuh

  1. 데이터 수집 방식
    • 에이전트 기반: Wazuh 에이전트는 엔드포인트에 설치되어 로그와 보안 이벤트를 수집합니다.
    • 중앙 집중식 서버: 수집된 데이터는 Wazuh 서버로 전송되어 중앙에서 관리됩니다.
  2. 데이터 저장 위치
    • 중앙 집중식 관리 서버: 수집된 데이터는 Elasticsearch와 같은 데이터베이스에 저장됩니다.
  3. 이벤트 유형
    • 다양한 보안 이벤트: 시스템 로그, 파일 무결성 모니터링(FIM), 네트워크 로그, 규정 준수 데이터 등을 포함한 다양한 보안 이벤트를 수집합니다.
  4. 특징
    • 통합 보안 관리: 여러 엔드포인트와 로그 소스에서 수집된 데이터를 통합하여 관리합니다.
    • 규정 준수 관리: PCI DSS, HIPAA 등 다양한 규정 준수 요구사항을 지원합니다.
    • 오픈 소스: 오픈 소스 기반으로 다양한 커뮤니티와의 협업이 가능합니다.

비교 요약

데이터 수집 방식 에이전트 기반, API 호출 에이전트 기반, 쿼리 기반 에이전트 기반
데이터 저장 위치 중앙 집중식 관리 서버 로컬 SQLite 데이터베이스 중앙 집중식 관리 서버 (Elasticsearch)
데이터 접근 방식 관리 서버를 통한 API 접근 로컬 쿼리를 통한 접근 중앙 관리 서버를 통한 접근
이벤트 유형 다양한 보안 이벤트 (파일, 프로세스 등) 시스템 정보 (파일 시스템, 프로세스 등) 다양한 보안 이벤트 (로그, FIM, 네트워크 등)
실시간 탐지 및 대응 가능 주기적 쿼리 실행 가능
위협 인텔리전스 FireEye 위협 인텔리전스 연동 직접 연동 필요 규정 준수 요구사항 지원
확장성 제한적 (주로 FireEye 솔루션) 오픈 소스 기반, 높은 확장성 오픈 소스 기반, 통합 보안 관리
  • FireEye HX는 실시간 위협 탐지와 대응에 중점을 두며, 중앙 집중식으로 데이터를 관리합니다. FireEye의 위협 인텔리전스와의 통합이 강점입니다.
  • osquery는 시스템의 다양한 상태와 활동을 유연하게 모니터링하고 분석할 수 있으며, 로컬 데이터베이스에 데이터를 저장하여 필요한 경우 외부로 전송할 수 있습니다.
  • Wazuh는 통합 보안 관리와 규정 준수 관리를 강조하며, 여러 소스에서 수집된 데이터를 중앙에서 관리하고 분석할 수 있습니다. Elasticsearch와의 통합이 강점입니다.

 
이 세 도구는 각기 다른 강점과 사용 사례를 가지고 있으며, 조직의 보안 요구사항에 따라 적절한 도구를 선택하거나 병행해서 사용할 수 있습니다. FireEye HX는 실시간 탐지와 대응이 필요한 환경에, osquery는 유연하고 확장 가능한 시스템 모니터링이 필요한 환경에, Wazuh는 통합 보안 관리와 규정 준수 관리가 필요한 환경에 적합합니다.
 
FireEye HX, osquery, Wazuh는 모두 보안 이벤트를 수집하고 분석할 수 있는 도구입니다. 그러나 이들이 수집하는 정보 유형에는 공통점과 차이점이 있습니다. 아래에서 각 도구를 통해 탐지 및 기록할 수 있는 정보 유형을 비교하고, 공통적으로 수집할 수 있는 정보와 각기 다른 정보를 나열하겠습니다.

공통적으로 수집 가능한 정보 유형

  1. 파일 이벤트
    • FireEye HX: 파일 생성, 수정, 삭제 이벤트를 수집.
    • osquery: 파일 시스템 모니터링을 통해 파일 변경 사항을 쿼리.
    • Wazuh: 파일 무결성 모니터링(FIM)을 통해 파일 변경 이벤트를 기록.
  2. 프로세스 이벤트
    • FireEye HX: 프로세스 시작, 종료, 부모-자식 관계 등을 수집.
    • osquery: 실행 중인 프로세스 정보와 관련된 다양한 이벤트를 쿼리.
    • Wazuh: 프로세스 생성 및 종료 이벤트를 기록.
  3. 네트워크 이벤트
    • FireEye HX: 네트워크 연결 시도, 연결 성공, 실패 이벤트를 수집.
    • osquery: 네트워크 연결 상태와 관련된 정보를 쿼리.
    • Wazuh: 네트워크 로그를 통해 연결 이벤트를 기록.
  4. 로그온/로그오프 이벤트
    • FireEye HX: 사용자 로그온 및 로그오프 활동을 모니터링.
    • osquery: 사용자 로그인 세션과 관련된 정보를 쿼리.
    • Wazuh: 사용자 로그인 및 로그오프 이벤트를 기록.
  5. 레지스트리 이벤트 (Windows 환경)
    • FireEye HX: 레지스트리 키 및 값의 생성, 삭제, 수정 이벤트를 수집.
    • osquery: 레지스트리 키 및 값의 상태를 쿼리.
    • Wazuh: 레지스트리 변경 이벤트를 기록.

각기 다른 정보 유형

FireEye HX

  1. 악성 코드 탐지 이벤트
    • FireEye의 위협 인텔리전스와 연동하여 악성 코드 탐지 이벤트를 수집.
  2. 정책 위반 이벤트
    • 설정된 보안 정책을 위반한 활동에 대한 정보를 수집.
  3. 위협 인텔리전스 연동
    • FireEye의 글로벌 위협 인텔리전스 데이터베이스와 연동된 위협 정보 수집.

osquery

  1. 시스템 정보
    • 하드웨어 정보, 소프트웨어 설치 상태, 구성 설정 등 다양한 시스템 정보를 쿼리.
  2. 사용자 정의 쿼리
    • 사용자가 정의한 다양한 쿼리를 통해 특정 시스템 상태나 이벤트를 수집.

Wazuh

  1. 규정 준수 데이터
    • PCI DSS, HIPAA 등 다양한 규정 준수 요구사항에 따른 데이터 수집.
  2. 로그 분석
    • 다양한 로그 소스(시스템 로그, 애플리케이션 로그 등)를 수집하고 분석.
  3. 보안 구성 평가(SCA)
    • 시스템의 보안 구성 상태를 평가하고 관련 데이터를 수집.

비교 요약

파일 이벤트 지원 지원 지원
프로세스 이벤트 지원 지원 지원
네트워크 이벤트 지원 지원 지원
로그온/로그오프 이벤트 지원 지원 지원
레지스트리 이벤트 지원 지원 지원
악성 코드 탐지 지원 직접 지원 없음 지원
정책 위반 이벤트 지원 직접 지원 없음 직접 지원 없음
위협 인텔리전스 연동 지원 직접 지원 없음 직접 지원 없음
시스템 정보 기본 시스템 정보 광범위한 시스템 정보 기본 시스템 정보
사용자 정의 쿼리 제한적 지원 제한적
규정 준수 데이터 제한적 직접 지원 없음 지원
로그 분석 제한적 직접 지원 없음 지원
보안 구성 평가 제한적 직접 지원 없음 지원
  • FireEye HX는 실시간 위협 탐지, 악성 코드 탐지, 정책 위반 이벤트 등 보안 중심의 데이터를 집중적으로 수집하고, FireEye의 위협 인텔리전스와 연동하여 강력한 보안 탐지 기능을 제공합니다.
  • osquery는 SQL과 유사한 쿼리 언어를 사용하여 다양한 시스템 정보를 유연하게 수집하고 분석할 수 있으며, 사용자 정의 쿼리를 통해 시스템의 상태를 세밀하게 모니터링할 수 있습니다.
  • Wazuh는 통합 보안 관리와 규정 준수 데이터 수집에 중점을 두며, 다양한 로그 소스와 시스템 상태를 중앙 집중식으로 관리하고 분석할 수 있습니다.

 
이러한 도구들은 각기 다른 강점과 사용 사례를 가지고 있으며, 조직의 보안 요구사항에 따라 적절한 도구를 선택하거나 병행해서 사용할 수 있습니다.

728x90

댓글