TISC API
L’API TISC fournit des points de terminaison permettant d’ajouter et de récupérer des données de Threat Intelligence dans l’application Centre de sécurité des renseignements sur les menaces (TISC).
Les données récupérées par cette API peuvent être utilisées par d’autres outils de sécurité tels que les systèmes SIEM (Security Information Event Management). Les systèmes SIEM peuvent s’intégrer à l’aide de TISC cette API pour récupérer les observables liés aux menaces et TISC détecter et surveiller automatiquement ces menaces au sein du réseau d’une organisation. Cette API permet le partage bidirectionnel d’observables à partir d’outils de sécurité. Les systèmes SIEM observent une activité anormale dans l’environnement et peuvent fournir une liste des observables associés à l’activité anormale à TISC.
Cette API peut également être utilisée pour enrichir les alertes SIEM avec un contexte de renseignements sur les menaces. Par exemple, si une alerte SIEM est générée sur la base d’un trafic anormalement élevé provenant d’une adresse IP, elle peut fournir des informations supplémentaires, TISC par exemple si l’adresse IP ou le domaine impliqué est lié à des activités malveillantes connues. Ces données d’enrichissement permettent aux analystes de sécurité de trier les alertes et d’utiliser les informations contextuelles pour une correction efficace.
Cette API nécessite l’application Centre de sécurité des renseignements sur les menaces , qui est disponible sur le ServiceNow Store.
Cette API s’exécute dans l’espace de noms sn_sec_tisc .
La version actuelle de cette API est v1.
Pour plus d’informations sur l’authentification par API, reportez-vous à la section Sécurité des API REST de la section REST APIs.
Pour en savoir plus sur , reportez-vous à TISCla section Threat Intelligence Security Center.
API TISC : POST /sn_sec_tisc/threat_intel_data/add_observables
Ajoute des enregistrements sources d’observables à l’application Centre de sécurité des renseignements sur les menaces (TISC).
Les enregistrements sources des observables sont créés dans la table Source des observables [sn_sec_tisc_observable_source] et sont traités par déduplication et agrégation dans le flux de données TISC.
Pour accéder à ce point de terminaison, l’appelant doit disposer du rôle sn_sec_tisc.api_obs_write_access qui, par défaut, est inclus dans le rôle d’administrateur Threat Intelligence (sn_sec_tisc.admin).
Format d'URL
URL versionnée : /api/sn_sec_tisc/{api_version}/threat_intel_data/add_observables
URL par défaut : /api/sn_sec_tisc/threat_intel_data/add_observables
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| api_version | Facultatif. Version du point de terminaison auquel accéder. Exemple : v1 ou v2. Spécifiez uniquement cette valeur pour utiliser une version de point de terminaison différente de la dernière. Type de données : chaîne |
| Nom | Description |
|---|---|
| Aucun |
| Nom | Description |
|---|---|
| observables | Requis. Tableau d’objets observables à ajouter.TISC Pour chaque objet observable, un enregistrement source observable est créé si toutes les validations sont réussies, avec la source telle que définie par le source paramètre dans le corps de la demande.Type de données : tableau d’objets |
| Observables.Attributs | Paires champ-valeur contenant des données attributaires sur l’observable. Les attributs sont spécifiques à un type d’observable, comme le numéro AS pour une adresse IP ou le type de socket pour un réseau. Tous les attributs de tous les types d’observables sont pris en charge. Pour obtenir la liste complète des attributs valides, consultez la section Attributs observables ci-dessous. Type de données : objet |
| observables.<field> | Paires champ-valeur contenant des données générales sur l’observable. Les champs qui peuvent être fournis dans ce paramètre sont communs à tous les types d’observables et sont situés dans la table Source d’observables [sn_sec_tisc_observable_source]. Les type champs et value sont requis pour tous les observables. Remarque : Suivez les instructions suivantes pour fournir des valeurs :
Champs valides :
Type de données : chaîne |
| source | Requis. La source qui a détecté les observables à l’origine, par exemple un système SIEM. La source est utilisée pour tous les observables répertoriés dans la demande d’API. Les sources fournies dans le corps de la demande sont ajoutées à la table Intégration d’API [sn_sec_tisc_api_integration]. Type de données : chaîne |
En-têtes
Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir la liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.
| En-tête | Description |
|---|---|
| Accepter | Format de données du corps de la réponse. Prend uniquement en charge application/json. |
| Content-Type | Format de données du corps de la demande. Prend uniquement en charge application/json. |
| En-tête | Description |
|---|---|
| Aucun |
Codes d'état
Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir la liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été correctement traitée. |
| 400 | Demande incorrecte. Les paramètres de la demande ne sont pas valides ou le JSON du corps de la demande comporte une erreur syntaxique. Pour afficher les détails de l’erreur, consultez le error paramètre dans le corps de la réponse. |
| 401 | Non autorisé. L’authentification de l’utilisateur n’est pas valide. Vérifiez le nom d’utilisateur et le mot de passe ou le jeton OAuth. |
| 403 | Interdit. Il manque un rôle requis à l’utilisateur appelant. Le rôle sn_sec_tisc.api_obs_write_access est requis pour accéder à ce point de terminaison. |
| 429 | Trop de demandes. Le nombre de demandes d’API dépasse la limite de taux de l’API. Par défaut, la limite est de 100 demandes par heure. |
| 500 | Erreur interne du serveur. Consultez les journaux d’application dans la table Journal [syslog] pour plus d’informations sur l’erreur. |
Paramètres de corps de réponse (JSON)
| Nom | Description |
|---|---|
| erreur | Informations erronées. Ce paramètre n’est renvoyé qu’en cas d’échec de la demande.Type de données : objet |
| message.erreur | Message d’erreur indiquant le motif de l’échec de la demande. Type de données : chaîne |
| error.detail | Détails supplémentaires sur les raisons de l’échec de la demande. Type de données : chaîne |
| error_records | Détails sur les observables inclus dans la demande qui n’ont pas pu être ajoutés à TISC.Type de données : tableau d’objets |
| error_records.error_message | Message d’erreur qui explique pourquoi un enregistrement n’a pas pu être créé pour l’observable. Type de données : chaîne |
| error_records.type | Type d’observable. Pour obtenir la liste complète des types d’observables valides, consultez le champ Valeur de la table Type d’observable [sn_sec_tisc_observable_type] ou la section Attributs des observables ci-dessous. Type de données : chaîne |
| error_records.valeur | Valeur associée à l’observable, telle qu’une adresse IP ou une URL. Type de données : chaîne |
| metadonnées | Métadonnées sur le nombre d’enregistrements créés par la demande d’API. Type de données : objet |
| metadata.error_records | Nombre d’observables inclus dans la demande qui n’ont pas pu être ajoutés à TISC. Type de données : nombre |
| metadata.success_records | Nombre d’enregistrements d’observables créés avec succès dans .TISC Type de données : nombre |
| metadata.total_records | Nombre total d’observables inclus dans la demande. Type de données : nombre |
| statut | État de la demande d’API. Valeurs possibles :
Type de données : chaîne |
| success_records | Détails sur les enregistrements d’observables qui ont été créés avec succès.Type de données : tableau d’objets |
| success_records.sys_id | Sys_id de l’enregistrement de l’observable. Type de données : chaîne |
| success_records.type | Type d’observable. Pour obtenir la liste complète des types d’observables valides, consultez le champ Valeur de la table Type d’observable [sn_sec_tisc_observable_type] ou la section Attributs des observables ci-dessous. Type de données : chaîne |
| success_records.valeur | Valeur associée à l’observable, telle qu’une adresse IP ou une URL. Type de données : chaîne |
Attributs des observables
| Type d'observable | Attributs | Type de données |
|---|---|---|
| Artefact | decryption_key | Chaîne |
| encryption_algorithm | Chaîne | |
| md5_hash | Chaîne | |
| mime_type | Chaîne | |
| sha1_hash | Chaîne | |
| sha256_hash | Chaîne | |
| sha512_hash | Chaîne | |
| URL | Chaîne | |
| autonomous_system_number | nom | Chaîne |
| rir | Chaîne | |
| répertoire | directory_creation_time | Date |
| directory_last_accessed_time | Date | |
| directory_last_modified_time | Date | |
| encoded_path | Chaîne | |
| domain_name | is_fqdn (Nom de domaine complet) |
Booléen |
| resolves_to | Chaîne | |
| email_address | display_name | Chaîne |
| email_message | email_body | Chaîne |
| email_recipients_bcc | Chaîne | |
| email_recipients_cc | Chaîne | |
| email_recipients_to | Chaîne | |
| email_sender | Chaîne | |
| email_subject | Chaîne | |
| sent_date | Date | |
| email_subject | Aucun | |
| fichier | encoded_file_name | Chaîne |
| file_created_time | Date | |
| file_last_accessed_time | Date | |
| file_last_modified_time | Date | |
| file_name | Chaîne | |
| magic_number | Chaîne | |
| md5_hash | Chaîne | |
| mime_type | Chaîne | |
| sha1_hash | Chaîne | |
| sha256_hash | Chaîne | |
| sha512_hash | Chaîne | |
| ip_v4_address | as_number | Chaîne |
| mac_address | Chaîne | |
| ip_v4_cidr | as_number | Chaîne |
| mac_address | Chaîne | |
| ip_v6_address | as_number | Chaîne |
| mac_address | Chaîne | |
| ip_v6_cidr | as_number | Chaîne |
| mac_address | Chaîne | |
| mac_address | Aucun | |
| md5_hash | Aucun | |
| mutex_name | Aucun | |
| réseau | destination_bytes_count | Entier |
| destination_packets_count | Entier | |
| destination_port | ||
| end_time | Date | |
| http_message_body_length | Entier | |
| http_request_header | Chaîne | |
| http_request_method | Chaîne | |
| http_request_value | Chaîne | |
| http_request_version | Chaîne | |
| network_source | Chaîne | |
| network_destination | Chaîne | |
| icmp_code_byte | Chaîne | |
| icmp_type_byte | Chaîne | |
| is_network_active | Booléen | |
| is_socket_blocking | Booléen | |
| is_socket_listening | Booléen | |
| network_protocols | Chaîne | |
| socket_address_family | Chaîne Valeurs possibles :
|
|
| socket_descriptor | Entier | |
| socket_handle | Entier | |
| socket_options | Chaîne | |
| socket_type | Chaîne Valeurs possibles :
|
|
| source_bytes_count | Entier | |
| source_packets_count | Entier | |
| source_port | Chaîne | |
| start_time | Date | |
| tcp_destination_flags | Chaîne | |
| tcp_source_flags | Chaîne | |
| autre | Aucun | |
| Processus | aslr_enabled | Booléen |
| command_line | Chaîne | |
| Mot de passe CWD (répertoire de travail actuel) |
Chaîne | |
| dep_enabled | Booléen | |
| environment_variables | Chaîne | |
| is_hidden | Booléen | |
| owner_sid | Chaîne | |
| pid (ID du processus) |
Chaîne | |
| Priorité | Chaîne | |
| process_created_time | Date | |
| service_descriptions | Chaîne | |
| service_display_name | Chaîne | |
| service_group_name | Chaîne | |
| service_name | Chaîne | |
| service_start_type | Chaîne Valeurs possibles :
|
|
| service_status | Chaîne Valeurs possibles :
|
|
| service_type | Chaîne Valeurs possibles :
|
|
| startup_info | Chaîne | |
| windows_integrity_level | Chaîne Valeurs possibles :
|
|
| window_title | Chaîne | |
| sha1_hash | Aucun | |
| sha256_hash | Aucun | |
| sha512_hash | Aucun | |
| logiciel | cpe (Common Platform Enumeration) |
Chaîne |
| supported_languages | Chaîne | |
| SWID (en anglais seulement) (Identification logicielle) |
Chaîne | |
| vendor | Chaîne | |
| version | Chaîne | |
| URL | Aucun | |
| user_account | account_created_time | Date |
| account_expiry_time | Date | |
| account_type | Chaîne | |
| can_escalate_privileges | Booléen | |
| credentials_last_changed_time | Date | |
| display_name | Chaîne | |
| first_login_time | Date | |
| is_account_disabled | Booléen | |
| is_privileged | Booléen | |
| is_service_account | Booléen | |
| last_login_time | Date | |
| account_login | Chaîne | |
| user_id | Chaîne | |
| windows_registry_key | key_modified_time | Date |
| registry_value | Chaîne | |
| subkeys_count | Entier | |
| x509_certificate | authority_key_identifier | Chaîne |
| basic_constraints | Chaîne | |
| certificate_policies | Chaîne | |
| crl_distribution_points | Chaîne | |
| extended_key_usage | Chaîne | |
| inhibit_any_policy | Chaîne | |
| émetteur | Chaîne | |
| issuer_alternative_name | Chaîne | |
| is_self_signed | Booléen | |
| key_usage | Chaîne | |
| name_constraints | Chaîne | |
| policy_constraints | Chaîne | |
| policy_mappings | Chaîne | |
| private_key_usage_valid_from | Date | |
| private_key_usage_valid_until | Date | |
| signature_algorithm | Chaîne | |
| objet | Chaîne | |
| subject_alternative_name | Chaîne | |
| subject_directory_attributes | Chaîne | |
| subject_key_identifier | Chaîne | |
| subject_public_key_algorithm | Chaîne | |
| subject_public_key_exponent | Entier | |
| subject_public_key_modulus | Chaîne | |
| valid_from | Date | |
| valid_until | Date | |
| version | Chaîne |
Demande cURL
Cet exemple de demande contient trois observables pour lesquels créer des enregistrements dans .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"
}
]
}'
Deux des trois observables ont été ajoutés avec succès à TISC. Un enregistrement n’a pas été créé, car le type de l’observable n’est pas valide.
{
"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"
}
]
}
API TISC : POST/sn_sec_tisc/threat_intel_data/OBSERVABLES
Récupère les données observables, y compris les relations entre les observables et d’autres données Threat Intelligence telles que les objets STIX (Structured Threat Information Expression).
Les observables renvoyés dans la réponse sont triés sys_id par ordre croissant.
Pour plus d’informations sur les observables et les objets STIX, reportez-vous à la section IoC Repository.
Pour accéder à ce point de terminaison, l’appelant doit disposer du rôle sn_sec_tisc.api_obs_read_access qui, par défaut, est inclus dans le rôle d’administrateur Threat Intelligence (sn_sec_tisc.admin).
Format d'URL
URL versionnée : /api/sn_sec_tisc/{api_version}/threat_intel_data/observables
URL par défaut : /api/sn_sec_tisc/threat_intel_data/observables
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| api_version | Facultatif. Version du point de terminaison auquel accéder. Exemple : v1 ou v2. Spécifiez uniquement cette valeur pour utiliser une version de point de terminaison différente de la dernière. Type de données : chaîne |
| Nom | Description |
|---|---|
| Aucun |
| Nom | Description |
|---|---|
| included_fields | Champs à renvoyer pour les observables, les références observables et les objets STIX dans la réponse. Différents champs peuvent être retournés pour les observables, les références et chaque type d’objet STIX. ServiceNow Les champs système, à l’exception de sys_created_on, sys_updated_on et sys_id, ne sont pas renvoyés dans la réponse. Type de données : objet |
| included_fields.observable | Champs à retourner pour les observables. Type de données : objet Par défaut : renvoie les champs syd_id, type et valeur pour tous les types d’observables. |
| included_fields.observable.attributes | Objet contenant des champs à renvoyer pour les types d’observables spécifiés. Type de données : objet Par défaut : aucun champ spécifique à un type d’observable n’est renvoyé. Seuls les champs syd_id, type et valeur sont renvoyés. |
| included_fields.observable.attributes.<observable_type> | Objet contenant des champs à retourner pour un type d’observable.Remplacez Type de données : objet |
| included_fields.observable.attributes.<observable_type>.include_all_fields | Marqueur indiquant s’il faut renvoyer tous les champs disponibles pour le type d’observable. Valeurs valides :
Type de données : booléennes |
| included_fields.observable.attributes.<observable_type>.values | Liste des champs à renvoyer pour le type observable. N’utilisez ce paramètre que si la valeur de est include_all_fields faux.Les champs fournis doivent être column_names à partir de la table pour le type d’observable. Les tables suivantes sont utilisées pour les types observables.
Type de données : tableau |
| included_fields.observable.common_fields | Objet contenant des champs à renvoyer pour tous les types d’observables. Les champs doivent provenir de la table Observable [sn_sec_tisc_observable], car ils doivent être communs à tous les types d’observables. Type de données : objet Par défaut : renvoie les champs syd_id, type et valeur pour tous les types d’observables. |
| included_fields.observable.common_fields.include_all_fields | Marqueur indiquant s’il faut renvoyer tous les champs de la table Observable [sn_sec_tisc_observable] pour tous les types d’observables. Valeurs valides :
Type de données : booléennes |
| included_fields.observable.common_fields.values | Liste des champs à renvoyer pour tous les types d’observables. N’utilisez ce paramètre que si la valeur de est common_fields.include_all_fields faux.Les champs fournis doivent être column_names à partir de la table Observable [sn_sec_tisc_observable]. Type de données : tableau |
| included_fields.référence | Champs à retourner pour les références observables. Les références observables sont des références externes utilisées pour décrire des pointeurs vers des informations représentées en dehors de STIX.Type de données : objet Par défaut : renvoie les champs reference_source, sys_id et URL. |
| included_fields.reference.include_all_fields | Marqueur indiquant s’il faut renvoyer tous les champs disponibles pour les références observables. Valeurs valides :
Type de données : booléennes |
| included_fields.valeurs.référence | Liste des champs à renvoyer pour les références observables. N’utilisez ce paramètre que si la valeur de est reference.include_all_fields faux.Les champs fournis doivent être column_names à partir de la table Référence des observables [sn_sec_tisc_observable_reference]. Type de données : tableau |
| included_fields.<stix_object> | Objet contenant des champs à renvoyer pour un type d’objet STIX.Remplacez Types d’objets STIX valides :
Type de données : objet Par défaut : renvoie les champs ID, Nom et sys_id. |
| included_fields.<stix_object>.include_all_fields | Marqueur indiquant s’il faut renvoyer tous les champs disponibles pour le type d’objet STIX. Valeurs valides :
Type de données : booléennes |
| included_fields.<stix_object>.valeurs | Liste des champs à renvoyer pour le type d’objet STIX. N’utilisez ce paramètre que si la valeur de est include_all_fields faux.Les champs fournis doivent être column_names à partir de la table pour le type d’objet STIX. Les tables suivantes sont utilisées pour les objets STIX.
Type de données : tableau |
| observable_filters | Filtres à appliquer aux observables. Seuls les observables qui correspondent aux critères de filtre sont renvoyés dans la réponse.Type de données : objet Par défaut : objet vide (aucun filtre appliqué) |
| observable_filters.boolean_operator | Opérateur booléen à utiliser pour les conditions de filtre. Valeurs valides :
Type de données : chaîne |
| observable_filters.filters | Tableau de filtres à appliquer aux observables. Chaque objet de filtre peut être simple ou complexe.
Type de données : tableau |
| observable_filters.filters.field_name | Nom du champ à utiliser pour filtrer les observables. Valeurs valides :
Type de données : chaîne |
| observable_filters.filtres.opérateur | Opérateur à utiliser pour le filtre. Pour plus d’informations sur les opérateurs, reportez-vous à la section Operators available for filters and queries. Le type de données du champ de filtre détermine les opérateurs valides. Les opérateurs suivants sont valides pour chaque type de données.
Type de données : chaîne |
| observable_filters.filters.field_value | Valeur du champ. Pour les champs de choix, la valeur doit être la valeur interne et non la valeur d’affichage. Pour les champs de date et heure, la valeur doit être au format ISO dans le fuseau horaire UTC. Remarque : Ce paramètre n’est pas obligatoire lors de l’utilisation des opérateurs ISEMPTY ou ISNOTEMPTY. Type de données : chaîne |
| page_size | Limite le nombre d’observables qui sont renvoyés dans la réponse API. Utilisé pour la pagination. Type de données : chaîne Par défaut : 100 Valeur maximale : 1 000 |
| page_token | Utilisé pour obtenir les données des observables pour la page actuelle. Pour obtenir la première page, ce paramètre peut être omis ou la valeur de ce paramètre doit être une chaîne vide. Pour obtenir la page suivante de la demande suivante, utilisez la valeur du corps de la next_page_token réponse comme valeur de ce paramètre. Type de données : chaîne Par défaut : chaîne vide |
| Relations | Tableau de types de relations à retourner pour chaque observable dans la réponse. Les relations peuvent être avec un autre observable, une référence observable ou un objet STIX (Structured Threat Information Expression). Valeurs valides :
Par exemple, transmettre le tableau Type de données : tableau Par défaut : tableau vide (aucune relation renvoyée) |
En-têtes
Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir la liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.
| En-tête | Description |
|---|---|
| Accepter | Format de données du corps de la réponse. Prend uniquement en charge application/json. |
| Content-Type | Format de données du corps de la demande. Prend uniquement en charge application/json. |
| En-tête | Description |
|---|---|
| Aucun |
Codes d'état
Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir la liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été correctement traitée. |
| 400 | Demande incorrecte. Les paramètres de la demande ne sont pas valides ou le JSON du corps de la demande comporte une erreur syntaxique. Pour afficher les détails de l’erreur, consultez le error paramètre dans le corps de la réponse. |
| 401 | Non autorisé. L’authentification de l’utilisateur n’est pas valide. Vérifiez le nom d’utilisateur et le mot de passe ou le jeton OAuth. |
| 403 | Interdit. Il manque un rôle requis à l’utilisateur appelant. Le rôle sn_sec_tisc.api_obs_read_access est requis pour accéder à ce point de terminaison. |
| 429 | Trop de demandes. Le nombre de demandes d’API dépasse la limite de taux de l’API. Par défaut, la limite est de 500 demandes par heure. |
| 500 | Erreur interne du serveur. Consultez les journaux d’application dans la table Journal [syslog] pour plus d’informations sur l’erreur. |
Paramètres de corps de réponse (JSON)
| Nom | Description |
|---|---|
| erreur | Informations erronées. Ce paramètre n’est renvoyé qu’en cas d’échec de la demande.Type de données : objet |
| message.erreur | Message d’erreur indiquant le motif de l’échec de la demande. Type de données : chaîne |
| error.detail | Détails supplémentaires sur les raisons de l’échec de la demande. Type de données : chaîne |
| is_last_page | Marqueur indiquant s’il s’agit de la dernière page de données observables. Valeurs valides :
Type de données : booléennes |
| next_page_token | Utilisez cette valeur dans la prochaine demande API pour obtenir la page suivante de données observables. Fournissez cette valeur dans le page_token paramètre dans le corps de la demande. Type de données : chaîne |
| observables | Tableau d’objets observables. Chaque objet observables inclut également les champs spécifiés par le included_fields.observable.common_fields paramètre dans le corps de la demande.Type de données : tableau |
| Observables.Attributs | Objet contenant des paires champ-valeur pour les champs spécifiés par le paramètre dans le included_fields.observable.attributes.<observable_type> corps de la demande.Type de données : objet |
| Observables.Relations | Objet contenant des relations pour l’observable. Les types de relations renvoyés sont spécifiés par le relationships paramètre dans le corps de la demande, et les champs renvoyés pour chaque relation sont spécifiés par le included_fields paramètre dans le corps de la demande. Cet exemple montre la structure de base de ce paramètre. Toutefois, les types de relations et les champs renvoyés varient en fonction des paramètres du corps de la demande. Type de données : objet |
| observables.sys_id | Sys_id de l’observable. Situé dans la table Observable [sn_sec_tisc_observable]. Type de données : chaîne |
| type.observables | Type d’observable. Pour obtenir la liste complète des types d’observables valides, consultez le champ Valeur de la table Type d’observable [sn_sec_tisc_observable_type]. Type de données : chaîne |
| Valeur.Observables. | Valeur associée à l’observable, telle qu’une adresse IP ou une URL. Type de données : chaîne |
| origine | Application de l’origine de la réponse, qui est Centre de sécurité des renseignements sur les menaces (TISC). La valeur de ce paramètre est sn_sec_tisc.Cette valeur peut éventuellement être utilisée par les SIEM qui utilisent la réponse API pour déterminer si les renseignements proviennent de TISC ont entraîné la création d’incidents de sécurité. Type de données : chaîne |
| page_size | Nombre maximal d’observables renvoyés dans la réponse. Utilisé pour la pagination. Type de données : chaîne |
| statut | État de la demande d’API. Valeurs possibles :
Si la demande a échoué, consultez le paramètre dans le corps de error la réponse pour plus d’informations sur l’erreur. Type de données : chaîne |
Demande cURL
Cet exemple renvoie la première page de données observables. Le observable_filters paramètre spécifie de ne renvoyer que les observables qui correspondent à la condition état = actif ET [threat_score >= 70 OU confiance >= 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"
}
]
}
]
}
}'
Corps de réponse.
{
"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"
}