Raccogliere i log di BeyondTrust Remote Support
Questo parser gestisce i messaggi syslog di BeyondTrust Remote Support, trasformandoli in formato UDM. Elabora i log con formato CEF e non CEF, estrae i campi, esegue trasformazioni dei dati e li mappa ai campi UDM appropriati, inclusi i dettagli relativi a principali, target e risultati di sicurezza.
Prima di iniziare
- Assicurati di avere un'istanza Google Security Operations.
- Assicurati di utilizzare Windows 2016 o versioni successive o un host Linux con systemd.
- Se il servizio è in esecuzione dietro un proxy, assicurati che le porte del firewall siano aperte.
Recupera il file di autenticazione di importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione dell'importazione.
Ottenere l'ID cliente Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
- Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.
Installa BindPlane Agent
- Per l'installazione su Windows, esegui il seguente script:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- Per l'installazione di Linux, esegui il seguente script:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- Ulteriori opzioni di installazione sono disponibili in questa guida all'installazione.
Configurare l'agente BindPlane per importare i syslog e inviarli a Google SecOps
- Accedi al computer su cui è installato BindPlane.
Modifica il file
config.yaml
come segue:receivers: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: BeyondTrust_Remote_Support raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Riavvia l'agente BindPlane per applicare le modifiche:
sudo systemctl restart bindplane
Configurare l'esportazione di syslog da BeyondTrust Remote Support
- Accedi al tuo BeyondTrust Remote Support.
- Vai a Sicurezza > Amministrazione dell'appliance.
- Vai alla sezione Syslog e imposta i seguenti valori:
- Server syslog remoto: inserisci il nome host o l'indirizzo IP del server host syslog (Bindplane). In questo campo puoi aggiungere fino a tre server syslog.
- Formato messaggio: seleziona RFC 5424.
- Porta: inserisci la porta del server host syslog (Bindplane).
- Fai clic su Invia.
Mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
account:expiration | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "account:expiration" nel log non elaborato. |
account:email:locale | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "account:email:locale" nel log non elaborato. |
command_shell_is_whitelist | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "ssions:command_shell_is_whitelist" nel log non elaborato. |
dataora | read_only_udm.metadata.event_timestamp.seconds | Il valore viene analizzato dal campo "data/ora" nel log non elaborato e convertito in un timestamp Unix. |
dtPostTime | read_only_udm.metadata.event_timestamp.seconds | Il valore viene analizzato dal campo "dtPostTime" nel log non elaborato e convertito in un timestamp Unix. |
event | read_only_udm.metadata.product_event_type | Il valore viene preso dal campo "event" nel log non elaborato. |
host | read_only_udm.principal.hostname | Il valore viene preso dal campo "host" nel log non elaborato. |
ID | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "id" nel log non elaborato. |
license_pool:id | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "license_pool:id" nel log non elaborato. |
login_schedule:timezone | read_only_udm.target.location.country_or_region | Il valore viene preso dal campo "login_schedule:timezone" nel log non elaborato. |
old_account:email:address | read_only_udm.target.user.email_addresses | Il valore viene preso dal campo "old_account:email:address" nel log non elaborato. |
old_account:failed_logins | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_account:failed_logins" nel log non elaborato. |
old_display_number | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_display_number" nel log non elaborato. |
old_login_schedule:timezone | read_only_udm.target.location.country_or_region | Il valore viene preso dal campo "old_login_schedule:timezone" nel log non elaborato. |
old_permissions:api:reporting | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:api:reporting" nel log non elaborato. |
old_permissions:jump_item_role:default:id | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:jump_item_role:default:id" nel log non elaborato. |
old_permissions:jump_item_role:default:name | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:jump_item_role:default:name" nel log non elaborato. |
old_permissions:jump_item_role:teams:id | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:jump_item_role:teams:id" nel log non elaborato. |
old_permissions:jump_item_role:teams:name | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:jump_item_role:teams:name" nel log non elaborato. |
old_permissions:presentations:control:status | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:presentations:control:status" nel log non elaborato. |
old_permissions:public_sites:templates:status | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:public_sites:templates:status" nel log non elaborato. |
old_permissions:reporting:presentation_reports | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:reporting:presentation_reports" nel log non elaborato. |
old_permissions:reporting:support_reports | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:reporting:support_reports" nel log non elaborato. |
old_permissions:reporting:vault_reports | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:reporting:vault_reports" nel log non elaborato. |
old_permissions:support | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support" nel log non elaborato. |
old_permissions:support:accept_team_sessions:status | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:accept_team_sessions:status" nel log non elaborato. |
old_permissions:support:bomgar_button:change_public_sites:status | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:bomgar_button:change_public_sites:status" nel log non elaborato. |
old_permissions:support:bomgar_button:personal:deploy:status | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:bomgar_button:personal:deploy:status" nel log non elaborato. |
old_permissions:support:bomgar_button:team:manage | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:bomgar_button:team:manage" nel log non elaborato. |
old_permissions:support:bomgar_button:team:manage:status | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:bomgar_button:team:manage:status" nel log non elaborato. |
old_permissions:support:ios_content | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:ios_content" nel log non elaborato. |
old_permissions:support:jump:local | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:jump:local" nel log non elaborato. |
old_permissions:support:jump:local:status | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:jump:local:status" nel log non elaborato. |
old_permissions:support:jump:remote | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:jump:remote" nel log non elaborato. |
old_permissions:support:jump:remote:status | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:jump:remote:status" nel log non elaborato. |
old_permissions:support:rdp:local | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:rdp:local" nel log non elaborato. |
old_permissions:support:rdp:local:status | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:rdp:local:status" nel log non elaborato. |
old_permissions:support:rdp:remote | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:rdp:remote" nel log non elaborato. |
old_permissions:support:rdp:remote:status | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:rdp:remote:status" nel log non elaborato. |
old_permissions:support:session_assignment:idle_timeout | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:session_assignment:idle_timeout" nel log non elaborato. |
old_permissions:support:session_assignment:idle_timeout:status | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:session_assignment:idle_timeout:status" nel log non elaborato. |
old_permissions:support:session_assignment:session_limit | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:session_assignment:session_limit" nel log non elaborato. |
old_permissions:support:session_assignment:session_limit:status=forbid_override | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:session_assignment:session_limit:status=forbid_override" nel log non elaborato. |
old_permissions:support:session_keys | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:session_keys" nel log non elaborato. |
old_permissions:support:status | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:status" nel log non elaborato. |
old_permissions:support:team_share | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:team_share" nel log non elaborato. |
old_permissions:support:team_transfer | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:team_transfer" nel log non elaborato. |
old_permissions:support:vnc:local | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:vnc:local" nel log non elaborato. |
old_permissions:support:vnc:local:status | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:vnc:local:status" nel log non elaborato. |
old_permissions:support:vnc:remote | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:vnc:remote" nel log non elaborato. |
old_permissions:support:vnc:remote:status | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_permissions:support:vnc:remote:status" nel log non elaborato. |
old_private_display_name | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_private_display_name" nel log non elaborato. |
old_provider:id | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_provider:id" nel log non elaborato. |
old_provider:name | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "old_provider:name" nel log non elaborato. |
permissions:jump_item_role:default:id | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "permissions:jump_item_role:default:id" nel log non elaborato. |
permissions:jump_item_role:default:name | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "permissions:jump_item_role:default:name" nel log non elaborato. |
permissions:jump_item_role:teams:id | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "permissions:jump_item_role:teams:id" nel log non elaborato. |
permissions:jump_item_role:teams:name | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "permissions:jump_item_role:teams:name" nel log non elaborato. |
provider:id | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "provider:id" nel log non elaborato. |
provider:name | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "provider:name" nel log non elaborato. |
motivo | read_only_udm.security_result.description | Il valore viene preso dal campo "reason" nel log non elaborato e aggiunto al campo della descrizione con il prefisso " - Motivo:". |
sEventID | read_only_udm.metadata.product_event_type | Il valore viene preso dal campo "sEventID" nel log non elaborato. |
sIpAddress | read_only_udm.principal.ip | Il valore viene preso dal campo "sIpAddress" nel log non elaborato. |
sLoginName | read_only_udm.principal.user.userid | Il valore viene analizzato dal campo "sLoginName" nel log non elaborato. Se il campo contiene un dominio, questo viene estratto e mappato a read_only_udm.principal.namespace. |
sMessage | read_only_udm.security_result.description | Il valore viene preso dal campo "sMessage" nel log non elaborato. Il parser estrae il testo tra virgolette e lo mappa al campo della descrizione. |
sOriginatingAccount | read_only_udm.principal.user.userid | Il valore viene analizzato dal campo "sOriginatingAccount" nel log non elaborato. Se il campo contiene un dominio, questo viene estratto e mappato a read_only_udm.principal.namespace. |
sOriginatingApplicationComponent | read_only_udm.principal.application | Il valore viene preso dal campo "sOriginatingApplicationComponent" nel log non elaborato e aggiunto al campo dell'applicazione tra parentesi dopo il valore di sOriginatingApplicationName. |
sOriginatingApplicationName | read_only_udm.principal.application | Il valore viene preso dal campo "sOriginatingApplicationName" nel log non elaborato. |
sOriginatingSystem | read_only_udm.principal.hostname | Il valore viene preso dal campo "sOriginatingSystem" nel log non elaborato. |
session_policy:id | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "session_policy:id" nel log non elaborato. |
session_policy:name | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "session_policy:name" nel log non elaborato. |
session_policy:purpose | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "session_policy:purpose" nel log non elaborato. |
sito | read_only_udm.target.hostname | Il valore viene preso dal campo "site" nel log non elaborato. |
stato | read_only_udm.security_result.summary | Il valore viene preso dal campo "status" nel log non elaborato e aggiunto al campo di riepilogo. |
support:jump:local | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:jump:local" nel log non elaborato. |
support:permissions:allow_pinned_clients | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:allow_pinned_clients" nel log non elaborato. |
support:permissions:allow_users | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:allow_users" nel log non elaborato. |
support:permissions:canned_scripts | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:canned_scripts" nel log non elaborato. |
support:permissions:chat | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:chat" nel log non elaborato. |
support:permissions:chat:push_url | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:chat:push_url" nel log non elaborato. |
support:permissions:chat:send_file | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:chat:send_file" nel log non elaborato. |
support:permissions:command_shell | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:command_shell" nel log non elaborato. |
support:permissions:deploy_callback_button | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:deploy_callback_button" nel log non elaborato. |
support:permissions:elevation | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:elevation" nel log non elaborato. |
support:permissions:file_transfers:cust | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:file_transfers:cust" nel log non elaborato. |
support:permissions:file_transfers:download | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:file_transfers:download" nel log non elaborato. |
support:permissions:file_transfers:rep | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:file_transfers:rep" nel log non elaborato. |
support:permissions:file_transfers:upload | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:file_transfers:upload" nel log non elaborato. |
support:permissions:registry_access | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:registry_access" nel log non elaborato. |
support:permissions:request_pin_unpin | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:request_pin_unpin" nel log non elaborato. |
support:permissions:screen_sharing | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:screen_sharing" nel log non elaborato. |
support:permissions:screen_sharing:allow_elevated_tools | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:screen_sharing:allow_elevated_tools" nel log non elaborato. |
support:permissions:screen_sharing:annotations | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:screen_sharing:annotations" nel log non elaborato. |
support:permissions:screen_sharing:application_restriction | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:screen_sharing:application_restriction" nel log non elaborato. |
support:permissions:screen_sharing:application_sharing | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:screen_sharing:application_sharing" nel log non elaborato. |
support:permissions:screen_sharing:clipboard_direction | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:screen_sharing:clipboard_direction" nel log non elaborato. |
support:permissions:screen_sharing:cobrowse | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:screen_sharing:cobrowse" nel log non elaborato. |
support:permissions:screen_sharing:privacy_mode | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:screen_sharing:privacy_mode" nel log non elaborato. |
support:permissions:screen_sharing:show_screen | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:screen_sharing:show_screen" nel log non elaborato. |
support:permissions:system_info | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:system_info" nel log non elaborato. |
support:permissions:system_info:actions | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:permissions:system_info:actions" nel log non elaborato. |
support:prompting:command_shell | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:prompting:command_shell" nel log non elaborato. |
support:prompting:default | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:prompting:default" nel log non elaborato. |
support:prompting:deploy_callback_button | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:prompting:deploy_callback_button" nel log non elaborato. |
support:prompting:elevate | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:prompting:elevate" nel log non elaborato. |
support:prompting:file_transfer | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:prompting:file_transfer" nel log non elaborato. |
support:prompting:registry | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:prompting:registry" nel log non elaborato. |
support:prompting:screen_sharing:cobrowse | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:prompting:screen_sharing:cobrowse" nel log non elaborato. |
support:prompting:screen_sharing:full_access | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "support:prompting:screen_sharing:full_access" nel log non elaborato. |
target | read_only_udm.target.application | Il valore viene preso dal campo "target" nel log non elaborato. Il parser sostituisce "rep_client" con "Representative Console" e "web/login" con "Web/Login". |
two_factor_auth:app | read_only_udm.principal.user.attribute.labels.value | Il valore viene preso dal campo "two_factor_auth:app" nel log non elaborato. |
quando | read_only_udm.metadata.product_log_id | Il valore viene preso dal campo "when" nel log non elaborato. |
quando | read_only_udm.metadata.event_timestamp.seconds | Il valore viene analizzato dal campo "when" nel log non elaborato e convertito in un timestamp Unix. |
che | read_only_udm.principal.user.userid | Il valore viene analizzato dal campo "who" nel log non elaborato. Il parser estrae il testo tra parentesi. |
che | read_only_udm.principal.user.user_display_name | Il valore viene analizzato dal campo "who" nel log non elaborato. Il parser estrae il testo prima delle parentesi. |
who_ip | read_only_udm.principal.ip | Il valore viene preso dal campo "who_ip" nel log non elaborato. |
read_only_udm.metadata.vendor_name | Il valore viene impostato su "BeyondTrust" dall'analizzatore. | |
read_only_udm.metadata.product_name | Il valore viene impostato su "BeyondTrust Remote Support" dall'analizzatore. | |
read_only_udm.metadata.log_type | Il valore viene impostato su "BOMGAR" dall'analizzatore. | |
read_only_udm.extensions.auth.type | Il valore viene impostato su "MACHINE" se la destinazione è "rep_client", su "SSO" se la destinazione è "web/login" e su "AUTHTYPE_UNSPECIFIED" in caso contrario dal parser. | |
read_only_udm.extensions.auth.mechanism | Il valore viene impostato su "USERNAME_PASSWORD" se il metodo è "using password", su "REMOTE" se il metodo è "using elevate" e viene lasciato vuoto in caso contrario dal parser. | |
read_only_udm.security_result.action | Il valore è impostato su "ALLOW" se lo stato non è "failure", il motivo non è "failed" o "user not found" e il messaggio sMessage non contiene "failed login to app web". In caso contrario, il valore viene impostato su "BLOCK" dal parser. | |
read_only_udm.security_result.summary | Il valore viene impostato su "Accesso utente " o "Uscita utente " in base a eventName, seguito dallo stato se non è vuoto dal parser. | |
read_only_udm.security_result.description | Il valore è impostato su "Utente" seguito da userid, indirizzo IP, stato, eventName, connettore ("to" per l'accesso e "from" per la disconnessione), target e metodo. Se il motivo non è vuoto e non è "failed", viene aggiunto alla descrizione con il prefisso " - Motivo:" dal parser. |
Modifiche
2024-01-12
- Miglioramento della gestione degli eventi di stato "challenge".
- Mappatura degli indirizzi email migliorata per una maggiore precisione.
2022-11-24
- È stato corretto un bug nell'analisi delle informazioni utente, come nome visualizzato, ID e metodo.
- Miglioramento dell'accuratezza della classificazione del tipo di autenticazione per gli eventi di accesso utente.
2022-10-13
- È stato integrato un parser specifico del cliente nel parser predefinito per un'applicabilità più ampia.
2022-09-26
- È stato integrato un parser specifico del cliente nel parser predefinito per un'applicabilità più ampia.
2022-08-19
- I parser personalizzati sono stati raggruppati nel parser predefinito per una maggiore manutenibilità e prestazioni.