Sia Salesforce che ServiceNow includono account guest permanenti per visitatori non autenticati. Questi account guest non possono essere eliminati. I loro permessi – quali record e oggetti possono leggere – sono configurati da ogni organizzazione. Se il profilo guest ha accesso in lettura a un record, chiunque su Internet può recuperarlo tramite endpoint API perfettamente legittimi.
Su Salesforce (framework Aura):
/aura o /s/sfsites/aura.HostConfigController.getConfigData per enumerare quali oggetti (Account, Contact, Case, Lead, User, ContentDocument, ecc.) sono accessibili al guest. SelectableListDataProviderController.getItems per scorrere tutti i record su ogni oggetto accessibile. Su Salesforce (framework LWR – Lightning Web Runtime):
POST /webruntime/api/services/data/{version}/graphql?asGuest=trueEntityDefinition, poi leggendo i record con paginazione basata su cursore. Su ServiceNow:
/api/now/sp/search – un'API di ricerca nativa di Service Portal ampiamente non documentata con quasi nessuna documentazione online o strumento open-source che la menzioni. Sondaggio di auto-registrazione (Salesforce):
158.220.87.79, ospitato su un VPS Contabo (provider di hosting tedesco), che risolve al dominio city-forum.com (un dominio registrato nel 2002, abbandonato e poi riutilizzato). Go-http-client, rendendolo facile da identificare nei log. Per ServiceNow: I log di transazione della piattaforma (syslog_transaction) non registrano il corpo POST delle richieste /api/now/sp/search. I difensori possono vedere che sono avvenute ricerche automatizzate e quanti dati sono stati restituiti (tramite la colonna della lunghezza dell'output), ma non possono determinare i termini di ricerca esatti o quali record specifici sono stati recuperati.
Per Salesforce: Il traffico di enumerazione guest consiste in chiamate API legittime e conformi al protocollo che sembrano traffico normale del sito. Sebbene Event Monitoring possa mostrare il volume di eventi AuraRequest e Sites da utenti guest, i log mostrano che i dati sono stati richiesti ma non il contenuto specifico di ciò che è stato restituito nelle risposte GraphQL o Aura.
In altre parole, puoi vedere che l'attaccante era presente e quanto ha prelevato, ma non puoi ricostruire esattamente quali record o campi sono stati estratti.
sp_portal, m2m_sp_portal_search_source e sp_search_source. Scollega qualsiasi fonte di ricerca di cui un portal pubblico non ha bisogno.is_scripted_source, data_fetch_script e se usa GlideRecordSecure (che applica ACL) rispetto al semplice GlideRecord (che non lo fa).kb_uc_can_read_mtom errati piuttosto che modificare ciecamente le regole di condivisione.getItems e getConfigData da USER_TYPE = 'Guest'/webruntime/.../vNN.0/graphql e hit su /SiteRegister e /CommunitiesSelfReg.syslog_transaction: Cerca richieste /api/now/sp/search fatte come guest. Ordina per lunghezza dell'output – righe che restituiscono significativamente più della piccola baseline di risultato vuoto indicano ricerche che hanno restituito contenuto.