TISC RPZ API

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 14분
  • TISC RPZ API는 RPZ(응답 정책 영역) 형식으로 도메인 및 IP 주소를 익스포트할 수 있는 엔드포인트를 제공합니다.

    이 API를 사용하여 방화벽, DNS 서버 또는 RPZ 정책을 지원하는 기타 보안 시스템에서 사용할 필터링된 위협 인텔리전스 데이터를 RPZ 형식으로 검색합니다. RPZ는 도메인 및 IP 주소를 차단, 허용 또는 리디렉션하는 데 사용됩니다. API 응답은 보안 워크플로우에 쉽게 통합할 수 있도록 사용됩니다 text/plain .

    이 API에는 위협 인텔리전스 보안 센터 에서 ServiceNow Store사용할 수 있는 애플리케이션이 필요합니다.

    에 대한 TISC자세한 내용은 다음 문서를 참조하십시오 Threat Intelligence Security Center.

    이 API는 sn_sec_tisc 네임스페이스에서 실행됩니다. 호출 사용자에게 sn_sec_tisc.api_obs_read_access 역할이 있어야 합니다.

    이 API의 현재 버전은 v1입니다.

    TISC RPZ - 게시/sn_sec_tisc/rpz_export

    도메인 및 IP 주소를 RPZ(응답 정책 영역) 형식으로 익스포트합니다.

    주:
    익스포트에서 도메인에 대한 와일드카드 항목(*.<domain_name>)을 생성할 수 있습니다. 와일드카드 항목은 도메인의 모든 하위 도메인을 차단하거나 허용할 수 있는 유연성을 제공합니다. 이 기능을 활성화하려면 의 위협 인텔리전스 보안 센터도메인 기록으로 이동하십시오. 상세 정보 탭의 TISC 태그 및 분류 섹션에서 분류 필드에 내용을 입력합니다.
    • 분류 선택 필드에서 RPZ 도메인을 선택합니다.
    • 분류 값 추가 필드에서 와일드카드 항목 추가를 선택합니다.
    추가를 클릭하여 도메인에 대한 분류를 저장합니다.
    그림 1. TISC의 도메인 기록
    분류 필드가 강조 표시된 TISC의 도메인 기록입니다.

    URL 형식

    버전이 지정된 URL: /api/sn_sec_tisc/{api_version}/rpz_export

    기본 URL: /api/sn_sec_tisc/rpz_export

    지원되는 요청 매개변수

    표 1. 경로 매개변수
    이름 설명
    api_version 옵션입니다. 액세스할 엔드포인트의 버전입니다. 예를 들어 v1 또는 v2입니다. 최신 버전이 아닌 엔드포인트 버전을 사용하도록 이 값만 지정하십시오.

    데이터 유형: 문자열

    표 2. 쿼리 매개변수
    이름 설명
    없음
    표 3. 요청 본문 매개변수(JSON)
    이름 설명
    feed_type 필수 익스포트할 옵저버블의 유형입니다.
    유효한 값(대/소문자 구분 안 함):
    • IP – IP 주소(IPv4 주소, IPv4 CIDR, IPv6 주소 및 IPv6 CIDR)만 포함합니다.
    • 도메인 – 도메인 이름만 포함합니다.
    • IP_Domain – IP 주소와 도메인 이름을 모두 포함합니다.

    데이터 유형: 문자열

    observable_filters 옵저버블에 적용할 필터입니다. 필터 기준과 일치하는 옵저버블만 응답에 반환됩니다.

    데이터 유형: 객체

    "observable_filters": {
       "boolean_operator": "String", 
       "filters": [Array]
    }

    기본값: 빈 객체(적용된 필터 없음)

    observable_filters.boolean_operator 필터 조건에 사용할 부울 연산자입니다.
    유효한 값은 다음과 같습니다.
    • AND: 모든 필터 조건을 충족하는 옵저버블을 반환합니다.
    • 또는: 하나 이상의 필터 조건을 충족하는 옵저버블을 반환합니다.

    데이터 유형: 문자열

    observable_filters.filters 옵저버블에 적용할 필터입니다.
    각 필터 개체는 단순하거나 복잡할 수 있습니다.
    • 단순 필터에는 필드 이름, 연산자 및 값이 포함됩니다.
    • 복합 필터에는 부울 연산자와 단순 필터 배열이 포함됩니다. 부울 연산자는 단순 필터 배열에 적용됩니다.

    데이터 유형: 객체 배열

    "filters": [ 
       //Simple filter 
       { 
          "field_name": "String", 
          "operator": "String", 
          "field_value": "String" 
       }, 
       //Complex filter 
       {
          "boolean_operator": "String", 
          "filters": [
             {
    	     "field_name": "String",
    	     "operator": "String",
    	     "field_value": "String"
             }  
          ]
       }
    ]
    observable_filters.filters.field_name 옵저버블을 필터링하는 데 사용할 필드의 이름입니다.
    유효한 값은 다음과 같습니다.
    • 신뢰도
    • 평판
    • security_type
    • 상태
    • sys_created_on
    • sys_updated_on
    • 태그
    • 분류
    • threat_score
    • watch_list

    데이터 유형: 문자열

    observable_filters.filters.field_value 필드의 값입니다.

    선택 필드의 경우 값은 표시 값이 아닌 내부 값이어야 합니다. 날짜-시간 필드의 경우 값은 UTC 시간대의 ISO 형식이어야 합니다.

    주:
    ISEMPTY 또는 ISNOTEMPTY 연산자를 사용할 때는 이 매개 변수가 필요하지 않습니다.

    데이터 유형: 문자열

    observable_filters.filters.operator 필터에 사용할 연산자입니다.

    연산자에 대한 자세한 내용은 다음 문서를 참조하십시오 Operators available for filters and queries.

    필터 필드의 데이터 유형에 따라 유효한 연산자가 결정됩니다. 다음 연산자는 각 데이터 형식에 유효합니다.

    부울

    적용 가능한 필드: watch_list

    • !=
    • =
    • 비어 있음
    • ISNOTEMPTY
    선택

    적용 가능한 필드: 평판, security_type, 상태

    • !=
    • =
    • 안에
    • 좋아요
    • 다음에 없음
    • 좋아하지 않음
    • 시작
    날짜-시간

    적용 필드: sys_created_on, sys_updated_on

    • <
    • <=
    • >
    • >=
    • 비어 있음
    • ISNOTEMPTY
    • 노턴
    • 켜짐
    GlideList

    적용 가능한 필드: 태그, 분류

    • 안에
    • 다음에 없음
      주:
      필터 조건에 유효한 기존 값 하나를 사용해야 하며, 빈 옵저버블 필드 값은 일치하는 것으로 간주되지 않습니다.
    • 비어 있음
    • ISNOTEMPTY
    • 좋아요
      주:
      필터 조건에 단일 값을 사용해야 합니다.
    • 좋아하지 않음
      주:
      필터 조건에 단일 값을 사용해야 하며, 빈 옵저버블 필드 값은 일치하는 것으로 간주되지 않습니다.
    번호

    적용 가능한 필드: 신뢰도, threat_score

    • !=
    • <=
    • =
    • >=
    • 비어 있음
    • ISNOTEMPTY
    문자열

    적용 가능한 필드: 값

    • !=
    • <=
    • =
    • >=
    • 안에
    • 비어 있음
    • ISNOTEMPTY
    • 좋아요
    • 좋아하지 않음
    • 시작

    데이터 유형: 문자열

    page_size API 응답에서 반환되는 옵저버블 수를 제한합니다. 페이지 매김에 사용됩니다.

    데이터 유형: 숫자

    기본값: 1000

    최대값: 10,000

    page_token 현재 페이지에 대한 옵저버블 데이터를 가져오는 데 사용됩니다.

    첫 번째 페이지를 가져오려면 이 매개변수를 생략하거나 이 매개변수의 값이 빈 문자열이어야 합니다. 다음 요청의 다음 페이지를 가져오려면 응답 헤더의 값을 이 매개변수의 값으로 사용합니다 X-Next-Page-Token .

    데이터 유형: 문자열

    기본값: 빈 문자열

    정책 필수 도메인 또는 IP 주소에 대해 수행할 작업입니다.
    유효한 값(대/소문자 구분 안 함):
    • NXDOMAIN – NXDOMAIN 응답(존재하지 않는 도메인)을 반환합니다.
    • DROP – 응답 없이 쿼리를 자동으로 삭제합니다.
    • NODATA - 데이터가 없는 NOERROR 응답을 반환합니다.
    • PASSTHRU – 쿼리가 정상적으로 진행되도록 허용합니다(수행된 작업 없음).
    • LOCAL-DATA – 로컬로 정의된 DNS 데이터로 응답합니다. 이는 싱크홀링(아웃바운드 연결을 모니터링하거나 차단하기 위해 악성 도메인 또는 IP를 안전한 내부 주소로 리디렉션)에 사용할 수 있습니다.
    • TCP-ONLY – 클라이언트가 TCP를 통해 쿼리를 재시도하도록 합니다.

    데이터 유형: 문자열

    soa_email 필수 영역의 관리자 연락처 이메일입니다. 사용자 이름과 도메인을 @ 기호 대신 점(.)으로 구분합니다(예: admin@example.com 대신 admin.example.com.). 이 매개변수는 DNS SOA 기록에 포함됩니다.

    데이터 유형: 문자열

    soa_expiry 필수 만료 시간입니다. 기본 서버에 연결할 수 없게 되면 보조 서버가 영역 데이터를 계속 사용하는 최대 시간을 결정합니다.

    데이터 유형: 숫자

    단위: 초

    최소: 0

    최대값: 4294967295

    soa_minimum_ttl 필수 부정적 응답의 최소 유효 기간입니다. 해결자가 부정적 응답을 캐시하는 기간을 결정합니다.
    주:
    이 매개변수는 항상 유효한 요청 본문에 필요하지만 정책이 NXDOMAIN, NODATA 또는 LOCAL-DATA인 경우에만 이 값이 사용됩니다. 다른 정책의 경우 이 매개변수는 영향을 주지 않습니다.

    데이터 유형: 숫자

    단위: 초

    최소: 0

    최대값: 4294967295

    soa_named_server 필수 영역의 기본 이름 서버입니다. 점(.)으로 끝나는 FQDN(정규화된 도메인 이름)이어야 합니다( 예: ns1.example.com.). 이 매개변수는 DNS SOA 레코드의 첫 번째 필드입니다.

    데이터 유형: 문자열

    soa_named_server_alt 중복성을 위한 대체 이름 서버입니다.

    데이터 유형: 문자열

    soa_refresh 필수 새로 고침 간격입니다. 보조 DNS 서버가 기본 서버에서 영역에 대한 업데이트를 확인하는 빈도를 결정합니다.

    데이터 유형: 숫자

    단위: 초

    최소: 0

    최대값: 4294967295

    soa_retry 필수 재시도 간격입니다. 실패한 영역 전송을 다시 시도하기 전에 보조 서버가 대기하는 시간을 결정합니다.

    데이터 유형: 숫자

    단위: 초

    최소: 0

    최대값: 4294967295

    soa_ttl 필수 RPZ 기록의 TTL(Time to Live)입니다. 업데이트를 확인하기 전에 해결자가 기록을 캐시하는 기간을 결정합니다.

    데이터 유형: 숫자

    단위: 초

    최소: 0

    최대값: 4294967295

    walled_garden 리디렉션 대상으로 사용할 IP 주소 또는 도메인 이름입니다.

    사용자를 벽으로 둘러싸인 정원(일반적으로 보안, 규정 준수 또는 정보 제공 목적으로 통제된 페이지 또는 네트워크 위치)으로 리디렉션하는 데 사용됩니다.

    주:
    LOCAL-DATA인 경우 policy 필수입니다. 다른 정책 유형에는 이 매개변수를 사용하지 마십시오.

    데이터 유형: 문자열

    헤더

    다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 고유한 방식으로 이 작업에 적용됩니다. REST API에 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하십시오.

    표 4. 요청 헤더
    머리글 설명
    수용 응답 본문의 데이터 형식입니다. 지원되는 유형은 text/plain 또는 application/json입니다.

    성공 응답은 일반 텍스트로 반환되고 오류 응답은 JSON으로 반환됩니다.

    기본값: text/plain

    권한 부여 기초의.

    API 인증 및 권한 부여에 대한 자세한 내용은 의 REST API 보안 섹션 REST API을 참조하십시오.

    콘텐츠-형식 요청 본문의 데이터 형식입니다. application/json만 지원합니다.
    표 5. 응답 헤더
    머리글 설명
    X-다음 페이지 토큰 다음 API 요청에서 이 값을 사용하여 결과의 다음 페이지를 가져옵니다. 요청 본문의 매개변수에 page_token 이 값을 제공합니다.

    이 헤더가 없으면 더 이상 사용할 수 있는 페이지가 없습니다.

    상태 코드

    이 HTTP 작업에 적용되는 상태 코드는 다음과 같습니다. REST API에 사용되는 가능한 상태 코드 목록은 REST API HTTP 응답 코드를 참조하십시오.

    표 6. 상태 코드
    상태 코드 설명
    200 성공입니다. 요청이 성공적으로 처리되었습니다.
    400 잘못된 요청입니다. 잘못된 요청 유형 또는 잘못된 형식의 요청이 탐지되었습니다.
    401 권한이 해제되었습니다. 사용자 자격 증명이 잘못되었거나 전달되지 않았습니다.
    403 금지되었습니다. 사용자에게 지정된 기록에 대한 액세스 권한이 없습니다.
    429 요청이 너무 많습니다. API 요청 수가 API의 요율 제한을 초과합니다. 기본적으로 제한은 시간당 500개의 요청입니다.
    500 내부 서버 오류입니다. 요청을 처리하는 동안 예기치 않은 오류가 발생했습니다. 응답에는 오류에 대한 추가 정보가 포함되어 있습니다.

    응답 본문 매개변수(JSON)

    이름 설명
    errorCode 요청에 대한 HTTP 상태 코드입니다.
    결과 요청에 대한 상세 정보입니다. 이 매개변수는 요청이 실패한 경우에만 반환됩니다.

    데이터 유형: 객체

    "result": {
       "error": {Object},
       "status": "String" 
    }
    결과.오류 오류 정보입니다.

    데이터 유형: 객체

    "error": {   
       "detail": "String",
       "message": "String"
    }
    결과.오류.상세 정보 요청 실패 원인에 대한 추가 정보입니다.

    데이터 유형: 문자열

    결과.오류.메시지 요청에 실패한 이유를 포함하는 오류 메시지입니다.

    데이터 유형: 문자열

    결과.상태 API 요청의 상태입니다. 이 매개변수는 요청이 실패한 경우에만 반환되므로 가능한 유일한 값은 failure입니다.

    데이터 유형: 문자열

    cURL 요청

    이 예에서는 선택한 도메인을 RPZ 형식으로 내보내고 정책을 NXDOMAIN으로 설정합니다.

    curl --location 'https://instance.service-now.com/api/sn_sec_tisc/v1/rpz_export' \ 
    --header 'Authorization: Basic YWJlbC50dXRlcjpTbm93QDEyMw==' \
    --data '{
        "policy": "nxdomain", 
        "feed_type": "DOMAIN", 
        "soa_retry": 85, 
        "soa_expiry": 1, 
        "soa_minimum_ttl": 7, 
        "soa_refresh": 3600, 
        "soa_ttl": 7678, 
        "soa_named_server": "localhost.", 
        "soa_email": "root.localhost.",
        "page_size": 100, 
        "page_token": "", 
        "observable_filters": { 
            "boolean_operator": "AND", 
            "filters": [ 
                { 
                    "field_name": "status", 
                    "operator": "=", 
                    "field_value": "active" 
                }, 
                { 
                    "boolean_operator": "OR", 
                    "filters": [ 
                        { 
                            "field_name": "threat_score", 
                            "operator": ">=", 
                            "field_value": "70" 
                        }, 
                        { 
                            "field_name": "confidence", 
                            "operator": ">=", 
                            "field_value": "50" 
                        } 
                    ] 
                } 
            ] 
        } 
    }'

    필터 기준과 일치하는 도메인을 포함하는 응답 본문입니다.

    $TTL 7678;  
    @ SOA localhost. root.localhost. (1759835257654 3600 85 1 7)
     IN NS localhost.  
    
    ; The following Domain records will be blocked (NXDOMAIN):
    domain autuo.xicp.net CNAME .
    microsofta.byinter.net CNAME .
    www.webserver.freetcp.com CNAME .
    mongoles.3322.org CNAME .
    imddos.my03.com CNAME .
    weile3322b.3322.org CNAME .
    *.weile3322b.3322.org CNAME .

    cURL 요청

    이 예시에서는 잘못된 정책 값을 사용하는 요청을 보여줍니다.

    curl --location 'https://instance.service-now.com/api/sn_sec_tisc/v1/rpz_export' \ 
    --header 'Authorization: Basic YWJlbC50dXRlcjpTbm93QDEyMw==' \
    --data '{
        "policy": "LocalData", 
        "feed_type": "DOMAIN", 
        "soa_retry": 85, 
        "soa_expiry": 1, 
        "soa_minimum_ttl": 7, 
        "soa_refresh": 3600, 
        "soa_ttl": 7678, 
        "soa_named_server": "localhost.", 
        "soa_email": "root.localhost.",
        "page_size": 100, 
        "page_token": "", 
        "observable_filters": { 
            "boolean_operator": "AND", 
            "filters": [ 
                { 
                    "field_name": "status", 
                    "operator": "=", 
                    "field_value": "active" 
                }, 
                { 
                    "boolean_operator": "OR", 
                    "filters": [ 
                        { 
                            "field_name": "threat_score", 
                            "operator": ">=", 
                            "field_value": "70" 
                        }, 
                        { 
                            "field_name": "confidence", 
                            "operator": ">=", 
                            "field_value": "50" 
                        } 
                    ] 
                } 
            ] 
        } 
    }'

    실패한 요청에 대한 오류 정보를 포함하는 응답 본문입니다.

    {
       "result": {
          "status": "failure",
          "error": {
             "message": "Error occurred while processing request body.",
             "detail": "Invalid policy: 'LocalData'. Supported values are: NXDOMAIN, DROP, NODATA, PASSTHRU, LOCAL-DATA, TCP-ONLY"
          }
       },
       "errorCode": 400
    }