OpenCart เป็นพรหมลิขิตสำหรับธุรกิจอีคอมเมิร์ซสตาร์ทอัพที่มองหาโซลูชันฟรีและโอเพนซอร์ส ความนิยมที่แพร่หลายมาจากความที่ OpenCart ปรับแต่งได้สูง และเสนอ extensions และ modules หลากหลาย อย่างไรก็ตาม ช่องโหว่หลายอย่างถูกค้นพบใน OpenCart บางอย่างส่งผลถึงแกนกลาง (core) ของ OpenCart เอง ด้วยเหตุนี้ การติดตั้ง OpenCart ทั่วโลกจึงประสบปัญหาแผงควบคุมผู้ดูแล (Admin panel) ถูกแฮก สาเหตุอาจหลากหลาย ซึ่งเราจะอภิปรายเพิ่มเติม ตามหนังสือ Hack Proofing Your E-commerce Site
ตัวอย่างการบุกแผงควบคุม OpenCart
แผงควบคุมผู้ดูแลเป็นพื้นที่ที่ทรัพยากรมากที่สุดของร้าน OpenCart ทุกอย่างสามารถจัดการได้จากแดชบอร์ด OpenCart ดังนั้น เมื่อร้าน OpenCart ถูกบุกจากการที่แผงควบคุมถูกแฮก ผู้ใช้มักขอความช่วยเหลือจากฟอรั่มชุมชน ตัวอย่างเธรดขอความช่วยเหลือดังต่อไปนี้
อาการการบุกแผงควบคุม OpenCart
- การเข้าสู่ระบบแผงควบคุมจากที่ตั้ง IP ที่ไม่รู้จัก
- บัญชีผู้ดูแลหลายบัญชีปรากฏบนแดชบอร์ด OpenCart ที่คุณไม่ได้สร้าง
- ผู้ใช้ร้องเรียนเรื่องบัตรเครดิตที่ถูกขโมยจากการใช้งานบนร้าน OpenCart
- คำสั่งซื้อฟรีหลายรายการได้รับการยืนยันจากร้าน
- เซิร์ฟเวอร์ส่งอีเมลสแปมหลายร้อยฉบับ
- ไฟล์แปลกปลอปรากฏบนเซิร์ฟเวอร์สร้างการ redirect สแปม
- ร้าน OpenCart ถูกแบนโดยเครื่องมือค้นหา
- โค้ดอันตรายถูกฉีดเข้าไปในไฟล์เช่น pp_pro, authorize.net เป็นต้น
- ไฟล์ index ของร้าน OpenCart ถูกบิดเบือนด้วยข้อความสุ่ม
- บันทึก FTP แสดงการเชื่อมต่อจาก IP ไม่รู้จักในต่างประเทศ
สาเหตุการบุกแผงควบคุม OpenCart
มัลแวร์และประตูหลัง (Backdoor) ของ OpenCart
มักจะมีผู้ร้ายเขียนมัลแวร์ بقصدติดเชื้อเซิร์ฟเวอร์หลายเครื่องเพื่อใช้ในการโจมตี DDoS, เปิดโพสแสปม, สร้าง views ปลอม ฯลฯ นักวิจัยที่ Astra ติดตามการติดเชื้อมัลแวร์หลายกรณี เช่น pub2srv Malware ซึ่งมุ่งเป้าเฉพาะผู้ใช้ OpenCart อีกตัวแปรหนึ่งที่มุ่งขโมยบัตรเครดิตของผู้ใช้ OpenCart ถูกค้นพบโดยทีม Astra มัลแวร์นี้แม้แต่สร้างประตูหลังที่ใช้การสมัครฟรีบนเว็บไซต์ การบุกแผงควบคุมผู้ดูแล OpenCart ถูกดำเนินการโดยมัลแวร์ขโมยบัตรเครดิตนี้ โดยการฉีดโค้ดอันตรายที่ดูดข้อมูลล็อกอินไปยัง admin@wsxdn.com.
แผงควบคุมผู้ดูแล OpenCart ของคุณถูกบุก? ส่งข้อความผ่านแชทวิดเจ็ต เราจะช่วยคุณทันที แก้ไขการบุกแผงควบคุม OpenCart ตอนนี้
Remote Code Execution (RCE) ของ OpenCart
OpenCart เวอร์ชัน 2.1.0.2<2.2.0.0 พบว่ามีช่องโหว่ PHP RCE ฟังก์ชัน JSON decode ทำให้ร้าน OpenCart เปราะบางต่อการโจมตี RCE อย่างไรก็ตาม ผู้ที่ไม่ได้ติดตั้ง PHP JSON ไม่ได้รับผลกระทบ เพื่อใช้ประโยชน์จากช่องโหว่นี้ โจมตีหลอกล่อให้ผู้ดูแลเข้าหน้าแดชบอร์ดและเพิ่ม custom field สำหรับข้อมูลผู้ใช้แบบกำหนดเอง เช่น หมายเลขโทรศัพท์เพิ่มเติม Exploit สำหรับช่องโหว่นี้ได้ถูกเผยแพร่แล้ว
Cross-Site Request Forgery (CSRF) ของ OpenCart
การโจมตี CSRF สามารถหลอกล่อผู้ดูแล OpenCart ให้ทำการกระทำที่ไม่พึงประสงค์บนร้านค้า ซึ่งอาจตั้งแต่ลบรหัสผ่านจนถึงลบฐานข้อมูลทั้งหมด! ช่องโหว่ CSRF หนึ่งที่ได้ชื่อว่า CVE-2018-13067 ถูกค้นพบใน OpenCart มีการขาดการตรวจสอบ token ที่เหมาะสมขณะเปลี่ยนรหัสผ่าน ไฟล์ที่เปราะบางคือ /upload/catalog/controller/account/password.php ด้วยการใช้ประโยชน์จากช่องโหว่นี้ โจมตีสามารถเปลี่ยนรหัสผ่านได้ทุกรหัส รวมถึงรหัสผ่านของผู้ดูแล ดังนั้นจึงทำการบุกแผงควบคุมผู้ดูแล OpenCart ได้ Exploit สำหรับช่องโหว่นี้พร้อมใช้งานสาธารณะ!
SQL Injection ของ OpenCart
การโจมตี SQL injection แพร่หลายบนเว็บเซิร์ฟเวอร์ เช่นเดียวกับ XSS ช่องโหว่ทั้งสองนี้คิดเป็นสัดส่วนใหญ่ของช่องโหว่และปรากฏใน OWASP Top 10 ทุกปี OpenCart 1.3.2 เปราะบางต่อ SQLi ที่ได้ชื่อว่า CVE-2010-0956 คอมโพเนนต์ที่เปราะบางคือพารามิเตอร์ 'page' และ URL ที่เปราะบางมีลักษณะ index.php?route=product%2Fspecial&path=20&page= . ที่นี่ โจมตีสามารถรันคำสั่ง SQL ผ่านพารามิเตอร์ page ได้ Exploit สำหรับช่องโหว่นี้ได้ถูกเผยแพร่ นอกจากนี้ ช่องโหว่ Blind SQLi ถูกค้นพบใน OpenCart 1.5.1.2.
Cross-Site Scripting (XSS) ของ OpenCart
OpenCart ก่อนเวอร์ชัน 2.1.0.2 พบว่ามีช่องโหว่ XSS ช่องโหว่นี้ได้ชื่อว่า CVE-2015-4671 ไฟล์ index.php เปราะบางต่อ XSS และสามารถฉีดสคริปต์เว็บหรือโค้ด HTML ผ่านพารามิเตอร์ zone_id ได้ การใช้ประโยชน์สำเร็จอาจอนุญาตให้โจมตีหลอกล่อผู้ดูแลให้เปิดเผยรหัสผ่าน ทำให้เกิดการบุกแผงควบคุมผู้ดูแล OpenCart
รหัสผ่าน OpenCart ถูกขโมย
การมีรหัสผ่านอ่อนแอทำให้แผงควบคุมผู้ดูแล OpenCart เปราะบางต่อ Brute force attacks มีซอฟต์แวร์พิเศษที่ดำเนินการ brute force attacks ซึ่งอาจเป็น dictionary attacks หรือ hybrid OpenCart admin panel hacks ประสบความสำเร็จเนื่องจากรหัสผ่านอ่อนแอ
การทำความสะอาดหลังการบุกแผงควบคุม OpenCart
เริ่มควบคุมความเสียหายโดยเปลี่ยนรหัสผ่านแผงควบคุมผู้ดูแล OpenCart เป็นรหัสที่แข็งแกร็ง จากนั้นดำเนินการรักษาความปลอดภฐานข้อมูล OpenCart การทำอย่างนี้จะบล็อกโจมตีทั้งหมดที่รู้รหัสผ่านแผงควบคุม รหัสผ่านฐานข้อมูลสามารถเปลี่ยนได้ด้วยคำสั่ง SQL ด้านล่าง:
update users set pass = concat(‘ZZZ’, sha(concat(pass, md5(rand()))));
ควรทราบว่าในบางประเภทของการติดเชื้อ อาจมีมัลแวร์หรือสคริปต์ประตูหลังติดตั้งอยู่ สคริปต์นี้จะส่งรหัสผ่านผู้ดูแลผ่านอินเทอร์เน็ตไปยังโจมตี ดังนั้น การเปลี่ยนรหัสผ่านในสถานการณ์เช่นนี้อาจไร้ผล เพื่อระบุว่าเป็นกรณีนี้หรือไม่ ใช้เครื่องมือตรวจสอบแพ็กเก็ตอย่าง Wireshark เพื่อดูข้อมูลขาออก หากยืนยันว่ามีสคริปต์ส่งรหัสผ่านไปยังโจมตี ให้นำเว็บไซต์ออฟไลน์และลบโค้ดอันตราย ส่วนใหญ่โจมตีมักเก็บโค้ดอันตรายในรูปแบบ base64 โค้ดประเภทนี้สามารถค้นพบได้ด้วยคำสั่งง่ายๆ:
find . -name “*.php” -exec grep “base64″‘{}’; -print &> hiddencode.txt
คำสั่งนี้จะบันทึกทุกกรณีของโค้ดที่เข้ารหัส base64 ไว้ในไฟล์ hiddencode.txt ซึ่งสามารถถอดรหัสได้ด้วยเครื่องมือออนไลน์เพื่อตรวจสอบด้วยตนเอง หลังจากนั้น สถานที่ทั้งหมดที่สคริปต์หรือโค้ดอันตรายซ่อนอยู่สามารถค้นหาได้ในครั้งเดียวด้วยเครื่องมือ phpMyAdmin อ้างอิงรูปภาพด้านล่างเพื่อความช่วยเหลือเพิ่มเติม
นอกจาก base64 encoding แล้ว โจมตีอาจใช้การเข้ารหัสหรือเทคนิค obfuscation อื่นๆ เช่น FOPO ซึ่งทั้งหมดอาจไม่สามารถถอดรหัสได้โดยผู้ดูแลเว็บทั่วไป ดังนั้น จงจำไว้ว่า อย่าลบโค้ดที่คุณไม่เข้าใจ เพียงแค่คอมเมนต์มันไว้โดยใช้ตัวอักษร '#' จากนั้นติดต่อผู้เชี่ยวชาญเพื่อการกำจัดมัลแวร์จากการบุกแผงควบคุมผู้ดูแล OpenCart
ต้องการความช่วยเหลือจากผู้เชี่ยวชาญในการทำความสะอาดหลังการบุกแผงควบคุมผู้ดูแล OpenCart? ส่งข้อความผ่านแชทวิดเจ็ต เราจะช่วยคุณทันที ทำความสะอาดร้าน OpenCart ของฉันตอนนี้
การลดทอน (Mitigation) การบุกแผงควบคุม OpenCart
อัปเดตและสำรองข้อมูล (Backup)
ในกรณีที่คุณต้องการแก้ไขไฟล์แกนกลาง (core files) ให้ใช้ vQmod หรือ OCMOD ตามสะดวก สิ่งนี้จะปกป้องการเปลี่ยนแปลงไม่ให้ถูกลบในอัปเดตใหม่ ให้แน่ใจว่า extensions และ modules ทั้งหมดทันสมัย เพราะอัปเดตมีแพตช์ความปลอดภสำคัญ นอกจากนี้ ให้สำรองข้อมูลร้าน OpenCart ไว้ เพราะจะช่วยกู้คืนเว็บไซต์จากการโจมตีได้
ลบโฟลเดอร์ Install
โฟลเดอร์ติดตั้งมีไฟล์แกนกลางที่สำคัญบางส่วน หากโฟลเดอร์ติดตั้งถูกทิ้งไว้บนเซิร์ฟเวอร์ สแกนเนอร์เฉพาะทางสามารถตรวจจับได้ เปิดทางให้โจมตี เครื่องมือค้นหาเช่น Shodan คอยหาไฟล์ดังกล่าวบนเว็บเซิร์ฟเวอร์ตลอดเวลา ดังนั้น จะปลอดภกว่าถ้าลบโฟลเดอร์ install ทันทีหลังการติดตั้ง OpenCart เสร็จสิ้น อย่างไรก็ตาม สำคัญที่ต้องทราบว่า ไม่เหมือนโฟลเดอร์ติดตั้งอื่นๆ อย่าไปลบโฟลเดอร์ติดตั้ง vQmod!
รักษาความปลอดภแผงควบคุมผู้ดูแล OpenCart
เปลี่ยนชื่อ Admin URL
เป็นแนวปฏิบัติมาตรฐานด้านความปลอดภที่จะเปลี่ยนชื่อ Admin URL สิ่งนี้สามารถหลีกเลี่ยงการโจมตีทั่วไปบนแผงควบคุมผู้ดูแล OpenCart ได้มาก ให้เปลี่ยนเป็นคีย์เวิร์ดสุ่มที่คุณจำได้ในอนาคต คำแนะนำโดยละเอียดสำหรับ OpenCart 1.5 & vQmod สามารถหาได้ที่นี่
จำกัดการเข้าถึง (Restrict Access)
แผงควบคุมผู้ดูแล OpenCart ปกติจะถูกเข้าถึงโดยคุณเพียงคนเดียว ดังนั้น การบล็อก IP อื่นๆ ทั้งหมดจึงเป็นการตัดสินใจที่ฉลาด สามารถทำได้ด้วยไฟล์ .htaccess ที่จำกัดการเข้าถึงโฟลเดอร์และซับโฟลเดอร์ เพียงแค่เพิ่มโค้ดต่อไปนี้ลงในไฟล์ .htaccess ในโฟลเดอร์ admin
<Files *.*>
Order Deny,Allow
Deny from all
Allow from "your ip address"
</Files>
จัดการสิทธิ์ไฟล์แผงควบคุมผู้ดูแล
ไฟล์สำคัญเช่น admin/index.php, admin/config.php ไม่จำเป็นต้องแก้ไขซ้ำๆ ดังนั้น ตั้งค่าสิทธิ์ไฟล์เป็น 644 หรือ 444 เพื่อป้องกันการแก้ไขไฟล์ สามารถจัดการได้โดยไปที่ Users>User Groups ดูรายละเอียดเพิ่มเติมจากรูปภาพด้านล่าง
ใช้โซลูชันความปลอดภ
ร้าน OpenCart จัดการธุรกรรมที่ละเอียดอ่อนทุกวัน ดังนั้น ความปลอดภของร้านต้องมั่นคง บริเวณป้องกันแรกเมื่อโจมตีพยายามบุกร้าน OpenCart คือไฟร์วอลล์ที่แข็งแกร็ง การใช้ไฟร์วอลล์สามารถลดความเสี่ยงการโจมตีไซเบอร์บนแผงควบคุมผู้ดูแล OpenCart ได้อย่างมาก อย่างไรก็ตาม การเลือกไฟร์วอลล์ที่เหมาะสมสำหรับร้านของคุณเป็นสิ่งสำคัญ ไฟร์วอลล์ควรประหยัด มุ่งไม่ใช้ทรัพยากรมาก และยืดหยุ่น ไฟร์วอลล์ Astra ตรงตามเกณฑ์ทั้งหมดสำหรับร้าน OpenCart แม้ OpenCart เองก็แนะนำ Astra Astra เป็นโซลูชันความปลอดภรวมทั้งในหนึ่ง (all-in-one) ที่ทำงานทันที (out of the box) หมายถึง ไม่มีความยุ่งยากในการติดตั้ง! ไม่ต้องใช้กำลังประมวลผลของเซิร์ฟเวอร์ของคุณ!