ServiceNow Security 로그 수집

다음에서 지원:

개요

이 파서는 ServiceNow JSON 로그에서 보안 이벤트 데이터를 추출하여 관련 필드를 UDM에 매핑합니다. 로그인 및 권한 변경과 같은 다양한 이벤트 유형을 처리하고, 주 구성원/타겟 사용자 정보, IP 주소, 공급업체 및 제품 세부정보와 같은 메타데이터를 채웁니다.

시작하기 전에

  • Google SecOps 인스턴스가 있는지 확인합니다.
  • ServiceNow 보안에 대한 권한이 있는지 확인합니다.

ServiceNow 보안 로그를 수집하도록 Google SecOps에서 피드 구성

  1. SIEM 설정 > 피드로 이동합니다.
  2. 새로 추가를 클릭합니다.
  3. 피드 이름 필드에 피드 이름을 입력합니다 (예: ServiceNow 보안 로그).
  4. 소스 유형으로 Webhook을 선택합니다.
  5. 로그 유형으로 ServiceNow 보안을 선택합니다.
  6. 다음을 클릭합니다.
  7. 선택사항: 다음 입력 파라미터의 값을 지정합니다.
    • 분할 구분 기호: 로그 줄을 구분하는 데 사용되는 구분 기호입니다(예: \n).
    • 애셋 네임스페이스: 애셋 네임스페이스입니다.
    • 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
  8. 다음을 클릭합니다.
  9. 확정 화면에서 피드 구성을 검토한 다음 제출을 클릭합니다.
  10. 보안 비밀 키 생성을 클릭하여 이 피드를 인증하기 위한 보안 비밀 키를 생성합니다.
  11. 비밀 키를 복사하여 저장합니다. 이 보안 비밀 키는 다시 볼 수 없습니다. 필요한 경우 새 보안 비밀 키를 재생성할 수 있지만 이 작업을 하면 이전 보안 비밀 키는 더 이상 사용할 수 없게 됩니다.
  12. 세부정보 탭의 엔드포인트 정보 필드에서 피드 엔드포인트 URL을 복사합니다. 클라이언트 애플리케이션에서 이 엔드포인트 URL을 지정해야 합니다.
  13. 완료를 클릭합니다.

웹훅 피드에 대한 API 키 만들기

  1. Google Cloud 콘솔 > 사용자 인증 정보로 이동합니다.

    사용자 인증 정보로 이동

  2. 사용자 인증 정보 만들기를 클릭한 후 API 키를 선택합니다.

  3. Google Security Operations API에 대한 API 키 액세스를 제한합니다.

엔드포인트 URL 지정

  1. 클라이언트 애플리케이션에서 웹훅 피드에 제공된 HTTPS 엔드포인트 URL을 지정합니다.
  2. 다음 형식의 커스텀 헤더의 일부로 API 키와 보안 비밀 키를 지정하여 인증을 사용 설정합니다.

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    권장사항: URL에 API 키를 지정하는 대신 헤더로 지정하세요.

  3. 웹훅 클라이언트가 커스텀 헤더를 지원하지 않는 경우 다음 형식의 쿼리 매개변수를 사용하여 API 키와 보안 비밀 키를 지정할 수 있습니다.

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

    다음을 바꿉니다.

    • ENDPOINT_URL: 피드 엔드포인트 URL입니다.
    • API_KEY: Google SecOps에 인증하기 위한 API 키입니다.
    • SECRET: 피드를 인증하기 위해 생성한 보안 비밀 키입니다.

ServiceNow에서 Webhook 구성

  1. 권한 있는 계정으로 ServiceNow 보안에 로그인합니다.
  2. 구성 > 모니터링 > 연결로 이동합니다.
  3. 추가 를 클릭합니다.
  4. Webhook을 선택합니다.
  5. 다음 매개변수의 값을 지정합니다.
    • 이름: 웹훅을 설명하는 이름을 입력합니다 (예: Google SecOps).
    • URL: API_KEYSECRET과 함께 Google SecOps ENDPOINT_URL을 입력합니다.
  6. 저장을 클릭하여 웹훅 구성을 완료합니다.

UDM 매핑

로그 필드 UDM 매핑 논리
created_by target.user.userid snc_user가 비어 있으면 target.user.userid에 매핑됩니다.
event metadata.product_event_type 원시 로그 필드 'event'에서 직접 매핑됩니다.
event_created metadata.event_timestamp.seconds date 필터를 사용하여 원시 로그 필드 'event_created'에서 초로 변환합니다.
ip_address principal.ip 빈 값이 아닌 경우 원시 로그 필드 'ip_address'에서 직접 매핑됩니다.
snc_user target.user.userid 비어 있지 않은 경우 원시 로그 필드 'snc_user'에서 직접 매핑됩니다.
사용자 principal.user.userid 비어 있지 않거나 'null'이 아닌 경우 원시 로그 필드 'user'에서 직접 매핑됩니다.
extensions.auth.type event 필드가 '로그인 실패', 'SNC 로그인', '관리자 로그인' 또는 '명의 도용'인 경우 'MACHINE'으로 설정합니다.
metadata.event_type event 필드가 '로그인 실패', 'SNC 로그인', '관리자 로그인' 또는 '명의 도용'인 경우 'USER_LOGIN'으로 설정합니다. event 필드가 '보안 승격'인 경우 'USER_CHANGE_PERMISSIONS'로 설정합니다.
metadata.log_type 'SERVICENOW_SECURITY'로 하드코딩되었습니다.
metadata.product_name 'SERVICENOW_SECURITY'로 하드코딩되었습니다.
metadata.vendor_name 'SERVICENOW'로 하드코딩됩니다.
principal.user.userid user 필드가 비어 있거나 'null'인 경우 'UNKNOWN'으로 설정합니다.