นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์

พวกเราเกือบทุกคนใช้บริการของร้านค้าออนไลน์ ซึ่งหมายความว่าไม่ช้าก็เร็วเรามีความเสี่ยงที่จะตกเป็นเหยื่อของโปรแกรมดมกลิ่น JavaScript ซึ่งเป็นรหัสพิเศษที่ผู้โจมตีใส่เข้าไปในเว็บไซต์เพื่อขโมยข้อมูลบัตรธนาคาร ที่อยู่ ชื่อผู้ใช้ และรหัสผ่าน .

ผู้ใช้เว็บไซต์และแอพมือถือของ British Airways เกือบ 400 รายได้รับผลกระทบจากการดมกลิ่น เช่นเดียวกับผู้เยี่ยมชมเว็บไซต์ FILA กีฬายักษ์ใหญ่ของอังกฤษ และ Ticketmaster ผู้จัดจำหน่ายตั๋วของสหรัฐอเมริกา PayPal, Chase Paymenttech, USAePay, Moneris - ระบบการชำระเงินเหล่านี้และระบบการชำระเงินอื่น ๆ อีกมากมายติดไวรัส

Viktor Okorokov นักวิเคราะห์จาก Threat Intelligence Group-IB พูดถึงวิธีที่นักดมกลิ่นแทรกซึมรหัสเว็บไซต์และขโมยข้อมูลการชำระเงิน รวมถึง CRM ที่พวกเขาโจมตี

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์

"ภัยคุกคามที่ซ่อนอยู่"

มันเกิดขึ้นเป็นเวลานานที่ JS-sniffers ยังคงไม่อยู่ในสายตาของนักวิเคราะห์แอนตี้ไวรัส และธนาคารและระบบการชำระเงินก็ไม่เห็นว่าพวกเขาเป็นภัยคุกคามร้ายแรง และเปล่าประโยชน์อย่างแน่นอน ผู้เชี่ยวชาญ Group-IB วิเคราะห์ ร้านค้าออนไลน์ที่ติดเชื้อ 2440 ร้านค้า ซึ่งมีผู้เข้าชม - รวมประมาณ 1,5 ล้านคนต่อวัน - มีความเสี่ยงที่จะถูกประนีประนอม ในบรรดาผู้ที่ตกเป็นเหยื่อไม่ได้เป็นเพียงผู้ใช้เท่านั้น แต่ยังรวมถึงร้านค้าออนไลน์ ระบบการชำระเงิน และธนาคารที่ออกบัตรที่ถูกบุกรุกด้วย

รายงาน Group-IB กลายเป็นการศึกษาครั้งแรกเกี่ยวกับตลาดมืดของนักดมกลิ่น โครงสร้างพื้นฐาน และวิธีการสร้างรายได้ ทำให้ผู้สร้างของพวกเขามีรายได้หลายล้านดอลลาร์ เราระบุตระกูลสนิฟเฟอร์ได้ 38 ตระกูล ซึ่งก่อนหน้านี้นักวิจัยรู้จักเพียง 12 ตระกูลเท่านั้น

ให้เราลงรายละเอียดเกี่ยวกับสี่ตระกูลนักดมกลิ่นที่ศึกษาในหลักสูตรการศึกษา

ตอบสนองรับครอบครัว

Sniffers ของตระกูล ReactGet ใช้เพื่อขโมยข้อมูลบัตรธนาคารบนเว็บไซต์ช้อปปิ้งออนไลน์ sniffer สามารถทำงานร่วมกับระบบการชำระเงินต่างๆ จำนวนมากที่ใช้บนเว็บไซต์: ค่าพารามิเตอร์หนึ่งค่าสอดคล้องกับระบบการชำระเงินหนึ่งระบบ และ sniffer เวอร์ชันที่ตรวจพบแต่ละรายการสามารถใช้เพื่อขโมยข้อมูลประจำตัว ตลอดจนขโมยข้อมูลบัตรธนาคารจาก รูปแบบการชำระเงินของระบบการชำระเงินหลายระบบพร้อมกัน เช่น ที่เรียกว่า Universal sniffer พบว่าในบางกรณี ผู้โจมตีทำการโจมตีแบบฟิชชิ่งกับผู้ดูแลร้านค้าออนไลน์เพื่อเข้าถึงแผงการดูแลระบบของไซต์

แคมเปญที่ใช้กลุ่มนักดมกลิ่นนี้เริ่มขึ้นในเดือนพฤษภาคม 2017 ไซต์ที่ใช้ CMS และแพลตฟอร์ม Magento, Bigcommerce, Shopify ถูกโจมตี

ReactGet ถูกฝังอยู่ในโค้ดของร้านค้าออนไลน์อย่างไร

นอกเหนือจากการแทรกสคริปต์ "คลาสสิก" ด้วยลิงก์แล้ว ตัวดำเนินการดมกลิ่นในตระกูล ReactGet ยังใช้เทคนิคพิเศษ: โดยใช้โค้ด JavaScript ซึ่งจะตรวจสอบว่าที่อยู่ปัจจุบันที่ผู้ใช้อยู่นั้นตรงตามเกณฑ์ที่กำหนดหรือไม่ รหัสที่เป็นอันตรายจะทำงานก็ต่อเมื่อ URL ปัจจุบันมีสตริงย่อย เช็คเอาต์ หรือ ชำระเงินขั้นตอนเดียว, หน้าเดียว/, ออก/หนึ่งหน้า, ชำระเงิน/หนึ่ง, หมด/หนึ่ง. ดังนั้น sniffer code จะถูกดำเนินการทันทีเมื่อผู้ใช้ดำเนินการชำระเงินสำหรับการซื้อและป้อนข้อมูลการชำระเงินลงในแบบฟอร์มบนเว็บไซต์

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
นักดมกลิ่นรายนี้ใช้เทคนิคที่ไม่ได้มาตรฐาน การชำระเงินและข้อมูลส่วนตัวของเหยื่อจะถูกรวบรวมเข้าด้วยกัน เข้ารหัสโดยใช้ base64จากนั้นจึงใช้สตริงผลลัพธ์เป็นพารามิเตอร์เพื่อส่งคำขอไปยังไซต์ที่เป็นอันตราย บ่อยครั้งที่เส้นทางไปยังเกตเลียนแบบไฟล์ JavaScript เป็นต้น ตอบกลับ js, ข้อมูล.js และอื่น ๆ แต่มีการใช้ลิงก์ไปยังไฟล์รูปภาพด้วย GIF и JPG. ลักษณะเฉพาะคือนักดมกลิ่นสร้างวัตถุรูปภาพที่มีขนาด 1 คูณ 1 พิกเซลและใช้ลิงก์ที่ได้รับก่อนหน้านี้เป็นพารามิเตอร์ สิ่งอำนวยความสะดวก รูปภาพ นั่นคือ สำหรับผู้ใช้ คำขอดังกล่าวในการรับส่งข้อมูลจะดูเหมือนคำขอรูปภาพทั่วไป มีการใช้เทคนิคที่คล้ายกันในตระกูล ImageID ของนักดมกลิ่น นอกจากนี้ เทคนิคภาพขนาด 1x1 พิกเซลยังใช้ในสคริปต์การวิเคราะห์ออนไลน์ที่ถูกต้องตามกฎหมายจำนวนมาก ซึ่งอาจทำให้ผู้ใช้เข้าใจผิดได้เช่นกัน

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์

การวิเคราะห์เวอร์ชัน

การวิเคราะห์โดเมนที่ใช้งานอยู่ซึ่งใช้โดยตัวดำเนินการดมกลิ่นของ ReactGet เผยให้เห็นเวอร์ชันต่างๆ ของตระกูลดมกลิ่นนี้ เวอร์ชั่นจะต่างกันตรงที่มีหรือไม่มีความสับสน และนอกจากนี้ sniffer แต่ละตัวได้รับการออกแบบมาสำหรับระบบการชำระเงินเฉพาะที่ประมวลผลการชำระเงินด้วยบัตรธนาคารสำหรับร้านค้าออนไลน์ หลังจากจัดเรียงตามค่าของพารามิเตอร์ที่สอดคล้องกับหมายเลขเวอร์ชันแล้ว ผู้เชี่ยวชาญ Group-IB ได้รับรายการที่สมบูรณ์ของรูปแบบ sniffer ที่มีอยู่ และตามชื่อช่องแบบฟอร์มที่ sniffer แต่ละคนมองหาในโค้ดของเพจ พวกเขากำหนดระบบการชำระเงิน ที่นักดมกลิ่นตั้งเป้าไว้

รายชื่อนักดมกลิ่นและระบบการชำระเงินที่เกี่ยวข้อง

ดมกลิ่น URL ระบบการชำระเงิน
reactjsapi.com/react.js Authorize.Net
ajaxstatic.com/api.js?v=2.1.1 บัตรบันทึก
ajaxstatic.com/api.js?v=2.1.2 Authorize.Net
ajaxstatic.com/api.js?v=2.1.3 Authorize.Net
ajaxstatic.com/api.js?v=2.1.4 eWAY อย่างรวดเร็ว
ajaxstatic.com/api.js?v=2.1.5 Authorize.Net
ajaxstatic.com/api.js?v=2.1.6 Adyen
ajaxstatic.com/api.js?v=2.1.7 USAePay
ajaxstatic.com/api.js?v=2.1.9 Authorize.Net
apitstatus.com/api.js?v=2.1.1 USAePay
apitstatus.com/api.js?v=2.1.2 Authorize.Net
apitstatus.com/api.js?v=2.1.3 โมเนริส
apitstatus.com/api.js?v=2.1.5 USAePay
apitstatus.com/api.js?v=2.1.6 เพย์พาล
apitstatus.com/api.js?v=2.1.7 ปราชญ์จ่าย
apitstatus.com/api.js?v=2.1.8 Verisign
apitstatus.com/api.js?v=2.1.9 เพย์พาล
apitstatus.com/api.js?v=2.3.0 ลาย
apitstatus.com/api.js?v=3.0.2 เรียลเล็กซ์
apitstatus.com/api.js?v=3.0.3 เพย์พาล
apitstatus.com/api.js?v=3.0.4 ลิงค์พอยท์
apitstatus.com/api.js?v=3.0.5 เพย์พาล
apitstatus.com/api.js?v=3.0.7 เพย์พาล
apitstatus.com/api.js?v=3.0.8 ดาต้าแคช
apitstatus.com/api.js?v=3.0.9 เพย์พาล
asianfoodgracer.com/footer.js Authorize.Net
billgetstatus.com/api.js?v=1.2 Authorize.Net
billgetstatus.com/api.js?v=1.3 Authorize.Net
billgetstatus.com/api.js?v=1.4 Authorize.Net
billgetstatus.com/api.js?v=1.5 Verisign
billgetstatus.com/api.js?v=1.6 Authorize.Net
billgetstatus.com/api.js?v=1.7 โมเนริส
billgetstatus.com/api.js?v=1.8 ปราชญ์จ่าย
billgetstatus.com/api.js?v=2.0 USAePay
billgetstatus.com/react.js Authorize.Net
cloudodesc.com/gtm.js?v=1.2 Authorize.Net
cloudodesc.com/gtm.js?v=1.3 ANZ อีเกต
cloudodesc.com/gtm.js?v=2.3 Authorize.Net
cloudodesc.com/gtm.js?v=2.4 โมเนริส
cloudodesc.com/gtm.js?v=2.6 ปราชญ์จ่าย
cloudodesc.com/gtm.js?v=2.7 ปราชญ์จ่าย
cloudodesc.com/gtm.js?v=2.8 ไล่ Paymentech
cloudodesc.com/gtm.js?v=2.9 Authorize.Net
cloudodesc.com/gtm.js?v=2.91 Adyen
cloudodesc.com/gtm.js?v=2.92 PsiGate
cloudodesc.com/gtm.js?v=2.93 ไซเบอร์ซอร์ส
cloudodesc.com/gtm.js?v=2.95 ANZ อีเกต
cloudodesc.com/gtm.js?v=2.97 เรียลเล็กซ์
geisseie.com/gs.js USAePay
gtmproc.com/age.js Authorize.Net
gtmproc.com/gtm.js?v=1.2 Authorize.Net
gtmproc.com/gtm.js?v=1.3 ANZ อีเกต
gtmproc.com/gtm.js?v=1.5 เพย์พาล
gtmproc.com/gtm.js?v=1.6 เพย์พาล
gtmproc.com/gtm.js?v=1.7 เรียลเล็กซ์
livecheckpay.com/api.js?v=2.0 ปราชญ์จ่าย
livecheckpay.com/api.js?v=2.1 เพย์พาล
livecheckpay.com/api.js?v=2.2 Verisign
livecheckpay.com/api.js?v=2.3 Authorize.Net
livecheckpay.com/api.js?v=2.4 Verisign
livecheckpay.com/react.js Authorize.Net
livegetpay.com/pay.js?v=2.1.2 ANZ อีเกต
livegetpay.com/pay.js?v=2.1.3 เพย์พาล
livegetpay.com/pay.js?v=2.1.5 ไซเบอร์ซอร์ส
livegetpay.com/pay.js?v=2.1.7 Authorize.Net
livegetpay.com/pay.js?v=2.1.8 ปราชญ์จ่าย
livegetpay.com/pay.js?v=2.1.9 เรียลเล็กซ์
livegetpay.com/pay.js?v=2.2.0 ไซเบอร์ซอร์ส
livegetpay.com/pay.js?v=2.2.1 เพย์พาล
livegetpay.com/pay.js?v=2.2.2 เพย์พาล
livegetpay.com/pay.js?v=2.2.3 เพย์พาล
livegetpay.com/pay.js?v=2.2.4 Verisign
livegetpay.com/pay.js?v=2.2.5 eWAY อย่างรวดเร็ว
livegetpay.com/pay.js?v=2.2.7 ปราชญ์จ่าย
livegetpay.com/pay.js?v=2.2.8 ปราชญ์จ่าย
livegetpay.com/pay.js?v=2.2.9 Verisign
livegetpay.com/pay.js?v=2.3.0 Authorize.Net
livegetpay.com/pay.js?v=2.3.1 Authorize.Net
livegetpay.com/pay.js?v=2.3.2 เกตเวย์ข้อมูลระดับโลกแห่งแรก
livegetpay.com/pay.js?v=2.3.3 Authorize.Net
livegetpay.com/pay.js?v=2.3.4 Authorize.Net
livegetpay.com/pay.js?v=2.3.5 โมเนริส
livegetpay.com/pay.js?v=2.3.6 Authorize.Net
livegetpay.com/pay.js?v=2.3.8 เพย์พาล
livegetpay.com/pay.js?v=2.4.0 Verisign
maxstatics.com/site.js USAePay
mediapack.info/track.js?d=funlove.com USAePay
mediapack.info/track.js?d=qbedding.com Authorize.Net
mediapack.info/track.js?d=vseyewear.com Verisign
mxcounter.com/c.js?v=1.2 เพย์พาล
mxcounter.com/c.js?v=1.3 Authorize.Net
mxcounter.com/c.js?v=1.4 ลาย
mxcounter.com/c.js?v=1.6 Authorize.Net
mxcounter.com/c.js?v=1.7 eWAY อย่างรวดเร็ว
mxcounter.com/c.js?v=1.8 ปราชญ์จ่าย
mxcounter.com/c.js?v=2.0 Authorize.Net
mxcounter.com/c.js?v=2.1 Braintree
mxcounter.com/c.js?v=2.10 Braintree
mxcounter.com/c.js?v=2.2 เพย์พาล
mxcounter.com/c.js?v=2.3 ปราชญ์จ่าย
mxcounter.com/c.js?v=2.31 ปราชญ์จ่าย
mxcounter.com/c.js?v=2.32 Authorize.Net
mxcounter.com/c.js?v=2.33 เพย์พาล
mxcounter.com/c.js?v=2.34 Authorize.Net
mxcounter.com/c.js?v=2.35 Verisign
mxcounter.com/click.js?v=1.2 เพย์พาล
mxcounter.com/click.js?v=1.3 Authorize.Net
mxcounter.com/click.js?v=1.4 ลาย
mxcounter.com/click.js?v=1.6 Authorize.Net
mxcounter.com/click.js?v=1.7 eWAY อย่างรวดเร็ว
mxcounter.com/click.js?v=1.8 ปราชญ์จ่าย
mxcounter.com/click.js?v=2.0 Authorize.Net
mxcounter.com/click.js?v=2.1 Braintree
mxcounter.com/click.js?v=2.2 เพย์พาล
mxcounter.com/click.js?v=2.3 ปราชญ์จ่าย
mxcounter.com/click.js?v=2.31 ปราชญ์จ่าย
mxcounter.com/click.js?v=2.32 Authorize.Net
mxcounter.com/click.js?v=2.33 เพย์พาล
mxcounter.com/click.js?v=2.34 Authorize.Net
mxcounter.com/click.js?v=2.35 Verisign
mxcounter.com/cnt.js Authorize.Net
mxcounter.com/j.js Authorize.Net
newrelicnet.com/api.js?v=1.2 Authorize.Net
newrelicnet.com/api.js?v=1.4 Authorize.Net
newrelicnet.com/api.js?v=1.8 ปราชญ์จ่าย
newrelicnet.com/api.js?v=4.5 ปราชญ์จ่าย
newrelicnet.com/api.js?v=4.6 เวสต์แพค เพย์เวย์
nr-public.com/api.js?v=2.0 เพย์ฟอร์ท
nr-public.com/api.js?v=2.1 เพย์พาล
nr-public.com/api.js?v=2.2 Authorize.Net
nr-public.com/api.js?v=2.3 ลาย
nr-public.com/api.js?v=2.4 เกตเวย์ข้อมูลระดับโลกแห่งแรก
nr-public.com/api.js?v=2.5 PsiGate
nr-public.com/api.js?v=2.6 Authorize.Net
nr-public.com/api.js?v=2.7 Authorize.Net
nr-public.com/api.js?v=2.8 โมเนริส
nr-public.com/api.js?v=2.9 Authorize.Net
nr-public.com/api.js?v=3.1 ปราชญ์จ่าย
nr-public.com/api.js?v=3.2 Verisign
nr-public.com/api.js?v=3.3 โมเนริส
nr-public.com/api.js?v=3.5 เพย์พาล
nr-public.com/api.js?v=3.6 ลิงค์พอยท์
nr-public.com/api.js?v=3.7 เวสต์แพค เพย์เวย์
nr-public.com/api.js?v=3.8 Authorize.Net
nr-public.com/api.js?v=4.0 โมเนริส
nr-public.com/api.js?v=4.0.2 เพย์พาล
nr-public.com/api.js?v=4.0.3 Adyen
nr-public.com/api.js?v=4.0.4 เพย์พาล
nr-public.com/api.js?v=4.0.5 Authorize.Net
nr-public.com/api.js?v=4.0.6 USAePay
nr-public.com/api.js?v=4.0.7 อีบีซชาร์จ
nr-public.com/api.js?v=4.0.8 Authorize.Net
nr-public.com/api.js?v=4.0.9 Verisign
nr-public.com/api.js?v=4.1.2 Verisign
ordercheckpays.com/api.js?v=2.11 Authorize.Net
ordercheckpays.com/api.js?v=2.12 เพย์พาล
ordercheckpays.com/api.js?v=2.13 โมเนริส
ordercheckpays.com/api.js?v=2.14 Authorize.Net
ordercheckpays.com/api.js?v=2.15 เพย์พาล
ordercheckpays.com/api.js?v=2.16 เพย์พาล
ordercheckpays.com/api.js?v=2.17 เวสต์แพค เพย์เวย์
ordercheckpays.com/api.js?v=2.18 Authorize.Net
ordercheckpays.com/api.js?v=2.19 Authorize.Net
ordercheckpays.com/api.js?v=2.21 ปราชญ์จ่าย
ordercheckpays.com/api.js?v=2.22 Verisign
ordercheckpays.com/api.js?v=2.23 Authorize.Net
ordercheckpays.com/api.js?v=2.24 เพย์พาล
ordercheckpays.com/api.js?v=2.25 เพย์ฟอร์ท
ordercheckpays.com/api.js?v=2.29 ไซเบอร์ซอร์ส
ordercheckpays.com/api.js?v=2.4 PayPal เพย์โฟลว์ โปร
ordercheckpays.com/api.js?v=2.7 Authorize.Net
ordercheckpays.com/api.js?v=2.8 Authorize.Net
ordercheckpays.com/api.js?v=2.9 Verisign
ordercheckpays.com/api.js?v=3.1 Authorize.Net
ordercheckpays.com/api.js?v=3.2 Authorize.Net
ordercheckpays.com/api.js?v=3.3 ปราชญ์จ่าย
ordercheckpays.com/api.js?v=3.4 Authorize.Net
ordercheckpays.com/api.js?v=3.5 ลาย
ordercheckpays.com/api.js?v=3.6 Authorize.Net
ordercheckpays.com/api.js?v=3.7 Authorize.Net
ordercheckpays.com/api.js?v=3.8 Verisign
ordercheckpays.com/api.js?v=3.9 เพย์พาล
ordercheckpays.com/api.js?v=4.0 Authorize.Net
ordercheckpays.com/api.js?v=4.1 Authorize.Net
ordercheckpays.com/api.js?v=4.2 ปราชญ์จ่าย
ordercheckpays.com/api.js?v=4.3 Authorize.Net
reactjsapi.com/api.js?v=0.1.0 Authorize.Net
reactjsapi.com/api.js?v=0.1.1 เพย์พาล
reactjsapi.com/api.js?v=4.1.2 หินเหล็กไฟ
reactjsapi.com/api.js?v=4.1.4 เพย์พาล
reactjsapi.com/api.js?v=4.1.5 ปราชญ์จ่าย
reactjsapi.com/api.js?v=4.1.51 Verisign
reactjsapi.com/api.js?v=4.1.6 Authorize.Net
reactjsapi.com/api.js?v=4.1.7 Authorize.Net
reactjsapi.com/api.js?v=4.1.8 ลาย
reactjsapi.com/api.js?v=4.1.9 ม้าลายอ้วน
reactjsapi.com/api.js?v=4.2.0 ปราชญ์จ่าย
reactjsapi.com/api.js?v=4.2.1 Authorize.Net
reactjsapi.com/api.js?v=4.2.2 เกตเวย์ข้อมูลระดับโลกแห่งแรก
reactjsapi.com/api.js?v=4.2.3 Authorize.Net
reactjsapi.com/api.js?v=4.2.4 eWAY อย่างรวดเร็ว
reactjsapi.com/api.js?v=4.2.5 Adyen
reactjsapi.com/api.js?v=4.2.7 เพย์พาล
reactjsapi.com/api.js?v=4.2.8 บริการผู้ค้า QuickBooks
reactjsapi.com/api.js?v=4.2.9 Verisign
reactjsapi.com/api.js?v=4.2.91 ปราชญ์จ่าย
reactjsapi.com/api.js?v=4.2.92 Verisign
reactjsapi.com/api.js?v=4.2.94 Authorize.Net
reactjsapi.com/api.js?v=4.3.97 Authorize.Net
reactjsapi.com/api.js?v=4.5 ปราชญ์จ่าย
reactjsapi.com/react.js Authorize.Net
sydneysalonsupplies.com/gtm.js eWAY อย่างรวดเร็ว
tagsmediaget.com/react.js Authorize.Net
tagstracking.com/tag.js?v=2.1.2 ANZ อีเกต
tagstracking.com/tag.js?v=2.1.3 เพย์พาล
tagstracking.com/tag.js?v=2.1.5 ไซเบอร์ซอร์ส
tagstracking.com/tag.js?v=2.1.7 Authorize.Net
tagstracking.com/tag.js?v=2.1.8 ปราชญ์จ่าย
tagstracking.com/tag.js?v=2.1.9 เรียลเล็กซ์
tagstracking.com/tag.js?v=2.2.0 ไซเบอร์ซอร์ส
tagstracking.com/tag.js?v=2.2.1 เพย์พาล
tagstracking.com/tag.js?v=2.2.2 เพย์พาล
tagstracking.com/tag.js?v=2.2.3 เพย์พาล
tagstracking.com/tag.js?v=2.2.4 Verisign
tagstracking.com/tag.js?v=2.2.5 eWAY อย่างรวดเร็ว
tagstracking.com/tag.js?v=2.2.7 ปราชญ์จ่าย
tagstracking.com/tag.js?v=2.2.8 ปราชญ์จ่าย
tagstracking.com/tag.js?v=2.2.9 Verisign
tagstracking.com/tag.js?v=2.3.0 Authorize.Net
tagstracking.com/tag.js?v=2.3.1 Authorize.Net
tagstracking.com/tag.js?v=2.3.2 เกตเวย์ข้อมูลระดับโลกแห่งแรก
tagstracking.com/tag.js?v=2.3.3 Authorize.Net
tagstracking.com/tag.js?v=2.3.4 Authorize.Net
tagstracking.com/tag.js?v=2.3.5 โมเนริส
tagstracking.com/tag.js?v=2.3.6 Authorize.Net
tagstracking.com/tag.js?v=2.3.8 เพย์พาล

ดมกลิ่นรหัสผ่าน

ข้อดีอย่างหนึ่งของ JavaScript sniffers ที่ทำงานบนฝั่งไคลเอนต์ของเว็บไซต์คือความสามารถรอบด้าน: โค้ดอันตรายที่ฝังอยู่บนเว็บไซต์สามารถขโมยข้อมูลประเภทใดก็ได้ ไม่ว่าจะเป็นข้อมูลการชำระเงินหรือข้อมูลเข้าสู่ระบบและรหัสผ่านจากบัญชีผู้ใช้ ผู้เชี่ยวชาญ Group-IB ค้นพบตัวอย่าง sniffer ของตระกูล ReactGet ซึ่งออกแบบมาเพื่อขโมยที่อยู่อีเมลและรหัสผ่านของผู้ใช้ไซต์

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์

แยกกับ ImageID sniffer

ในระหว่างการวิเคราะห์หนึ่งในร้านค้าที่ติดไวรัส พบว่าเว็บไซต์ของตนติดไวรัสสองครั้ง: นอกจากโค้ดที่เป็นอันตรายของ ReactGet family sniffer แล้ว ยังพบโค้ดของ ImageID family sniffer ด้วย การทับซ้อนกันนี้อาจเป็นหลักฐานว่าเจ้าหน้าที่ที่อยู่เบื้องหลังการดมกลิ่นทั้งสองกำลังใช้เทคนิคที่คล้ายคลึงกันในการแทรกโค้ดที่เป็นอันตราย

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์

นักดมกลิ่นสากล

ระหว่างการวิเคราะห์หนึ่งในชื่อโดเมนที่เกี่ยวข้องกับโครงสร้างพื้นฐานของ ReactGet sniffer พบว่าผู้ใช้คนเดียวกันจดทะเบียนชื่อโดเมนอื่นอีกสามชื่อ โดเมนทั้งสามนี้เลียนแบบโดเมนของไซต์ในชีวิตจริงและเคยใช้โฮสต์ดมกลิ่นมาก่อน เมื่อวิเคราะห์โค้ดของไซต์ที่ถูกกฎหมายสามแห่ง พบว่ามี sniffer ที่ไม่รู้จัก และการวิเคราะห์เพิ่มเติมแสดงให้เห็นว่านี่เป็นเวอร์ชันปรับปรุงของ ReactGet sniffer เวอร์ชันที่ติดตามก่อนหน้านี้ทั้งหมดของตระกูล sniffer นี้มีเป้าหมายที่ระบบการชำระเงินระบบเดียว นั่นคือ เวอร์ชันพิเศษของ sniffer จำเป็นสำหรับระบบการชำระเงินแต่ละระบบ อย่างไรก็ตาม ในกรณีนี้ มีการค้นพบ sniffer รุ่นสากลที่สามารถขโมยข้อมูลจากแบบฟอร์มที่เกี่ยวข้องกับระบบการชำระเงินที่แตกต่างกัน 15 แบบและโมดูลของไซต์อีคอมเมิร์ซสำหรับการชำระเงินออนไลน์

ดังนั้น ในช่วงเริ่มต้นของการทำงาน นักดมกลิ่นจึงค้นหาฟิลด์แบบฟอร์มพื้นฐานที่มีข้อมูลส่วนบุคคลของเหยื่อ ได้แก่ ชื่อนามสกุล ที่อยู่จริง หมายเลขโทรศัพท์

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
จากนั้น sniffer ค้นหาคำนำหน้าที่แตกต่างกันกว่า 15 รายการที่สอดคล้องกับระบบการชำระเงินและโมดูลต่างๆ สำหรับการชำระเงินออนไลน์

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
จากนั้น ข้อมูลส่วนตัวของเหยื่อและข้อมูลการชำระเงินจะถูกรวบรวมและส่งไปยังไซต์ที่ควบคุมโดยผู้โจมตี ในกรณีนี้ พบ ReactGet universal sniffer สองเวอร์ชันอยู่ในไซต์ที่ถูกแฮ็กสองไซต์ที่แตกต่างกัน อย่างไรก็ตาม ทั้งสองเวอร์ชันส่งข้อมูลที่ถูกขโมยไปยังไซต์ที่ถูกแฮ็กเดียวกัน Zoobashop.คอม.

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
การวิเคราะห์คำนำหน้าที่ใช้โดย sniffer เพื่อค้นหาฟิลด์ที่มีข้อมูลการชำระเงินของเหยื่อระบุว่าตัวอย่าง sniffer นี้กำหนดเป้าหมายไปที่ระบบการชำระเงินต่อไปนี้:

  • Authorize.Net
  • Verisign
  • ข้อมูลแรก
  • USAePay
  • ลาย
  • เพย์พาล
  • ANZ อีเกต
  • Braintree
  • ดาต้า แคช (มาสเตอร์การ์ด)
  • การชำระเงิน Realex
  • PsiGate
  • ระบบการชำระเงิน Heartland

เครื่องมือใดที่ใช้ในการขโมยข้อมูลการชำระเงิน

เครื่องมือแรกที่ค้นพบระหว่างการวิเคราะห์โครงสร้างพื้นฐานของผู้โจมตีทำหน้าที่สร้างความสับสนให้กับสคริปต์ที่เป็นอันตรายซึ่งมีหน้าที่รับผิดชอบในการขโมยบัตรธนาคาร พบสคริปต์ทุบตีที่ใช้ CLI ของโครงการบนหนึ่งในโฮสต์ของผู้โจมตี จาวาสคริปต์ obfuscator เพื่อทำให้รหัส sniffer ยุ่งเหยิงโดยอัตโนมัติ

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
เครื่องมือที่ค้นพบครั้งที่สองได้รับการออกแบบมาเพื่อสร้างรหัสที่รับผิดชอบในการโหลดตัวดมกลิ่นหลัก เครื่องมือนี้สร้างโค้ด JavaScript ที่ตรวจสอบว่าผู้ใช้อยู่ในหน้าชำระเงินหรือไม่ โดยค้นหาสตริงที่อยู่ปัจจุบันของผู้ใช้ เช็คเอาต์, เกวียน และอื่น ๆ และหากผลลัพธ์เป็นบวก โค้ดจะโหลดตัวดมกลิ่นหลักจากเซิร์ฟเวอร์ของผู้บุกรุก เพื่อซ่อนกิจกรรมที่เป็นอันตราย บรรทัดทั้งหมดรวมถึงบรรทัดทดสอบสำหรับระบุหน้าการชำระเงิน ตลอดจนลิงก์ไปยังผู้ดมกลิ่น จะถูกเข้ารหัสโดยใช้ base64.

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์

การโจมตีแบบฟิชชิง

ในระหว่างการวิเคราะห์โครงสร้างพื้นฐานเครือข่ายของผู้โจมตี พบว่ากลุ่มอาชญากรมักใช้ฟิชชิงเพื่อเข้าถึงแผงการดูแลระบบของร้านค้าออนไลน์เป้าหมาย ผู้โจมตีลงทะเบียนโดเมนที่ดูเหมือนโดเมนร้านค้า จากนั้นใช้แบบฟอร์มเข้าสู่ระบบผู้ดูแลระบบ Magento ปลอมบนโดเมนนั้น หากทำสำเร็จ ผู้โจมตีจะสามารถเข้าถึงแผงผู้ดูแลระบบ Magento CMS ซึ่งช่วยให้พวกเขาสามารถแก้ไขส่วนประกอบของไซต์และใช้ sniffer เพื่อขโมยข้อมูลบัตรเครดิต

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
โครงสร้างพื้นฐาน

Домен วันที่ค้นพบ/ปรากฏ
mediapack.info 04.05.2017
adsgetapi.com 15.06.2017
ซิมเคาน์เตอร์.คอม 14.08.2017
mageanalytics.com 22.12.2017
maxstatics.คอม 16.01.2018
reactjsapi.com 19.01.2018
mxcounter.com 02.02.2018
apitstatus.com 01.03.2018
orderracker.คอม 20.04.2018
tagtracking.คอม 25.06.2018
adsapigate.คอม 12.07.2018
trusttracker.com 15.07.2018
fbstatspartner.com 02.10.2018
billgetstatus.คอม 12.10.2018
www.aldenmlilhouse.com 20.10.2018
บัลเล่ต์ beautlful.com 20.10.2018
bargalnjunkie.com 20.10.2018
payselector.com 21.10.2018
tagmediaget.com 02.11.2018
hs-Payments.com 16.11.2018
สั่งซื้อเช็คเพย์.com 19.11.2018
geissie.com 24.11.2018
gtmproc.com 29.11.2018
livegetpay.com 18.12.2018
sydneysalonsupplies.com 18.12.2018
newrelicnet.com 19.12.2018
nr-public.com 03.01.2019
cloudodesc.com 04.01.2019
ajaxstatic.com 11.01.2019
livecheckpay.com 21.01.2019
asianfoodgracer.com 25.01.2019

ตระกูล G-Analytics

นักดมกลิ่นตระกูลนี้ใช้เพื่อขโมยบัตรลูกค้าจากร้านค้าออนไลน์ ชื่อโดเมนแรกที่ใช้โดยกลุ่มได้รับการจดทะเบียนในเดือนเมษายน 2016 ซึ่งอาจบ่งบอกถึงการเริ่มต้นกิจกรรมของกลุ่มในกลางปี ​​2016

ในแคมเปญปัจจุบัน กลุ่มใช้ชื่อโดเมนที่เลียนแบบบริการในชีวิตจริง เช่น Google Analytics และ jQuery ปิดบังกิจกรรมการดมกลิ่นด้วยสคริปต์ที่ถูกต้องและชื่อโดเมนที่ดูถูกต้อง เว็บไซต์ที่ทำงานภายใต้ CMS Magento ถูกโจมตี

วิธีการใช้ G-Analytics ในรหัสร้านค้าออนไลน์

คุณลักษณะที่โดดเด่นของตระกูลนี้คือการใช้วิธีการต่างๆ ในการขโมยข้อมูลการชำระเงินของผู้ใช้ นอกเหนือจากการแทรก JavaScript แบบคลาสสิกเข้าไปในฝั่งไคลเอนต์ของไซต์แล้ว กลุ่มอาชญากรยังใช้เทคนิคการแทรกโค้ดลงในฝั่งเซิร์ฟเวอร์ของไซต์ นั่นคือสคริปต์ PHP ที่ประมวลผลอินพุตของผู้ใช้ เทคนิคนี้เป็นอันตรายเนื่องจากทำให้นักวิจัยบุคคลที่สามตรวจจับโค้ดที่เป็นอันตรายได้ยาก ผู้เชี่ยวชาญ Group-IB ค้นพบเวอร์ชันของ sniffer ที่ฝังอยู่ในโค้ด PHP ของไซต์ โดยใช้โดเมนเป็นประตู dittm.org.

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
นอกจากนี้ยังมีการค้นพบการดมกลิ่นรุ่นแรกที่ใช้โดเมนเดียวกันเพื่อรวบรวมข้อมูลที่ถูกขโมย dittm.orgแต่เวอร์ชันนี้มีไว้สำหรับติดตั้งบนฝั่งไคลเอนต์ของร้านค้าออนไลน์อยู่แล้ว

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
ต่อมากลุ่มได้เปลี่ยนกลยุทธ์และเริ่มให้ความสำคัญกับการปกปิดกิจกรรมที่เป็นอันตรายและการอำพรางมากขึ้น

ในช่วงต้นปี 2017 กลุ่มเริ่มใช้โดเมน jquery-js.comปลอมเป็น CDN สำหรับ jQuery: เปลี่ยนเส้นทางผู้ใช้ไปยังไซต์ที่ถูกต้องตามกฎหมายเมื่อไปยังไซต์ที่เป็นอันตราย เจคิวรี่.คอม.

และในช่วงกลางปี ​​2018 ทางกลุ่มได้นำชื่อโดเมนมาใช้ g-analytics.com และเริ่มปลอมแปลงกิจกรรมของนักดมกลิ่นว่าเป็นบริการ Google Analytics ที่ถูกต้องตามกฎหมาย

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์

การวิเคราะห์เวอร์ชัน

ในระหว่างการวิเคราะห์โดเมนที่ใช้จัดเก็บรหัส sniffer พบว่าไซต์มีเวอร์ชันจำนวนมากที่แตกต่างกันในการมีอยู่ของความสับสน ตลอดจนการมีหรือไม่มีโค้ดที่ไม่สามารถเข้าถึงได้ที่เพิ่มลงในไฟล์เพื่อเบี่ยงเบนความสนใจ และซ่อนรหัสที่เป็นอันตราย

รวมบนเว็บไซต์ jquery-js.com มีการระบุผู้ดมกลิ่นหกรุ่น นักดมกลิ่นเหล่านี้จะส่งข้อมูลที่ถูกขโมยไปยังที่อยู่ซึ่งอยู่ในไซต์เดียวกันกับผู้ดมกลิ่นเอง: hxxps://jquery-js[.]com/latest/jquery.min.js:

  • hxxps://jquery-js[.]com/jquery.min.js
  • hxxps://jquery-js[.]com/jquery.2.2.4.min.js
  • hxxps://jquery-js[.]com/jquery.1.8.3.min.js
  • hxxps://jquery-js[.]com/jquery.1.6.4.min.js
  • hxxps://jquery-js[.]com/jquery.1.4.4.min.js
  • hxxps://jquery-js[.]com/jquery.1.12.4.min.js

โดเมนในภายหลัง g-analytics.comซึ่งใช้โดยกลุ่มในการโจมตีตั้งแต่กลางปี ​​2018 ทำหน้าที่เป็นพื้นที่เก็บข้อมูลสำหรับนักดมกลิ่นมากขึ้น โดยรวมแล้ว 16 รุ่นที่แตกต่างกันของนักดมกลิ่นถูกค้นพบ ในกรณีนี้ ประตูสำหรับการส่งข้อมูลที่ถูกขโมยถูกปลอมแปลงเป็นลิงก์ไปยังรูปภาพของรูปแบบ GIF: hxxp://g-analytics[.]com/__utm.gif?v=1&_v=j68&a=98811130&t=pageview&_s=1&sd=24-bit&sr=2560×1440&vp=2145×371&je=0&_u=AACAAEAB~&jid=1841704724&gjid=877686936&cid
= 1283183910.1527732071
:

  • hxxps://g-analytics[.]com/libs/1.0.1/analytics.js
  • hxxps://g-analytics[.]com/libs/1.0.10/analytics.js
  • hxxps://g-analytics[.]com/libs/1.0.11/analytics.js
  • hxxps://g-analytics[.]com/libs/1.0.12/analytics.js
  • hxxps://g-analytics[.]com/libs/1.0.13/analytics.js
  • hxxps://g-analytics[.]com/libs/1.0.14/analytics.js
  • hxxps://g-analytics[.]com/libs/1.0.15/analytics.js
  • hxxps://g-analytics[.]com/libs/1.0.16/analytics.js
  • hxxps://g-analytics[.]com/libs/1.0.3/analytics.js
  • hxxps://g-analytics[.]com/libs/1.0.4/analytics.js
  • hxxps://g-analytics[.]com/libs/1.0.5/analytics.js
  • hxxps://g-analytics[.]com/libs/1.0.6/analytics.js
  • hxxps://g-analytics[.]com/libs/1.0.7/analytics.js
  • hxxps://g-analytics[.]com/libs/1.0.8/analytics.js
  • hxxps://g-analytics[.]com/libs/1.0.9/analytics.js
  • hxxps://g-analytics[.]com/libs/analytics.js

การสร้างรายได้จากข้อมูลที่ถูกขโมย

กลุ่มอาชญากรสร้างรายได้จากข้อมูลที่ถูกขโมยโดยการขายบัตรผ่านร้านค้าใต้ดินที่สร้างขึ้นเป็นพิเศษเพื่อให้บริการแก่ผู้ถือบัตร การวิเคราะห์โดเมนที่ผู้โจมตีใช้ทำให้สามารถระบุได้ว่า google-analytics.ซม ได้รับการจดทะเบียนโดยผู้ใช้เดียวกันกับโดเมน cardz.vc. โดเมน cardz.vc หมายถึง Cardsurfs (Flysurfs) ร้านขายบัตรธนาคารที่ถูกขโมย ซึ่งได้รับความนิยมในตลาดใต้ดินของ AlphaBay ในฐานะร้านขายบัตรธนาคารที่ถูกขโมยโดยใช้เครื่องดมกลิ่น

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
กำลังวิเคราะห์โดเมน analytical.isซึ่งตั้งอยู่บนเซิร์ฟเวอร์เดียวกันกับโดเมนที่นักดมกลิ่นใช้เพื่อรวบรวมข้อมูลที่ถูกขโมย ผู้เชี่ยวชาญ Group-IB พบไฟล์ที่มีบันทึกการขโมยคุกกี้ ซึ่งดูเหมือนว่านักพัฒนาจะละทิ้งในภายหลัง รายการหนึ่งในบันทึกประกอบด้วยโดเมน iooz.comซึ่งก่อนหน้านี้เคยใช้กับหนึ่งในเครื่องดมกลิ่นที่ใช้งานในปี 2016 สันนิษฐานว่าก่อนหน้านี้ผู้โจมตีใช้โดเมนนี้เพื่อรวบรวมการ์ดที่ถูกขโมยโดยใช้การดมกลิ่น โดเมนนี้ลงทะเบียนกับที่อยู่อีเมล [ป้องกันอีเมล]ซึ่งใช้ในการจดทะเบียนโดเมนด้วย cardz.su и cardz.vcที่เกี่ยวข้องกับร้านไพ่ Cardsurfs

จากข้อมูลที่ได้รับ สามารถสันนิษฐานได้ว่ากลุ่ม G-Analytics sniffer และร้านบัตรธนาคารใต้ดินของ Cardsurfs ดำเนินการโดยคนคนเดียวกัน และร้านดังกล่าวใช้เพื่อขายบัตรธนาคารที่ถูกขโมยโดยใช้เครื่องดมกลิ่น

โครงสร้างพื้นฐาน

Домен วันที่ค้นพบ/ปรากฏ
iooz.com 08.04.2016
dittm.org 10.09.2016
jquery-js.com 02.01.2017
g-analytics.com 31.05.2018
google-analytics.is 21.11.2018
วิเคราะห์.to 04.12.2018
google-analytics.to 06.12.2018
google-analytics.ซม 28.12.2018
analytical.is 28.12.2018
googlelc-analytics.ซม 17.01.2019

ครอบครัวอิลลัม

Illum คือกลุ่มนักดมกลิ่นที่ใช้โจมตีร้านค้าออนไลน์ที่ใช้ Magento CMS นอกเหนือจากการแนะนำรหัสที่เป็นอันตรายแล้ว เจ้าหน้าที่ของ sniffer นี้ยังใช้รูปแบบการชำระเงินปลอมเต็มรูปแบบที่ส่งข้อมูลไปยังประตูที่ควบคุมโดยผู้โจมตี

เมื่อวิเคราะห์โครงสร้างพื้นฐานของเครือข่ายที่ใช้โดยผู้ดำเนินการของ sniffer นี้ พบว่ามีสคริปต์ที่เป็นอันตราย การใช้ประโยชน์ แบบฟอร์มการชำระเงินปลอมจำนวนมาก รวมทั้งชุดของตัวอย่างที่มีคู่แข่ง sniffer ที่เป็นอันตราย จากข้อมูลเกี่ยวกับวันที่ปรากฏของชื่อโดเมนที่กลุ่มใช้ อาจสันนิษฐานได้ว่าการเริ่มต้นแคมเปญตรงกับช่วงสิ้นปี 2016

วิธีการใช้ Illum ในโค้ดของร้านค้าออนไลน์

sniffer เวอร์ชันแรกที่ค้นพบถูกฝังลงในโค้ดของไซต์ที่ถูกบุกรุกโดยตรง ข้อมูลที่ถูกขโมยถูกส่งไปที่ cdn.illum[.]pw/records.phpประตูถูกเข้ารหัสโดยใช้ base64.

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
ต่อมาได้มีการค้นพบสนิฟเฟอร์รุ่นแพ็คเกจโดยใช้เกทอื่น - records.nstatistics[.]com/records.php.

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
ตามที่ รายงาน Willem de Groot โฮสต์เดียวกันถูกใช้ใน sniffer ที่ถูกนำมาใช้ เว็บไซต์ร้านค้าซึ่งเป็นเจ้าของโดยพรรคการเมืองเยอรมัน CSU

การวิเคราะห์ไซต์โจมตี

ผู้เชี่ยวชาญ Group-IB ค้นพบและวิเคราะห์ไซต์ที่กลุ่มอาชญากรนี้ใช้เพื่อจัดเก็บเครื่องมือและรวบรวมข้อมูลที่ถูกขโมย

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
ในบรรดาเครื่องมือต่างๆ ที่พบในเซิร์ฟเวอร์ของผู้โจมตีนั้นพบสคริปต์และช่องโหว่สำหรับการเพิ่มระดับสิทธิ์ในระบบปฏิบัติการ Linux ตัวอย่างเช่น สคริปต์ตรวจสอบสิทธิ์การใช้งาน Linux Privilege Escalation ที่พัฒนาโดย Mike Czumak รวมถึงการใช้ประโยชน์จาก CVE-2009-1185

ผู้โจมตีใช้สองช่องโหว่โจมตีร้านค้าออนไลน์โดยตรง: แรก สามารถแทรกโค้ดอันตรายเข้าไปได้ core_config_data โดยใช้ประโยชน์จาก CVE-2016-4010 ที่สอง ใช้ประโยชน์จากช่องโหว่ RCE ในปลั๊กอิน Magento CMS ทำให้สามารถเรียกใช้รหัสโดยอำเภอใจบนเว็บเซิร์ฟเวอร์ที่มีช่องโหว่

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
นอกจากนี้ ในระหว่างการวิเคราะห์เซิร์ฟเวอร์ ยังพบตัวอย่างต่างๆ ของ sniffers และแบบฟอร์มการชำระเงินปลอม ซึ่งผู้โจมตีใช้เพื่อรวบรวมข้อมูลการชำระเงินจากไซต์ที่ถูกแฮ็ก ดังที่คุณเห็นจากรายการด้านล่าง สคริปต์บางตัวถูกสร้างขึ้นแยกกันสำหรับแต่ละไซต์ที่ถูกแฮ็ก ในขณะที่โซลูชันสากลใช้สำหรับ CMS และเกตเวย์การชำระเงินบางรายการ ตัวอย่างเช่นสคริปต์ segapay_standard.js и segapay_onpage.js ออกแบบมาให้ฝังอยู่ในไซต์โดยใช้เกตเวย์การชำระเงิน Sage Pay

รายการสคริปต์สำหรับเกตเวย์การชำระเงินต่างๆ

สคริปต์ ช่องทางการชำระเงิน
ซีเนียร์อิลลัม[.]pw/mjs_special/visiondirect.co.uk.js //request.payrightnow[.]cf/checkPayment.php
ซีเนียร์อิลลัม[.]pw/mjs_special/topdirenshop.nl.js //request.payrightnow[.]cf/alldata.php
ซีเนียร์อิลลัม[.]pw/mjs_special/tiendalenovo.es.js //request.payrightnow[.]cf/alldata.php
ซีเนียร์อิลลัม[.]pw/mjs_special/pro-bolt.com.js //request.payrightnow[.]cf/alldata.php
ซีเนียร์อิลลัม[.]pw/mjs_special/plae.co.js //request.payrightnow[.]cf/alldata.php
ซีเนียร์อิลลัม[.]pw/mjs_special/ottolenghi.co.uk.js //request.payrightnow[.]cf/alldata.php
ซีเนียร์อิลลัม[.]pw/mjs_special/oldtimecandy.com.js //request.payrightnow[.]cf/checkPayment.php
ซีเนียร์อิลลัม[.]pw/mjs_special/mylook.ee.js //cdn.illum[.]pw/records.php
ซีเนียร์อิลลัม[.]pw/mjs_special/luluandsky.com.js //request.payrightnow[.]cf/checkPayment.php
ซีเนียร์อิลลัม[.]pw/mjs_special/julep.com.js //cdn.illum[.]pw/records.php
ซีเนียร์อิลลัม[.]pw/mjs_special/gymcompany.es.js //request.payrightnow[.]cf/alldata.php
ซีเนียร์อิลลัม[.]pw/mjs_special/grotekadoshop.nl.js //request.payrightnow[.]cf/alldata.php
ซีเนียร์อิลลัม[.]pw/mjs_special/fushi.co.uk.js //request.payrightnow[.]cf/checkPayment.php
ซีเนียร์อิลลัม[.]pw/mjs_special/fareastflora.com.js //request.payrightnow[.]cf/checkPayment.php
ซีเนียร์อิลลัม[.]pw/mjs_special/compuindia.com.js //request.payrightnow[.]cf/alldata.php
ซีเนียร์อิลลัม[.]pw/mjs/segapay_standart.js //cdn.illum[.]pw/records.php
ซีเนียร์อิลลัม[.]pw/mjs/segapay_onpage.js //cdn.illum[.]pw/records.php
ซีเนียร์อิลลัม[.]pw/mjs/replace_standard.js //request.payrightnow[.]cf/checkPayment.php
ซีเนียร์อิลลัม[.] pw/mjs/all_inputs.js //cdn.illum[.]pw/records.php
ซีเนียร์อิลลัม[.]pw/mjs/add_inputs_standart.js //request.payrightnow[.]cf/checkPayment.php
ซีเนียร์อิลลัม[.]pw/magento/payment_standard.js //cdn.illum[.]pw/records.php
ซีเนียร์อิลลัม[.]pw/magento/Payment_redirect.js //payrightnow[.]cf/?การชำระเงิน=
ซีเนียร์อิลลัม[.]pw/magento/Payment_redcrypt.js //payrightnow[.]cf/?การชำระเงิน=
ซีเนียร์อิลลัม[.]pw/magento/Payment_forminsite.js //การชำระเงินตอนนี้[.]tk/?การชำระเงิน=

โฮสต์ ชำระเงินทันที[.]tkใช้เป็นประตูในสคริปต์ Payment_forminsite.js, ถูกค้นพบเป็น หัวเรื่องAltName ในใบรับรองต่างๆ ที่เกี่ยวข้องกับบริการ CloudFlare นอกจากนี้ สคริปต์ยังอยู่บนโฮสต์ evil.js. เมื่อพิจารณาจากชื่อสคริปต์แล้ว อาจถูกใช้เป็นส่วนหนึ่งของการใช้ประโยชน์จาก CVE-2016-4010 ซึ่งทำให้สามารถแทรกโค้ดที่เป็นอันตรายลงในส่วนท้ายของไซต์ที่รัน Magento CMS ได้ สคริปต์นี้ใช้โฮสต์เป็นประตู request.requestnet[.]tkโดยใช้ใบรับรองเดียวกันกับโฮสต์ ชำระเงินทันที[.]tk.

แบบฟอร์มการชำระเงินปลอม

รูปด้านล่างแสดงตัวอย่างแบบฟอร์มสำหรับป้อนข้อมูลบัตร แบบฟอร์มนี้ใช้เพื่อแทรกซึมเว็บไซต์ร้านค้าออนไลน์และขโมยข้อมูลบัตร

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
รูปต่อไปนี้เป็นตัวอย่างของแบบฟอร์มการชำระเงิน PayPal ปลอมที่ผู้โจมตีใช้เพื่อแทรกซึมเว็บไซต์โดยใช้วิธีการชำระเงินนี้
นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
โครงสร้างพื้นฐาน

Домен วันที่ค้นพบ/ปรากฏ
cdn.illum.pw 27/11/2016
record.nstatistics.com 06/09/2018
request.payrightnow.cf 25/05/2018
Paymentnow.tk 16/07/2017
Payment-line.tk 01/03/2018
Paymentpal.cf 04/09/2017
requestnet.tk 28/06/2017

ครอบครัวคอฟฟี่ม็อกโกะ

ตระกูลดมกลิ่นของ CoffeMokko ที่ออกแบบมาเพื่อขโมยบัตรธนาคารของผู้ใช้ร้านค้าออนไลน์ถูกนำมาใช้ตั้งแต่เดือนพฤษภาคม 2017 เป็นอย่างน้อย สันนิษฐานว่าผู้ดำเนินการของนักดมกลิ่นในตระกูลนี้เป็นกลุ่มอาชญากรกลุ่มที่ 1 ซึ่งอธิบายโดยผู้เชี่ยวชาญของ RiskIQ ในปี 2016 เว็บไซต์ที่ใช้ CMS เช่น Magento, OpenCart, WordPress, osCommerce, Shopify ถูกโจมตี

CoffeMokko ถูกฝังอยู่ในโค้ดของร้านค้าออนไลน์อย่างไร

ตัวดำเนินการของตระกูลนี้สร้าง sniffer เฉพาะสำหรับการติดเชื้อแต่ละรายการ: ไฟล์ sniffer อยู่ในไดเร็กทอรี สิ่งอำนวยความสะดวก หรือ js บนเซิร์ฟเวอร์ของผู้โจมตี การนำไปใช้ในรหัสไซต์นั้นดำเนินการโดยลิงก์โดยตรงไปยังผู้ดมกลิ่น

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
sniffer code ฮาร์ดโค้ดชื่อของฟิลด์แบบฟอร์มที่คุณต้องการขโมยข้อมูล ดมกลิ่นยังตรวจสอบว่าผู้ใช้อยู่ในหน้าชำระเงินหรือไม่ โดยตรวจสอบรายการคำหลักเทียบกับที่อยู่ปัจจุบันของผู้ใช้

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
sniffer บางเวอร์ชันที่ค้นพบถูกทำให้สับสนและมีสตริงเข้ารหัสที่เก็บอาร์เรย์หลักของทรัพยากร: มันมีชื่อของช่องแบบฟอร์มสำหรับระบบการชำระเงินต่างๆ รวมถึงที่อยู่ของประตูที่ควรจะส่งข้อมูลที่ถูกขโมยไป

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
ข้อมูลการชำระเงินที่ถูกขโมยถูกส่งไปยังสคริปต์บนเซิร์ฟเวอร์ของผู้โจมตีไปพร้อมกัน /savePayment/index.php หรือ /tr/index.php. สันนิษฐานว่า สคริปต์นี้ใช้เพื่อส่งข้อมูลจากเกตไปยังเซิร์ฟเวอร์หลัก ซึ่งรวมข้อมูลจากผู้ดมกลิ่นทั้งหมด เพื่อซ่อนข้อมูลที่ส่ง ข้อมูลการชำระเงินทั้งหมดของเหยื่อจะถูกเข้ารหัสโดยใช้ base64แล้วเกิดการแทนที่อักขระหลายตัว:

  • ตัวอักษร "e" ถูกแทนที่ด้วย ":"
  • สัญลักษณ์ "w" ถูกแทนที่ด้วย "+"
  • ตัวอักษร "o" ถูกแทนที่ด้วย "%"
  • อักขระ "d" ถูกแทนที่ด้วย "#"
  • ตัวอักษร "a" ถูกแทนที่ด้วย "-"
  • สัญลักษณ์ "7" ถูกแทนที่ด้วย "^"
  • ตัวอักษร "h" ถูกแทนที่ด้วย "_"
  • สัญลักษณ์ "T" จะถูกแทนที่ด้วย "@"
  • อักขระ "0" ถูกแทนที่ด้วย "/"
  • อักขระ "Y" จะถูกแทนที่ด้วย "*"

อันเป็นผลมาจากการแทนที่อักขระที่เข้ารหัสด้วย base64 ไม่สามารถถอดรหัสข้อมูลได้หากไม่มีการแปลงผกผัน

นี่คือลักษณะของส่วนย่อยของรหัสดมกลิ่นที่ไม่ได้รับการทำให้คลุมเครือ:

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์

การวิเคราะห์โครงสร้างพื้นฐาน

ในช่วงแรกของแคมเปญ ผู้โจมตีจะจดทะเบียนชื่อโดเมนที่คล้ายกับชื่อเว็บไซต์ช้อปปิ้งออนไลน์ที่ถูกกฎหมาย โดเมนของพวกเขาอาจแตกต่างจากที่ถูกต้องทีละอักขระหรือ TLD อื่น โดเมนที่จดทะเบียนแล้วถูกใช้เพื่อจัดเก็บรหัส sniffer ซึ่งเป็นลิงก์ที่ฝังอยู่ในรหัสร้านค้า

กลุ่มนี้ยังใช้ชื่อโดเมนที่ชวนให้นึกถึงปลั๊กอิน jQuery ยอดนิยม (slickjs[.]org สำหรับไซต์ที่ใช้ปลั๊กอิน slick.js) ช่องทางการชำระเงิน (sagecdn[.]org สำหรับไซต์ที่ใช้ระบบการชำระเงิน Sage Pay)

ต่อมา กลุ่มเริ่มสร้างโดเมนที่ชื่อไม่เกี่ยวข้องกับโดเมนของร้านค้าหรือธีมของร้านค้า

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
แต่ละโดเมนตรงกับไซต์ที่สร้างไดเร็กทอรี /js หรือ / src. สคริปต์ sniffer ถูกเก็บไว้ในไดเร็กทอรีนี้: หนึ่ง sniffer สำหรับการติดไวรัสใหม่แต่ละครั้ง sniffer ถูกนำเข้าไปในโค้ดของไซต์ผ่านลิงก์โดยตรง แต่ในบางกรณี ผู้โจมตีแก้ไขไฟล์ของไซต์และเพิ่มโค้ดที่เป็นอันตรายเข้าไป

การวิเคราะห์รหัส

อัลกอริทึมการทำให้งงงวยครั้งแรก

ในตัวอย่าง sniffer บางตัวอย่างในตระกูลนี้ รหัสถูกทำให้ยุ่งเหยิงและมีข้อมูลเข้ารหัสที่จำเป็นสำหรับ sniffer ในการทำงาน โดยเฉพาะอย่างยิ่ง ที่อยู่เกตของ sniffer รายการฟิลด์แบบฟอร์มการชำระเงิน และในบางกรณี รหัสแบบฟอร์มการชำระเงินปลอม ในรหัสภายในฟังก์ชัน ทรัพยากรถูกเข้ารหัสด้วย แฮคเกอร์ โดยคีย์ที่ส่งผ่านเป็นอาร์กิวเมนต์ไปยังฟังก์ชันเดียวกัน

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
ด้วยการถอดรหัสสตริงด้วยคีย์ที่เกี่ยวข้อง ซึ่งไม่ซ้ำกันสำหรับแต่ละตัวอย่าง คุณจะได้สตริงที่มีบรรทัดทั้งหมดจากรหัส sniffer ที่คั่นด้วยอักขระตัวคั่น

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์

อัลกอริทึมการทำให้งงงวยที่สอง

ในตัวอย่างต่อมาของตระกูล sniffers นี้ กลไกการทำให้งงงวยต่างๆ ถูกนำมาใช้ ในกรณีนี้ ข้อมูลถูกเข้ารหัสโดยใช้อัลกอริธึมที่เขียนขึ้นเอง สตริงที่มีข้อมูลที่เข้ารหัสซึ่งจำเป็นสำหรับ sniffer ในการทำงานจะถูกส่งผ่านเป็นอาร์กิวเมนต์ไปยังฟังก์ชันถอดรหัส

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
เมื่อใช้คอนโซลของเบราว์เซอร์ คุณสามารถถอดรหัสข้อมูลที่เข้ารหัสและรับอาร์เรย์ที่มีทรัพยากรการดมกลิ่น

นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์

เชื่อมโยงไปยังการโจมตีด้วย MageCart ในยุคแรกๆ

ในการวิเคราะห์หนึ่งในโดเมนที่กลุ่มใช้เป็นประตูในการรวบรวมข้อมูลที่ถูกขโมย พบว่ามีการปรับใช้โครงสร้างพื้นฐานสำหรับการขโมยบัตรเครดิตบนโดเมนนี้ เหมือนกับที่ใช้โดยกลุ่ม 1 ซึ่งเป็นหนึ่งในกลุ่มแรก ค้นพบ ผู้เชี่ยวชาญด้าน RiskIQ

พบไฟล์สองไฟล์ในโฮสต์ของตระกูลดมกลิ่น CoffeMokko:

  • นักเวทย์ js — ไฟล์ที่มีรหัสดมกลิ่นกลุ่ม 1 พร้อมที่อยู่เกท js-cdn.link
  • แม็ก.php - สคริปต์ PHP รับผิดชอบในการรวบรวมข้อมูลที่ถูกขโมยโดยผู้ดมกลิ่น

เนื้อหาของไฟล์ mage.js นักดมกลิ่น JavaScript สี่คนที่รอคุณอยู่ในร้านค้าออนไลน์
นอกจากนี้ยังได้รับการพิจารณาว่าโดเมนแรกสุดที่ใช้โดยกลุ่มที่อยู่เบื้องหลังตระกูล CoffeMokko sniffer ได้รับการจดทะเบียนเมื่อวันที่ 17 พฤษภาคม 2017:

  • ลิงก์-js[.]ลิงก์
  • ลิงค์ข้อมูล js [.]
  • ลิงก์ track-js[.]
  • ลิงก์ map-js[.]
  • ลิงก์ smart-js[.]

รูปแบบของชื่อโดเมนเหล่านี้เหมือนกับชื่อโดเมน Group 1 ที่ใช้ในการโจมตีในปี 2016

จากข้อเท็จจริงที่ค้นพบ สามารถสันนิษฐานได้ว่ามีความเกี่ยวข้องระหว่างเจ้าหน้าที่ดมกลิ่นของ CoffeMokko กับกลุ่มอาชญากรกลุ่มที่ 1 สันนิษฐานว่าผู้ให้บริการ CoffeMokko อาจยืมเครื่องมือและซอฟต์แวร์เพื่อขโมยการ์ดจากรุ่นก่อน อย่างไรก็ตาม มีความเป็นไปได้มากกว่าที่กลุ่มอาชญากรที่อยู่เบื้องหลังการใช้เครื่องดมกลิ่นของครอบครัว CoffeMokko คือคนๆ เดียวกับที่ดำเนินการโจมตีซึ่งเป็นส่วนหนึ่งของกิจกรรมของกลุ่ม 1 หลังจากการเผยแพร่รายงานฉบับแรกเกี่ยวกับกิจกรรมของกลุ่มอาชญากร ชื่อโดเมนถูกปิดกั้น และเครื่องมือได้รับการศึกษาอย่างละเอียดและอธิบาย กลุ่มนี้ถูกบังคับให้หยุดพัก ปรับแต่งเครื่องมือภายใน และเขียนรหัสดมกลิ่นใหม่เพื่อดำเนินการโจมตีต่อไปโดยไม่มีใครสังเกตเห็น

โครงสร้างพื้นฐาน

Домен วันที่ค้นพบ/ปรากฏ
ลิงค์-js.link 17.05.2017
ข้อมูล-js.link 17.05.2017
ติดตาม js.link 17.05.2017
แผนที่-js.link 17.05.2017
สมาร์ท js.link 17.05.2017
adorebeauty.org 03.09.2017
การรักษาความปลอดภัย Payment.su 03.09.2017
Braincdn.org 04.09.2017
sagecdn.org 04.09.2017
slickjs.org 04.09.2017
oakandfort.org 10.09.2017
citywlnery.org 15.09.2017
dobell.su 04.10.2017
Childrensplayclothing.org 31.10.2017
jewsondirect.com 05.11.2017
ร้านค้า-rnib.org 15.11.2017
ตู้เสื้อผ้าลอนดอน.org 16.11.2017
misshaus.org 28.11.2017
แบตเตอรี่-force.org 01.12.2017
kik-vape.org 01.12.2017
greatfurnituretradingco.org 02.12.2017
etradesupply.org 04.12.2017
แทนที่ myremote.org 04.12.2017
all-about-sneakers.org 05.12.2017
mage-checkout.org 05.12.2017
nililotan.org 07.12.2017
lamoodbighat.net 08.12.2017
walletgear.org 10.12.2017
dahlie.org 12.12.2017
davidsfootwear.org 20.12.2017
blackriverimaging.org 23.12.2017
exrpesso.org 02.01.2018
parks.su 09.01.2018
pmtonline.คอม 12.01.2018
otocap.org 15.01.2018
คริสโตเปอร์วาร์ด.org 27.01.2018
คอฟฟี่ที.org 31.01.2018
Energycoffe.org 31.01.2018
Energytea.org 31.01.2018
ทีคอฟฟี่.เน็ต 31.01.2018
adaptivecss.org 01.03.2018
coffemokko.com 01.03.2018
londontea.net 01.03.2018
ukcoffe.com 01.03.2018
แล็บบีบิซ 20.03.2018
แบตเตอรี่นาร์ท.คอม 03.04.2018
btosports.net 09.04.2018
chicksaddlery.net 16.04.2018
paypaypay.org 11.05.2018
ar500arnor.com 26.05.2018
authorizecdn.com 28.05.2018
slickmin.com 28.05.2018
Bannerbuzz.info 03.06.2018
แคนดี้เพนส์.เน็ต 08.06.2018
mylrendyphone.com 15.06.2018
freshchat.info 01.07.2018
3lift.org 02.07.2018
abtasty.net 02.07.2018
mechat.info 02.07.2018
zoplm.com 02.07.2018
zapaljs.com 02.09.2018
ฟู้ดแอนด์คอท.คอม 15.09.2018
freshdepor.com 15.09.2018
swappastore.com 15.09.2018
verywellfitness.com 15.09.2018
elerina.com 18.11.2018
majsurplus.com 19.11.2018
top5value.com 19.11.2018

ที่มา: will.com

เพิ่มความคิดเห็น