Thông tin về sự cố được biết đến sau khi vào khoảng ngày 30 tháng 7, khoảng 594 $BTC đã được chuyển từ khoảng 500 địa chỉ Bitcoin có chữ ký đơn, với giá trị vào thời điểm đó khoảng 38 triệu USD. Khi tin tức lần đầu xuất hiện, Bitcoin.com News lưu ý rằng các giao dịch chuyển tiền diễn ra trong khoảng 25 phút và dường như nhắm vào các ví có chung một lỗ hổng kỹ thuật.
Phân tích chuỗi khối sau đó đã giúp ước tính quy mô có thể xảy ra của vụ trộm. Các nhà nghiên cứu tính toán rằng từ khoảng 1.082 đến 1.196 địa chỉ có thể đã bị ảnh hưởng trong khoảng thời gian khoảng 41 phút. Sau đó, một bảng theo dõi chuyên biệt có tên Coldcard Sweep Watch ước tính tổng số tiền là 1.128,4717 $BTC, tương đương khoảng 71,1 triệu USD tại thời điểm Bitcoin giao dịch ở mức khoảng 63.044 USD.

Phần lớn số tiền được tập trung vào một địa chỉ duy nhất, nơi lưu giữ hàng trăm Bitcoin, và phần lớn trong số này vẫn gần như không di chuyển. Các địa chỉ bị ảnh hưởng có một điểm chung quan trọng: cụm từ khôi phục (seed) của chúng được tạo trên các ví phần cứng Coldcard, do công ty Coinkite của Canada sản xuất.
Cụm từ seed là một danh sách các từ kiểm soát quyền truy cập vào ví tiền điện tử. Bất kỳ ai có thể khôi phục hoặc lấy được cụm từ seed này, thường có thể chuyển tiền từ ví mà không cần có thiết bị vật lý.
Coldcard phát hiện lỗ hổng trong hệ thống tạo số ngẫu nhiên
Coinkite đã đưa ra cảnh báo khẩn cấp rằng một số seed được tạo trên thiết bị Coldcard có thể dễ bị tấn công. Các thiết bị Mk3 với phiên bản phần mềm 4.0.1, phát hành vào khoảng tháng 3 năm 2021 và các phiên bản mới hơn, nằm trong số những thiết bị có nguy cơ cao nhất.
Phân tích sâu hơn đã mở rộng phạm vi lo ngại, bao gồm cả các seed được tạo trên một số thiết bị Mk4, Mk5 và Q trước khi Coinkite phát hành các bản vá phần mềm khẩn cấp. Theo báo cáo, các sản phẩm Tapsigner, Opendime và Satscard không bị ảnh hưởng bởi lỗ hổng này vì chúng sử dụng phần mềm khác.
Lỗ hổng liên quan đến quá trình tạo dữ liệu ngẫu nhiên. Bảo mật của ví phụ thuộc vào chất lượng ngẫu nhiên cao để seed khôi phục của chúng không thể bị đoán. Theo ước tính của các nhà nghiên cứu, trên các thiết bị Mk3 bị ảnh hưởng nghiêm trọng nhất, seed có thể chỉ chứa khoảng 40 bit hiệu quả thay vì 128 bit dự kiến.
Sự khác biệt này là rất quan trọng. Một seed 128-bit được tạo đúng cách được coi là gần như không thể đoán bằng phương pháp brute-force. Một seed 40-bit cung cấp ít khả năng hơn đáng kể, cho phép kẻ tấn công có đủ sức mạnh tính toán thử nghiệm các seed tiềm năng ở chế độ ngoại tuyến và so sánh các địa chỉ tạo ra với chuỗi khối Bitcoin công khai.
Một số thiết bị mới hơn có thể đã cung cấp khoảng 72 bit hiệu quả, vì phần cứng bảo mật thêm một lớp dữ liệu không thể đoán trước. Điều này sẽ làm cho việc khôi phục seed trở nên khó khăn hơn, mặc dù chúng vẫn dễ bị tấn công hơn nhiều so với dự kiến.
Một lỗi cấu hình tồn tại suốt 5 năm
Vấn đề bắt đầu từ một lỗi cấu hình trong giai đoạn build, liên quan đến hai chức năng phần mềm thực hiện các nhiệm vụ tương tự. Một chức năng sử dụng bộ tạo số ngẫu nhiên thực sự dựa trên phần cứng của thiết bị, trong khi chức năng kia dựa vào quy trình phần mềm yếu hơn kế thừa từ MicroPython.
Coinkite dự định tắt tùy chọn MicroPython. Tuy nhiên, kiểm tra phần mềm chỉ xác minh sự tồn tại của định nghĩa nhãn cấu hình, chứ không phải giá trị của nó có được đặt thành 0 hay không. Kết quả là, phần mềm hoàn thiện có thể âm thầm chọn chức năng yếu hơn.
Vì cả hai chức năng có cùng định dạng, phần mềm vẫn biên dịch và chạy mà không có lỗi rõ ràng. Lỗi lọt vào mã trong quá trình di chuyển phần mềm vào năm 2021 và tồn tại trong phần mềm công khai hơn năm năm.
Hiện tại, việc cập nhật thiết bị không tăng cường seed được tạo bằng phần mềm bị lỗi. Người dùng bị ảnh hưởng nên tạo một seed hoàn toàn mới bằng phần mềm đã được vá hoặc một thiết bị bảo mật khác, sau đó chuyển tiền của họ sang các địa chỉ được kiểm soát bởi seed mới này.

Những người dùng khi tạo seed của mình đã thêm ít nhất 50 lần gieo xúc xắc độc lập, có thể đã cung cấp đủ tính ngẫu nhiên để tránh lỗ hổng này. Một mật khẩu mạnh theo chuẩn BIP-39 cũng có thể gây khó khăn cho việc khôi phục, và các ví yêu cầu chữ ký từ nhiều thiết bị độc lập có thể ngăn chặn việc chuyển tiền từ một seed bị xâm phạm duy nhất.
Coinkite chỉ ra AI, nhưng vẫn thiếu bằng chứng
Giám đốc điều hành Coinkite Rodolfo Novak đã công khai xin lỗi và tuyên bố công ty chịu hoàn toàn trách nhiệm về lỗi phần mềm. Ông cho biết nhóm đang làm việc trên phần mềm đã được sửa lỗi, các báo cáo kỹ thuật và hỗ trợ người dùng bị ảnh hưởng.
Coinkite và Novak cũng đưa ra một giả thuyết đáng chú ý về cách lỗ hổng được phát hiện. Vì phần mềm của công ty đã công khai trong nhiều năm, công ty tuyên bố rằng họ tin rằng ai đó có thể đã sử dụng AI để phân tích các phiên bản mã cũ và phát hiện con đường tạo số ngẫu nhiên dễ bị tấn công.
"Gửi tất cả các nhà phát triển khác: Chúng tôi tin rằng đây là thực tế khắc nghiệt của mô hình mới về AI. Kiểm tra mã bằng AI bây giờ cho phép tìm ra các lỗi tiềm ẩn với tốc độ vượt xa cả những chuyên gia giàu kinh nghiệm nhất trong ngành," Novak viết trong bài đăng xin lỗi được đăng trên X. "Nếu phần mềm của bạn là mã nguồn mở hoặc từng công khai, hãy coi như nó đang được cả kẻ tấn công và chuyên gia bảo mật nghiên cứu."
Các hệ thống mã hóa hiện đại dựa trên AI có khả năng xử lý các kho lưu trữ phần mềm lớn và xác định các mối liên hệ đáng ngờ giữa cấu hình, chức năng và các giả định bảo mật. Kẻ tấn công có thể yêu cầu một hệ thống như vậy tìm kiếm cụ thể các bộ tạo số ngẫu nhiên yếu, các chức năng dự phòng hoặc lỗi ảnh hưởng đến khóa mật mã.

Sau đó, các nhà nghiên cứu độc lập báo cáo rằng họ đã sử dụng các mô hình AI để phát hiện hoặc giải thích vấn đề sau khi vấn đề cơ bản về tính ngẫu nhiên được biết đến. Điều này cho thấy phân tích mã bằng AI đã trở nên dễ tiếp cận như thế nào, nhưng không chứng minh được rằng kẻ tấn công ban đầu đã sử dụng AI.

Công ty Coinkite thừa nhận rằng việc kiểm tra của chính họ sử dụng một mô hình AI hàng đầu đã không thể phát hiện ra lỗ hổng trước vụ trộm. Kết quả này cho thấy các hệ thống AI không phải lúc nào cũng tự động phát hiện tất cả các lỗi nghiêm trọng. Hiệu quả của chúng có thể phụ thuộc vào hướng dẫn được đưa ra, khối lượng mã được cung cấp và việc người thực hiện kiểm tra có hiểu các dấu hiệu cảnh báo hay không.
Các nhà phê bình cho rằng lỗi của con người xảy ra trước
Một số chuyên gia bảo mật cho rằng việc tập trung quá mức vào trí tuệ nhân tạo (AI) có nguy cơ làm phân tâm khỏi lỗi kỹ thuật cơ bản. Nhiều người cho rằng lỗi trong cài đặt là một loại lỗi phần mềm đã biết, và các quy trình kiểm tra mã truyền thống, thủ tục kiểm thử hoặc kiểm toán tập trung vào việc tạo seed có thể đã phát hiện ra nó từ nhiều năm trước.

Các quan điểm trái chiều không nhất thiết mâu thuẫn. Lỗi của con người tạo ra lỗ hổng và cho phép nó tồn tại, trong khi AI có thể đã làm giảm chi phí để phát hiện, hiểu hoặc khai thác nó. Những người bảo vệ cần tìm ra tất cả các điểm yếu nguy hiểm, trong khi kẻ tấn công chỉ cần tìm một điểm.
Sự cố này cũng đặt câu hỏi về các giả định về bảo mật mã nguồn mở. Mã nguồn mở cho phép các chuyên gia độc lập kiểm tra phần mềm, nhưng bản thân tính sẵn có không đảm bảo rằng ai đó sẽ phân tích đúng đoạn mã, phát hiện ra lỗi tinh vi và báo cáo nó trước khi kẻ tấn công hành động.
Đối với người dùng Coldcard, ưu tiên hàng đầu là xác định seed của họ được tạo khi nào và như thế nào. Bất kỳ ai có seed bị ảnh hưởng nên kiểm tra hướng dẫn qua các kênh chính thức của Coinkite, cài đặt phần mềm đã được vá, tạo seed mới và cẩn thận chuyển tiền, đề phòng các nỗ lực lừa đảo và tin nhắn giả mạo từ hỗ trợ.
Về lâu dài, trọng tâm sẽ là bao nhiêu Bitcoin đã bị đánh cắp, liệu các nhà điều tra có thể xác định danh tính của kẻ tấn công hay không, và liệu AI có đóng vai trò then chốt trong việc phát hiện lỗ hổng hay không. Các nhà sản xuất ví phần cứng cũng sẽ phải đối mặt với áp lực tăng cường kiểm tra độ entropy, kiểm tra cấu hình build và liên tục kiểm tra mã cũ bằng cả chuyên gia con người và công cụ AI mô phỏng các cuộc tấn công.
end-content






