Là nền tảng thương mại điện tử thành công, PrestaShop chắc chắn là mục tiêu hấp dẫn cho hacker. Kẻ xấu liên tục săn lùng lỗ hổng bị bỏ qua trong các CMS phổ biến. Luôn tìm phương pháp mới để triển khai payload như tiêm malware vào traffic Wi-Fi mở qua ARP poisoning. Malware PrestaShop là bất kỳ mã độc nào được triển khai bởi hacker qua lỗ hổng để khai thác cửa hàng PrestaShop.
Theo sách "Learning Malware Analysis",
Nếu bạn đang thắc mắc về các loại malware PrestaShop và cách bảo vệ, bài viết này là "liều thuốc" bạn cần.
Bài viết liên quan- Hướng dẫn bảo mật PrestaShop tối thượng & Gỡ Malware
Tiêm Malware PrestaShop: Các đường lây truyền
Malware PrestaShop có thể xâm nhập qua:
Lỗ hổng Code
Nhiễm malware PrestaShop nhiều nhất do code lỗi. Áp dụng cho cả file core và plugin. Xem các lỗ hổng thường gặp và cách khai thác:
SQL Injection trong PrestaShop
Lỗ hổng SQL có thể tiêm mã độc vào bảng PrestaShop. Trong một số trường hợp, SQLi cho phép upload file lên server. Kẻ tấn công có thể upload script độc hại lên web server PrestaShop. PrestaShop từng bị lỗ hổng SQLi mang tên CVE-2018-8824.
Bài viết liên quan- Hậu quả của SQL Injection trong website PHP và CMS
Cross-Site Scripting (XSS) trong PrestaShop
Nếu PrestaShop bị lỗ hổng XSS, hacker có thể tiêm malware trực tiếp (nếu là Stored XSS). Nếu là Reflected XSS, hacker gửi URL đặc biệt đến admin PrestaShop, tải script độc hại từ server do hacker kiểm soát, từ đó tiêm malware. PrestaShop 1.7.2.4 từng bị XSS mang tên CVE-2018-5681.
Remote Code Execution (RCE) trong PrestaShop
Lỗ hổng RCE cho phép hacker tương tác trực tiếp với server PrestaShop. Nếu bị RCE, hacker tiêm malware trực tiếp vào trang hợp pháp. Malware loại này khó phát hiện nếu code bị obfuscate (làm rối). PrestaShop (1.5 đến 1.7) từng bị RCE mang tên CVE-2018-19355.
Kỹ thuật xã hội và Drive-By Downloads
Tấn công kỹ thuật xã hội vẫn hiệu quả để triển khai malware. Đôi khi hacker tiêm malware vào PrestaShop dưới sự che đậy "Hỗ trợ khách hàng". Thường nhắm vào email của admin để thực hiện drive-by download: lừa admin click URL, malware cài lặng lẽ. PrestaShop đến 1.7.2.5 từng bị lỗ hổng UI-Redressing/Clickjacking - hacker giấu malware sau nút/bàn hợp pháp. Kỹ thuật xã hội cũng có thể kết hợp với Reflected XSS để tiêm malware.
Zero-day và Trojan trong PrestaShop
Đôi khi hacker nắm được lỗ hổng chưa công khai (zero-day) trong PrestaShop, dùng để tấn công quy mô lớn nhiều cài đặt PrestaShop. Có trường hợp hacker nhắm vào server repository cốt lõi và tiêm malware vào phần mềm. Ví dụ: PHP Pear package manager bị tiêm malware từ trang chính thức. Loại malware PrestaShop trông như phần mềm hợp pháp gọi là Trojan.
Quảng cáo độc hại trong PrestaShop
Hacker ngày càng sáng tạo cách tiêm malware. Sử dụng quảng cáo để phân phối malware là ví dụ khác. Nếu bạn cho thuê không gian web cho quảng cáo, hacker có thể mua để phân phối malware cho khách hàng. Phát hiện khó khăn vì từ phía bạn mọi thứ trông sạch sẽ, nhưng nhiễm malware do quảng cáo độc hại.
Các loại Malware PrestaShop:
Malware PrestaShop: Cryptocurrency Miner (Khai thác tiền mã hóa)
Biến thể này dùng sức xử lý của server và người truy cập để đào coin. Code đơn giản:
<script src="https://authedmine.com/lib/simple-ui.min.js" async></script>
Coinhive là dịch vụ hợp pháp nhưng thường bị lạm dụng do dễ triển khai. Biến thể phức tạp hơn obfuscate code, khó phát hiện. Một biến thể dùng ký pháp thập phân không dấu chấm cho hostname. Malware dùng script jQuery giả để che thư viện Coinhive. Cũng dùng tên biến miner tương tự tham số Google Analytics để né tránh phát hiện.
Malware PrestaShop: Ransomware (Mã yêu tiền chuộc)
Mã hóa file hệ thống, làm hệ thống không thể dùng. Chỉ còn file index.php hiển thị thông điệp yêu cầu trả Bitcoin. Đáng sợ: даже sau khi trả tiền, không đảm bảo file được giải mã. Gỡ malware không khó nhưng khôi phục dữ liệu server là thách thức. Một số ransomware như WannaCry đã làm tê liệt hệ thống quan trọng toàn cầu - phòng chống tốt hơn chữa trị.
Malware PrestaShop: Credit Card Skimmer (Đọc thẻ tín dụng)
Một số malware PrestaShop tùy chỉnh để đánh cắp thông tin giao dịch. Đoạn code từ malware như hình:
Malware thiết lập kết nối database, sau đó đánh cắp từ bảng ps_payment_cc:
- Payment ID giao dịch
- Số thẻ tín dụng
- Thương hiệu thẻ
- Ngày hết hạn thẻ
Sau đó gửi dữ liệu đến server do hacker kiểm soát.
Bài viết liên quan – Sửa hack thẻ tín dụng PrestaShop
Malware PrestaShop: Virus
Virus PrestaShop thực hiện nhiều hoạt động độc hại: từ trò đùa vô hại đến xóa toàn bộ hệ thống file! Để duy trì sự bám dính, virus cần obfuscate code. PrestaShop dùng PHP, chữ ký virus điển hình như 'php.malware.fopo' như hình:
FOPO làm code không đọc được bởi con người, né tránh phát hiện. Cần FOPO deobfuscator để đọc code khi gỡ malware. Một số nhà phát triển plugin PrestaShop dùng FOPO để bảo vệ code. Vì vậy phát hiện malware phức tạp, không nên làm bởi người thiếu kinh nghiệm. Đây chỉ là ví dụ virus chung, thực tế có nhiều virus phức tạp hơn, không thể liệt kê hết.
Gỡ Malware PrestaShop
Nếu cửa hàng bị nhiễm, hãy kiểm tra hệ thống file. PrestaShop dùng PHP, hacker sửa file cấu hình PHP như php.ini, user.ini... Các file này quản lý quyền hệ thống, có thể cấp tài nguyên lớn cho hacker. File quan trọng khác: .htaccess - bị sửa để redirect traffic đến trang spam. Không xóa code nghi ngờ, hãy comment lại và liên hệ chuyên gia bảo mật.
Để tìm malware ẩn dạng base64 qua SSH:
find . -name "*.php" -exec grep "base64" '{}' \; -print &> code.txt
Lệnh tìm toàn bộ code base64 trong file PrestaShop, lưu vào code.txt để giải mã sau. Ngoài base64, FOPO cũng dùng để giấu code. FOPO có thể deobfuscate bằng công cụ online.
Để dọn database, dùng PHPMyAdmin. Tìm các từ khóa độc hại:
$_POST, $_GET, eval, exec, system, passthru, gzdecode, gzuncompress, base64_decode, file_get_contents, file_put_contents, strtoupper
Nhập từng từ vào phpMyAdmin tìm trong file/bảng. Xem ví dụ:
Bảo vệ PrestaShop tối thượng
Quy trình thủ công mệt mỏi và không đảm bảo gỡ sạch. Hãy dùng giải pháp bảo mật như Astra. Tường lửa Astra chặn mọi cố gắng tiêm malware. Giải pháp bảo mật quét hệ thống file tìm nhiễm. Astra tự động dọn dẹp và cập nhật file PrestaShop. Chỉ cần cài Astra và để nó lo phần còn lại.