TISC API

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 24 minutes de lecture
  • L’API TISC fournit des points de terminaison permettant d’ajouter et de récupérer des données de renseignements sur les menaces 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 TISC à l’utilisation de 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 l’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 veille sur les menaces. Par exemple, si une alerte SIEM est générée en fonction d’un trafic anormalement élevé provenant d’une adresse IP, TISC cela peut fournir des informations supplémentaires telles que 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, qui est disponible sur le Centre de sécurité des renseignements sur les menacesServiceNow 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 API, reportez-vous à la section Sécurité de l’API REST dans REST APIs.

    Pour plus d’informations sur , reportez-vous à TISCThreat Intelligence Security Center.

    API TISC : POST /sn_sec_tisc/threat_intel_data/add_observables

    Ajoute des enregistrements sources observables à l’application Centre de sécurité des renseignements sur les menaces (TISC).

    Les enregistrements sources d’observables sont créés dans la table Source d’observable [sn_sec_tisc_observable_source] et sont traités via la déduplication et l’agrégation dans le flux de données TISC.

    Remarque :
    Les enregistrements sources des observables ne peuvent pas être directement mis à jour à l’aide de ce point de terminaison. Seuls de nouveaux enregistrements peuvent être créés. Par conséquent, même si seuls quelques champs nécessitent une mise à jour, tous les champs doivent toujours être inclus dans la demande.

    Pour accéder à ce point de terminaison, l’appelant doit disposer du rôle sn_sec_tisc.api_obs_write_access, qui est inclus par défaut dans le rôle administrateur de Renseignements sur les menaces (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

    Remarque :
    Les versions disponibles sont spécifiées dans l’explorateur d’API REST. Pour les API REST basées sur un script, des informations de version supplémentaires sont disponibles sur le formulaire Service REST scripté.

    Paramètres de demande pris en charge

    Tableau 1. Paramètres de chemin d'accès
    Nom Description
    api_version Facultatif. Version du point de terminaison auquel accéder. Par 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

    Tableau 2. Paramètres de requête
    Nom Description
    Aucun
    Tableau 3. Paramètres du corps de la demande (JSON)
    Nom Description
    observables Requis. Liste des objets observables à compléter TISC. Pour chaque objet observable, un enregistrement source d’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": [
       {
          "attributes": {Object},
          "<field>": "String"
       }
    ]
    Observables.Attributs Paires champ-valeur contenant des données d’attribut sur l’observable. Les attributs sont spécifiques à un type d’observable, tels que le numéro AS pour une adresse IP ou le type d’embase 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 des observables ci-dessous.

    Type de données : objet

    "attributes": {
       "<field>": "<value>"
    }
    observables.<field> Paires nom-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.

    Les type champs et value sont requis pour tous les observables.

    Remarque :
    Suivez les instructions suivantes pour fournir des valeurs :
    • Toutes les dates doivent être au format ISO dans le fuseau horaire UTC.
    • Certains champs nécessitent des valeurs d’une table spécifiée ou ont une liste de valeurs possibles. Si des valeurs non valides sont fournies pour ces champs, l’enregistrement source de l’observable est toujours créé, mais les valeurs non valides sont ignorées.

    Champs valides :

    additional_context
    Contexte supplémentaire sur l’observable.
    attack_phases
    Liste des noms de phases d’attaque séparés par des virgules. Pour obtenir la liste complète des phases d’attaque valides, consultez le champ Nom de la phase de kill chain dans la table Phase de kill chain [sn_sec_tisc_kill_chain_phase].
    Par exemple :
    "attack_phases": "Lockheed Martin: Reconnaissance,Lockheed Martin: Installation"
    auteur
    Auteur pour l’observable.
    fiabilité
    Confiance du système source dans l’exactitude des données observables. Doit être un nombre compris entre 0 et 100.
    description
    Description de l’observable.
    expiration_time
    Date d’expiration de l’enregistrement de l’observable.
    external_source_id
    ID externe de l’observable à partir du système source.
    first_observed
    Date à laquelle les données ont été observées pour la première fois.
    first_seen
    Date à laquelle cet observable a été vu pour la première fois en train d’effectuer des activités malveillantes.
    last_observed
    Date à laquelle les données ont été observées pour la dernière fois.
    last_seen
    Date à laquelle cet observable a été vu pour la dernière fois en train d’effectuer des activités malveillantes.
    notes
    Toute remarque supplémentaire pour l’observable. Peut être formaté en HTML.
    réputation
    Réputation de l’observable.
    Valeurs possibles :
    • effacer
    • malveillant
    • suspect
    • Inconnu
    source_reported_score
    Score de malveillance de l’observable signalé par le système source. Doit être un nombre compris entre 0 et 100.
    balises
    Liste des balises séparées par des virgules. Pour obtenir la liste complète des balises valides, consultez le champ Nom dans la table Balise [sn_sec_tisc_tag]. Si la balise fournie n’existe pas, la balise est automatiquement créée et associée à l’observable.
    Taxonomies
    Liste des taxonomies sous forme de valeurs séparées par des virgules. Pour obtenir la liste complète des taxonomies valides, consultez le champ Valeur de taxonomie dans la table Valeur de taxonomie [sn_sec_tisc_taxonomy_value].
    threat_level
    Niveau de menace de l’observable.
    Valeurs possibles :
    • faible
    • moyen
    • élevé
    threat_severity
    Gravité de la menace de l’observable.
    Valeurs possibles :
    • faible
    • moyen
    • élevé
    • critique
    Tlp
    Niveau de sensibilité des données pour l’observable à l’aide du protocole de feux tricolores (TLP).
    Valeurs possibles :
    • CLAIR
    • VERT
    • AMBRE
    • AMBRE+STRICT
    • ROUGE
    Table : dans le champ Étiquette de la table Étiquette TLP [sn_sec_tisc_tlp_label].
    type
    Requis. Type d’observable.

    Pour obtenir la liste complète des types d’observables valides, consultez le champ Valeur dans la table Type d’observable [sn_sec_tisc_observable_type] ou la section Attributs d’observable ci-dessous.

    usage_categories
    Liste des catégories d’utilisation séparées par des virgules. Pour obtenir une liste complète des catégories d’utilisation valides, consultez le champ Catégorie d’utilisation dans la table Catégorie d’utilisation [sn_sec_tisc_usage_category].
    valide
    Requis. Valeur associée à l’observable, telle qu’une adresse IP ou une URL.

    Type de données : chaîne

    Table : source d’observable [sn_sec_tisc_observable_source]

    source Requis. Source ayant détecté les observables à l’origine, telle qu’un système SIEM.

    La source est utilisée pour tous les observables répertoriés dans la demande d’API.

    Type de données : chaîne

    Stocké dans : Les sources fournies dans le corps de la demande sont ajoutées à la table Intégration d’API [sn_sec_tisc_api_integration].

    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.

    Tableau 4. En-têtes de demandes
    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.
    Tableau 5. En-têtes de réponses
    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.

    Tableau 6. Codes d'état
    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 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 relatives à l’erreur. Ce paramètre n’est renvoyé qu’en cas d’échec de la demande.

    Type de données : objet

    "error": {
       "message": "String",
       "detail": "String"
    }
    message.erreur Message d’erreur indiquant le motif de l’échec de la demande.

    Type de données : chaîne

    erreur.détail Détails supplémentaires sur le motif d’é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": "String",
        "type": "String",
        "value": "String"
      }
    ]
    error_records.message_erreur Message d’erreur expliquant 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 dans la table Type d’observable [sn_sec_tisc_observable_type] ou la section Attributs d’observable 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.
    "metadata": {
      "error_records": Number,
      "success_records": Number,
      "total_records": Number
    }

    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 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

    état État de la demande d’API.
    Valeurs possibles :
    • erreur : aucun observable ajouté avec succès à TISC.
    • ÉCHEC : la demande a échoué en raison d’une demande incorrecte ou d’une erreur système. Consultez le error paramètre dans le corps de la réponse pour plus d’informations sur l’erreur.
    • partial_success : certains observables ont été ajoutés avec succès à TISC.
    • réussite : tous les observables ont été ajoutés avec succès à TISC.

    Type de données : chaîne

    success_records Détails sur les enregistrements observables qui ont été créés avec succès.

    Type de données : tableau d’objets

    "success_records": [
      {
        "sys_id": "String",
        "type": "String",
        "value": "String"
      }
    ]
    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 dans la table Type d’observable [sn_sec_tisc_observable_type] ou la section Attributs d’observable 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

    La table suivante répertorie les attributs valides pour chaque type d’observable.
    Remarque :
    Toutes les dates doivent être au format ISO dans le fuseau horaire UTC.
    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 :
    • af_unspec
    • af_inet
    • af_ipx
    • af_appletalk
    • af_netbios
    • af_inet6
    • af_irda
    • af_bth
    socket_descriptor Entier
    socket_handle Entier
    socket_options Chaîne
    socket_type Chaîne
    Valeurs possibles :
    • service_kernel_driver
    • service_file_system_driver
    • service_win32_own_process
    • service_win32_share_process
    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
    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 de 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_auto_start
    • service_boot_start
    • service_demand_start
    • service_disabled
    • service_system_alert
    service_status Chaîne
    Valeurs possibles :
    • service_continue_pending
    • service_pause_pending
    • service_paused
    • service_running
    • service_start_pending
    • service_stop_pending
    • service_stopped
    service_type Chaîne
    Valeurs possibles :
    • service_kernel_driver
    • service_file_system_driver
    • service_win32_own_process
    • service_win32_share_process
    startup_info Chaîne
    windows_integrity_level Chaîne
    Valeurs possibles :
    • faible
    • moyen
    • élevé
    • système
    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

    (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 d’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 des observables, y compris les relations entre les observables et d’autres données de 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 est inclus par défaut dans le rôle administrateur de Renseignements sur les menaces (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

    Remarque :
    Les versions disponibles sont spécifiées dans l’explorateur d’API REST. Pour les API REST basées sur un script, des informations de version supplémentaires sont disponibles sur le formulaire Service REST scripté.

    Paramètres de demande pris en charge

    Tableau 7. Paramètres de chemin d'accès
    Nom Description
    api_version Facultatif. Version du point de terminaison auquel accéder. Par 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

    Tableau 8. Paramètres de requête
    Nom Description
    Aucun
    Tableau 9. Paramètres du corps de la demande (JSON)
    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 renvoyé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": {Object},
       "reference": {Object},
       "<stix_object>": {Object}
    } 
    included_fields.Observable Champs à renvoyer pour les observables.

    Type de données : objet

    "observable": { 
       "attributes": {Object},
       "common_fields": {Object}
    }

    Par défaut : renvoie les champs syd_id, type et valeur pour tous les types d’observables.

    included_fields.observable.attributs Champs à renvoyer pour les types d’observables spécifiés.

    Type de données : objet

    "attributes": { 
       "<observable_type>": {Object}
    }

    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.attributs.observables.<observable_type> Champs à renvoyer pour un type d’observable.

    Type de données : objet

    "<observable_type>": { 
       "include_all_fields": Boolean, 
       "values": [Array] 
    }

    Remplacez <observable_type> par le nom du type d’observable, tel qu’artefact. Pour obtenir la liste complète des types d’observables valides, consultez le champ Valeur dans la table Type d’observable [sn_sec_tisc_observable_type].

    included_fields.attributs.observables.<observable_type>.include_all_fields Marqueur indiquant s’il faut renvoyer tous les champs disponibles pour le type d’observable.
    Valeurs valides :
    • vrai : renvoie tous les champs pour le type d’observable.
    • faux : renvoie uniquement les champs spécifiés dans le paramètre pour le type d’observable values .

    Type de données : booléennes

    included_fields.attributs.observables.<observable_type>.valeurs Liste des champs à renvoyer pour le type d’observable. N’utilisez ce paramètre que si la valeur de include_all_fields est faux.

    Type de données : tableau de chaînes

    "values": [
       "String"
    ]
    Les champs fournis doivent être column_names de la table pour le type d’observable. Les tables suivantes sont utilisées pour les types d’observables.
    • Artefact [sn_sec_tisc_artifact]
    • Numéro AS [sn_sec_tisc_as_number]
    • Répertoire [sn_sec_tisc_directory]
    • Nom du domaine [sn_sec_tisc_domain_name]
    • Adresse e-mail [sn_sec_tisc_email_address]
    • E-mail [sn_sec_tisc_email_message]
    • Objet de l’e-mail [sn_sec_tisc_email_subject]
    • Fichier [sn_sec_tisc_file]
    • IPv4 [Adresse sn_sec_tisc_ipv4_address]
    • CIDR IPv4 [sn_sec_tisc_ipv4_cidr]
    • Adresse IPv6 [sn_sec_tisc_ipv6_address]
    • CIDR IPv6 [sn_sec_tisc_ipv6_cidr]
    • Adresse MAC [sn_sec_tisc_mac_address]
    • Hachage MD5 [sn_sec_tisc_md5_hash]
    • Nom Mutex [sn_sec_tisc_mutex_name]
    • Réseau [sn_sec_tisc_network]
    • Autre observable [sn_sec_tisc_other_observable]
    • Processus [sn_sec_tisc_process]
    • Hachage SHA1 [sn_sec_tisc_sha1_hash]
    • Hachage SHA256 [sn_sec_tisc_sha256_hash]
    • Hachage SHA512 [sn_sec_tisc_sha512_hash]
    • Logiciel [sn_sec_tisc_software]
    • URL [sn_sec_tisc_url]
    • Compte d’utilisateur [sn_sec_tisc_user_account]
    • Clé de registre Windows [sn_sec_tisc_windows_registry_key]
    • Certificat X.509 [sn_sec_tisc_x_509_certificate]
    included_fields.observable.common_fields 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

    "common_fields": { 
       "include_all_fields": Boolean, 
       "values": [Array] 
    }

    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 :
    • vrai : renvoie tous les champs de la table Observable [sn_sec_tisc_observable].
    • faux : renvoie uniquement les champs spécifiés dans le common_fields.values paramètre.

    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 common_fields.include_all_fields est faux.

    Type de données : tableau de chaînes

    "values": [
       "String"
    ]

    Les champs fournis doivent être des noms de colonnes de la table Observable [sn_sec_tisc_observable].

    included_fields.référence Champs à renvoyer pour les références d’observables. Les références d’observable sont des références externes utilisées pour décrire les pointeurs vers des informations représentées en dehors de STIX.

    Type de données : objet

    "reference": { 
       "include_all_fields": Boolean, 
       "values": [Array] 
    }

    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 :
    • vrai : renvoie tous les champs pour les références observables.
    • faux : renvoie uniquement les champs spécifiés dans le reference.values paramètre.

    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 reference.include_all_fields est faux.

    Type de données : tableau de chaînes

    "values": [
       "String"
    ]

    Les champs fournis doivent être des noms de colonnes de la table Référence observable [sn_sec_tisc_observable_reference].

    included_fields.<stix_object> Objet contenant des champs à renvoyer pour un type d’objet STIX.

    Type de données : objet

    "<stix_object>": { 
      "include_all_fields": Boolean, 
      "values": [Array] 
    }

    Remplacez <stix_object> par le nom du type d’objet STIX, par exemple attack_pattern.

    Types d’objets STIX valides :
    • attack_pattern
    • campagne
    • course_of_action
    • data_component
    • data_source
    • groupement
    • identity
    • incident
    • indicateur
    • infrastructure
    • intrusion_set
    • emplacement
    • programme malveillant
    • malware_analysis
    • remarque
    • observed_data
    • opinion
    • rapport
    • threat_actor
    • outil
    • vulnerability

    Par défaut : renvoie l’ID, le nom et l’sys_id des champs.

    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 :
    • true : renvoie tous les champs pour le type d’objet STIX.
    • false : renvoie uniquement les champs spécifiés dans le paramètre pour le type d’objet values STIX.

    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 include_all_fields est faux.

    Type de données : tableau de chaînes

    "values": [
       "String"
    ]
    Les champs fournis doivent être column_names de la table pour le type d’objet STIX. Les tableaux suivants sont utilisés pour les objets STIX.
    • Modèle d’attaque [sn_sec_tisc_attack_pattern]
    • Campagne [sn_sec_tisc_campaign]
    • Déroulement de l’action [sn_sec_tisc_course_of_action]
    • Composant de données [sn_sec_tisc_aggregated_data_component]
    • Source de données [sn_sec_tisc_aggregated_data_source]
    • Regroupement [sn_sec_tisc_threat_grouping]
    • Identité [sn_sec_tisc_identity]
    • Incident [sn_sec_tisc_threat_event]
    • Indicateur [sn_sec_tisc_indicator]
    • Infrastructure [sn_sec_tisc_infrastructure]
    • Ensemble d’intrusions [sn_sec_tisc_intrusion_set]
    • Emplacement [sn_sec_tisc_location]
    • Programme malveillant [sn_sec_tisc_malware]
    • Analyse de programme malveillant [sn_sec_tisc_malware_analysis]
    • Remarque [sn_sec_tisc_threat_note]
    • Données observées [sn_sec_tisc_observed_data]
    • Avis [sn_sec_tisc_threat_opinion]
    • Rapport [sn_sec_tisc_threat_report]
    • Acteur de menace [sn_sec_tisc_threat_actor]
    • Outil [sn_sec_tisc_tool]
    • Vulnérabilité [sn_sec_tisc_vulnerability]
    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

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

    Par défaut : objet vide (aucun filtre appliqué)

    observable_filters.boolean_operator Opérateur booléen à utiliser pour les conditions de filtre.
    Valeurs valides :
    • ET : renvoyer des observables qui répondent à toutes les conditions de filtre.
    • OU : renvoyer des observables qui remplissent au moins une des conditions de filtre.

    Type de données : chaîne

    observable_filters.filtres Filtres à appliquer aux observables.
    Chaque objet de filtre peut être simple ou complexe.
    • Les filtres simples contiennent un nom de champ, un opérateur et une valeur.
    • Les filtres complexes contiennent un opérateur booléen et un tableau de filtres simples. L’opérateur booléen est appliqué au tableau de filtres simples.

    Type de données : tableau d’objets

    "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"
             }  
          ]
       }
    ]
    nom_champ.filtres.observable_filters Nom du champ à utiliser pour filtrer les observables.
    Valeurs valides :
    • fiabilité
    • réputation
    • security_type
    • état
    • sys_created_on
    • sys_updated_on
    • threat_score
    • type
    • valide
    • watch_list

    Type de données : chaîne

    observable_filters.filters.operator 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.

    Booléen

    Champ applicable : watch_list

    • !=
    • =
    • ISEMPTY
    • ISNOTEMPTY
    Choix

    Champs applicables : réputation, security_type, statut

    • !=
    • =
    • SE TERMINE PAR
    • DANS
    • COMME
    • NON DANS
    • DIFFÉRENT DE
    • STARTSWITH
    Date-heure

    Champ applicable : sys_created_on

    • <
    • <=
    • >
    • >=
    • ISEMPTY
    • ISNOTEMPTY
    • NOTON
    • ACTIVÉ
    Numéro

    Champs applicables : fiabilité, threat_score

    • !=
    • <=
    • =
    • >=
    • ISEMPTY
    • ISNOTEMPTY
    Référence

    Champ applicable : type

    • !=
    • =
    • DANS
    • ISEMPTY
    • ISNOTEMPTY
    Chaîne

    Champ applicable : valeur

    • !=
    • <=
    • =
    • >=
    • SE TERMINE PAR
    • DANS
    • ISEMPTY
    • ISNOTEMPTY
    • COMME
    • DIFFÉRENT DE
    • STARTSWITH

    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 d’heure, la valeur doit être au format ISO dans le fuseau horaire UTC.

    Remarque :
    Ce paramètre n’est pas requis lors de l’utilisation des opérateurs ISEMPTY ou ISNOTEMPTY.

    Type de données : chaîne

    page_size Limite le nombre d’observables renvoyés dans la réponse API. Utilisé pour la pagination.

    Type de données : chaîne

    Par défaut : 100

    Valeur maximale : 1000

    page_token Utilisé pour obtenir des données 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 dans la demande suivante, utilisez la next_page_token valeur du corps de la réponse comme valeur pour ce paramètre.

    Type de données : chaîne

    Valeur par défaut : chaîne vide

    Relations Types de relations à renvoyer 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 :
    • attack_pattern
    • campagne
    • course_of_action
    • data_component
    • data_source
    • groupement
    • identity
    • incident
    • indicateur
    • infrastructure
    • intrusion_set
    • emplacement
    • programme malveillant
    • malware_analysis
    • remarque
    • observable
    • observed_data
    • opinion
    • référence
    • rapport
    • threat_actor
    • outil
    • vulnerability

    Par exemple, la transmission du tableau ["observable », « threat_actor"] renvoie tous les observables et acteurs de menace associés pour chaque observable de la réponse.

    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.

    Tableau 10. En-têtes de demandes
    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.
    Tableau 11. En-têtes de réponses
    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.

    Tableau 12. Codes d'état
    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 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 relatives à l’erreur. Ce paramètre n’est renvoyé qu’en cas d’échec de la demande.

    Type de données : objet

    "error": {
       "message": "String",
       "detail": "String"
    }
    message.erreur Message d’erreur indiquant le motif de l’échec de la demande.

    Type de données : chaîne

    erreur.détail Détails supplémentaires sur le motif d’é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 d’observables.
    Valeurs valides :
    • vrai : cette réponse contient la dernière page de données.
    • false : il existe des pages supplémentaires qui peuvent être renvoyées.

    Type de données : booléennes

    next_page_token Utilisez cette valeur dans la demande d’API suivante pour obtenir la page suivante de données observables. Fournissez cette valeur dans le page_token paramètre du corps de la demande.

    Type de données : chaîne

    observables Objets observables.

    Type de données : tableau d’objets

    "observables": [
      {
        "attributes": {Object},
        "relationships": {Object},
        "sys_id": "String",
        "type": "String",
        "value": "String"
      }
    ]
    Chaque objet observables comprend également les champs spécifiés par le included_fields.observable.common_fields paramètre dans le corps de la demande.
    Observables.Attributs Paires nom-valeur pour les champs spécifiés par le included_fields.observable.attributes.<observable_type> paramètre dans le corps de la demande.

    Type de données : objet

    "attributes": {
       "<field>": "<value>"
    }
    observables.relations Relations pour l’observable. Les types de relations renvoyées 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

    "relationships": {
       "observable": [
          {
             "sys_id": "String",
             "type": "String",
             "value": "String"
          }
       ],
       "indicator": [
          {
             "id": "String",
             "name": "String",
             "sys_id": "String"
          }
       ],
       "attack_pattern": [
          {
             "id": "String",
             "name": "String",
             "sys_id": "String"
          }
       ]
    }
    observables.sys_id Sys_id de l’observable.

    Type de données : chaîne

    Table : observable [sn_sec_tisc_observable]

    Observables.Type Type d’observable. Pour obtenir la liste complète des types d’observables valides, consultez le champ Valeur dans la table Type d’observable [sn_sec_tisc_observable_type].

    Type de données : chaîne

    observables.valeur Valeur associée à l’observable, telle qu’une adresse IP ou une URL.

    Type de données : chaîne

    origine Application d’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 consomment la réponse API pour déterminer si les renseignements ont TISC 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

    état État de la demande d’API.
    Valeurs possibles :
    • échec
    • réussite

    Si la demande a échoué, consultez le error paramètre dans le corps de 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 d’observables. Le observable_filters paramètre spécifie de renvoyer uniquement 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 la 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"
    }