Chuyển đến nội dung chính

Tấn công tống tiền MongoDB

·3 phút· loading · loading · ·
Bảo Mật Mongodb Ransom Ransacking
Duy Trung
Tác giả
Duy Trung
Thoughts run like the wind blows
Mục lục

Triệu chứng
#

Các test case cuối cùng cũng chạy xong (trong một chiều không gian lý tưởng), bạn háo hức chuẩn bị dữ liệu cho ứng dụng tuyệt vời của mình bằng một bản MongoDB với admin Mongo Express. Khởi tạo xong xuôi, chưa kịp bung dữ liệu thì bạn tròn mắt khi database (db) ứng dụng đã biến mất, thay vào đó là một db gì đâu đầy mùi đòi tiền:

Recover what? 💀
Recover what? 💀

Cái db trời đánh này chỉ có 1 bản ghi, và tất nhiên là xin đểu.

{
    _id: ObjectId('64ee1e791b60b7b540eb9470'),
    content: 'All your data is backed up. You must pay 0.0125 BTC to 19GCf7HvckzroTEQQcAfotci9WDkzpk5jW In 48 hours, your data will be publicly disclosed and deleted. (more information: go to http://iplis.ru/data1)After paying send mail to us: rambler+15v6h@onionmail.org and we will provide a link for you to download your data. Your DBCODE is: 15V6H'
}

Sự chậm chạp bung dữ liệu lại khiến bạn thở phào nhẹ nhõm. Tự dưng thấy xót ngang cho sự kém may mắn của một bên là bọn hacker đã ăn cắp một cái db rỗng và một bên các đồng nghiệp khác với db đã bung dữ liệu. Quăng chài mà, trăm chú son một là có tiền rồi.

Nếu db đã có dữ liệu rồi thì rụng tim là thật.

Bắt bệnh
#

Khuyến cáo đầu tiên từ các chuyên gia là không chuyển tiền. Ở thời điểm viết bài, 0.0125 BTC tương đương 350 USD. Không có gì đảm bảo là hacker sẽ backup db cả, khi đó thì tật vẫn mang mà tiền vẫn mất.

Kẻ tấn công thực hiện quét toàn bộ địa chỉ IP trên Internet vào port mặc định 27017 của MongoDB. Nếu phát hiện có mở port ra Internet, chúng sử dụng script để xâm nhập và xóa dữ liệu của người dùng và để lại một db tống tiền.

Mở cửa mời trộm vào
Mở cửa mời trộm vào

Database được triển khai với các thiết lập mặc định và bộc lộ port mặc định ra toàn thế giới. Sự hớ hênh này tạo nên miếng mồi ngon cho các nhóm hacker, nổi tiếng nhất phải kể đến nhóm Kraken với vài chục ngàn nạn nhân. Đây cũng là nhóm đã từng thực hiện phát tán ransomware Kraken trên Windows, bởi hai sự kiện sử dụng chung email kraken0@india.com.

Thuốc
#

Nếu bạn không có backup thì xin chia buồn. Hãy thường xuyên backup database như thể chỉ 5 giây sau bạn sẽ mất chúng.

Khẩu quyết lại là “Phòng bệnh hơn chữa bệnh”. Một số việc phải làm khi đưa db lên production:

  1. Bật access control và authentication.
  2. Đảm bảo an ninh cho server db với firewall kiểm soát lưu lượng vào ra.
  3. Không cho phép SSH với quyền root.

Tham khảo checklist bảo mật chi tiết từ MongoDB.

Tài liệu tham khảo
#

Bài liên quan

Về Component được trang bị sẵn trong React
·9 phút· loading · loading
Lập Trình Javascript Reactjs New-Reactjs-Docs React.dev React-Suspense React-Strict-Mode
Code kỹ lắm rồi mà API cứ bị gọi 2 lần là sao?
Đừng làm vẩn đục component
·6 phút· loading · loading
Lập Trình React Javascript Reactjs New-Reactjs-Docs React.dev UseEffect

Mình cứ trong veo thì sợ gì.

Có thể bạn không cần đến Effect
·24 phút· loading · loading
Lập Trình React Javascript Reactjs New-Reactjs-Docs React.dev UseEffect

Hiệu ứng hay hệ quả có thể đến sau hoặc không, nhưng nguyên nhân thì chắc chắn đến trước.