AGENTIC COMMONSAI 產業簡報

繁中EN

主題AI 編程與開發工具出版

返回文章列表

當掃描器看不見攻擊:Cloudflare 用 ML 拆解店面前的惡意 JavaScript

摘要: Cloudflare 在 2026 年 9 月 16 日說明 Page Shield ML 找出四個電商店面惡意行動,合計八個 payload。其中有七個在 VirusTotal 完全找不到,URLScan 也沒有判為惡意,顯示簽章式掃描難以察覺條件觸發的腳本。文章主張以執行時行為分析與持續監控補足第三方 JavaScript 的安全缺口。

頁面看起來正常,不代表沒有問題

一個電商店面可以載入飛快、品項擺得滿滿、結帳一路順到底,但底層的 JavaScript 卻在做店主從未點頭的事:把聯盟佣金吸走、綁架搜尋與點擊、動手改掉分析數據,或是向遠端伺服器請示下一步該做什麼。Cloudflare 在 2026 年 9 月 16 日發布的文章把這個盲點點得很明白:頁面健康與程式碼安全,該分開來看。

貼文追蹤的是四個仍在實際運作中的惡意行動、合計八個 payload,全數由 Page Shield ML 自動揪出,人類只負責在系統發出標記之後進場覆核。若改用一般安全掃描工具回頭查,八個 payload 裡有七個在 VirusTotal 上完全找不到,URLScan 也沒對其中任何一個給出惡意判定。整篇的張力就落在這個落差上:等到威脅情報資料庫願意替你貼標籤,時間早就來不及了。

為什麼簽章式防禦在這裡失效

這四個行動彼此之間沒有共用的簽章,藏匿手法也各走各的。Cloudflare 描述,其中一個要等裝置、國家、時間、referrer 或瀏覽器狀態全部對上才會醒過來;另一個把不需點擊的聯盟請求塞進看不見的 iframe;其餘變體則會攔截點擊、壓制監控,或在條件成立時才從遠端載入更多程式碼。

講得更直白一點,把頁面靜態掃過一遍是不夠的。這些腳本被設計成在正確的受害者出現之前維持安靜,所以真正需要的是持續的瀏覽器可視性,而不是單點式的檢查。

Cloudflare 的切入角度,是不把 JavaScript 當成一段平面文字,而是當成一張圖來推理。同一個 GNN 先前已抓出惡意 npm 套件與一個正在線上運作的 Magecart 付款側錄程式;它順著語法樹把程式符號串接起來,看清誰呼叫誰、攻擊者埋進了什麼、還有哪些連線仍在對外發聲。被 GNN 標為惡意的流量佔全部分析量不到 0.3%,這些案例會再送往 Workers AI 上的輕量 LLM 取得即時的第二意見,在壓低誤判的同時把召回率守住。

最複雜的腳本則交給一組前沿模型處理,Cloudflare 稱它們為 teachers,各自在獨立 session 中分析,需要時以受限的 JavaScript 評估器拆解片段。模型之間出現分歧時,Cloudflare 把它當成訊號而非雜訊,每個標記都依模型在 Artificial Analysis Intelligence Index 的分數加權投票,最後收斂成 benign、payment skimming、other malware、cryptomining 四類的機率分布。只有被標為惡意、或拿不到三分之二多數的腳本,才需要人工檢視。

四個行動各自偷走不同的東西

第一個行動鎖定行動裝置訪客:商品點擊被攔下之後,攻擊者預選的商品頁會在新分頁開啟,原分頁則繞經攻擊者的聯盟追蹤連結再折回商店,順手在背景種下歸因 cookie。結果是店家可能付出一筆不該付的佣金;但更棘手的是,真正把客人帶上門的合作夥伴被搶走歸因——信任一旦破裂,傷害會遠超過單筆佣金。這個行動的變體以 MutationObserver 監看動態生成商品磚與按鈕,並在 localStorage 寫入三天冷卻期;被擷取到的暫停版本甚至留著版本註解,記錄自己在 Black Friday 之後遭到暫停。

第二個行動連點擊都用不上。訪客打開訂房頁、翻看幾個選項、完全沒碰廣告,腳本卻可能已經把聯盟請求送了出去,讓之後的成交看起來像別人轉介的。Cloudflare 指出,程式碼證明了隱蔽的自動化聯盟請求確實存在,但某個具體請求是否真的完成歸因、入帳或付出佣金,則沒有被觀察到。這條界線值得產品團隊牢牢記住:能證明機制存在,不等於能證明損失金額。

供應鏈與 typosquatting 才是入口

第一個行動的投放路徑穿過兩個外觀平凡的 tag manager:Google Tag Manager → 另一個 tag manager → 惡意腳本。Cloudflare 特別聲明,這說的是 payload 抵達瀏覽器的方式,並不構成任一 tag manager 遭到入侵的證據。

更該留意的是網域偽裝。其中一個投放主機 adtargett[.]com 與 1998 年註冊的廣告網域 adtarget[.]com 只差一個 t,首頁還自稱 Performance Marketing Agency。靠著這類 typosquatting,它得以混跡在一堆例行行銷標籤之中,輕鬆通過快速的人工審查。

對產品與行銷團隊來說,實務上真正該做的下一步不是再買更多掃描器,而是承認第三方腳本本身就是一條持續變動的攻擊面。Cloudflare 的案例顯示,偵測能力必須跟著程式碼在執行時的行為走;對一般開發者而言,這也呼應我們先前談過的 Cloudflare 把混合用途爬蟲拆成三種行為 那類思路:先分清誰在做什麼,再決定要不要放行。

至於這套 ML 流程本身,Cloudflare 說回饋迴路仍有一部分得靠人工,自動化才正要起步。這是個誠實的限制,也提醒我們:自動偵測的準確度不是設定一次就結束,而是一套需要長期維護的系統。

參考來源

AGENTIC COMMONS由 PHLEGON LABS 經營
分享X電郵
支持我們

相關閱讀

  1. eMudhra 弱金鑰追蹤實錄:22,000 次握手與修補進度

    Cloudflare 公布 eMudhra 弱金鑰事件的剝削證據與修補數據,並用 5,000 萬次探測測量訪客端還有多少系統仍信任這批金鑰。

    Cloudflare

  2. Cloudflare PHP CTF:用一個故意脆弱的沙盒驗證 WAF

    Cloudflare 在 WAF 後架起故意脆弱的 PHP 沙盒,透過 HackerOne 賞金計畫邀請研究員繞過防護奪旗。

    Cloudflare

  3. Cloudflare WAF 全交易偵測:連回應一起看

    Cloudflare WAF 新增全交易偵測與 response rules,把 HTTP 回應內容納入判斷,免費方案也能用,首波針對 php2shell 漏洞。

    Cloudflare