ServiceNow Security 로그 수집
다음에서 지원:
Google SecOps
SIEM
개요
이 파서는 ServiceNow JSON 로그에서 보안 이벤트 데이터를 추출하여 관련 필드를 UDM에 매핑합니다. 로그인 및 권한 변경과 같은 다양한 이벤트 유형을 처리하고, 주 구성원/타겟 사용자 정보, IP 주소, 공급업체 및 제품 세부정보와 같은 메타데이터를 채웁니다.
시작하기 전에
- Google SecOps 인스턴스가 있는지 확인합니다.
- ServiceNow 보안에 대한 권한이 있는지 확인합니다.
ServiceNow 보안 로그를 수집하도록 Google SecOps에서 피드 구성
- SIEM 설정 > 피드로 이동합니다.
- 새로 추가를 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다 (예: ServiceNow 보안 로그).
- 소스 유형으로 Webhook을 선택합니다.
- 로그 유형으로 ServiceNow 보안을 선택합니다.
- 다음을 클릭합니다.
- 선택사항: 다음 입력 파라미터의 값을 지정합니다.
- 분할 구분 기호: 로그 줄을 구분하는 데 사용되는 구분 기호입니다(예:
\n
). - 애셋 네임스페이스: 애셋 네임스페이스입니다.
- 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
- 분할 구분 기호: 로그 줄을 구분하는 데 사용되는 구분 기호입니다(예:
- 다음을 클릭합니다.
- 확정 화면에서 피드 구성을 검토한 다음 제출을 클릭합니다.
- 보안 비밀 키 생성을 클릭하여 이 피드를 인증하기 위한 보안 비밀 키를 생성합니다.
- 비밀 키를 복사하여 저장합니다. 이 보안 비밀 키는 다시 볼 수 없습니다. 필요한 경우 새 보안 비밀 키를 재생성할 수 있지만 이 작업을 하면 이전 보안 비밀 키는 더 이상 사용할 수 없게 됩니다.
- 세부정보 탭의 엔드포인트 정보 필드에서 피드 엔드포인트 URL을 복사합니다. 클라이언트 애플리케이션에서 이 엔드포인트 URL을 지정해야 합니다.
- 완료를 클릭합니다.
웹훅 피드에 대한 API 키 만들기
Google Cloud 콘솔 > 사용자 인증 정보로 이동합니다.
사용자 인증 정보 만들기를 클릭한 후 API 키를 선택합니다.
Google Security Operations API에 대한 API 키 액세스를 제한합니다.
엔드포인트 URL 지정
- 클라이언트 애플리케이션에서 웹훅 피드에 제공된 HTTPS 엔드포인트 URL을 지정합니다.
다음 형식의 커스텀 헤더의 일부로 API 키와 보안 비밀 키를 지정하여 인증을 사용 설정합니다.
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
권장사항: URL에 API 키를 지정하는 대신 헤더로 지정하세요.
웹훅 클라이언트가 커스텀 헤더를 지원하지 않는 경우 다음 형식의 쿼리 매개변수를 사용하여 API 키와 보안 비밀 키를 지정할 수 있습니다.
ENDPOINT_URL?key=API_KEY&secret=SECRET
다음을 바꿉니다.
ENDPOINT_URL
: 피드 엔드포인트 URL입니다.API_KEY
: Google SecOps에 인증하기 위한 API 키입니다.SECRET
: 피드를 인증하기 위해 생성한 보안 비밀 키입니다.
ServiceNow에서 Webhook 구성
- 권한 있는 계정으로 ServiceNow 보안에 로그인합니다.
- 구성 > 모니터링 > 연결로 이동합니다.
- 추가 를 클릭합니다.
- Webhook을 선택합니다.
- 다음 매개변수의 값을 지정합니다.
- 이름: 웹훅을 설명하는 이름을 입력합니다 (예: Google SecOps).
- URL: API_KEY 및 SECRET과 함께 Google SecOps ENDPOINT_URL을 입력합니다.
- 저장을 클릭하여 웹훅 구성을 완료합니다.
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'으로 설정합니다. |