3 phút đọc

Zeabur lộ 3,2 triệu biến môi trường rồi tuyên bố đóng cửa

Nền tảng deploy Zeabur bị xâm nhập lần hai chỉ vì một token quản trị lưu dạng chữ thường, không hết hạn và không đổi suốt gần ba năm. Ai từng deploy ở đây cần đổi mọi khóa trong biến môi trường ngay.

Zeabur là nền tảng deploy khá quen với dân làm app nhanh, nhất là ở châu Á: nối repo GitHub vào là có app chạy, có database, có HTTPS. Ngày 20/10, Zeabur công bố chi tiết vụ xâm nhập thứ hai trong hai tháng, đồng thời thông báo ngừng hoạt động vào cuối năm.

Thứ bị lấy nhiều nhất là biến môi trường, nơi phần lớn chúng ta để API key, mật khẩu database, khóa ký token.

Mô phỏng: token quản trị lưu dạng chữ thường trong repo cấu hình, hacker dùng nó đọc toàn bộ biến môi trường trên cụm máy chủ dùng chung

Chuyện gì đã xảy ra

Theo báo cáo của chính Zeabur (giờ UTC):

  • 14/10, 01:36: kẻ tấn công bắt đầu dùng một khóa AWS và một token quản trị cụm máy chủ dùng chung
  • Token này được tạo từ tháng 1/2024, không có hạn dùng, chưa từng đổi, và nằm dạng chữ thường trong repo cấu hình
  • Trong khoảng 36 giờ, không có cảnh báo nào được phát ra
  • 15/10, 13:56: Zeabur bắt đầu điều tra sau khi có người dùng báo

Hacker có thể đã lấy được thông tin đăng nhập từ vụ xâm nhập hồi tháng 8, nhưng Zeabur chưa xác nhận điều này.

Những gì bị lộ

  • 3.218.965 bản ghi biến môi trường, gồm cả tên lẫn giá trị
  • Thông tin 321.810 tài khoản: email, username, số điện thoại
  • Toàn bộ cấu hình và secret của các dịch vụ trên cụm dùng chung ở 9 khu vực
  • Hacker đăng nhập quyền root vào 101 máy chủ GCP của 92 người dùng, gắn thêm khóa SSH vào 50 máy

Zeabur nhận định kẻ tấn công nhắm chủ yếu vào API key của các dịch vụ AI. Chỉ vài giờ sau, một người dùng đã bị xài trộm key OpenAI.

Nếu bạn từng deploy trên Zeabur

  1. Đổi mọi thứ trong biến môi trường: API key, khóa cloud, mật khẩu database, khóa ký JWT, khóa mã hóa. Thu hồi khóa cũ ở phía nhà cung cấp trước, tạo khóa mới, rồi deploy lại. Việc này cần làm kể cả khi bạn đã đổi sau vụ tháng 8.
  2. Đổi mật khẩu bên trong database. Sửa biến môi trường trên Zeabur không làm mật khẩu trong database đổi theo.
  3. Dùng n8n, new-api, one-api thì đổi khóa mã hóa và thu hồi key AI phía upstream.
  4. Xem hóa đơn và lịch sử sử dụng API từ 14/10, nhất là các dịch vụ AI.
  5. Có máy chủ GCP qua Zeabur thì nên dựng lại máy, ít nhất là xóa khóa SSH lạ trong /root/.ssh/authorized_keys.
  6. Lên kế hoạch chuyển nhà: dịch vụ trên cụm dùng chung sẽ bị tạm dừng từ 1/12, mọi thứ dừng hẳn trước 31/12/2026.

Bài học cho chính dự án của bạn

Lỗi gốc của Zeabur rất đời thường: một token mạnh, không hết hạn, nằm dạng chữ thường trong repo. Hãy tự hỏi xem trong dự án của bạn có cái nào như vậy không:

  • Token không có hạn dùng
  • Khóa chưa đổi lần nào kể từ ngày tạo
  • File .env hay cấu hình chứa secret bị commit lên repo
  • Trang quản trị mở thẳng ra internet

Mỗi cái là một quả bom hẹn giờ. Đặt hạn dùng cho token, đổi khóa định kỳ, đưa secret vào trình quản lý secret thay vì để trong repo.


Bạn đang deploy app ở đâu? Đã từng phải đổi toàn bộ key vì nhà cung cấp bị lộ chưa? Kể trong cộng đồng Vibe Code & Bảo Mật nhé.

Nguồn

Chia sẻ lên Facebook

Bình luận

Đang tải bình luận…