Sophos News

電子商務網站上發現盜竊信用卡資訊的惡意軟體

作者 Paul Ducklin

 

感謝我們的常駐 JavaScript、PHP 和 iQuery 專家 Mark Stockley 對本文的協助。

 

荷蘭安全研究員 Willem de Groot 對線上支付網站的安全問題特別感興趣,最近撰寫了一篇運作已久的惡意軟體 Magento 的文章。

Magento對於電子商務來說,就如WordPress對於博客來說是個重要工具一樣。您可以在自己的伺服器上執行開放原始碼版本、使用執行 Mangento 執行instance的電子商務夥伴,或是註冊 Magento 自己的雲端平台。

即使在現代以雲端為中心的時代,仍有數以千計的網站運作自己的 Magento 伺服器,例如因為他們使用自訂的倉儲和運輸系統,電子商務伺服器需要與之整合。

不幸的是,de Groot 發現,在過去的六個月中,許多這些網站 (總共超過 7,000個網站) 已被網路犯罪者滲透。

更糟糕的是,de Groot 估計其中約有 1,500 個已都感染整整六個月。

我們不確定網站是如何被感染的,但我們懷疑此惡意活動背後的犯罪分子使用多種方式入侵。

如果您的系統尚未修補 (包括 Magento 本身和後台的網頁和資料庫伺服器,以及作業系統),犯罪分子可能會繞過已知的安全防護來攻擊現有的防禦漏洞。

如果你沒有持續追蹤帳戶,犯罪分子可能會使用您想淘汰卻忘記執行的使用者名稱進行登入。

如果您選擇了脆弱的密碼,並未使用雙因素驗證 (使用者每次登入時都需要輸入一次性密碼),犯罪分子可以猜測您的密碼並偽裝成合法使用者。

在這次攻擊中,犯罪分子刻意鎖定網站客戶,即時收集目前網站上客戶的信用卡資訊。

de Groot 調查發現,犯罪分子會上傳一個名為 mage/mage.js 的 JavaScript 檔案,並將其新增到網站的 HTML 範本中。

範本檔是所有網頁的樣板檔案 (或至少用於網站某個部分的頁面),類似於 PowerPoint 或 Keynote 簡報檔中的投影片母片。

在範本新增這個單一 HTML 標記後…

…會導致使用該範本的每個網頁最終都會載入惡意資料竊取 mage.js 指令碼。

簡要總結一下,一旦 mage.js 惡意軟體被載入訪客的瀏覽器中,就會執行以下操作:

由於新增的是隱藏表單,「購買頁面」的外觀和操作一切正常,所以您的本來網站看起來似乎正常運作。犯罪分子不會觸發意外的錯誤訊息或導致購買失敗來引起注意。

此外,由於攔截時資料仍然保存在瀏覽器中,犯罪分子不需要從伺服器資料庫中搜索最近交易的資料。

資料直接落入壞人之手,連找都不用找。

更神奇的是,犯罪分子可以取得只有在交易期間出現但是從來不會被儲存的資料,例如受害者的 CVV (安全碼)。

Fullz (指完整信用卡記錄的行話) 比沒有 CVV 的信用卡資料更有價值。理論上,CCV 在交易完成後不應該被保留,並且這項資訊永遠不會儲存在信用卡磁條或晶片上,因此它是犯罪分子難以輕易獲得的一個關鍵資訊。

此惡意軟體的相關威脅還包括犯罪分子上傳的伺服器端 PHP 檔案,用以保護他們在您網路內的立足點。

一個名為 clear.json 的檔案 (一個 PHP 程式,並不是 JSON 資料檔) 會更改一系列帳戶名稱的密碼,以便犯罪分子在初始攻擊被發現時能有許多其他管道再次入侵。

一個名為 clean.json 的檔案 (也是 PHP 程式) 會將 Magento 資料庫中的所有對字串 ATMZOW、19303817.js 和 PZ7SKD的參照移除。

根據 de Groot 的說法,clean.json 程式通常被稱為「反惡意軟體的惡意軟體」 – 它可以阻止其他各種「Magento 惡意軟體競爭者」樣本運作。

該怎麼辦?

如果您決定在伺服器上使用防毒軟體,請盡可能以即時模式運作。

即時模式,也稱為常駐掃描 (on-access scanning),一旦檔案到達,就會立即檢查是否為惡意軟體並阻止它們被使用,因此惡意軟體無法直接在伺服器上執行,也不會接觸您的使用者。

另外:

Sophos 將此項攻擊識別為 Mal/HTMLGen-A 並阻擋存取這些網站的行為。這些惡意指令碼會被偵測為 Troj/Magento-A、Troj/JSBanker-C 和 Troj/PHP-CI。

 

英文原文:  https://nakedsecurity.sophos.com/2018/09/04/credit-card-gobbling-code-found-piggybacking-on-ecommerce-sites?cmp=28009

(本博文為翻譯本,內容以英文原文為準)