Zenity Labs разкри вече коригирана уязвимост в Salesforce Agentforce, наречена SalesBleed, която би могла да позволи на атакуващи да откраднат чувствителни CRM данни без влизане в системата, без достъп до целевия Salesforce клиент и без да се изисква каквото и да е взаимодействие от страна на жертвата.

Атаката разчита на индиректно инжектиране на подкана (indirect prompt injection), доставено чрез формулярите Web-to-Lead на Salesforce. Salesforce разследва докладите и отстрани уязвимостта за заобикаляне на доверените URL адреси (Trusted URLs), използвана в изследването.

От Zenity заявиха, че са потвърдили корекцията за сигурност през август, докато последващи доклади посочват, че по-широките проблеми около SalesBleed също са отстранени. Формулярите Web-to-Lead на Salesforce са публични крайни точки, проектирани да позволяват на външни потребители да изпращат потенциални търговски контакти (leads).

Атакуващ би могъл да изпрати нещо, което изглежда като нормален контакт, като същевременно внедри скрити инструкции в поле, което Agentforce по-късно да обработи.

Злонамерено изпратените данни остават съхранени в таблицата Leads на организацията. Когато по-късно служител зададе рутинен въпрос на Agentforce, като например преглед на последните контакти, AI агентът може да извлече и обработи отровения запис.

Salesforce SalesBleed уязвимост

Според изследването на Zenity инжектираните инструкции могат да насочат субагента General CRM да използва съществуващата си възможност Query Records за достъп до други CRM данни, включително записи за профили (Account records).

Атаката не изисква ескалация на привилегиите, тъй като същият субагент вече разполага с достъп както до данните за контактите, така и до данните за профилите.

Атакуващият може да инструктира агента да извлече стойности като имена на компании и размери на сделки, след което да постави тази информация в поддомейн на контролиран от атакуващия URL адрес. Това превръща инжектирането на подкана в AI в потенциална верига за достъп и източване на данни между различни записи.

Слоят за редактиране на URL адреси беше заобиколен (източник: Zenity)
Слоят за редактиране на URL адреси беше заобиколен (източник: Zenity)

Методът за кражба на данни разчита на HTML HTML таг за изображение, върнат от агента. Когато клиентът на Agentforce визуализира външен източник на изображение, браузърът прави опит да разреши и извлече предоставеното име на хост.

Например, контролирано от атакуващия име на хост може да съдържа кодирани CRM данни в поддомейн. Преди да завърши HTTP заявката, клиентът трябва да извърши DNS справка.

Тази DNS заявка може да достигне до авторитетния DNS сървър на атакуващия, което му позволява да улови данните, поставени в името на хоста.

Техниката се счита за „нулев клик“ (zero-click), тъй като от служителя се изисква единствено да зададе обикновен въпрос на агента относно контактите. Не е необходимо потребителят да отваря прикачен файл, да кликва върху URL адрес, да одобрява действие или да взаимодейства със злонамерения контакт.

Salesforce Agentforce използва Trusted URLs като списък с разрешени адреси и механизъм за редактиране, предназначен да попречи на агентите да генерират или осъществяват достъп до неодобрени външни URL адреси. Документацията на Salesforce посочва, че неодобрените URL адреси в отговорите на агента се заменят с URL_Redacted.

Тестването със низ от поддомейн без квадратни скоби успешно заобиколи ограничението (източник: Zenity)
Тестването със низ от поддомейн без квадратни скоби успешно заобиколи ограничението (източник: Zenity)

Zenity откри частни случаи в логиката за редактиране на URL адреси. Изследователите заявяват, че контролът не успява последователно да разпознае някои домейни от първо ниво и обработва определени специални знаци по различен начин спрямо последващите компоненти за визуализация.

В резултат на това неправилно форматиран низ би могъл да избегне редактора, докато все още се третира като URL адрес, който може да бъде извлечен, когато е поставен в източник на HTML изображение.

Докладите показват, че Salesforce е заменила предишния подход за идентификация на URL адреси чрез регулярни изрази (regex) с по-съвместим със стандартите URL парсинг, отстранявайки условията за заобикаляне, идентифицирани от изследователите.

SalesBleed показва опасността от комбинирането на три неща в работен процес с изкуствен интелект: съдържание, контролирано от атакуващия, достъп до чувствителни вътрешни данни и начин за изпращане на генерираните резултати.

Проблемът беше особено значим, тъй като Web-to-Lead умишлено е без автентификация. Злонамерен контакт може да се запази в CRM системата и потенциално да се задейства всеки път, когато служител по-късно поиска от агента да инспектира тези данни.

Организациите трябва да прегледат разрешенията за инструментите на Agentforce, да ограничат агентите до минималния необходим брой CRM обекти, да прилагат стриктно ограничени списъци с доверени URL адреси и да третират външно изпратените CRM полета като ненадеждни инструкции, а не като доверено бизнес съдържание.