Salesforce et ServiceNow sont tous deux livrés avec des comptes invités permanents pour les visiteurs non authentifiés. Ces comptes invités ne peuvent pas être supprimés. Leurs permissions — les enregistrements et objets qu'ils peuvent lire — sont configurées par chaque organisation. Si le profil invité a un accès en lecture à un enregistrement, n'importe qui sur Internet peut le récupérer via des points de terminaison d'API parfaitement légitimes.
Sur Salesforce (framework Aura) :
/aura ou /s/sfsites/aura.HostConfigController.getConfigData pour énumérer quels objets (Account, Contact, Case, Lead, User, ContentDocument, etc.) sont accessibles à l'invité. SelectableListDataProviderController.getItems pour parcourir tous les enregistrements de chaque objet accessible. Sur Salesforce (framework LWR — Lightning Web Runtime) :
POST /webruntime/api/services/data/{version}/graphql?asGuest=trueEntityDefinition, puis en lisant les enregistrements avec une pagination basée sur un curseur. Sur ServiceNow :
/api/now/sp/search — une API de recherche native du portail ServiceNow qui est largement non documentée et pour laquelle il n'existe quasiment aucune documentation en ligne ou outil open source. Sondage d'auto-inscription (Salesforce) :
158.220.87.79, hébergée sur un VPS Contabo (hébergeur allemand), résolvant le domaine city-forum.com (un domaine enregistré en 2002, abandonné, puis réutilisé). Go-http-client par défaut de Go comme User-Agent, ce qui le rend facile à identifier dans les logs. Pour ServiceNow : Les logs de transaction de la plateforme (syslog_transaction) n'enregistrent pas le corps des requêtes POST vers /api/now/sp/search. Les défenseurs peuvent voir que des recherches automatisées ont eu lieu et la quantité de données renvoyées (via la colonne de longueur de sortie), mais ne peuvent pas déterminer les termes de recherche exacts ni les enregistrements spécifiques qui ont été récupérés.
Pour Salesforce : Le trafic d'énumération des invités est constitué d'appels API légitimes et conformes aux protocoles qui ressemblent à du trafic de site normal. Bien que la surveillance des événements (Event Monitoring) puisse montrer le volume d'événements AuraRequest et Sites provenant d'utilisateurs invités, les logs indiquent que des données ont été demandées mais pas le contenu spécifique de ce qui a été renvoyé dans les réponses GraphQL ou Aura.
En d'autres termes, vous pouvez voir que l'attaquant était présent et la quantité de données extraites, mais vous ne pouvez pas reconstituer exactement quels enregistrements ou champs ont été extraits.
sp_portal, m2m_sp_portal_search_source et sp_search_source. Détachez toute source de recherche dont un portail public n'a pas besoin.is_scripted_source, data_fetch_script, et si elle utilise GlideRecordSecure (qui applique les ACL) ou GlideRecord (qui ne le fait pas).kb_uc_can_read_mtom plutôt que de modifier aveuglément les règles de partage.getItems et getConfigData provenant de USER_TYPE = 'Guest'/webruntime/.../vNN.0/graphql, et des accès à /SiteRegister et /CommunitiesSelfReg.syslog_transaction : Recherchez les requêtes /api/now/sp/search faites en tant qu'invité. Triez par longueur de sortie — les lignes renvoyant significativement plus que la petite ligne de base de résultat vide indiquent des recherches qui ont renvoyé du contenu.