Kẻ tấn công đã rút 1.082,65 BTC (khoảng 70,2 triệu USD tại thời điểm đó) khỏi 1.196 địa chỉ Bitcoin trong 41 phút ngày 30/7, liên quan đến lỗ hổng firmware trên ví lạnh Coldcard Bitcoin do hãng Coinkite (Canada) sản xuất. Hãng nghiên cứu Galaxy Research đã lập bản đồ vụ quét và xác định mối liên hệ này, trong khi công ty bảo mật Block truy ra nguyên nhân kỹ thuật từ lỗi tích hợp firmware hồi tháng 3/2021.

Thông tin vụ trộm 1.082,65 BTC từ ví lạnh Coldcard Bitcoin

Theo Galaxy Research, vụ rút tiền quét qua 1.196 địa chỉ trong 41 phút. Hãng này không tìm thấy giao dịch Bitcoin nào khác trong 30 ngày trước đó có cùng chữ ký 30 sat/vB và không có đầu ra tiền lẻ (no-change).

Chưa ai công bố danh tính kẻ tấn công. Galaxy cảnh báo mô hình trên chỉ giúp xác định người vận hành, không xác định hành vi trộm cắp, vì một vụ quét giống hệt việc chủ sở hữu coin tự chuyển tài sản.

Nguyên nhân lỗ hổng firmware Coldcard

Block, công ty bảo mật, truy ra lỗi tích hợp firmware từ tháng 3/2021. Lỗi này khiến quá trình tạo hạt giống (seed) được chuyển hướng sang bộ tạo số giả ngẫu nhiên (PRNG) mang tính xác định thay vì bộ tạo số ngẫu nhiên (RNG) phần cứng STM32.

Cụ thể, cấu hình sản xuất của Coldcard đặt MICROPY_HW_ENABLE_RNG bằng 0 vì Coinkite cung cấp wrapper RNG phần cứng riêng. Thư viện libngu chỉ kiểm tra macro có tồn tại hay không, thay vì kiểm tra macro có được bật hay không, khiến bản build bị ràng buộc vào bộ sinh số dự phòng Yasmarang của MicroPython. Bộ dự phòng này khởi tạo từ ID duy nhất của chip và các thanh ghi timer, đồng thời không thu thập entropy mới sau khi khởi tạo.

Block nhận định kẻ tấn công có thể xác định hoặc thu hẹp đủ ID thiết bị, trạng thái timer và lịch sử các lần gọi RNG trước đó để tái tạo các chuỗi đầu ra ứng viên ngoại tuyến mà không cần truy cập thiết bị. Các seed ứng viên sau đó được kiểm tra bằng cách dẫn xuất địa chỉ và so sánh với dữ liệu công khai trên blockchain. Cho tới nay, chưa có báo cáo công khai nào tái dựng được seed của nạn nhân và khớp với địa chỉ bị rút tiền.

Các dòng ví Coldcard bị ảnh hưởng và mức entropy ước tính

Mức độ phơi nhiễm phụ thuộc phiên bản firmware đang chạy khi seed được tạo, không phải phiên bản hiện cài đặt. Theo Coinkite, Mk3 bản 4.0.1 đến 4.1.9 bị ảnh hưởng và được vá ở 4.2.0; Block xác định cả Mk2 và Mk3 bản 4.0.0 đến 4.1.9 nằm trong diện nguy cơ.

Dòng víPhiên bản bị ảnh hưởng
Mk24.0.0–4.1.9 (theo Block)
Mk34.0.1–4.1.9 (theo Coinkite); 4.0.0–4.1.9 (theo Block); vá ở 4.2.0
Mk4, Mk5trước 5.6.0
Qtrước 1.5.0Q
Edge (Mk4/Mk5)trước 6.6.0X
Edge (Q)trước 6.6.0QX

Coinkite ước tính entropy hiệu dụng khoảng 40 bit trên Mk3 và khoảng 72 bit trên Mk4, Mk5 và Q, trong khi seed BIP-39 12 từ có 128 bit. Block không đưa ra một con số thực dụng duy nhất mà đặt các mức trần có điều kiện dưới 2^40,7 và 2^73,3, đồng thời cảnh báo mức 2^73,3 không tương đương an ninh mật mã 73 bit. Block cũng không công bố điểm chuẩn brute-force. Việc tạo lại seed trên model mới hơn làm tăng số lượng ứng viên, nhưng theo Block, chi phí thực tế phụ thuộc thông tin UID có sẵn, thời điểm khởi động, các lần gọi RNG trước đó và chi phí dẫn xuất.

Trước đó, hồi đầu tháng 7, nghiên cứu Ill Bloom của Coinspect đã chỉ ra một lỗ hổng PRNG yếu riêng biệt trong các ví phần mềm cũ. Lỗ hổng này liên quan tới hơn 5 triệu USD bị rút khỏi các địa chỉ trên Bitcoin, Ethereum, Tron, Rootstock và Polygon kể từ tháng 5.

Cách xử lý và lưu ý cho người dùng Bitcoin tại Việt Nam

Coinkite đã phát hành firmware khẩn cấp cho mọi dòng sản phẩm và nhánh phát hành bị ảnh hưởng vào ngày 31/7, nhưng việc cài đặt không sửa được seed đã tồn tại. Coinkite hướng dẫn chủ sở hữu seed bị lộ tạo seed mới trên firmware đã vá và chuyển coin đi. Khôi phục seed cũ lên firmware mới hoặc một ví khác sẽ tiếp tục mang lỗ hổng theo.

Seed được tạo từ ít nhất 50 lần gieo xúc xắc công bằng, độc lập và riêng tư được Coinkite đánh giá là không chịu rủi ro riêng từ lỗ hổng này. Nếu số lần gieo hoặc tính riêng tư không chắc chắn, hãng khuyến nghị di chuyển tài sản. Passphrase BIP-39 mạnh và duy nhất tạo một ví riêng mà các từ seed không thể tự truy cập, nhưng Coinkite vẫn khuyến nghị thay thế seed. Đa chữ ký (multisig) chỉ giúp ích khi ngưỡng ký không được tạo hoàn toàn từ các thiết bị bị ảnh hưởng. TAPSIGNER, OPENDIME và SATSCARD sử dụng mã nguồn khác nên không bị ảnh hưởng.

Với người dùng Bitcoin tại Việt Nam, việc kiểm tra phiên bản firmware tại thời điểm tạo seed là bước cần thiết nếu đang dùng ví lạnh Coldcard. Chủ động nâng cấp firmware và tạo seed mới khi seed cũ nằm trong dải phiên bản bị ảnh hưởng sẽ giúp giảm rủi ro mất tài sản. Vụ việc cũng cho thấy ngay cả thiết bị lưu trữ lạnh vẫn có thể gặp rủi ro nếu quá trình tạo ngẫu nhiên bị lỗi.

Theo The Hacker News

Ảnh: Alesia Kozik / Pexels