Livrez chaque évaluation Device Intelligence terminée dans votre propre bucket S3 au format JSONL ou Parquet, avec l'empreinte complète de l'appareil et les signaux réseau, IP, géo, VPN, bot et comportementaux.
L’export S3 de Device Intelligence écrit chaque évaluation terminée dans un bucket S3 qui vous appartient, pour que vous puissiez charger les données d’empreinte et de risque dans votre propre entrepôt de données, vos outils antifraude ou votre pipeline d’analyse. Chaque enregistrement contient l’empreinte complète de l’appareil, ainsi que les signaux réseau, IP, géo, VPN, bot et comportementaux que cside a calculés pour cette visite.
Fonctionnalité Device Intelligence payante
L’export S3 est disponible sur les offres Device Intelligence payantes et pendant toute la durée d’un essai Device Intelligence actif. Activez-le et configurez-le dans Settings > Device Intelligence du tableau de bord. Si votre offre expire, cside conserve vos configurations d’export et met la livraison en pause, et l’onglet est remplacé par une invitation à passer à une offre supérieure : les exports ne peuvent donc plus être modifiés ni supprimés tant que vous n’avez pas mis à niveau. La livraison reprend d’elle-même après la mise à niveau, sans reconfiguration.
Fonctionnement de la livraison
Format : JSONL (JSON Lines, application/x-ndjson) ou Apache Parquet. Vous choisissez le format pour chaque export dans le tableau de bord. En JSONL, chaque ligne est un enregistrement d’évaluation complet. Parquet regroupe les mêmes enregistrements dans un fichier en colonnes que vous pouvez charger directement dans un entrepôt de données ou un moteur de requête.
Fréquence : cside envoie un lot par jour. Chaque exécution couvre l’intégralité du jour UTC précédent. Un jour sans évaluation terminée ne produit aucun objet.
Organisation des objets : les objets sont déposés sous un chemin partitionné et autodescriptif (voir ci-dessous).
Dédupliqué : chaque évaluation apparaît une seule fois, dans sa dernière version calculée. Réexécuter un jour écrase les mêmes objets sur place, il n’y a donc aucune ligne en double à réconcilier.
Destination : votre bucket. cside écrit des objets, mais ne les lit ni ne les liste jamais.
dt=<YYYY-MM-DD> est le jour UTC auquel les enregistrements appartiennent, et <HH> est l’heure UTC sur deux chiffres, de sorte que l’export d’un jour est réparti en un objet par heure ayant eu des évaluations. <ext> vaut jsonl ou parquet. Les segments team= et dt= sont des partitions de style Hive, de sorte que des moteurs de requête comme Athena, Glue et Spark les utilisent automatiquement pour l’élagage des partitions.
Configurer l’export
Choisissez un bucket et un préfixe de chemin
Créez ou choisissez un bucket S3, puis décidez d’un préfixe de chemin pour l’export, par exemple fingerprints/. cside n’écrit que sous ce préfixe, ce qui garde l’export séparé du reste du bucket. Le préfixe est optionnel. Sans préfixe, cside écrit à la racine du bucket.
Accordez à cside l’accès en écriture
Ajoutez cette instruction à la politique de votre bucket, sous Permissions dans la console S3 :
Remplacez <your-bucket> par le nom de votre bucket. L’autorisation est en écriture seule : s3:PutObject permet à cside d’ajouter des objets et rien d’autre, donc cside ne peut ni lister, ni lire, ni supprimer quoi que ce soit dans votre bucket.
Restreindre l'autorisation à votre préfixe
Pour restreindre la politique, définissez Resource sur arn:aws:s3:::<your-bucket>/<your-path-prefix>/*. Le tableau de bord génère la politique pour vous, avec votre bucket et votre préfixe déjà renseignés : si vous utilisez un préfixe, copiez cette version.
Propriété des objets
cside livre chaque objet via une copie côté serveur depuis son propre bucket vers le vôtre. Gardez votre bucket sur la propriété d’objet Bucket owner enforced (ACL désactivées), qui est la valeur par défaut de S3, afin que votre compte soit propriétaire des objets livrés et puisse les lire.
Créez l’export dans le tableau de bord
Ouvrez le tableau de bord, allez dans Settings > Device Intelligence et sélectionnez New export. Remplissez le formulaire :
Domain Scope : tous les domaines, y compris ceux que vous ajouterez plus tard, ou un sous-ensemble de votre choix
S3 Bucket Name et Region : le bucket de l’étape 1
Path Prefix (optionnel) : le préfixe de l’étape 1
Format : JSONL ou Parquet
cside nomme l’export pour vous, à partir de la portée et du bucket. Une fois l’export enregistré, les fichiers quotidiens commencent à arriver sous votre préfixe. Depuis le même onglet, vous pouvez mettre un export en pause avec son interrupteur, le modifier ou le supprimer.
Partager un bucket avec l’export des alertes de sécurité
L’export Device Intelligence et l’export S3 des alertes de sécurité écrivent depuis le même rôle IAM cside et demandent la même autorisation s3:PutObject, donc une seule instruction AllowCsideNotificationExport portant sur tout le bucket couvre les deux.
Ce sont deux destinations indépendantes, chacune avec son bucket, sa région et son préfixe optionnel, vous pouvez donc les pointer vers un même bucket ou vers des buckets séparés. Leurs fichiers n’entrent jamais en conflit : les alertes sont écrites sous la forme alerts-team-<team_id>-<from>-<to>.csv, les évaluations sous la forme cside-fingerprints/team=<team_id>/dt=<YYYY-MM-DD>/. Les préfixes servent à organiser les objets, ce n’est pas ce qui sépare les deux exports.
Structure d’un enregistrement
Chaque ligne est un objet JSON avec un ensemble de champs d’identité de premier niveau, plus des objets imbriqués pour chaque groupe de signaux :
Objet
Description
fingerprint
L’empreinte de l’appareil (navigateur, matériel, rendu et signaux d’environnement).
network_client_metrics
Caractéristiques TCP et TLS de la connexion.
ip_enrichment
Données d’ASN, de géo et de confidentialité dérivées de l’IP du visiteur.
geo_lite_city_data
Géolocalisation au niveau de la ville pour l’IP du visiteur.
vpn_evaluation
Probabilité de VPN et signaux associés.
bot_evaluation
Probabilité de bot, verdict et signaux associés.
fingerprint_enrichment
Signaux dérivés de l’empreinte, comme la détection d’e-mail jetable.
rule_evaluations
Résultats des règles évaluées pour cette visite.
behavior
Signaux comportementaux dans la page pour la session : hooks d’API JavaScript, nombre d’événements non fiables et détection d’agent. Présent lorsque des données comportementales ont été collectées, sinon null.
Une clé absente signifie une valeur par défaut
Un champ n’apparaît que lorsqu’il a une valeur autre que celle par défaut. Une clé absente signifie que la valeur était vide, false, 0, ou non collectée. Lorsque vous analysez le fichier, traitez une clé absente comme une valeur par défaut, pas comme une erreur.
Champs de premier niveau
Champ
Type
Description
evaluation_id
string
ID unique de cette évaluation.
customer_id
string
L’ID cside de votre domaine.
customer_domain
string
Le domaine évalué.
team_id
string
L’ID de votre équipe cside.
timestamp
string
Heure de l’évaluation, ISO 8601.
page_url
string
La page où l’évaluation a été déclenchée.
session_id
string
ID de session du navigateur.
request_id
string
ID de corrélation de la requête d’origine.
client_ip
string
Adresse IP du visiteur.
user_agent
string
User agent du navigateur du visiteur.
device_id
string
Identifiant stable de l’appareil, dérivé des signaux collectés. Présent aussi dans l’objet fingerprint.
is_bot
boolean
Si le visiteur est classé comme bot. Le verdict complet est dans bot_evaluation.
bot_agent_id
string
Bot identifié, le cas échéant (par exemple google-googleother).
is_vpn
boolean
Si le visiteur est classé comme utilisant un VPN. Le verdict complet est dans vpn_evaluation.
vpn_probability
number
Probabilité de VPN, de 0 à 1.
vpn_confidence
number
Confiance dans la classification VPN, de 0 à 1.
vpn_reasons
string[]
Raisons lisibles de la classification VPN.
device_fingerprint
string
Jeton compact d’empreinte de l’appareil (base64).
threat_fingerprint
string
Jeton compact d’empreinte de menace (base64).
Objet fingerprint
L’empreinte de l’appareil est le plus gros objet. Les tableaux ci-dessous regroupent ses champs par catégorie.
Identité
Champ
Type
Description
device_id
string
Identifiant stable de l’appareil, dérivé des signaux collectés.
Navigateur et système
Champ
Type
Description
product
string
Valeur navigator.product du navigateur.
product_sub
string
Valeur navigator.productSub du navigateur.
browser_name
string
Nom du navigateur.
browser_version
string
Version du navigateur.
mobile
boolean
Si le navigateur se déclare mobile.
apple_pay_version
number
Version de l’API Apple Pay, quand elle est disponible.
user_agent
string
Chaîne user agent du navigateur.
plugins
string[]
Plugins installés dans le navigateur.
platform
string
Plateforme du système d’exploitation.
cpu_architecture
string
Architecture CPU signalée.
hardware_architecture
number
Indicateur d’architecture matérielle.
connection
string
Type de connexion réseau (par exemple 4g).
Rendu (Canvas, WebGL, WebGPU)
Champ
Type
Description
canvas_signal
string
Signal de rendu Canvas.
webgl_signal
string
Signal de rendu WebGL.
webgl_vendor
string
Chaîne de fournisseur WebGL.
webgl_renderer
string
Chaîne de moteur de rendu WebGL.
video_card_vendor
string
Fournisseur du GPU.
video_card_renderer
string
Moteur de rendu du GPU.
video_card_vendor_unmasked
string
Fournisseur du GPU non masqué, quand il est disponible.
video_card_renderer_unmasked
string
Moteur de rendu du GPU non masqué, quand il est disponible.
video_card_version
string
Chaîne de version du pilote GPU.
video_card_shading_language_version
string
Version du langage de shading.
webgpu_supported
boolean
Si WebGPU est pris en charge.
webgpu_adapter
string
Description de l’adaptateur WebGPU.
webgpu_signal
string
Signal de rendu WebGPU.
Langue et heure
Champ
Type
Description
timezone
string
Fuseau horaire signalé.
locale
string
Paramètre régional signalé.
languages
string[]
Langues acceptées.
Audio
Champ
Type
Description
audio_signal
string
Signal d’empreinte audio.
audio_max_channels
number
Nombre maximal de canaux de sortie audio.
audio_channel_count_mode
string
Mode de comptage des canaux audio.
Matériel
Champ
Type
Description
device_memory
number
Mémoire de l’appareil signalée, en Go.
hardware_concurrency
number
Nombre de cœurs CPU logiques.
js_heap_size_limit
number
Limite du tas JavaScript, en octets.
math_values
object
Résultats des sondes de précision mathématique, indexés par opération.
Écran
Champ
Type
Description
screen_width
number
Largeur de l’écran en pixels.
screen_height
number
Hauteur de l’écran en pixels.
screen_resolution
string
Chaîne de résolution d’écran.
color_depth
number
Profondeur de couleur de l’écran.
device_pixel_ratio
number
Rapport de pixels de l’appareil.
touch_support
boolean
Si la saisie tactile est prise en charge.
max_touch_points
number
Nombre maximal de points tactiles simultanés.
media_matches
string[]
Media queries CSS correspondantes.
API du navigateur
Champ
Type
Description
online_status
boolean
Si le navigateur se déclare en ligne.
do_not_track
string
Réglage Do Not Track.
cookies_enabled
boolean
Si les cookies sont activés.
media_devices
string[]
Types de périphériques multimédias disponibles.
indexeddb_support
boolean
Prise en charge d’IndexedDB.
localstorage_support
boolean
Prise en charge de localStorage.
sessionstorage_support
boolean
Prise en charge de sessionStorage.
bluetooth_support
boolean
Prise en charge de Web Bluetooth.
geolocation_support
boolean
Prise en charge de l’API de géolocalisation.
device_motion_support
boolean
Prise en charge du mouvement de l’appareil.
device_orientation_support
boolean
Prise en charge de l’orientation de l’appareil.
speech_recognition_support
boolean
Prise en charge de la reconnaissance vocale.
vibration_support
boolean
Prise en charge de l’API de vibration.
gamepad_support
boolean
Prise en charge de l’API gamepad.
fullscreen_support
boolean
Prise en charge de l’API plein écran.
clipboard_support
boolean
Prise en charge de l’API presse-papiers.
service_worker_support
boolean
Prise en charge des Service Workers.
webassembly_support
boolean
Prise en charge de WebAssembly.
Préférences
Champ
Type
Description
prefers_dark_mode
boolean
Préfère le thème sombre.
prefers_reduced_motion
boolean
Préfère les animations réduites.
Polices
Champ
Type
Description
detected_fonts
string[]
Polices détectées sur l’appareil.
font_metrics
object
Métriques de rendu des polices, indexées par mesure.
Signaux réseau
Champ
Type
Description
stun_ips
string[]
Adresses IP issues des candidats WebRTC du visiteur, généralement l’adresse publique signalée par le serveur STUN. Souvent vide : les navigateurs masquent les adresses locales et WebRTC n’est pas toujours disponible.
permission_states
object
États des autorisations, indexés par nom d’autorisation.
WebRTC, synthèse vocale et MathML
Champ
Type
Description
webrtc_supported
boolean
Prise en charge de WebRTC.
webrtc_hash
string
Hash de l’ensemble de fonctionnalités WebRTC.
webrtc_details
object
Capacités WebRTC détaillées.
webrtc_error
string
Erreur de la sonde WebRTC, le cas échéant.
speech_synthesis_supported
boolean
Prise en charge de la synthèse vocale.
speech_hash
string
Hash de l’ensemble des voix de synthèse.
speech_details
object
Données détaillées de synthèse vocale.
speech_error
string
Erreur de la sonde vocale, le cas échéant.
mathml_supported
boolean
Prise en charge de MathML.
mathml_hash
string
Hash du rendu MathML.
mathml_details
object
Données détaillées du rendu MathML.
mathml_error
string
Erreur de la sonde MathML, le cas échéant.
Performances et batterie
Champ
Type
Description
fps
number
Images par seconde mesurées.
battery_info
object
État de la batterie : charging, level, charging_time, discharging_time.
Détection de navigation privée
Champ
Type
Description
incognito_detected
boolean
Si un mode de navigation privée a été détecté.
incognito_support
string
Niveau de prise en charge de la méthode de détection.
incognito_method
string
Méthode de détection utilisée.
incognito_quota_bytes
number
Quota de stockage observé pendant la détection.
Détection des outils de développement
Champ
Type
Description
developer_tools_detected
boolean
Si les outils de développement semblent ouverts.
developer_tools_support
string
Niveau de prise en charge de la détection.
developer_tools_method
string
Méthode de détection utilisée.
developer_tools_gap_px
number
Écart de la fenêtre, en pixels, utilisé pour la détection.
Détection de machine virtuelle
Champ
Type
Description
virtual_machine_detected
boolean
Si l’appareil semble être une machine virtuelle.
virtual_machine_support
string
Niveau de prise en charge de la détection.
virtual_machine_reason
string
Raison pour laquelle l’appareil a été signalé.
Automatisation et falsification
Champ
Type
Description
web_driver
boolean
Si navigator.webdriver est défini.
web_driver_tampered
boolean
Si l’indicateur webdriver semble falsifié.
cdp
boolean
Utilisation du Chrome DevTools Protocol détectée.
cdp_tampered
boolean
Si les signaux CDP semblent falsifiés.
tamper_injected_globals
string[]
Variables globales suspectes injectées.
tamper_expose_binding_leak
boolean
Fuite de binding associée à l’automatisation.
tamper_desc_instance_own
string[]
Descripteurs de propriété propres anormaux.
tamper_desc_proto_nonnative
string[]
Descripteurs de prototype non natifs.
tamper_xrealm_webdriver_mismatch
boolean
Incohérence de webdriver entre realms.
tamper_xrealm_renderer_delta
boolean
Différence de moteur de rendu entre realms.
tamper_probe_blocked
boolean
Si les sondes de falsification ont été bloquées.
Attestation de l’appareil
Champ
Type
Description
device_uvpaa
boolean
Authentificateur de plateforme avec vérification de l’utilisateur disponible.
device_client_caps_count
number
Nombre de capacités du client signalées.
device_caps_uvpa
boolean
Capacité de l’authentificateur de plateforme.
device_apple_pay_active_card
boolean
Apple Pay a une carte active.
device_payment_enrolled
boolean
L’appareil est enregistré pour un moyen de paiement.
device_serial_present
boolean
Capacité série présente.
device_hid_present
boolean
Capacité HID présente.
device_notif_static
string
Signal statique de capacité de notification.
device_notif_queried
string
Signal interrogé de capacité de notification.
device_realness_probe_error
boolean
Si une sonde d’authenticité a échoué.
DRM
Champ
Type
Description
drm_probed
boolean
Si la prise en charge du DRM a été sondée.
drm_clearkey
boolean
Prise en charge de Clear Key.
drm_widevine
boolean
Prise en charge de Widevine.
drm_widevine_robustness
string
Niveau de robustesse de Widevine.
drm_externalclearkey
boolean
Prise en charge d’External Clear Key.
drm_fairplay
boolean
Prise en charge de FairPlay.
drm_playready
boolean
Prise en charge de PlayReady.
drm_hw_secure_all
boolean
Prise en charge du décodage sécurisé matériel.
drm_ua_brand_is_google_chrome
boolean
La marque du UA déclare Google Chrome.
drm_error
string
Erreur de la sonde DRM, le cas échéant.
drm_elapsed_ms
number
Durée de la sonde DRM, en millisecondes.
Étiquettes fournies par le client
Champ
Type
Description
external_ids
object
Identifiants que vous avez attachés à l’empreinte, comme accountId, orderId ou email.
extension_presence_results
object
Extensions de navigateur détectées, indexées par extension.
Objet network_client_metrics
Caractéristiques TCP et TLS au niveau de la connexion.
Champ
Type
Description
client_ip
string
Adresse IP du visiteur.
client_port
number
Port source du visiteur.
user_agent
string
User agent vu au niveau réseau.
js_timezone
string
Fuseau horaire signalé par JavaScript.
timestamp
string
Heure à laquelle l’échantillon réseau a été prélevé, ISO 8601.
request_id
string
ID de requête au niveau réseau.
protocol
string
Protocole HTTP utilisé.
quic_version
number
Version de QUIC, lorsque la connexion a utilisé QUIC.
syn_ip_ttl
number
TTL IP du paquet SYN initial.
syn_window_size
number
Taille de fenêtre TCP du SYN initial.
syn_window_scale
number
Échelle de fenêtre TCP du SYN initial.
tcp_rtt_usec
number
Temps d’aller-retour TCP estimé, en microsecondes.
tcp_rttvar_usec
number
Variance du temps d’aller-retour TCP.
tcp_rtt_min_usec
number
Temps d’aller-retour TCP minimal observé.
tcp_timestamp
number
Valeur de l’option timestamp TCP.
tcp_mss_syn
number
MSS TCP annoncé.
tcp_mss_rcv
number
MSS TCP observé du pair.
tls_handshake_usec
number
Durée du handshake TLS, en microsecondes.
tls_clienthello_size
number
Taille du ClientHello, en octets.
tls_sni_format
string
Format de l’extension SNI.
tls_alpn_protocols
string[]
Protocoles ALPN proposés dans le handshake TLS.
tls_clienthello_ciphers
number[]
Suites de chiffrement proposées.
tls_clienthello_extensions
number[]
Extensions TLS proposées.
tls_clienthello_signature_algs
number[]
Algorithmes de signature proposés.
tls_clienthello_legacy_version
number
Version legacy du ClientHello.
tls_clienthello_supported_versions
number[]
Versions de TLS proposées.
tls_ja4
string
Empreinte JA4 du client TLS.
matched_against
string
Domaine auquel la connexion a été associée.
team_id
string
L’ID de votre équipe cside.
Objet ip_enrichment
Données dérivées de l’adresse IP du visiteur.
Champ
Type
Description
asn
number
Numéro de système autonome.
asn_name
string
Nom de l’organisation de l’ASN.
asn_network
string
Plage réseau de l’ASN.
asn_type
string
Type d’ASN, comme hosting ou isp.
city_name
string
Nom de la ville.
country_code
string
Code pays.
country_name
string
Nom du pays.
latitude
number
Latitude.
longitude
number
Longitude.
postal_code
string
Code postal.
region_code
string
Code de région.
region_name
string
Nom de la région.
timezone
string
Fuseau horaire.
hosting
boolean
L’IP appartient à un hébergeur.
proxy
boolean
L’IP est un proxy connu.
relay
boolean
L’IP est un relais privé.
tor
boolean
L’IP est un nœud de sortie Tor.
vpn
boolean
L’IP est un VPN connu.
service
string
Service de confidentialité identifié, le cas échéant.
maxmind_asn
number
ASN selon MaxMind.
is_datacenter_ip
boolean
L’IP est dans une plage de centre de données.
is_likely_datacenter
number
Score de probabilité de centre de données.
Objet geo_lite_city_data
Géolocalisation au niveau de la ville.
Champ
Type
Description
city_name
string
Nom de la ville.
country_code
string
Code pays.
country_name
string
Nom du pays.
latitude
number
Latitude.
longitude
number
Longitude.
postal_code
string
Code postal.
region_code
string
Code de région.
region_name
string
Nom de la région.
timezone
string
Fuseau horaire.
Objet vpn_evaluation
Probabilité de VPN et signaux associés.
Champ
Type
Description
is_vpn
boolean
Si le visiteur est classé comme utilisant un VPN.
vpn_probability
number
Probabilité de VPN, de 0 à 1.
vpn_confidence
number
Confiance dans la classification, de 0 à 1.
reasons
string[]
Raisons lisibles de la classification.
features
object
Signaux numériques utilisés pour la classification.
context
object
Contexte d’enrichissement, comme le nom d’hôte DNS inverse, l’ASN et la géo.
Objet bot_evaluation
Probabilité de bot et verdict.
Champ
Type
Description
is_bot
boolean
Si le visiteur est classé comme bot.
bot_probability
number
Probabilité de bot, de 0 à 1.
bot_confidence
number
Confiance dans la classification, de 0 à 1.
bot_agent_id
string
Bot identifié, le cas échéant (par exemple google-googleother).
reasons
string[]
Raisons lisibles de la classification.
session_event_count
number
Nombre d’événements comportementaux traités pour la session.
model_1_score
number
Score du premier modèle de bot (signaux d’empreinte et réseau).
model_1_threshold
number
Seuil de décision appliqué au score du premier modèle.
model_2_score
number
Score du deuxième modèle de bot (signaux comportementaux).
model_2_threshold
number
Seuil de décision appliqué au score du deuxième modèle.
features
object
Signaux numériques utilisés pour la classification.
Objet fingerprint_enrichment
Champ
Type
Description
throwaway_email_detected
boolean
Si un e-mail attaché utilise un domaine jetable.
Objet rule_evaluations
Champ
Type
Description
rules
object[]
Résultats des règles nommées. Chaque entrée contient slot, rule_id, result, metadata et computed_at.
Objet behavior
Signaux comportementaux dans la page pour la session. L’objet entier vaut null lorsqu’aucune donnée comportementale n’a été collectée pour l’évaluation, ce qui vous permet de distinguer « aucun agent détecté » de « aucune donnée comportementale ».
Champ
Type
Description
start_time
number
Début de la fenêtre d’observation comportementale.
end_time
number
Fin de la fenêtre d’observation comportementale.
page_urls
string[]
Pages vues pendant la fenêtre comportementale de la session.
js_hooks
object[]
API JavaScript intégrées interceptées. Chaque entrée contient key (la fonction interceptée, comme eval, fetch, function_bind, script_create ou node_append_child), initializer (ce qui a installé le hook) et count (le nombre de déclenchements).
untrusted_event_count
number
Nombre d’événements DOM signalés avec isTrusted à false, un signal d’automatisation courant.
agent_detected
boolean
Si un échantillon de la session a été signalé comme un agent automatisé.
Exemple d’enregistrement
Un seul enregistrement, mis en forme ici pour la lisibilité. Dans le fichier, chaque enregistrement tient sur une ligne.
Ce site utilise des cookies et d'autres technologies qui nous permettent, ainsi qu'aux entreprises avec lesquelles nous travaillons, de collecter des informations sur votre appareil et votre utilisation du site afin d'assurer le bon fonctionnement, l'analyse et la publicité. Consultez notre avis sur les cookies pour plus de détails.