Các lệnh quét và tìm mã độc, virus của hacker chèn vào web hiệu quả.

Lệnh tìm chuỗi với các hàm mã hóa như:

grep -rnw ‘/path/to/your/php/files’ -e ‘base64_decode\|base64_encode\|eval\|gzinflate\|gzdecode\|str_rot13\|create_function\|system\|exec\|passthru\|shell_exec\|popen\|proc_open\|preg_replace’

grep -r ‘eval(‘ /đường/dẫn/thư/mục

Lệnh tìm các file có sự sửa đổi theo thời gian

find /đường/dẫn/thư/mục/uploads -type f -name “*.php” -mtime -1

hoặc

find /đường/dẫn/thư/mục -type f -name “*.php” -ctime -1

Lệnh trên sẽ liệt kê các file PHP đã được tạo hoặc sửa đổi trong vòng 1 ngày qua trong thư mục uploads. Điều này giúp bạn xác định các file mới mà có thể là file mã độc.

Kiểm tra các file có quyền thực thi lạ

find /đường/dẫn/thư/mục -type f -executable -name “*.php”

Tìm các file đuôi php ở thư mục ảnh

find /uploads -type f -name “*.php”

Xóa các file đuôi php ( cẩn trọng )

find uploads -type f -name “*.php” -exec rm -f {} \;

Tăng Cường Cấu Hình PHP

Vô hiệu hóa các hàm nguy hiểm: Vô hiệu hóa các hàm PHP có thể bị lợi dụng như exec(), shell_exec(), system(), passthru(), eval(), popen(), proc_open(), v.v.

; Vô hiệu hóa các hàm nguy hiểm trong php.ini
disable_functions = exec,shell_exec,system,passthru,eval,popen,proc_open

Thiết lập open_basedir: Giới hạn phạm vi truy cập file của các script PHP.

open_basedir = “/path/to/webroot:/tmp/”

Sử Dụng WAF (Ví Dụ: ModSecurity)

Bước 1: Cài đặt ModSecurity cho Nginx:

sudo yum install mod_security mod_security_crs

Bước 2: Cấu hình ModSecurity

sudo cp /etc/nginx/modsec/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf

Cấu hình Nginx để sử dụng ModSecurity:

  • Thêm dòng sau vào phần cấu hình server trong file /etc/nginx/nginx.conf hoặc file cấu hình của virtual host:

include /etc/nginx/modsec/main.conf;

Cấu hình các tệp và thư mục cho ModSecurity:

sudo mkdir /etc/nginx/modsec/activated_rules
sudo mkdir /var/log/nginx/modsec

Sửa đổi file cấu hình modsecurity.conf để chỉ định thư mục và tệp tin log:

sudo vi /etc/nginx/modsec/modsecurity.conf

Cấu hình như sau:

SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecAuditEngine RelevantOnly
SecAuditLogRelevantStatus “^(?:5|4(?!04))”
SecAuditLogParts ABIFHZ
SecAuditLogType Serial
SecAuditLog /var/log/nginx/modsec/audit.log
SecDataDir /var/cache/modsecurity
Include /etc/nginx/modsec/activated_rules/*.conf

Bước 3: Khởi động lại Nginx

sudo systemctl restart nginx

Bước 4: Kiểm tra và điều chỉnh cấu hình

Kiểm tra log của Nginx và ModSecurity: Đảm bảo xem các file log để kiểm tra các hoạt động và cảnh báo từ ModSecurity.

sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/nginx/modsec/audit.log

Điều chỉnh cấu hình: Bạn có thể chỉnh sửa các tệp cấu hình trong /etc/nginx/modsec/activated_rules/ để thêm hoặc loại bỏ các luật bảo vệ theo nhu cầu của bạn.

Lưu ý:

  • Sau khi cài đặt, bạn cần kiểm tra log để đảm bảo ModSecurity hoạt động đúng và không gây xung đột với ứng dụng web hiện tại.
  • Cấu hình ModSecurity phù hợp với yêu cầu bảo mật của hệ thống và ứng dụng web của bạn.

Tách biệt Môi Trường Chạy (Isolation)

Việc tách môi trường của mỗi domain khác nhau sẽ giúp tránh lây lan mã độc giữa các domain

Tạo User Riêng Cho Mỗi Website

adduser website1
adduser website2

# Chuyển sở hữu file của mỗi website cho user tương ứng
chown -R website1:website1 /var/www/html/website1
chown -R website2:website2 /var/www/html/website2

Thiết Lập Quyền Truy Cập

# Chỉ user chủ sở hữu mới có quyền ghi
chmod -R 755 /var/www/html/website1
chmod -R 755 /var/www/html/website2

Cấu Hình open_basedir Trong PHP

; Thiết lập open_basedir trong php.ini hoặc vhost của mỗi website
open_basedir = “/var/www/html/website1/:/tmp/”
open_basedir = “/var/www/html/website2/:/tmp/”