ServiceNow CMDB 데이터 수집

다음에서 지원:

이 문서에서는 서드 파티 API를 사용하여 Google Security Operations 피드를 설정하여 ServiceNow CMDB 데이터를 수집하는 방법을 설명합니다.

시작하기 전에

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

  • Google SecOps 인스턴스
  • 관리 콘솔 액세스 권한이 있는 ServiceNow 인스턴스에 대한 권한 액세스
  • cmdb_read 역할이 있는 ServiceNow 사용자 계정 (읽기 액세스를 위한 최소 요구사항)
  • ServiceNow 인스턴스에서 REST API가 사용 설정되어 있어야 합니다 (기본적으로 사용 설정됨).

IP 허용 목록 구성

피드를 만들기 전에 ServiceNow 방화벽 또는 네트워크 설정에서 Google SecOps IP 범위를 허용 목록에 추가해야 합니다.

Google SecOps IP 범위 가져오기

ServiceNow에 IP 범위 추가

  1. 관리자로 ServiceNow 인스턴스에 로그인합니다.
  2. 모두 > 시스템 보안 > IP 주소 액세스 제어로 이동합니다.
  3. New(새로 만들기)를 클릭합니다.
  4. 다음 구성 세부정보를 제공합니다.
    • Type(유형): Allow(허용)를 선택합니다.
    • IP 주소: CIDR 표기법으로 oneGoogle SecOps IP 범위를 입력합니다 (예: 192.0.2.0/24).
    • 이름: 설명이 포함된 이름을 입력합니다 (예: GGoogle SecOps IP Range 1).
    • 활성: 규칙을 사용 설정하려면 체크박스를 선택합니다.
  5. 제출을 클릭합니다.
  6. 추가 Google SecOps IP 범위마다 3~5단계를 반복합니다.

ServiceNow API 액세스 구성

Google SecOps가 CMDB 데이터를 가져올 수 있도록 하려면 적절한 권한이 있는 ServiceNow 사용자를 만들어야 합니다.

  1. ServiceNow 관리 콘솔에 로그인합니다.
  2. 모두 > 사용자 관리 > 사용자로 이동합니다.
  3. New(새로 만들기)를 클릭합니다.
  4. 다음 구성 세부정보를 제공합니다.
    • 사용자 ID: 설명이 포함된 사용자 이름 (예: google_secops_integration)을 입력합니다.
    • 이름: Google를 입력합니다.
    • : SecOps Integration를 입력합니다.
    • 이메일: 알림을 받을 올바른 이메일 주소를 입력합니다.
    • 비밀번호: 비밀번호 설정을 클릭하고 안전한 비밀번호를 만듭니다.
    • 활성: 체크박스를 선택합니다.
    • 웹 서비스 액세스만: 체크박스를 선택합니다 (API 전용 액세스에 권장).
  5. 제출을 클릭합니다.

필수 권한 할당

  1. 사용자를 만든 후 사용자 레코드를 엽니다.
  2. 역할 섹션으로 이동합니다.
  3. 수정을 클릭합니다.
  4. 컬렉션 목록에서 다음 역할을 검색하여 추가합니다.
    • cmdb_read: CMDB 테이블에 대한 읽기 액세스 권한을 제공합니다.
  5. 저장을 클릭합니다.

API 사용자 인증 정보 기록

사용자를 만든 후 다음 사용자 인증 정보를 기록합니다.

  • 사용자 이름: 생성한 사용자 ID (예: google_secops_integration)
  • 비밀번호: 사용자에 대해 설정한 비밀번호
  • API 호스트 이름: ServiceNow 인스턴스 FQDN (예: myinstance.servicenow.com)
    • https:// 또는 경로를 포함하지 마세요.
    • 후행 슬래시를 포함하지 마세요.
  • 표 이름: 쿼리할 CMDB 표 (예: cmdb_ci, cmdb_ci_server, cmdb_ci_computer)

ServiceNow CMDB 테이블 이해하기

ServiceNow CMDB는 테이블의 계층 구조로 구성됩니다. 애셋 데이터 수집에 가장 일반적으로 사용되는 테이블은 다음과 같습니다.

테이블 이름 설명 사용 사례
cmdb_ci 기본 구성 항목 테이블 (모든 CI 테이블의 상위 테이블) 모든 구성 항목
cmdb_ci_server 서버 구성 항목 물리적 서버 및 가상 서버
cmdb_ci_computer 컴퓨터 구성 항목 워크스테이션, 노트북, 데스크톱
cmdb_ci_linux_server Linux 서버 구성 항목 특히 Linux 서버
cmdb_ci_win_server Windows 서버 구성 항목 특히 Windows 서버
cmdb_ci_vm_instance 가상 머신 인스턴스 가상 머신
cmdb_ci_network_adapter 네트워크 어댑터 네트워크 인터페이스 카드
cmdb_ci_ip_address IP 주소 IP 주소 레코드
cmdb_ci_service 비즈니스 서비스 서비스 카탈로그 항목
cmdb_ci_appl 애플리케이션 애플리케이션 구성 항목

REST API 액세스 확인

피드를 만들기 전에 ServiceNow API 사용자 인증 정보가 올바르게 작동하는지 확인하세요.

REST API 탐색기를 사용하여 테스트 (선택사항)

  1. 통합 사용자로 ServiceNow 인스턴스에 로그인합니다.
  2. 모두 > 시스템 웹 서비스 > REST > REST API 탐색기로 이동합니다.
  3. 네임스페이스 드롭다운에서 Table API를 선택합니다.
  4. 표에서 레코드 가져오기 (GET)를 선택합니다.
  5. 경로 매개변수에 테이블 이름을 입력합니다 (예: cmdb_ci).
  6. 보내기를 클릭합니다.
  7. 응답 상태가 200 OK이고 레코드가 반환되는지 확인합니다.

curl을 사용하여 테스트 (선택사항)

  • 또는 curl을 사용하여 API를 테스트합니다.

    curl "https://your-instance.service-now.com/api/now/table/cmdb_ci?sysparm_limit=10" \
    --request GET \
    --header "Accept: application/json" \
    --user 'your-username':'your-password'
    
    • 다음과 같이 바꿉니다.
      • your-instance.service-now.com: ServiceNow 인스턴스 호스트 이름
      • your-username: 통합 사용자 사용자 이름
      • your-password: 통합 사용자 비밀번호

성공적인 응답은 구성 항목이 포함된 JSON 데이터를 반환합니다.

피드 설정

피드를 구성하려면 다음 단계를 따르세요.

  1. SIEM 설정> 피드로 이동합니다.
  2. 새 피드 추가를 클릭합니다.
  3. 다음 페이지에서 단일 피드 구성을 클릭합니다.
  4. 피드 이름 필드에 피드 이름을 입력합니다 (예: ServiceNow CMDB - All CIs 또는 ServiceNow CMDB - Servers).
  5. 소스 유형으로 서드 파티 API를 선택합니다.
  6. 로그 유형으로 ServiceNow CMDB를 선택합니다.
  7. 다음을 클릭합니다.
  8. 다음 입력 매개변수의 값을 지정합니다.

    • 사용자 이름: ServiceNow 사용자 ID를 입력합니다 (예: google_secops_integration).
    • Secret: ServiceNow 사용자 비밀번호를 입력합니다. 중요: 민감한 필드입니다. 비밀번호는 암호화되어 있으며 저장한 후에는 볼 수 없습니다.
    • API 호스트 이름: ServiceNow 인스턴스의 정규화된 도메인 이름을 입력합니다.
      • 예: myinstance.servicenow.com
      • 포함하면 안 되는 항목:
        • 프로토콜 (https://)
        • 경로 (/api/now/table/개)
        • 후행 슬래시
    • 리전 인스턴스: ServiceNow 인스턴스가 특정 리전에 있는 경우 올바른 호스트 이름 형식을 사용합니다.
      • 표준: instance.service-now.com
      • 유럽 연합: instance.service-now.eu
      • 기타 지역: ServiceNow 관리자에게 확인
    • 테이블 이름: 쿼리할 ServiceNow CMDB 테이블을 입력합니다.
      • 예:
        • cmdb_ci (모든 구성 항목)
        • cmdb_ci_server (모든 서버)
        • cmdb_ci_computer (워크스테이션 및 컴퓨터)
        • cmdb_ci_linux_server (Linux 서버만 해당)
        • cmdb_ci_win_server (Windows 서버만 해당) 참고: 테이블 이름은 대소문자를 구분하며 정확히 일치해야 합니다. 피드당 하나의 테이블만 쿼리할 수 있습니다. 테이블을 여러 개 수집하려면 테이블마다 별도의 피드를 만드세요.
    • 애셋 네임스페이스: 애셋 네임스페이스입니다.
    • 수집 라벨: 이 피드의 이벤트에 적용할 라벨입니다.
  9. 다음을 클릭합니다.

  10. 확정 화면에서 새 피드 구성을 검토한 다음 제출을 클릭합니다.

설정이 완료되면 피드가 ServiceNow 인스턴스에서 CMDB 레코드를 가져오기 시작합니다. 테이블의 레코드 수에 따라 초기 동기화에 몇 분 정도 걸릴 수 있습니다.

여러 CMDB 테이블 수집

여러 CMDB 테이블의 데이터를 수집하려면 테이블마다 별도의 피드를 만드세요.

  1. 위의 단계를 사용하여 첫 번째 피드를 만듭니다 (예: cmdb_ci_server).
  2. 새 피드 추가를 클릭하여 피드를 추가합니다.
  3. 동일한 ServiceNow 사용자 인증 정보를 사용하되 다른 테이블 이름을 지정합니다.

구성 예:

피드 이름 테이블 이름 목적
ServiceNow CMDB - 서버 cmdb_ci_server 모든 서버 CI
ServiceNow CMDB - 컴퓨터 cmdb_ci_computer 워크스테이션 CI
ServiceNow CMDB - 네트워크 어댑터 cmdb_ci_network_adapter 네트워크 인터페이스 CI
ServiceNow CMDB - 애플리케이션 cmdb_ci_appl 애플리케이션 CI

필수 API 권한

통합 사용자에게는 다음 ServiceNow 권한이 필요합니다.

권한/역할 액세스 수준 목적
cmdb_read 읽기 CMDB 구성 항목 데이터 가져오기

추가 역할 (선택사항):

  • itil: CI를 만들거나 업데이트하기 위한 쓰기 액세스 권한이 필요한 경우 필요합니다 (Google SecOps 수집에는 필요하지 않음).
  • rest_api_explorer: 설정 중에 API 액세스를 테스트하는 데 유용합니다.

UDM 매핑 테이블

ServiceNow 필드 UDM 매핑 논리
name entity.asset.hostname 애셋의 기본 호스트 이름
ip_address entity.asset.ip 애셋의 기본 IP 주소
mac_address entity.asset.mac 애셋의 MAC 주소
serial_number entity.asset.hardware.serial_number 하드웨어 일련번호
asset_tag entity.asset.asset_id 애셋 태그 또는 식별자
sys_class_name entity.asset.asset_type CI 클래스 (서버, 컴퓨터 등)
os entity.asset.platform_software.platform 운영체제
sys_created_on entity.asset.first_seen_time 애셋 생성 타임스탬프
sys_updated_on entity.asset.last_seen_time 최종 업데이트 타임스탬프
location entity.asset.location.name 물리적 위치
company entity.asset.attribute.labels.value 소유 회사/조직

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