TISC API
TISC API는 (TISC) 애플리케이션에서 위협 인텔리전스 데이터를 추가하고 검색할 수 있는 엔드포인트를 위협 인텔리전스 보안 센터 제공합니다.
이 API에서 검색된 데이터는 SIEM(보안 정보 이벤트 관리) 시스템과 같은 다른 보안 도구에서 사용할 수 있습니다. SIEM 시스템은 이 API를 사용하는 것과 TISC 통합되어 조직의 위협 TISC 과 관련된 옵저버블을 검색하고 조직의 네트워크 내에서 이러한 위협을 자동으로 탐지 및 모니터링할 수 있습니다. 이 API를 사용하면 보안 도구에서 옵저버블을 양방향으로 공유할 수 있습니다. SIEM 시스템은 환경에서 비정상적인 활동을 관찰하고 비정상적인 활동과 관련된 옵저버블 목록을 에 TISC제공할 수 있습니다.
이 API를 사용하여 위협 인텔리전스 컨텍스트로 SIEM 경고를 보강할 수도 있습니다. 예를 들어 IP 주소 TISC 의 비정상적으로 높은 트래픽을 기반으로 SIEM 경고가 생성되는 경우 관련된 IP 주소 또는 도메인이 알려진 악의적인 활동과 연결되어 있는지 여부와 같은 추가 정보를 제공할 수 있습니다. 이 보강 데이터를 통해 보안 분석가는 경보를 분류하고 상황별 정보를 사용하여 효율적인 수정을 수행할 수 있습니다.
이 API를 위협 인텔리전스 보안 센터 사용하려면 .ServiceNow Store
이 API는 sn_sec_tisc 네임스페이스에서 실행됩니다.
이 API의 현재 버전은 v1입니다.
API 인증에 대한 자세한 내용은 REST API 보안 섹션을 REST APIs참조하십시오 .
에 대한 TISC자세한 내용은 다음 문서를 참조하십시오 Threat Intelligence Security Center.
TISC API - /sn_sec_tisc/threat_intel_data/add_observables 게시
옵저버블 소스 기록을 위협 인텔리전스 보안 센터 (TISC) 애플리케이션에 추가합니다.
옵저버블 소스 기록은 옵저버블 소스 [sn_sec_tisc_observable_source] 테이블에 생성되며 TISC 데이터 플로우에서 중복 제거 및 집계를 통해 처리됩니다.
이 엔드포인트에 액세스하려면 호출자에게 sn_sec_tisc.api_obs_write_access 역할이 있어야 하며, 이 역할은 기본적으로 위협 인텔리전스 관리자 역할(sn_sec_tisc.admin)에 포함되어 있습니다.
URL 형식
버전이 지정된 URL: /api/sn_sec_tisc/{api_version}/threat_intel_data/add_observables
기본 URL: /api/sn_sec_tisc/threat_intel_data/add_observables
지원되는 요청 매개변수
| 이름 | 설명 |
|---|---|
| api_version | 옵션입니다. 액세스할 엔드포인트의 버전입니다. 예를 들면 v1 또는 v2입니다. 최신 버전이 아닌 엔드포인트 버전을 사용하려면 이 값만 지정합니다. 데이터 유형: 문자열 |
| 이름 | 설명 |
|---|---|
| 없음 |
| 이름 | 설명 |
|---|---|
| 옵저버블 | 필수 추가할 옵저버블 객체의 배열입니다 TISC. 각 옵저버블 객체에 대해, 모든 유효성 검사가 통과되면 옵저버블 소스 기록이 생성되며, 소스는 요청 본문의 매개변수에 source 정의된 대로 생성됩니다.데이터 형식: 개체 배열 |
| observables.attributes | 옵저버블에 대한 속성 데이터를 포함하는 필드-값 쌍입니다. 속성은 IP 주소의 AS 번호 또는 네트워크의 소켓 유형과 같은 관찰 가능한 유형에만 해당됩니다. 모든 옵저버블 유형에 대한 모든 속성이 지원됩니다. 유효한 속성의 전체 목록은 아래의 옵저버블 속성 섹션을 참조하십시오. 데이터 유형: 객체 |
| observables.<field> | 옵저버블에 대한 일반 데이터를 포함하는 필드-값 쌍입니다. 이 매개변수에 제공할 수 있는 필드는 모든 옵저버블 유형에 공통되며 옵저버블 소스 [sn_sec_tisc_observable_source] 테이블에 있습니다. type 모든 옵저버블에는 "및" value 필드가 필요합니다. 주: 값 제공을 위해 다음 가이드라인을 따르십시오.
유효한 필드:
데이터 유형: 문자열 |
| 소스 | 필수 SIEM 시스템과 같이 옵저버블을 처음 탐지한 소스입니다. 소스는 API 요청에 나열된 모든 옵저버블에 사용됩니다. 요청 본문에 제공된 소스가 API 통합 [sn_sec_tisc_api_integration] 테이블에 추가됩니다. 데이터 유형: 문자열 |
헤더
다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 이 작업에 고유한 방식으로 적용됩니다. REST API에서 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하세요.
| 헤더 | 설명 |
|---|---|
| 수용 | 응답 본문의 데이터 형식입니다. application/json만 지원합니다. |
| 컨텐츠-형식 | 요청 본문의 데이터 형식입니다. application/json만 지원합니다. |
| 헤더 | 설명 |
|---|---|
| 없음 |
상태 코드
다음 상태 코드는 이 HTTP 작업에 적용됩니다. REST API에서 사용할 수 있는 상태 코드 목록은 REST API HTTP 응답 코드를 참조하세요.
| 상태 코드 | 설명 |
|---|---|
| 200 | 성공입니다. 요청이 성공적으로 처리되었습니다. |
| 400 | 잘못된 요청입니다. 요청 매개변수가 잘못되었거나 요청 본문 JSON에 구문 오류가 있습니다. 오류에 대한 자세한 내용을 보려면 응답 본문의 error 매개 변수를 참조하세요. |
| 401 | 권한이 해제되었습니다. 사용자 인증이 잘못되었습니다. 사용자 이름 및 비밀번호 또는 OAuth 토큰을 확인하십시오. |
| 403 | 금지되었습니다. 호출 중인 사용자에게 필요한 역할이 없습니다. 이 엔드포인트에 액세스하려면 sn_sec_tisc.api_obs_write_access 역할이 필요합니다. |
| 429 | 요청이 너무 많습니다. API 요청 수가 API에 대한 요율 제한을 초과합니다. 기본적으로 이 제한은 시간당 100개 요청입니다. |
| 500 | 내부 서버 오류입니다. 오류에 대한 자세한 내용은 로그 [syslog] 테이블의 애플리케이션 로그를 확인하십시오. |
응답 본문 매개변수(JSON)
| 이름 | 설명 |
|---|---|
| 오류 | 오류 정보입니다. 이 매개변수는 요청이 실패한 경우에만 반환됩니다.데이터 유형: 객체 |
| 오류.메시지 | 요청이 실패한 이유를 포함하는 오류 메시지입니다. 데이터 유형: 문자열 |
| 오류.상세 정보 | 요청이 실패한 이유에 대한 추가 세부 정보입니다. 데이터 유형: 문자열 |
| error_records | 에 TISC추가할 수 없는 요청에 포함된 옵저버블에 대한 상세 정보입니다.데이터 형식: 개체 배열 |
| error_records.error_message | 옵저버블에 대한 기록을 생성할 수 없는 이유를 설명하는 오류 메시지입니다. 데이터 유형: 문자열 |
| error_records.type | 옵저버블의 유형입니다. 유효한 옵저버블 유형의 전체 목록은 옵저버블 유형 [sn_sec_tisc_observable_type] 테이블의 값 필드 또는 아래의 옵저버블 속성 섹션을 참조하십시오. 데이터 유형: 문자열 |
| error_records.값 | IP 주소 또는 URL과 같이 옵저버블과 연결된 값입니다. 데이터 유형: 문자열 |
| 메타데이터 | API 요청에 의해 생성된 기록 수에 대한 메타데이터입니다. 데이터 유형: 객체 |
| metadata.error_records | 에 추가할 TISC수 없는 요청에 포함된 옵저버블의 수입니다. 데이터 유형: 숫자 |
| metadata.success_records | 에서 성공적으로 작성된 옵저버블 기록 수입니다 TISC. 데이터 유형: 숫자 |
| metadata.total_records | 요청에 포함된 총 옵저버블 수입니다. 데이터 유형: 숫자 |
| 상태 | API 요청의 상태입니다. 가능한 값:
데이터 유형: 문자열 |
| success_records | 성공적으로 생성된 옵저버블 기록에 대한 세부 정보입니다.데이터 형식: 개체 배열 |
| success_records.sys_id | 옵저버블 기록의 Sys_id입니다. 데이터 유형: 문자열 |
| success_records.type | 옵저버블의 유형입니다. 유효한 옵저버블 유형의 전체 목록은 옵저버블 유형 [sn_sec_tisc_observable_type] 테이블의 값 필드 또는 아래의 옵저버블 속성 섹션을 참조하십시오. 데이터 유형: 문자열 |
| success_records.값 | IP 주소 또는 URL과 같이 옵저버블과 연결된 값입니다. 데이터 유형: 문자열 |
옵저버블 속성
| 옵저버블 유형 | 속성 | 데이터 유형 |
|---|---|---|
| 아티팩트 | decryption_key | 문자열 |
| encryption_algorithm | 문자열 | |
| md5_hash | 문자열 | |
| mime_type | 문자열 | |
| sha1_hash | 문자열 | |
| sha256_hash | 문자열 | |
| sha512_hash | 문자열 | |
| URL | 문자열 | |
| autonomous_system_number | 이름 | 문자열 |
| 리르 | 문자열 | |
| 디렉터리 | directory_creation_time | 날짜 |
| directory_last_accessed_time | 날짜 | |
| directory_last_modified_time | 날짜 | |
| encoded_path | 문자열 | |
| domain_name | is_fqdn (전체 주소 도메인 이름) |
부울 |
| resolves_to | 문자열 | |
| email_address | display_name | 문자열 |
| email_message | email_body | 문자열 |
| email_recipients_bcc | 문자열 | |
| email_recipients_cc | 문자열 | |
| email_recipients_to | 문자열 | |
| email_sender | 문자열 | |
| email_subject | 문자열 | |
| sent_date | 날짜 | |
| email_subject | 없음 | |
| 파일 | encoded_file_name | 문자열 |
| file_created_time | 날짜 | |
| file_last_accessed_time | 날짜 | |
| file_last_modified_time | 날짜 | |
| file_name | 문자열 | |
| magic_number | 문자열 | |
| md5_hash | 문자열 | |
| mime_type | 문자열 | |
| sha1_hash | 문자열 | |
| sha256_hash | 문자열 | |
| sha512_hash | 문자열 | |
| ip_v4_address | as_number | 문자열 |
| mac_address | 문자열 | |
| ip_v4_cidr | as_number | 문자열 |
| mac_address | 문자열 | |
| ip_v6_address | as_number | 문자열 |
| mac_address | 문자열 | |
| ip_v6_cidr | as_number | 문자열 |
| mac_address | 문자열 | |
| mac_address | 없음 | |
| md5_hash | 없음 | |
| mutex_name | 없음 | |
| 네트워크 | destination_bytes_count | 정수 |
| destination_packets_count | 정수 | |
| destination_port | ||
| end_time | 날짜 | |
| http_message_body_length | 정수 | |
| http_request_header | 문자열 | |
| http_request_method | 문자열 | |
| http_request_value | 문자열 | |
| http_request_version | 문자열 | |
| network_source | 문자열 | |
| network_destination | 문자열 | |
| icmp_code_byte | 문자열 | |
| icmp_type_byte | 문자열 | |
| is_network_active | 부울 | |
| is_socket_blocking | 부울 | |
| is_socket_listening | 부울 | |
| network_protocols | 문자열 | |
| socket_address_family | 문자열 가능한 값:
|
|
| socket_descriptor | 정수 | |
| socket_handle | 정수 | |
| socket_options | 문자열 | |
| socket_type | 문자열 가능한 값:
|
|
| source_bytes_count | 정수 | |
| source_packets_count | 정수 | |
| source_port | 문자열 | |
| start_time | 날짜 | |
| tcp_destination_flags | 문자열 | |
| tcp_source_flags | 문자열 | |
| 기타 | 없음 | |
| 프로세스 | aslr_enabled | 부울 |
| command_line | 문자열 | |
| 증권 시세 표시기 (현재 작업 디렉터리) |
문자열 | |
| dep_enabled | 부울 | |
| environment_variables | 문자열 | |
| is_hidden | 부울 | |
| owner_sid | 문자열 | |
| pid (프로세스 ID) |
문자열 | |
| 우선순위 | 문자열 | |
| process_created_time | 날짜 | |
| service_descriptions | 문자열 | |
| service_display_name | 문자열 | |
| service_group_name | 문자열 | |
| service_name | 문자열 | |
| service_start_type | 문자열 가능한 값:
|
|
| service_status | 문자열 가능한 값:
|
|
| service_type | 문자열 가능한 값:
|
|
| startup_info | 문자열 | |
| windows_integrity_level | 문자열 가능한 값:
|
|
| window_title | 문자열 | |
| sha1_hash | 없음 | |
| sha256_hash | 없음 | |
| sha512_hash | 없음 | |
| 소프트웨어 | cpe (공통 플랫폼 열거형) |
문자열 |
| supported_languages | 문자열 | |
| 스위드 (소프트웨어 식별) |
문자열 | |
| vendor | 문자열 | |
| 버전 | 문자열 | |
| URL | 없음 | |
| user_account | account_created_time | 날짜 |
| account_expiry_time | 날짜 | |
| account_type | 문자열 | |
| can_escalate_privileges | 부울 | |
| credentials_last_changed_time | 날짜 | |
| display_name | 문자열 | |
| first_login_time | 날짜 | |
| is_account_disabled | 부울 | |
| is_privileged | 부울 | |
| is_service_account | 부울 | |
| last_login_time | 날짜 | |
| account_login | 문자열 | |
| user_id | 문자열 | |
| windows_registry_key | key_modified_time | 날짜 |
| registry_value | 문자열 | |
| subkeys_count | 정수 | |
| x509_certificate | authority_key_identifier | 문자열 |
| basic_constraints | 문자열 | |
| certificate_policies | 문자열 | |
| crl_distribution_points | 문자열 | |
| extended_key_usage | 문자열 | |
| inhibit_any_policy | 문자열 | |
| issuer | 문자열 | |
| issuer_alternative_name | 문자열 | |
| is_self_signed | 부울 | |
| key_usage | 문자열 | |
| name_constraints | 문자열 | |
| policy_constraints | 문자열 | |
| policy_mappings | 문자열 | |
| private_key_usage_valid_from | 날짜 | |
| private_key_usage_valid_until | 날짜 | |
| signature_algorithm | 문자열 | |
| 제목 | 문자열 | |
| subject_alternative_name | 문자열 | |
| subject_directory_attributes | 문자열 | |
| subject_key_identifier | 문자열 | |
| subject_public_key_algorithm | 문자열 | |
| subject_public_key_exponent | 정수 | |
| subject_public_key_modulus | 문자열 | |
| valid_from | 날짜 | |
| valid_until | 날짜 | |
| 버전 | 문자열 |
cURL 요청
이 예제 요청에는 에 대한 기록을 만들기 위한 세 개의 옵저버블이 포함되어 있습니다 TISC.
curl 'http://instance.servicenow.com/api/sn_sec_tisc/v1/threat_intel_data/add_observables' \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4=' \
--data '{
"source": "Sentinel",
"observables": [
{
"value": "1.2.1.45",
"type": "ip_v4_address",
"reputation": "malicious",
"confidence": "90",
"tags": "critical,important",
"taxonomies": "MITRE: T121",
"attack_phases": "Lockheed Martin: Reconnaissance",
"usage_categories": "Infected Bot",
"first_seen": "2023-10-14T18:01:34.000Z",
"attributes": {
"as_number": "14280"
}
},
{
"value": "https://example.com",
"type": "url",
"tags": "important",
"confidence": "50",
"reputation": "malicious"
},
{
"value": "1.1.1.1",
"type": "ip_add",
"confidence": "50",
"reputation": "malicious"
}
]
}'
옵저버블 3개 중 2개가 TISC에 성공적으로 추가되었습니다. 옵저버블 유형이 잘못되어 하나의 기록이 생성되지 않았습니다.
{
"status": "partial_success",
"metadata": {
"total_records": 3,
"success_records": 2,
"error_records": 1
},
"success_records": [
{
"value": "1.2.1.45",
"type": "ip_v4_address",
"sys_id": "e519392643e642102164e0ea78b8f29d"
},
{
"value": "https://example.com",
"type": "url",
"sys_id": "ad1979ae43ea42102164e0ea78b8f241"
}
],
"error_records": [
{
"value": "1.1.1.1",
"type": "ip_va",
"error_message": "The 'type' field value is invalid"
}
]
}
TISC API - POST /sn_sec_tisc/threat_intel_data/observables
옵저버블과 STIX(Structured Threat Information Expression) 객체와 같은 기타 위협 인텔리전스 데이터 간의 관계를 포함하여 옵저버블 데이터를 검색합니다.
응답에서 반환된 옵저버블은 오름차순으로 정렬 sys_id 됩니다.
옵저버블 및 STIX 객체에 대한 자세한 내용은 을 참조하십시오 IoC Repository.
이 엔드포인트에 액세스하려면 호출자에게 sn_sec_tisc.api_obs_read_access 역할이 있어야 하며, 이 역할은 기본적으로 위협 인텔리전스 관리자 역할(sn_sec_tisc.admin)에 포함되어 있습니다.
URL 형식
버전이 지정된 URL: /api/sn_sec_tisc/{api_version}/threat_intel_data/observables
기본 URL: /api/sn_sec_tisc/threat_intel_data/observables
지원되는 요청 매개변수
| 이름 | 설명 |
|---|---|
| api_version | 옵션입니다. 액세스할 엔드포인트의 버전입니다. 예를 들면 v1 또는 v2입니다. 최신 버전이 아닌 엔드포인트 버전을 사용하려면 이 값만 지정합니다. 데이터 유형: 문자열 |
| 이름 | 설명 |
|---|---|
| 없음 |
| 이름 | 설명 |
|---|---|
| included_fields | 응답에서 옵저버블, 옵저버블 참조 및 STIX 객체에 대해 반환할 필드입니다. 옵저버블, 참조 및 STIX 객체의 각 유형에 대해 서로 다른 필드를 반환할 수 있습니다. ServiceNow sys_created_on, sys_updated_on 및 sys_id를 제외한 시스템 필드는 응답에 반환되지 않습니다. 데이터 유형: 객체 |
| included_fields.observable | 옵저버블에 대해 반환할 필드입니다. 데이터 유형: 객체 기본값: 모든 옵저버블 유형에 대한 필드 syd_id, 유형 및 값을 반환합니다. |
| included_fields.observable.attributes | 지정된 옵저버블 유형에 대해 반환할 필드를 포함하는 객체입니다. 데이터 유형: 객체 기본값: 옵저버블 유형에 특정한 필드는 반환되지 않습니다. syd_id, 유형 및 값 필드만 반환됩니다. |
| included_fields.observable.attributes.<observable_type> | 옵저버블 유형에 대해 반환할 필드를 포함하는 객체입니다.
데이터 유형: 객체 |
| included_fields.observable.attributes.<observable_type>.include_all_fields | 옵저버블 유형에 사용 가능한 모든 필드를 반환할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
데이터 유형: 부울 |
| included_fields.observable.attributes.<observable_type>.values | 옵저버블 유형에 대해 반환할 필드 목록입니다. 값이 false인 include_all_fields 경우에만 이 매개 변수를 사용합니다.제공된 필드는 옵저버블 유형에 대한 테이블에서 column_names되어야 합니다. 다음 테이블은 옵저버블 유형에 사용됩니다.
데이터 유형: 배열 |
| included_fields.observable.common_fields | 모든 옵저버블 유형에 대해 반환할 필드를 포함하는 객체입니다. 필드는 모든 옵저버블 유형에 공통되어야 하므로 옵저버블 [sn_sec_tisc_observable] 테이블의 필드여야 합니다. 데이터 유형: 객체 기본값: 모든 옵저버블 유형에 대한 필드 syd_id, 유형 및 값을 반환합니다. |
| included_fields.observable.common_fields.include_all_fields | 모든 옵저버블 유형에 대해 옵저버블 [sn_sec_tisc_observable] 테이블의 모든 필드를 반환할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
데이터 유형: 부울 |
| included_fields.observable.common_fields.values | 모든 옵저버블 유형에 대해 반환할 필드 목록입니다. 값이 false인 common_fields.include_all_fields 경우에만 이 매개 변수를 사용합니다.제공된 필드는 옵저버블 [sn_sec_tisc_observable] 테이블에서 column_names해야 합니다. 데이터 유형: 배열 |
| included_fields.참조 | 옵저버블 참조에 대해 반환할 필드입니다. 옵저버블 참조는 STIX 외부에 표시되는 정보에 대한 포인터를 설명하는 데 사용되는 외부 참조입니다.데이터 유형: 객체 기본값: reference_source, sys_id 및 URL 필드를 반환합니다. |
| included_fields.참조.include_all_fields | 옵저버블 참조에 사용 가능한 모든 필드를 반환할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
데이터 유형: 부울 |
| included_fields.참조.값 | 옵저버블 참조에 대해 반환할 필드 목록입니다. 값이 false인 reference.include_all_fields 경우에만 이 매개 변수를 사용합니다.제공된 필드는 옵저버블 참조 [sn_sec_tisc_observable_reference] 테이블에서 column_names해야 합니다. 데이터 유형: 배열 |
| included_fields.<stix_object> | STIX 객체 유형에 대해 반환할 필드를 포함하는 객체입니다.
유효한 STIX 개체 유형:
데이터 유형: 객체 기본값: id, name 및 sys_id 필드를 반환합니다. |
| included_fields.<stix_object>.include_all_fields | STIX 객체 유형에 사용 가능한 모든 필드를 반환할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
데이터 유형: 부울 |
| included_fields.<stix_object>.값 | STIX 객체 유형에 대해 반환할 필드 목록입니다. 값이 false인 include_all_fields 경우에만 이 매개 변수를 사용합니다.제공된 필드는 STIX 개체 유형에 대한 테이블에서 column_names해야 합니다. 다음 표는 STIX 개체에 사용됩니다.
데이터 유형: 배열 |
| observable_filters | 옵저버블에 적용할 필터입니다. 필터 기준과 일치하는 옵저버블만 응답에 반환됩니다.데이터 유형: 객체 기본값: 빈 개체(적용된 필터 없음) |
| observable_filters.boolean_operator | 필터 조건에 사용할 부울 연산자입니다. 유효한 값은 다음과 같습니다.
데이터 유형: 문자열 |
| observable_filters.필터 | 옵저버블에 적용할 필터의 배열 각 필터 개체는 단순하거나 복잡할 수 있습니다.
데이터 유형: 배열 |
| observable_filters.필터.필드_이름 | 옵저버블을 필터링하는 데 사용할 필드의 이름입니다. 유효한 값은 다음과 같습니다.
데이터 유형: 문자열 |
| observable_filters.filters.operator | 필터에 사용할 연산자입니다. 연산자에 대한 자세한 내용은 을 참조하십시오 Operators available for filters and queries. 필터 필드의 데이터 유형에 따라 유효한 연산자가 결정됩니다. 다음 연산자는 각 데이터 형식에 사용할 수 있습니다.
데이터 유형: 문자열 |
| observable_filters.필터.필드_값 | 필드의 값입니다. 선택 필드의 경우 값은 표시 값이 아니라 내부 값이어야 합니다. 날짜-시간 필드의 경우 값은 UTC 시간대의 ISO 형식이어야 합니다. 주: ISEMPTY 또는 ISNOTEMPTY 연산자를 사용할 때는 이 매개 변수가 필요하지 않습니다. 데이터 유형: 문자열 |
| page_size | API 응답에 반환되는 옵저버블 수를 제한합니다. 페이지 매김에 사용됩니다. 데이터 유형: 문자열 기본값: 100 최댓값: 1000 |
| page_token | 현재 페이지에 대한 옵저버블 데이터를 가져오는 데 사용됩니다. 첫 번째 페이지를 가져오려면 이 매개 변수를 생략하거나 이 매개 변수의 값이 빈 문자열이어야 합니다. 다음 요청에서 다음 페이지를 가져오려면 응답 본문의 next_page_token 값을 이 매개 변수의 값으로 사용합니다. 데이터 유형: 문자열 기본값: 빈 문자열 |
| 관계 | 응답의 각 옵저버블에 대해 반환할 관계 유형의 배열입니다. 다른 옵저버블, 옵저버블 참조 또는 STIX(Structured Threat Information Expression) 개체와의 관계일 수 있습니다. 유효한 값은 다음과 같습니다.
예를 들어 데이터 유형: 배열 기본값: 빈 배열(반환된 관계 없음) |
헤더
다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 이 작업에 고유한 방식으로 적용됩니다. REST API에서 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하세요.
| 헤더 | 설명 |
|---|---|
| 수용 | 응답 본문의 데이터 형식입니다. application/json만 지원합니다. |
| 컨텐츠-형식 | 요청 본문의 데이터 형식입니다. application/json만 지원합니다. |
| 헤더 | 설명 |
|---|---|
| 없음 |
상태 코드
다음 상태 코드는 이 HTTP 작업에 적용됩니다. REST API에서 사용할 수 있는 상태 코드 목록은 REST API HTTP 응답 코드를 참조하세요.
| 상태 코드 | 설명 |
|---|---|
| 200 | 성공입니다. 요청이 성공적으로 처리되었습니다. |
| 400 | 잘못된 요청입니다. 요청 매개변수가 잘못되었거나 요청 본문 JSON에 구문 오류가 있습니다. 오류에 대한 자세한 내용을 보려면 응답 본문의 error 매개 변수를 참조하세요. |
| 401 | 권한이 해제되었습니다. 사용자 인증이 잘못되었습니다. 사용자 이름 및 비밀번호 또는 OAuth 토큰을 확인하십시오. |
| 403 | 금지되었습니다. 호출 중인 사용자에게 필요한 역할이 없습니다. 이 엔드포인트에 액세스하려면 sn_sec_tisc.api_obs_read_access 역할이 필요합니다. |
| 429 | 요청이 너무 많습니다. API 요청 수가 API에 대한 요율 제한을 초과합니다. 기본적으로 제한은 시간당 500개 요청입니다. |
| 500 | 내부 서버 오류입니다. 오류에 대한 자세한 내용은 로그 [syslog] 테이블의 애플리케이션 로그를 확인하십시오. |
응답 본문 매개변수(JSON)
| 이름 | 설명 |
|---|---|
| 오류 | 오류 정보입니다. 이 매개변수는 요청이 실패한 경우에만 반환됩니다.데이터 유형: 객체 |
| 오류.메시지 | 요청이 실패한 이유를 포함하는 오류 메시지입니다. 데이터 유형: 문자열 |
| 오류.상세 정보 | 요청이 실패한 이유에 대한 추가 세부 정보입니다. 데이터 유형: 문자열 |
| is_last_page | 옵저버블 데이터의 마지막 페이지인지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
데이터 유형: 부울 |
| next_page_token | 다음 API 요청에서 이 값을 사용하여 옵저버블 데이터의 다음 페이지를 가져옵니다. 요청 본문의 page_token 매개변수에 이 값을 제공합니다. 데이터 유형: 문자열 |
| 옵저버블 | 옵저버블 객체의 배열입니다. 각 observables 개체에는 요청 본문의 매개 변수로 included_fields.observable.common_fields 지정된 필드도 포함됩니다.데이터 유형: 배열 |
| observables.attributes | 요청 본문의 매개변수로 지정된 included_fields.observable.attributes.<observable_type> 필드에 대한 필드-값 쌍을 포함하는 객체입니다.데이터 유형: 객체 |
| observables.relationships | 옵저버블에 대한 관계를 포함하는 객체입니다. 반환되는 관계의 형식은 요청 본문의 relationships 매개 변수에 의해 지정되며, 각 관계에 대해 반환되는 필드는 요청 본문의 매개 변수에 의해 included_fields 지정됩니다. 이 예제에서는 이 매개 변수의 기본 구조를 보여 줍니다. 그러나 반환되는 관계 유형 및 필드는 요청 본문 매개변수에 따라 달라집니다. 데이터 유형: 객체 |
| observables.sys_id | 옵저버블의 Sys_id입니다. 옵저버블 [sn_sec_tisc_observable] 테이블에 있습니다. 데이터 유형: 문자열 |
| observables.type | 옵저버블의 유형입니다. 유효한 옵저버블 유형의 전체 목록은 옵저버블 유형 [sn_sec_tisc_observable_type] 테이블의 값 필드를 참조하십시오. 데이터 유형: 문자열 |
| observables.value | IP 주소 또는 URL과 같이 옵저버블과 연결된 값입니다. 데이터 유형: 문자열 |
| 원본 | 응답의 원본 애플리케이션으로, (TISC)입니다 위협 인텔리전스 보안 센터 . 이 매개변수의 값은 sn_sec_tisc입니다.이 값은 필요에 따라 API 응답을 사용하는 SIEM에서 인텔리전스로 TISC 인해 보안 인시던트가 생성되었는지 여부를 추적하는 데 사용할 수 있습니다. 데이터 유형: 문자열 |
| page_size | 응답에 반환된 옵저버블의 최대 수입니다. 페이지 매김에 사용됩니다. 데이터 유형: 문자열 |
| 상태 | API 요청의 상태입니다. 가능한 값:
요청에 실패한 경우 오류에 대한 자세한 내용은 응답 본문의 매개 변수를 참조하세요 error . 데이터 유형: 문자열 |
cURL 요청
이 예제에서는 옵저버블 데이터의 첫 번째 페이지를 반환합니다. 이 매개변수는 observable_filters조건 status = active AND [threat_score >= 70 OR confidence >= 50]과 일치하는 옵저버블만 반환하도록 지정합니다.
curl 'http://instance.servicenow.com/api/sn_sec_tisc/v1/threat_intel_data/observables' \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4=' \
--data '{
"page_size": "100",
"page_token": "",
"relationships": [
"observable",
"threat_actor",
"indicator",
"reference",
"attack_pattern"
],
"included_fields": {
"observable": {
"common_fields": {
"include_all_fields": false,
"values": [
"value",
"reputation",
"confidence"
]
},
"attributes": {
"ip_v4_address": {
"include_all_fields": false,
"values": [
"as_number"
]
},
"artifact": {
"include_all_fields": false,
"values": [
"mime_type",
"encryption_algorithm"
]
}
}
},
"threat_actor": {
"include_all_fields": false,
"values": [
"name",
"aliases",
"description",
"threat_actor_roles"
]
},
"attack_pattern": {
"include_all_fields": true
},
"indicator": {
"include_all_fields": false,
"values": [
"name",
"pattern",
"pattern_type",
"indicator_types"
]
},
"reference": {
"include_all_fields": true,
"values": [
"description"
]
}
},
"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"
}
]
}
]
}
}'
응답 본문입니다.
{
"status": "success",
"observables": [
{
"sys_id": "792e3d1543a0421060eee0ea78b8f227",
"type": "url",
"value": "https://www.example.com",
"confidence": "60",
"reputation": "",
"relationships": {
"observable": [
{
"sys_id": "ccadb19143a0421060eee0ea78b8f25a",
"type": "ip_v4_address",
"value": "1.1.1.1",
"confidence": "20",
"reputation": "malicious"
}
],
"indicator": [
{
"id": "indicator--294d97754364c21060eee0ea78b8f2ae",
"indicator_types": "",
"name": "Poison Ivy",
"pattern": "",
"pattern_type": "sigma",
"sys_id": "a54d97754364c21060eee0ea78b8f2ae",
"type": "indicator"
}
],
"attack_pattern": [
{
"name": "Phishing",
"sys_id": "010d5bf14364c21060eee0ea78b8f2ac",
"id": "attack-pattern--810d5bf14364c21060eee0ea78b8f2ac",
"type": "attack-pattern"
}
],
"reference": [
{
"description": "phishing",
"reference_source": "CAPEC-98",
"sys_created_on": "2024-02-25T03:34:45.000Z",
"sys_id": "a42d97354364c21060eee0ea78b8f28c",
"sys_updated_on": "2024-02-25T03:34:45.000Z",
"url": " https://capec.mitre.org/data/98.html "
}
]
},
"attributes": {
"encryption_algorithm": "mime-type-indicated",
"mime_type": "application/zip"
}
},
{
"sys_id": "ccadb19143a0421060eee0ea78b8f2242",
"type": "ip_v4_address",
"value": "1.2.2.1",
"confidence": "70",
"reputation": "",
"relationships": {}
},
{
"sys_id": "7ccd359143a0421060eee0ea78b8f264",
"type": "artifact",
"value": "pom.xml",
"confidence": "",
"reputation": "",
"relationships": {}
}
],
"page_size": "100",
"next_page_token": "drejvfgbresg|7ccd359143a0421060eee0ea78b8f264",
"is_last_page": true,
"origin": "sn_sec_tisc"
}