IBM Security Access Manager 로그 수집

다음에서 지원:

이 문서에서는 Bindplane을 사용하여 IBM Security Access Manager 로그를 Google Security Operations로 수집하는 방법을 설명합니다.

IBM Verify Identity Access (이전 명칭: IBM Security Access Manager / IBM Security Verify Access)는 액세스 관리, 웹 보안, 인증 서비스를 제공하는 네트워크 어플라이언스 기반 보안 솔루션입니다. 역방향 프록시 아키텍처 (WebSEAL)를 사용하여 웹 기반 리소스의 보안 정책을 적용하고 보안 모니터링에 중요한 감사, 인증, 승인, 시스템 로그를 생성합니다.

시작하기 전에

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

  • Google SecOps 인스턴스
  • Windows Server 2016 이상 또는 systemd가 설치된 Linux 호스트
  • Bindplane 에이전트와 IBM Verify Identity Access 어플라이언스 간의 네트워크 연결
  • 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있는지 확인
  • IBM Verify Identity Access Local Management Interface (LMI)에 대한 권한 액세스

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
    
  3. 설치가 완료될 때까지 기다립니다.

  4. 다음을 실행하여 설치를 확인합니다.

    sc query observiq-otel-collector
    

    서비스가 실행 중으로 표시되어야 합니다.

Linux 설치

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

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. 설치가 완료될 때까지 기다립니다.

  4. 다음을 실행하여 설치를 확인합니다.

    sudo systemctl status observiq-otel-collector
    

    서비스가 활성 (실행 중)으로 표시되어야 합니다.

추가 설치 리소스

추가 설치 옵션 및 문제 해결은 Bindplane 에이전트 설치 가이드를 참고하세요.

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

구성 파일 찾기

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

구성 파일 설정

  • config.yaml의 전체 콘텐츠를 다음 구성으로 바꿉니다.

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: 'IBM_SAM'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    

구성 매개변수

다음 자리표시자를 바꿉니다.

  • 수신기 구성:

    • listen_address: Bindplane 에이전트가 수신되는 syslog 메시지를 수신하는 IP 주소와 포트입니다. 0.0.0.0:514를 사용하여 포트 514의 모든 인터페이스에서 수신 대기합니다. 514이 이미 사용 중이거나 1514과 같은 권한이 없는 포트를 선호하는 경우 포트를 변경합니다.
    • UDP 대신 TCP를 사용하려면 receivers 섹션과 pipelines 섹션 모두에서 udplog을 tcplog로 바꿉니다.
  • 내보내기 도구 구성:

    • creds_file_path: 이전에 다운로드한 수집 인증 파일의 전체 경로입니다.
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: 이전에 복사한 Google SecOps 고객 ID입니다.
    • endpoint: 지역 엔드포인트 URL:
      • 미국: malachiteingestion-pa.googleapis.com
      • 유럽: europe-malachiteingestion-pa.googleapis.com
      • 아시아: asia-southeast1-malachiteingestion-pa.googleapis.com
      • 전체 목록은 리전 엔드포인트를 참고하세요.
    • log_type: IBM_SAM로 설정해야 합니다.

구성 파일 저장

수정 후 파일을 저장합니다.

  • Linux: Ctrl+O, Enter, Ctrl+X 순으로 누릅니다.
  • Windows: 파일 > 저장을 클릭합니다.

변경사항을 적용하려면 Bindplane 에이전트를 다시 시작하세요.

Linux에서 Bindplane 에이전트를 다시 시작하려면 다음을 실행하세요.

  1. 다음 명령어를 실행합니다.

    sudo systemctl restart observiq-otel-collector
    
  2. 서비스가 실행 중인지 확인합니다.

    sudo systemctl status observiq-otel-collector
    
  3. 로그에서 오류를 확인합니다.

    sudo journalctl -u observiq-otel-collector -f
    

Windows에서 Bindplane 에이전트를 다시 시작하려면 다음을 실행하세요.

  1. 다음 옵션 중 하나를 선택합니다.

    • 관리자 권한으로 명령 프롬프트 또는 PowerShell:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • 서비스 콘솔:

      1. Win+R 키를 누르고 services.msc를 입력한 다음 Enter 키를 누릅니다.
      2. observIQ OpenTelemetry Collector를 찾습니다.
      3. 마우스 오른쪽 버튼을 클릭하고 다시 시작을 선택합니다.
  2. 서비스가 실행 중인지 확인합니다.

    sc query observiq-otel-collector
    
  3. 로그에서 오류를 확인합니다.

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    

IBM Verify Identity Access에서 syslog 전달 구성

원격 시스템 로그 서버 정의 추가

  1. IBM Verify Identity Access Local Management Interface (LMI)에 로그인합니다.
  2. 모니터 > 로그 > 원격 Syslog 전달로 이동합니다.
  3. 원격 Syslog 전달 페이지에서 추가를 클릭합니다.
  4. 다음 구성 세부정보를 제공합니다.
    • 서버: Bindplane 에이전트 호스트의 IP 주소 또는 호스트 이름을 입력합니다 (예: 192.168.1.100).
    • 포트: Bindplane 에이전트가 수신 대기하는 포트 번호를 입력합니다 (예: 514).
    • 프로토콜: Bindplane 에이전트 구성의 udplog 수신기와 일치하도록 UDP를 선택합니다. tcplog로 Bindplane 에이전트를 구성한 경우 TCP를 선택합니다.
    • 형식: syslog 메시지 형식을 선택합니다.
      • BSD Syslog 프로토콜 - RFC 3164 형식 (가장 광범위한 호환성에 권장됨)
      • Syslog 프로토콜 - RFC 5424 형식입니다.
    • 디버그: 문제 해결이 필요한 경우를 제외하고 선택 해제된 상태로 둡니다. 사용 설정하면 애플리케이션 로그 파일 보기 페이지에서 액세스할 수 있는 rsyslog_forwarder 로그 파일에 추가 디버그 정보가 작성됩니다.
  5. 저장을 클릭합니다.

원격 syslog 서버의 로그 소스 구성

  1. 원격 시스템 로그 전달 페이지에서 생성한 원격 시스템 로그 서버 항목을 선택합니다.
  2. 소스를 클릭합니다.
  3. 추가를 클릭하여 로그 소스를 추가합니다.
  4. 다음 구성 세부정보를 제공합니다.
    • 이름: 드롭다운 목록에서 로그 소스를 선택합니다. 사용 가능한 로그 소스는 다음과 같습니다.
      • LMI 메시지 - LMI 애플리케이션 메시지
      • LMI 추적 - LMI 추적 및 디버그 로그
      • LMI 액세스 - LMI HTTP 액세스 로그
      • 런타임 메시지 - 런타임 환경 메시지
      • 런타임 추적 - 런타임 추적 및 디버그 로그
      • 런타임 감사 - 런타임 감사 이벤트 (인증, 승인)
      • 런타임 로그 - 런타임 애플리케이션 로그
      • WebSEAL - 웹 역방향 프록시 로그 (인스턴스 이름 및 로그 파일을 선택해야 함)
      • 인증 서버 - 인증 서버 로그 (인스턴스 이름 및 로그 파일을 선택해야 함)
      • 정책 서버 - 정책 서버 로그 (로그 파일을 선택해야 함)
      • 내장 사용자 레지스트리 - 내장 LDAP 사용자 레지스트리 로그
      • 클러스터 - 클러스터 관리 로그
      • 시스템: 운영체제 수준 로그
      • DSC - 분산 세션 캐시 로그
      • FELB - 프런트엔드 부하 분산기 로그
    • 인스턴스 이름: 이 필드는 이름 필드에서 WebSEAL 또는 인증 서버를 선택한 경우에만 사용할 수 있습니다. 드롭다운 목록에서 인스턴스 이름을 선택합니다 (예: default).
    • 로그 파일: 이 필드는 이름 필드에서 WebSEAL, 인증 서버, 정책 서버 또는 런타임 로그를 선택한 경우에 사용할 수 있습니다. 드롭다운 목록에서 특정 로그 파일을 선택합니다.
    • 태그: 이 로그 소스의 고유한 태그 이름을 입력합니다. 태그에 공백이 포함되어서는 안 됩니다 (예: WebSEAL_Audit 또는 RuntimeAudit).
    • 기능: 전달된 로그 항목의 syslog 기능 카테고리를 선택합니다 (예: local0, local1, auth, user).
    • 심각도: 모든 로그 항목을 캡처하려면 정보를 선택합니다.
  5. 확인을 클릭합니다.
  6. 로그 소스를 추가하려면 전달하려는 소스마다 3~5단계를 반복합니다.

  7. 저장을 클릭하여 로그 소스 구성을 적용합니다.

  8. 변경사항을 활성화하려면 페이지 상단으로 이동하여 대기 중인 변경사항 배포를 클릭합니다. syslog 전달 구성은 배포될 때까지 활성화되지 않습니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 로직
sha256_value additional.fields {key: 'sha256_value', value: {string_value: sha256_value}} 및 {key: 'connection_type', value: {string_value: connection_type}} 맵과 병합됨
connection_type additional.fields
dvc_ip intermediary.hostname dvc_ip가 유효한 IP가 아닌 경우 값이 직접 복사됨
dvc_ip intermediary.ip 유효한 IP인 경우 dvc_ip로 설정합니다. 유효하고 src_ip 또는 dst_ip와 같지 않고 비어 있지 않고 '-'가 아닌 ip_address의 추가 IP를 병합합니다.
ip_address intermediary.ip
ts metadata.collected_timestamp yyyy-MM-ddTHH:mm:ss를 사용하여 ts2에서 파싱됩니다(있는 경우). 그렇지 않으면 ISO8601, MMM dd HH:mm:ss, MMM d HH:mm:ss를 사용하여 ts에서 파싱됩니다.
ts2 metadata.collected_timestamp
설명 metadata.description 값이 직접 복사됨
타임스탬프 metadata.event_timestamp 날짜 형식 dd/MMM/yyyy:HH:mm:ss Z 또는 yyyy-MM-dd-HH:mm:ss.SSSZZI를 사용하여 파싱됩니다.
src_ip metadata.event_type 주 구성원 (src_ip 또는 src_host)과 대상 (dst_ip 또는 target_hostname), http (method 또는 response_code)가 있는 경우 'NETWORK_HTTP', 주 구성원과 대상이 있는 경우 'NETWORK_CONNECTION', 주 구성원이 있는 경우 'STATUS_UPDATE', 그 외의 경우 'GENERIC_EVENT'로 설정됩니다.
src_host metadata.event_type
dst_ip metadata.event_type
target_hostname metadata.event_type
메서드 metadata.event_type
response_code metadata.event_type
product_event_type metadata.product_event_type 값이 직접 복사됨
metadata.product_name metadata.product_name 'IBM_SAM'으로 설정
metadata.vendor_name metadata.vendor_name 'IBM'으로 설정
proto network.application_protocol HTTP, HTTPS인 경우 값이 직접 복사됨
버전 network.application_protocol_version 값이 직접 복사됨
메서드 network.http.method 비어 있지 않으면 method_value의 값, 그렇지 않으면 method
method_value network.http.method
response_code network.http.response_code 정수로 변환됨
ip_protocol_value network.ip_protocol TCP, UDP, ICMP인 경우 값이 직접 복사됨
rcv_bytes network.received_bytes uint로 변환됨
sent_bytes network.sent_bytes uint로 변환됨
request_id network.session_id 값이 직접 복사됨
src_application principal.application 값이 직접 복사됨
src_host principal.asset.hostname 값이 직접 복사됨
src_ip principal.asset.ip 비어 있지 않고, 공백, null, N/A, -가 아닌 경우 값이 바로 복사됩니다.
file_name principal.file.full_path 값이 직접 복사됨
src_host principal.hostname 값이 직접 복사됨
src_ip principal.ip 비어 있지 않고, 공백, null, N/A, -가 아닌 경우 값이 바로 복사됩니다.
src_port principal.port 정수로 변환됨
pid principal.process.pid 값이 직접 복사됨
src_resource principal.resource.name 값이 직접 복사됨
user_name principal.user.userid 인증되지 않았거나 비어 있지 않은 경우 값이 직접 복사됨
설명 security_result.action 설명에 '보안 연결을 설정할 수 없음' 또는 '확인할 수 없음' 또는 '만료됨'이 포함된 경우 'BLOCK'으로 설정됩니다.
줄이는 것을 security_result.severity 값이 직접 복사되었으며 WARNING이 MEDIUM에 매핑됨
user_name security_result.summary user_name == 'unauthenticated'인 경우 'unauthenticated'로 설정됩니다.
target_hostname target.asset.hostname 값이 직접 복사됨
dst_ip target.asset.ip 비어 있지 않고, 공백, null, N/A, -가 아닌 경우 값이 바로 복사됩니다.
target_hostname target.hostname 값이 직접 복사됨
dst_ip target.ip 비어 있지 않고, 공백, null, N/A, -가 아닌 경우 값이 바로 복사됩니다.
url target.url url 및 url1에서 연결됨
url1 target.url
ip_protocol_value event.idm.read_only_udm.network.ip_protocol 변경 로그에서 매핑됨
method_value event.idm.read_only_udm.network.http.method 변경 로그에서 매핑됨
sha256_value event.idm.read_only_udm.additional.fields 변경 로그에서 매핑됨

변경 로그

이 파서의 변경 로그 보기

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