ManageEngine AD360 로그 수집

다음에서 지원:

이 문서에서는 Bindplane을 사용하여 ManageEngine AD360 로그를 Google Security Operations에 수집하는 방법을 설명합니다. 파서는 먼저 수신되는 로그 데이터를 정리하고 준비한 다음 일련의 grok 패턴을 사용하여 특정 이벤트 유형 및 메시지 형식을 기반으로 관련 필드를 추출합니다. 추출 후 코드는 추출된 필드를 통합 데이터 모델 (UDM)에 매핑하고, 특정 데이터 변환을 처리하며, 위치정보 및 보안 심각도와 같은 추가 컨텍스트로 데이터를 보강합니다.

시작하기 전에

다음 기본 요건이 충족되었는지 확인합니다.

  • Google SecOps 인스턴스
  • Windows 2016 이상 또는 systemd가 설치된 Linux 호스트
  • 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있음
  • ManageEngine AD360에 대한 권한 있는 액세스

Google SecOps 수집 인증 파일 가져오기

  1. Google SecOps 콘솔에 로그인합니다.
  2. SIEM 설정 > 수집 에이전트로 이동합니다.
  3. 수집 인증 파일을 다운로드합니다. Bindplane이 설치될 시스템에 파일을 안전하게 저장합니다.

Google SecOps 고객 ID 가져오기

  1. Google SecOps 콘솔에 로그인합니다.
  2. SIEM 설정 > 프로필로 이동합니다.
  3. 조직 세부정보 섹션에서 고객 ID를 복사하여 저장합니다.

Bindplane 에이전트 설치

다음 안내에 따라 Windows 또는 Linux 운영체제에 Bindplane 에이전트를 설치합니다.

Windows 설치

  1. 명령 프롬프트 또는 PowerShell을 관리자로 엽니다.
  2. 다음 명령어를 실행합니다.

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux 설치

  1. 루트 또는 sudo 권한으로 터미널을 엽니다.
  2. 다음 명령어를 실행합니다.

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

추가 설치 리소스

추가 설치 옵션은 설치 가이드를 참고하세요.

Syslog를 수집하여 Google SecOps로 전송하도록 Bindplane 에이전트 구성

  1. 구성 파일에 액세스합니다.
    • config.yaml 파일을 찾습니다. 일반적으로 Linux에서는 /etc/bindplane-agent/ 디렉터리에 있고 Windows에서는 설치 디렉터리에 있습니다.
    • 텍스트 편집기 (예: nano, vi, 메모장)를 사용하여 파일을 엽니다.
  2. 다음과 같이 config.yaml 파일을 수정합니다.

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: 'MANAGE_ENGINE_AD360'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    • 인프라에 필요한 대로 포트와 IP 주소를 바꿉니다.
    • <customer_id>를 실제 고객 ID로 바꿉니다.
    • Google SecOps 수집 인증 파일 가져오기 섹션에서 인증 파일이 저장된 경로로 /path/to/ingestion-authentication-file.json를 업데이트합니다.

Bindplane 에이전트를 다시 시작하여 변경사항 적용

  • Linux에서 Bindplane 에이전트를 다시 시작하려면 다음 명령어를 실행합니다.

    sudo systemctl restart bindplane-agent
    
  • Windows에서 Bindplane 에이전트를 다시 시작하려면 서비스 콘솔을 사용하거나 다음 명령어를 입력하면 됩니다.

    net stop BindPlaneAgent && net start BindPlaneAgent
    

ManageEngine AD360 Syslog 내보내기 구성

  1. AD360 웹 UI에 로그인합니다.
  2. 관리자 > 관리 > SIEM 통합으로 이동합니다.
  3. ADSelfService 구성요소 옆에 있는 지금 구성 링크를 클릭합니다.
  4. 다음 구성 세부정보를 제공합니다.
    • 서버 유형: Syslog를 선택합니다.
    • 서버 이름/IP: Bindplane 에이전트 IP 주소를 입력합니다.
    • 포트: Bindplane 에이전트 포트 번호를 입력합니다.
    • 프로토콜: UDP를 선택합니다.
    • Syslog 표준: RFC5 424를 선택합니다.
    • 고급 목록을 클릭합니다.
    • 심각도: 정보를 선택합니다.
  5. 구성을 클릭하여 저장합니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 논리
AccessControlRuleName security_result.rule_name AccessControlRuleName 필드에서 가져온 값(있는 경우), 그렇지 않으면 rule_name 필드에서 가져온 값
ACPolicy security_result.rule_labels.value ACPolicy 필드에서 가져온 값
action security_result.action_details UDM에 직접 매핑됨
action_id security_result.detection_fields.value action_id 필드에서 가져온 값
application_protocol network.application_protocol UDM에 직접 매핑됨
바이트 network.sent_bytes UDM에 직접 매핑됨
client_ip principal.ip UDM에 직접 매핑됨
ConnectionID network.session_id connection_id 필드에서 가져온 값(있는 경우), 그렇지 않으면 ConnectionID 필드에서 가져온 값, 그렇지 않으면 ses 필드에서 가져온 값
destination_ip target.ip UDM에 직접 매핑됨
destination_port target.port UDM에 직접 매핑됨
DeviceUUID target.asset_id DeviceUUID 필드에서 가져온 값(있는 경우), 그렇지 않으면 distinguished_name_device_id 필드에서 가져온 값
distinguished_name_device_id target.asset_id DeviceUUID 필드에서 가져온 값(있는 경우), 그렇지 않으면 distinguished_name_device_id 필드에서 가져온 값
distinguished_name_user target.user.userid UDM에 직접 매핑됨
DST : 디지털 서비스세 target.ip DST 필드에서 가져온 값(있는 경우), 그렇지 않으면 DstIP 필드에서 가져온 값
DPT target.port DPT 필드에서 가져온 값(있는 경우), 그렇지 않으면 DstPort 필드에서 가져온 값, 그렇지 않으면 destination_port 필드에서 가져온 값
DstIP target.ip DST 필드에서 가져온 값(있는 경우), 그렇지 않으면 DstIP 필드에서 가져온 값
DstPort target.port DPT 필드에서 가져온 값(있는 경우), 그렇지 않으면 DstPort 필드에서 가져온 값, 그렇지 않으면 destination_port 필드에서 가져온 값
EgressInterface additional.fields.value.string_value UDM에 직접 매핑됨
EgressZone target.location.name UDM에 직접 매핑됨
EventPriority security_result.severity EventPriority 필드의 값에 따라 다른 심각도 수준에 매핑됩니다.
exe principal.process.command_line UDM에 직접 매핑됨
geoip.city_name principal.location.city UDM에 직접 매핑됨
geoip.country_name principal.location.country_or_region UDM에 직접 매핑됨
geoip.latitude principal.location.region_latitude UDM에 직접 매핑됨
geoip.longitude principal.location.region_longitude UDM에 직접 매핑됨
http_status network.http.response_code UDM에 직접 매핑됨
id metadata.product_log_id UDM에 직접 매핑됨
IngressInterface additional.fields.value.string_value UDM에 직접 매핑됨
IngressZone principal.location.name UDM에 직접 매핑됨
LEN additional.fields.value.string_value UDM에 직접 매핑됨
message_number 매핑되지 않음
NAPPolicy security_result.rule_labels.value NAPPolicy 필드에서 가져온 값
network_direction network.direction UDM에 직접 매핑됨
OUT additional.fields.value.string_value UDM에 직접 매핑됨
pid target.process.pid UDM에 직접 매핑됨
ppid target.process.parent_process.pid UDM에 직접 매핑됨
PREC additional.fields.value.string_value UDM에 직접 매핑됨
principal_hostname principal.hostname UDM에 직접 매핑됨
product_event_type metadata.product_event_type UDM에 직접 매핑됨
프로토콜 network.ip_protocol PROTO 필드를 채우는 데 사용된 후 참고표를 사용하여 UDM에 매핑됩니다.
PROTO network.ip_protocol 프로토콜 번호를 기반으로 하는 참고표를 사용하여 UDM에 매핑되었습니다.
request_method network.http.method UDM에 직접 매핑됨
rule_name security_result.rule_name AccessControlRuleName 필드에서 가져온 값(있는 경우), 그렇지 않으면 rule_name 필드에서 가져온 값
ses network.session_id connection_id 필드에서 가져온 값(있는 경우), 그렇지 않으면 ConnectionID 필드에서 가져온 값, 그렇지 않으면 ses 필드에서 가져온 값
source_ip principal.ip UDM에 직접 매핑됨
source_port principal.port UDM에 직접 매핑됨
SPT principal.port SPT 필드에서 가져온 값(있는 경우), 그렇지 않으면 SrcPort 필드에서 가져온 값, 그렇지 않으면 source_port 필드에서 가져온 값
SRC principal.ip SRC 필드에서 가져온 값(있는 경우), 그렇지 않으면 SrcIP 필드에서 가져온 값, 그렇지 않으면 client_ip 필드에서 가져온 값
SrcIP principal.ip SRC 필드에서 가져온 값(있는 경우), 그렇지 않으면 SrcIP 필드에서 가져온 값, 그렇지 않으면 client_ip 필드에서 가져온 값
SrcPort principal.port SPT 필드에서 가져온 값(있는 경우), 그렇지 않으면 SrcPort 필드에서 가져온 값, 그렇지 않으면 source_port 필드에서 가져온 값
타임스탬프 metadata.event_timestamp UDM에 직접 매핑됨
TOS additional.fields.value.string_value UDM에 직접 매핑됨
TTL additional.fields.value.string_value UDM에 직접 매핑됨
URL target.url UDM에 직접 매핑됨
user_agent network.http.user_agent UDM에 직접 매핑됨
WINDOW additional.fields.value.string_value UDM에 직접 매핑됨
metadata.vendor_name 값이 MANAGE_ENGINE_AD360로 하드코딩됨
metadata.product_name 값이 MANAGE_ENGINE_AD360로 하드코딩됨
metadata.log_type 값이 MANAGE_ENGINE_AD360로 하드코딩됨
metadata.event_type SRCDST 필드가 모두 있는 경우 NETWORK_CONNECTION로 설정되고, SRC 또는 principal_hostname이 있는 경우 STATUS_UPDATE로 설정됩니다. 이러한 조건 중 어느 것도 충족되지 않으면 기본값은 GENERIC_EVENT입니다.

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.