Khi bản backup cũng bị mã hóa: Kịch bản kinh hoàng lúc 2 giờ sáng
Tiếng chuông báo động reo liên hồi. Tôi bật dậy, mở laptop với hy vọng chỉ là một lỗi nghẽn mạng thông thường. Nhưng khi gõ ls -la trên server production, tim tôi thắt lại. Toàn bộ database dump và file cấu hình đã bị đổi đuôi thành .locked. Một thông điệp đòi tiền chuộc lạnh lùng hiện ra trong file README.txt.
Phản xạ đầu tiên của tôi là kiểm tra thư mục backup. Lúc này, tôi mới nhận ra sai lầm chí mạng. Bản backup lưu trên ổ NFS mount trực tiếp vào server. Hacker sau khi chiếm quyền root đã chạy rm -rf xóa sạch các bản sao lưu trước khi mã hóa dữ liệu chính. 500GB dữ liệu khách hàng bốc hơi trong tích tắc.
Bài học rút ra rất đơn giản: Backup có thể truy cập được (Mutable) thì chắc chắn sẽ bị xóa được. Để sống sót trước Ransomware, bạn cần Immutable Backups — những bản sao lưu không thể bị thay đổi hay xóa bỏ.
Lý do các phương pháp backup truyền thống thường “gục ngã”
Nhiều anh em IT vẫn duy trì thói quen dùng script rsync hoặc rclone đẩy data sang server phụ. Cách này tồn tại hai lỗ hổng lớn:
- Quyền hạn dư thừa: Script thường giữ Access Key có quyền xóa (Delete). Hacker lấy được key này sẽ dọn sạch Cloud storage của bạn trong vài lệnh đơn giản.
- Cơ chế ghi đè: Ransomware mã hóa file gốc, script backup của bạn vẫn cần mẫn đẩy file lỗi đó lên và ghi đè lên bản sạch cuối cùng.
Chúng ta cần một cơ chế mà ngay cả root admin hay chủ sở hữu Access Key cũng không thể xóa dữ liệu trong một khoảng thời gian nhất định. Đó là lúc S3 Object Lock phát huy tác dụng.
Giải pháp: Rclone và S3 Object Lock (Compliance Mode)
S3 Object Lock là tính năng trên các nền tảng như AWS, Wasabi hay MinIO, hoạt động theo mô hình WORM (Write Once, Read Many). Có hai chế độ bạn cần phân biệt:
- Governance Mode: Người dùng có quyền đặc biệt (bypass) vẫn xóa được file. Hacker tinh vi vẫn có thể lợi dụng điều này.
- Compliance Mode: Tuyệt đối không ai có thể xóa, kể cả tài khoản root của nhà cung cấp Cloud, cho đến khi hết thời hạn lưu trữ (Retention Period). Đây là “tấm khiên” vững chắc nhất.
Bước 1: Khởi tạo Bucket S3 hỗ trợ Object Lock
Bạn phải bật tính năng Object Lock ngay khi tạo Bucket. Lưu ý rằng hầu hết các nhà cung cấp không cho phép kích hoạt tính năng này trên Bucket đã có sẵn dữ liệu.
Về bảo mật tài khoản, hãy sử dụng các công cụ như password generator để tạo mật khẩu console cực mạnh. Khi phân quyền IAM cho script backup, chỉ cấp đúng các quyền s3:PutObject, s3:GetObject và quan trọng nhất là s3:PutObjectRetention. Tuyệt đối không cấp quyền s3:DeleteObject.
Bước 2: Cài đặt Rclone
Rclone là công cụ quản lý Cloud storage mạnh mẽ nhất trên Linux hiện nay. Cài đặt chỉ mất 10 giây:
curl https://rclone.org/install.sh | sudo bash
Chạy rclone config để tạo remote mới (ví dụ: s3-storage). Hãy dán Access Key và Secret Key đã tạo ở bước trước vào đây.
Bước 3: Thực hiện Backup bất biến
Thay vì dùng lệnh sync, chúng ta sẽ sử dụng lệnh copy kèm theo các tham số khóa dữ liệu. Giả sử bạn muốn backup thư mục /data/db_dumps và khóa chúng trong 30 ngày:
rclone copy /data/db_dumps s3-storage:my-backup-bucket \
--s3-object-lock-mode COMPLIANCE \
--s3-object-lock-retention-days 30 \
-P
Tham số --s3-object-lock-mode COMPLIANCE sẽ kích hoạt chế độ khóa nghiêm ngặt nhất. Trong vòng 30 ngày, file này là “bất khả xâm phạm”.
Bước 4: Thử nghiệm đóng vai Hacker
Hãy thử xóa file vừa upload để kiểm tra hệ thống:
rclone delete s3-storage:my-backup-bucket/backup_file.sql
Nếu màn hình hiện lỗi Access Denied hoặc Object is under active retention, bạn đã thành công. Dữ liệu của bạn giờ đây đã an toàn trước mọi nỗ lực xóa bỏ từ bên ngoài.
Kinh nghiệm thực chiến để tránh mất tiền oan
Immutable Backup rất mạnh mẽ nhưng nếu cấu hình sai, bạn sẽ phải trả giá bằng tiền mặt:
- Cân nhắc thời gian Retention: Đừng đặt khóa quá lâu (ví dụ 1 năm) nếu không thực sự cần thiết. Một khi đã khóa ở Compliance Mode, bạn không thể giảm thời gian và phải trả phí lưu trữ cho đến ngày cuối cùng.
- Bắt buộc dùng Versioning: Object Lock yêu cầu Bucket phải bật Versioning. Mỗi lần upload đè file cũ, một version mới sẽ được tạo ra và cả hai đều bị tính phí. Hãy đặt tên file kèm timestamp (ví dụ:
db-2023-11-01.sql) để dễ quản lý. - Chi phí lưu trữ: Vì không thể xóa dữ liệu cũ, dung lượng bucket sẽ tăng liên tục. Hãy tính toán kỹ ngân sách nếu bộ dữ liệu của bạn lớn hơn 1TB.
Chống Ransomware không phải là cài một phần mềm rồi bỏ đó. Nó là sự kết hợp giữa quy trình chặt chẽ và công nghệ đúng đắn. Với Immutable Backup, bạn có thể yên tâm kê cao gối ngủ, vì biết rằng ít nhất mình vẫn còn một con đường lùi nếu chẳng may server bị tấn công.

