ด้วยการเป็นแพลตฟอร์มอีคอมเมิร์ซที่ประสบความสำเร็จ PrestaShop ไม่ต้องพูดก็รู้ว่าเป็นเป้าหมายที่น่าประทับใจสำหรับแฮกเกอร์ แฮกเกอร์คอยหาช่องโหว่ที่ถูกมองข้ามใน CMS ยอดนิยมตลอดเวลา พวกเขายังคอยหาวิธีใหม่ๆ ในการส่ง payload เช่น การ inject มัลแวร์ในトラフィคของ Wi-Fi แบบเปิดผ่าน ARP poisoning เพิ่มเติม PrestaShop Malware คือโค้ดอันตรายทุกประเภทที่แฮกเกอร์ปั่นผ่านช่องโหว่เพื่อ exploit ร้าน PrestaShop
ตามหนังสือ Learning Malware Analysis
หากคุณเคยสงสัยเกี่ยวกับประเภทต่างๆ ของมัลแวร์ PrestaShop และวิธีปกป้องตัวเอง บทความนี้คือคำตอบที่คุณต้องการ
บทความเกี่ยวข้อง - The Ultimate Prestashop Security Practices and Malware Removal Guide
PrestaShop Malware Injection: ช่องทางการส่งมอบ
PrestaShop malware injection สามารถทำได้ผ่าน:
ช่องโหว่ของโค้ด (Code Vulnerabilities)
การติดมัลแวร์ PrestaShop เกิดขึ้นมากที่สุดจากโค้ดที่มีบั๊ก (buggy code) ใช้ได้ทั้ง core files และ plugins มาดูช่องโหว่ทั่วไปและวิธีที่นำไป inject มัลแวร์ PrestaShop
SQL Injection ใน PrestaShop
ช่องโหว่ SQL สามารถใช้ inject โค้ดอันตรายเข้าไปในตารางของร้าน PrestaShop บางกรณี SQLi vulnerability สามารถใช้ upload ไฟล์ขึ้น server ได้ ดังนั้นแฮกเกอร์จึงสามารถ upload สคริปต์อันตรายขึ้น web server ของร้าน PrestaShop ได้ PrestaShop เคยมีช่องโหว่ SQLi ที่ได้รับชื่อว่า CVE-2018-8824
บทความเกี่ยวข้อง - ผลกระทบของ SQL Injection ในเว็บไซต์ PHP และ CMS
Cross-Site Scripting (XSS) ใน PrestaShop
หากร้าน PrestaShop ร่อนแรงต่อ XSS vulnerability แฮกเกอร์สามารถ inject มัลแวร์ได้โดยตรงหากเป็น stored XSS หากเป็น reflected XSS แฮกเกอร์สามารถส่ง URL ที่สร้างขึ้นมาเฉพาะไปให้ admin ของร้าน PrestaShop ซึ่งจะโหลดสคริปต์อันตรายจาก server ที่แฮกเกอร์ควบคุม ทำให้เกิดการ inject มัลแวร์ PrestaShop PrestaShop 1.7.2.4 เคยพบช่องโหว่ XSS ชื่อ CVE-2018-5681
Remote Code Execution (RCE) ใน PrestaShop
ช่องโหว่ Remote Code Execution อนุญาตให้แฮกเกอร์โต้ตอบกับ server ของร้าน PrestaShop โดยตรง ดังนั้น หากร้าน PrestaShop ร่อนแรงต่อ RCE แฮกเกอร์สามารถ inject มัลแวร์เข้าไปในหน้าเว็บที่ถูกต้องได้โดยตรง มัลแวร์ประเภทนี้ยากต่อการตรวจจับหากโค้ดถูก obfuscate PrestaShop (1.5 ถึง 1.7) เพิ่งพบช่องโหว่ RCE ชื่อ CVE-2018-19355
Social Engineering และ Drive-By Downloads
การโจมตี Social Engineering ยังคงเกี่ยวข้องจนถึง اليومนี้ในการส่ง malware payload บางครั้งแฮกเกอร์อาจ inject มัลแวร์เข้าไปในร้าน PrestaShop โดยแกล้งว่าเสนอ 'Customer Support' บ่อยครั้งอีเมลของ web admin ของร้าน PrestaShop ถูกทำเป้าหมายเพื่อ drive-by downloads หมายถึง web admin ถูกหลอกให้คลิก URL และมัลแวร์ถูกติดตั้งเงียบๆ บนร้าน PrestaShop PrestaShop เวอร์ชันถึง 1.7.2.5 เคยพบช่องโหว่ UI-Redressing/Clickjacking อนุญาตให้แฮกเกอร์ซ่อนมัลแวร์ไว้หลังปุ่มหรือลิงก์ที่ถูกต้อง Social engineering ยังสามารถรวมกับ reflected XSS ที่กล่าวมาเพื่อส่งมัลแวร์ PrestaShop ได้
Zero-day และ Trojans ใน PrestaShop
บางครั้งแฮกเกอร์ได้ค้นพบช่องโหว่ที่ยังไม่ถูกค้นพบใน PrestaShop ใช้ช่องโหว่เหล่านี้ทำการโจมตีมัลแวร์ขนาดใหญ่ต่อการติดตั้ง PrestaShop หลายแห่งบนเว็บ ยังมีกรณีที่แฮกเกอร์โจมตีซอฟต์แวร์จาก core repository server และ inject มัลแวร์เข้าไป ตัวอย่างเช่น PHP Pear package manager เคยถูก inject มัลแวร์จาก official site มัลแวร์ประเภทนี้ที่ดูเหมือนซอฟต์แวร์ถูกต้องเรียกว่า Trojan
โฆษณาอันตราย (Malicious Adverts) ใน PrestaShop
ตามที่กล่าวมา แฮกเกอร์คิดวิธีใหม่ๆ ในการ inject มัลแวร์ PrestaShop ทุกวัน การใช้โฆษณาส่งมัลแวร์เป็นอีกตัวอย่าง หากคุณเช่าพื้นที่เว็บบางส่วนให้โฆษณา อาจถูกแฮกเกอร์ซื้อไปเพื่อส่งมัลแวร์ให้ลูกค้าของคุณ การตรวจจับมัลแวร์แบบนี้ยาก เพราะทุกอย่างดูสะอาดจากด้านคุณ แต่มัลแวร์ PrestaShop กำลังถูกสร้างขึ้นจากโฆษณาอันตราย
ประเภทของ PrestaShop Malware:
PrestaShop Malware: Cryptocurrency Miner
มัลแวร์ PrestaShop แบบนี้มีเจตนาใช้ processing power ของ server และผู้เข้าชมร้าน PrestaShop ของคุณเพื่อขุดคริปโตเคอเรนซี Crypto miner แบบง่ายมีโค้ดประมาณนี้:
<script src="https://authedmine.com/lib/simple-ui.min.js" async></script>
Coinhive เป็นบริการถูกต้องที่แฮกเกอร์นิยมใช้ผิดเพราะง่ายต่อการ implement นี่เป็นแค่ variant เรียบง่าย มัลแวร์ขุดเหมืองที่ซับซ้อนมัก obfuscate โค้ด ทำให้ยากต่อการตรวจจับ variant หนึ่งใช้ non-dotted decimal notation สำหรับ hostname นอกจากนี้ เพื่อซ่อน Coinhive library มัลแวร์ใช้ fake jQuery script และใช้ชื่อตัวแปร miner คล้ายพารามิเตอร์ Google Analytics เพื่อหลีกเลี่ยงการตรวจจับ
PrestaShop Malware: Ransomware
PrestaShop ransomware คือมัลแวร์ที่เข้ารหัสไฟล์ระบบ ทำให้ระบบใช้งานไม่ได้ หลังจากนั้นจะเหลือเพียงไฟล์เดียวโดยปกติคือ index.php ซึ่งมีข้อความขอชำระเงินบิทคอยน์ไปที่ที่อยู่เฉพาะ สิ่งที่อันตรายกว่าคือ แม้จ่ายค่าไถ่แล้ว ก็ไม่มีการรับประกันว่าไฟล์จะถูกถอดรหัส การลบมัลแวร์แบบนี้ไม่ยาก แต่การกู้คืนข้อมูล server เป็นงานท้าทาย บางการโจมตี ransomware อย่าง WannaCry ทำให้ระบบสำคัญทั่วโลกพังทลาย ดังนั้นในสถานการณ์นี้ การป้องกันคือการรักษาที่ดีที่สุด
PrestaShop Malware: Credit Card Skimmer
บางประเภทของมัลแวร์ PrestaShop ถูกปรับแต่งมาเพื่อขโมยข้อมูล transaction จากร้าน PrestaShop ของคุณ โค้ดสนิปเพทจากมัลแวร์แบบหนึ่งแสดงในภาพด้านล่าง
จากโค้ดเห็นได้ว่า มัลแวร์นี้สร้าง database connection ก่อน จากนั้นขโมยข้อมูลต่อไปนี้จากตาราง ps_payment_cc:
- Payment ID ของ transaction
- Credit Card Number
- Brand name ของบัตรเครดิต
- Credit Card Expiry Date
หลังได้รายละเอียดเหล่านี้ มัลแวร์จะสูบข้อมูลเหล่านี้ไปยัง server ที่แฮกเกอร์ควบคุม
บทความเกี่ยวข้อง – Fixing Card Hack in PrestaShop
PrestaShop Malware: Viruses
PrestaShop viruses สามารถทำการดำเนินการอันตรายหลากหลายบนร้านของคุณ ตั้งแต่การเล่นน้อยใจจนถึงการลบระบบไฟล์ทั้งหมด! แต่เพื่อรักษาความต่อเนื่อง (persistence) PrestaShop viruses ต้อง obfuscate โค้ดของพวกเขา เนื่องจาก PrestaShop สร้างด้วย PHP virus signature แบบคลาสสิกอาจเป็นอย่าง 'php.malware.fopo' ตามภาพด้านล่าง
จากภาพเห็นได้ว่า FOPO ทำให้โค้ดอ่านไม่เข้าใจโดยมนุษย์ จึงหลีกเลี่ยงการตรวจจับได้ เพื่ออ่านโค้ดเพื่อลบมัลแวร์ ต้องใช้ FOPO deobfuscator บาง developer plugin ของ PrestaShop ใช้ FOPO tool ปกป้องโค้ดของพวกเขา ทำให้การตรวจจับมัลแวร์ซับซ้อนและไม่ควรทำโดยผู้ไม่เชี่ยวชาญ นอกจากนี้ นี้เป็น reference ของ generic PrestaShop virus และยังมี virus ซับซ้อนหลายตัว การครอบคลุมทุกตัวอยู่นอกขอบเขตของบทความนี้
PrestaShop Malware Removal
หากร้านของคุณติดมัลแวร์ PrestaShop ขอแนะนำให้เริ่มจากตรวจสอบ filesystem เนื่องจาก PrestaShop ใช้ PHP แฮกเกอร์มักแก้ไข PHP config files เช่น php.ini, user.ini ฯลฯ ไฟล์เหล่านี้ยังจัดการ permission ของระบบ อาจให้ทรัพยากรมากขึ้นแก่แฮกเกอร์ ไฟล์สำคัญอีกไฟล์คือ .htaccess ไฟล์นี้ถูกมัลแวร์ PrestaShop แก้ไขเพื่อ redirect traffic ไปยัง spam site แต่เนื่องจากไฟล์เหล่านี้เป็นไฟล์สำคัญ อย่าลบโค้ดที่น่าสงสัย แต่ให้ comment ออกและติดต่อผู้เชี่ยวชาญด้านความปลอดภัย
เพื่อหา PrestaShop malware ที่ซ่อนอยู่ในรูปแบบ base64 ใช้คำสั่งนี้ผ่าน SSH:
find . -name "*.php" -exec grep "base64" '{}' \; -print > code.txt
คำสั่งนี้จะค้นหาโค้ดที่ซ่อนอยู่ในไฟล์ PrestaShop แบบ base64 encoding และบันทึกลง code.txt ซึ่งสามารถ decode ได้ภายหลัง นอกจาก base64 FOPO ก็ถูกใช้ซ่อนโค้ด FOPO code สามารถ deobfuscate ได้ด้วย tool ออนไลน์ ตอนนี้ทำความสะอาด database ใช้ tool PHPMyAdmin สามารถค้นหา malicious entries ใน database คำหลักอันตรายที่ควรค้นหา:
$_POST, $_GET, eval, exec, system, passthru, gzdecode, gzuncompress, base64_decode, file_get_contents, file_put_contents, strtoupper
แต่ละคำสามารถใส่ใน phpMyAdmin แล้วค้นหาในไฟล์หรือตาราง ดูตัวอย่างในภาพด้านล่าง
การป้องกัน PrestaShop Malware อย่างครบถ้วน
กระบวนการ manual ทั้งหมดนี้ดูเหนื่อย และยังไม่มีการรับประกันว่ามัลแวร์ PrestaShop จะหายไป เพื่อหลีกเลี่ยงความยุ่งยากนี้ ให้ใช้ security solution อย่างที่ Astra ให้มา Astra firewall บล็อกการพยายามอันตรายทั้งหมดของแฮกเกอร์ที่พยายามติดเชื้อร้าน PrestaShop ของคุณ ในขณะที่ Astra security solution สแกน filesystem หาเชื้อ Astra ทำความสะอาดและอัปเดตไฟล์ PrestaShop อัตโนมัติ เพียงติดตั้ง Astra และปล่อยให้มันดูแลทุกอย่าง