這起行動以其攻擊基礎設施所使用的網域 city-forum.com 命名。該攻擊者僅透過一臺位於德國託管商 Contabo 的虛擬私有伺服器(VPS),便系統性地從電信業者、銀行、金融服務公司、企業軟體供應商以及政府入口網站中大量擷取資料。
Salesforce 和 ServiceNow 都內建了無法刪除的「訪客用戶(Guest User)」帳號,專門提供給未經身份驗證的訪客使用。這些訪客用戶的權限由各組織設定。在 Reco 的調查中,所有來自攻擊來源 IP 的請求都是以訪客身份發出的。
針對 Salesforce (Aura 框架):
/aura 或 /s/sfsites/aura 端點發送 POST 請求。HostConfigController.getConfigData 列舉訪客可存取的物件(如 Account、Contact、Case、Lead、User、ContentDocument 等)。SelectableListDataProviderController.getItems 分頁讀取每個可存取物件的所有記錄。針對 Salesforce (LWR 框架 — Lightning Web Runtime):
POST /webruntime/api/services/data/{version}/graphql?asGuest=true,先透過 EntityDefinition 列舉 Schema,再使用基於游標的分頁技術讀取記錄。針對 ServiceNow:
/api/now/sp/search 端點。這是一個原生的服務入口網站搜尋 API,幾乎沒有公開的文件,也幾乎沒有開源工具提及它。自我註冊探測 (Salesforce):
/SiteRegister 和 /CommunitiesSelfReg,以測試是否啟用了自我註冊功能。一旦啟用,訪客就能升級為已驗證的外部用戶,從而取得更多資料。158.220.87.79,託管於德國 Contabo 的 VPS,並解析至網域 city-forum.com(該網域註冊於 2002 年,曾遭棄用後被重新利用)。Go-http-client User-Agent 字串,使得在日誌中易於識別。根據 Reco 的報告,主要攻擊目標包括:
針對 ServiceNow: 該平台的交易日誌 (syslog_transaction) 不會記錄 /api/now/sp/search 請求的 POST 主體。防禦者只能看到發生了自動化搜尋以及回傳了多少資料(透過輸出長度欄位),但無法得知確切的搜尋詞彙或具體哪些記錄被檢索。
針對 Salesforce: 訪客列舉流量是符合協議規範的合法 API 呼叫,看起來與正常的網站流量無異。雖然事件監控可以顯示來自訪客用戶的 AuraRequest 和 Sites 事件數量,但日誌僅顯示資料被請求,卻無法顯示 GraphQL 或 Aura 回應中的特定內容。
簡而言之,你可以看到攻擊者曾經存在並了解其大約的資料提取量,但無法重建他們實際提取了哪些記錄或欄位。
sp_portal、m2m_sp_portal_search_source 和 sp_search_source 資料表。移除公開入口網站不必要的搜尋來源。is_scripted_source、data_fetch_script,以及它使用的是 GlideRecordSecure(執行 ACL)還是普通的 GlideRecord(不執行 ACL)。kb_uc_can_read_mtom 連結,而不是盲目地編輯共享規則。USER_TYPE = 'Guest' 的大量 getItems 和 getConfigData 事件、對 /webruntime/.../vNN.0/graphql 的版本掃描,以及對 /SiteRegister 和 /CommunitiesSelfReg 的存取。syslog_transaction: 尋找以訪客身份發出的 /api/now/sp/search 請求。可以依輸出長度排序——那些回傳資料量遠大於空結果基準值的請求行,便代表搜尋到內容。這起行動以其攻擊基礎設施所使用的網域 city-forum.com 命名。該攻擊者僅透過一臺位於德國託管商 Contabo 的虛擬私有伺服器(VPS),便系統性地從電信業者、銀行、金融服務公司、企業軟體供應商以及政府入口網站中大量擷取資料。
Salesforce 和 ServiceNow 都內建了無法刪除的「訪客用戶(Guest User)」帳號,專門提供給未經身份驗證的訪客使用。這些訪客用戶的權限由各組織設定。在 Reco 的調查中,所有來自攻擊來源 IP 的請求都是以訪客身份發出的。
針對 Salesforce (Aura 框架):
/aura 或 /s/sfsites/aura 端點發送 POST 請求。HostConfigController.getConfigData 列舉訪客可存取的物件(如 Account、Contact、Case、Lead、User、ContentDocument 等)。SelectableListDataProviderController.getItems 分頁讀取每個可存取物件的所有記錄。針對 Salesforce (LWR 框架 — Lightning Web Runtime):
POST /webruntime/api/services/data/{version}/graphql?asGuest=true,先透過 EntityDefinition 列舉 Schema,再使用基於游標的分頁技術讀取記錄。針對 ServiceNow:
/api/now/sp/search 端點。這是一個原生的服務入口網站搜尋 API,幾乎沒有公開的文件,也幾乎沒有開源工具提及它。自我註冊探測 (Salesforce):
/SiteRegister 和 /CommunitiesSelfReg,以測試是否啟用了自我註冊功能。一旦啟用,訪客就能升級為已驗證的外部用戶,從而取得更多資料。158.220.87.79,託管於德國 Contabo 的 VPS,並解析至網域 city-forum.com(該網域註冊於 2002 年,曾遭棄用後被重新利用)。Go-http-client User-Agent 字串,使得在日誌中易於識別。根據 Reco 的報告,主要攻擊目標包括:
針對 ServiceNow: 該平台的交易日誌 (syslog_transaction) 不會記錄 /api/now/sp/search 請求的 POST 主體。防禦者只能看到發生了自動化搜尋以及回傳了多少資料(透過輸出長度欄位),但無法得知確切的搜尋詞彙或具體哪些記錄被檢索。
針對 Salesforce: 訪客列舉流量是符合協議規範的合法 API 呼叫,看起來與正常的網站流量無異。雖然事件監控可以顯示來自訪客用戶的 AuraRequest 和 Sites 事件數量,但日誌僅顯示資料被請求,卻無法顯示 GraphQL 或 Aura 回應中的特定內容。
簡而言之,你可以看到攻擊者曾經存在並了解其大約的資料提取量,但無法重建他們實際提取了哪些記錄或欄位。
sp_portal、m2m_sp_portal_search_source 和 sp_search_source 資料表。移除公開入口網站不必要的搜尋來源。is_scripted_source、data_fetch_script,以及它使用的是 GlideRecordSecure(執行 ACL)還是普通的 GlideRecord(不執行 ACL)。kb_uc_can_read_mtom 連結,而不是盲目地編輯共享規則。USER_TYPE = 'Guest' 的大量 getItems 和 getConfigData 事件、對 /webruntime/.../vNN.0/graphql 的版本掃描,以及對 /SiteRegister 和 /CommunitiesSelfReg 的存取。syslog_transaction: 尋找以訪客身份發出的 /api/now/sp/search 請求。可以依輸出長度排序——那些回傳資料量遠大於空結果基準值的請求行,便代表搜尋到內容。