"Tất nhiên Firebase cũng là một phần nguyên nhân"
- Khi tải trình cài đặt của trình biên tập AI Cursor, tác giả phát hiện nó cố gắng kết nối tới ToDesktop thông qua tường lửa Lulu
- ToDesktop là dịch vụ cung cấp đóng gói ứng dụng Electron, SDK, cập nhật, v.v.
- Sau khi xác nhận ứng dụng đang dùng Firestore, tác giả bắt đầu điều tra cơ bản về Firebase thông qua công cụ dành cho nhà phát triển
- Firebase: nền tảng backend cho ứng dụng do Google cung cấp, hỗ trợ lưu trữ và xử lý dữ liệu phía client thông qua cơ sở dữ liệu NoSQL Firestore
- Tận dụng DevTools và sourcemap để xem các collection đang được dùng trong Firestore
- Phát hiện một collection tên là
temporaryApplications, nhưng đó chỉ là danh sách cũ và không có thông tin nhạy cảm nào (không được cập nhật từ sau năm 2022) - Xác nhận rằng phần lớn logic chính và tác vụ triển khai được thực hiện thông qua gói npm
@todesktop/cli @todesktop/clicũng có sourcemap, nên tác giả dùng sourcemapper để xác định cấu trúc mã nguồn gốc
Mổ xẻ ToDesktop CLI
- ToDesktop CLI: đảm nhiệm các chức năng chính như triển khai ứng dụng, tải mã nguồn lên, v.v.
- Trong quá trình phân tích sourcemap của CLI, tác giả phát hiện một lỗ hổng có thể lạm dụng Firebase Cloud Function
getSignedURLđể thử tải lên S3 tùy ý, nhưng có vẻ khó tìm được đường dẫn tệp thực sự có ý nghĩa
Chiếm quyền pipeline triển khai thông qua script postinstall
- Mục tiêu: giành quyền thực thi mã trong container (máy chủ) nơi quá trình build đang chạy
- Chèn payload reverse shell vào script
postinstalltrongpackage.jsonđể nhận kết nối từ container build - Đã thành công truy cập vào bên trong container và xem xét cấu trúc môi trường build cùng các tệp quan trọng
- Xác nhận sự tồn tại của tệp
config.json.encrypted, đồng thời tìm ra cách giải mã để trích xuất bí mật thực tế (config.json) - Ngoài ra còn phát hiện khóa Firebase Admin (khóa có quyền rất rộng) ở bên trong
Sau khai thác
- Thông qua lỗ hổng này, có thể tùy ý phát hành bản cập nhật ứng dụng, khiến mã độc được thực thi ngay khi người dùng khởi động lại ứng dụng
- Tác giả thực sự đã phát hành một bản cập nhật cho ứng dụng thử nghiệm và tái hiện được RCE (thực thi mã từ xa) ở phía client
Phạm vi ảnh hưởng
- Có thể phát hành cập nhật độc hại cho mọi ứng dụng dùng ToDesktop, nên đây là vấn đề có khả năng ảnh hưởng tới hơn hàng triệu người dùng
- Các ứng dụng được nêu ví dụ:
- ClickUp (https://clickup.com)
- Cursor (https://cursor.com) (hiện đã chuyển sang hệ thống build riêng)
- Linear (https://linear.app)
- Notion Calendar (https://calendar.notion.so)
- Đặc biệt, người dùng của các ứng dụng này phần lớn làm trong ngành CNTT và công nghệ, nên nếu bị tấn công thì mức độ thiệt hại có thể lớn
Bản vá
- Sau khi báo cáo, tác giả lập tức liên hệ với phía ToDesktop để tiến hành xử lý
- ToDesktop đã nhanh chóng khắc phục vấn đề và cung cấp thêm phần thưởng
- Kiến trúc được thay đổi để các tác vụ quan trọng như ký và tải lên được thực hiện trong sidecar container có quyền tách biệt với build container
- Có thể xem báo cáo incident bảo mật chính thức của ToDesktop tại đây
- Sự cố bảo mật có thể xảy ra với bất kỳ công ty nào, nhưng điều quan trọng là cách ứng phó; ToDesktop đã xử lý nhanh chóng và hợp tác, để lại ấn tượng tích cực
Chưa có bình luận nào.