Bỏ qua tới nội dung
Bảo mật website· ·5 phút đọc

Mã độc thường giấu ở đâu trong WordPress

Vũ Đức Minh
Mã độc thường giấu ở đâu trong WordPress

Biết mã độc giấu ở đâu trong WordPress là nửa phần thắng khi dọn web. Kẻ tấn công không để mã ở nơi dễ thấy — chúng giấu trong những file trông vô hại, trộn vào cơ sở dữ liệu, thậm chí núp trong lịch tác vụ tự động. Bài này điểm danh từng ngóc ngách, kèm dấu hiệu để bạn nhận ra.

Vì sao mã độc khó tìm

Mã độc hiện đại được “ngụy trang” (obfuscation — làm rối để khó đọc): thay vì viết rõ ràng, nó mã hoá thành chuỗi ký tự loằng ngoằng rồi giải mã lúc chạy. Đó là lý do các hàm như eval(), base64_decode(), gzinflate(), str_rot13() hay xuất hiện trong file nhiễm — chúng dùng để giải mã đoạn độc ẩn. Thấy mấy hàm này trong file lạ là dấu hiệu rất đáng ngờ.

Sơ đồ những nơi mã độc thường giấu trong WordPress — wp-config, .htaccess, uploads, functions.php, database, file lõi giả
Sáu nơi mã độc hay nấp trong một website WordPress.

Những file hay bị nhắm

  • wp-config.php: chạy ở đầu mỗi lần tải trang, là chỗ lý tưởng để giấu mã chạy sớm. Soi kỹ phần đầu và cuối file.
  • .htaccess: tầng máy chủ — nơi chèn lệnh chuyển hướng và chặn. File này còn hay bị tạo bản ẩn trong nhiều thư mục con.
  • Thư mục uploads: chỉ nên chứa ảnh và tài liệu. Bất kỳ file .php nào ở đây gần như chắc chắn là mã độc hoặc cửa hậu.
  • functions.php của theme: đoạn mã chèn vào đây chạy trên mọi trang, lại dễ bị bỏ qua khi cập nhật.
  • File lõi giả: kẻ tấn công đặt file tên giống file lõi WordPress (kiểu wp-load.php nhái) ở sai thư mục để trà trộn.
Dấu hiệu nhận biết mã độc ở từng nơi trong WordPress
Mỗi nơi nhiễm có một dấu hiệu nhận biết riêng.

Trong cơ sở dữ liệu

Không phải mã độc nào cũng nằm ở file. Cơ sở dữ liệu cũng là nơi trú ẩn:

  • Bảng wp_options: các trường như header/footer tùy biến bị chèn thẻ <script>.
  • Bài viết và trang: link ẩn, khối nội dung spam giấu bằng CSS.
  • Bảng wp_users: tài khoản quản trị lạ được thêm thẳng vào.

Những nơi ít ai ngờ

Hai chỗ nâng cao mà người tự dọn hay bỏ sót — cũng là nơi cửa hậu thích nấp:

  • Thư mục mu-plugins (must-use plugins — plugin bắt buộc): plugin đặt ở đây tự chạy và không hiện nút tắt trong giao diện, rất dễ bị lợi dụng để giấu mã.
  • Lịch wp-cron (tác vụ định kỳ): kẻ tấn công đặt một tác vụ tự chạy để cài lại mã độc sau khi bạn dọn — đây là lý do web “tự nhiễm lại” dù bạn đã xoá hết file.
Thứ tự nên soi khi truy tìm mã độc trong WordPress
Soi theo thứ tự này để không bỏ sót nơi nào.

Soi theo thứ tự để khỏi sót

Truy mã độc nên đi có trình tự, từ nơi dễ nhiễm nhất tới nơi ẩn sâu: uploads → theme/plugin → file lõi (so với bản gốc) → cơ sở dữ liệu → wp-cron và mu-plugins. Cách hiệu quả nhất với file lõi là so sánh với bản tải mới từ wordpress.org — bất cứ file nào khác bản gốc đều đáng nghi.

Tìm được chỗ là xử được

Danh sách này cũng cho thấy vì sao quét tự động hay sót: công cụ giỏi tìm file nhiễm đã biết, nhưng cửa hậu mới hoặc tác vụ ẩn thì cần mắt người soi. Nếu bạn đã dọn mà web vẫn nhiễm lại, gần như chắc còn sót ở wp-cron hoặc một cửa hậu — đọc bài dọn backdoor. Cần làm dứt điểm, Web22 nhận xử lý mã độc website với việc rà đủ các nơi này.

Đọc tiếp

Bài viết
cùng chủ đề.

Tất cả bài viết