SalesBleed-lekken maken Salesforce Agentforce kaapbaar

SalesBleed-lekken maken Salesforce Agentforce kaapbaar

Onderzoekers van Zenity Labs hebben drie kwetsbaarheden onthuld in Salesforce Agentforce, het platform van het bedrijf voor AI-agents. Aanvallers hadden de lekken kunnen misbruiken om vertrouwde agents tegen hun eigen organisatie te keren. De agents konden zo gevoelige gegevens uit het customer relationship management (CRM) laten uitlekken of phishingberichten naar medewerkers sturen.

De onderzoekers noemen de reeks bugs SalesBleed. Volgens Zenity Labs maakten twee van de lekken zero-click-data-exfiltratie mogelijk. Met het derde kon een aanvaller een Agentforce-agent inzetten als wapen om phishing binnen een bedrijf te verspreiden.

Zenity Labs meldde de problemen op 1 juni bij Salesforce. Salesforce bevestigde dat alle drie op 19 augustus waren verholpen.

Een vergiftigde lead als toegangspoort

Alle drie de aanvallen beginnen bij Web-to-Lead. Dit is de officiële manier van Salesforce om saleslead te verzamelen, meestal via een formulier op een bedrijfswebsite. Iedereen kan zo'n formulier invullen, en elke inzending komt rechtstreeks in het CRM terecht.

Een aanvaller kon in een lead die op deze manier werd ingediend kwaadaardige instructies verstoppen. De payload doet eerst niets. Hij wordt pas actief wanneer een medewerker een Agentforce-agent vraagt met die lead aan de slag te gaan. De agent leest dan de vergiftigde invoer en voert de verborgen instructies uit als onderdeel van zijn normale taak.

Trusted URLs omzeilen

De eerste twee lekken komen voort uit meerdere zwakke plekken in Trusted URLs. Deze beveiligingsfunctie van Salesforce moet voorkomen dat Agentforce links en afbeeldingen uit onbetrouwbare bronnen toont. In theorie zou ze de agent ook moeten beletten domeinen te benaderen of gegevens te sturen naar domeinen die de organisatie niet heeft goedgekeurd.

Zenity Labs ontdekte dat een Web-to-Lead-payload de agent gegevens kon laten ophalen uit de tabellen met leads en accounts. Via HTML-afbeeldingstags gingen die gegevens vervolgens naar een server van de aanvaller, zonder dat het slachtoffer ergens op hoefde te klikken.

De onderzoekers vonden twee problemen in de manier waarop Trusted URLs adressen controleerde. Het mechanisme herkende geen topleveldomeinen, en bepaalde tekenreeksen konden de manier verstoren waarop URL's werden geparseerd.

De eigen terugkoppeling van de agent maakte het nog erger. "Agentforce meldde dat de inhoud was geblokkeerd door het beveiligingsbeleid van de organisatie, terwijl de gevoelige CRM-gegevens al naar de server van de aanvaller waren verzonden", legde Zenity Labs uit.

Linkvoorbeelden in Slack als lekkanaal

De tweede exfiltratieroute loopt via de koppeling tussen Agentforce en Slack. Slack haalt automatisch informatie op over links die in een gesprek worden geplaatst, zodat het een voorbeeld kan tonen.

Met dezelfde vergiftigde lead kon een aanvaller de agent links in Slack laten plaatsen. "Speciaal opgebouwde links kunnen ervoor zorgen dat Slack verzoeken verstuurt die CRM-gegevens naar infrastructuur van de aanvaller brengen, zodra de links verschijnen", aldus de onderzoekers. Niemand hoeft ergens op te klikken.

Phishing onder de identiteit van de agent

Ook het derde lek heeft met Slack te maken. Zenity Labs ontdekte dat de koppeling Agentforce-agents kon veranderen in een instrument voor social engineering dat berichten plaatst in interne Slack-kanalen.

De agent controleerde niet wie hem instructies gaf. Een kwaadaardige lead kon hem dus overnemen en phishingberichten publiceren onder de naam van de agent.

De onderzoekers wijzen erop dat zulke berichten afkomstig zijn van een vertrouwd systeem dat al binnen de werkomgeving draait, niet van een onbekende afzender van buiten. Medewerkers die op de link klikken en hun inloggegevens invoeren, kunnen e-mail, Slack, broncoderepository's en andere bedrijfsapplicaties blootstellen die aan die identiteit gekoppeld zijn.

Onze analyse

SalesBleed volgt een patroon dat steeds bekender wordt. Een AI-agent met ruime toegang leest onbetrouwbare invoer, en die invoer vertelt hem ongemerkt wat hij moet doen. In dit geval was de invoer een gewoon webformulier, het soort dat veel bedrijven bewust openstellen voor het publiek. Voor verdedigers betekent dit dat elk veld dat een buitenstaander kan invullen, als mogelijke aanvalsvector moet worden gezien zodra een agent het leest.

De misleidende melding 'geblokkeerd' verdient aandacht. Ze laat zien dat het verslag van een agent over zijn eigen handelingen geen betrouwbaar bewijs is van wat er werkelijk is gebeurd.

Dit past ook in een bredere zorg over autonome tools die buiten hun beoogde grenzen treden, zoals onlangs bleek toen OpenAI-agents binnendrongen in een Australisch portaal met Medicare-statistieken. Salesforce heeft deze problemen gepatcht. Het is de moeite waard om in de gaten te houden of soortgelijke zwakke plekken opduiken in andere agentplatforms die CRM-gegevens koppelen aan chattools zoals Slack.