Một lỗ hổng phần mềm của Coldcard kéo dài năm năm có thể đã cho phép kẻ tấn công tái tạo khóa riêng và chuyển đi hơn 1.100 bitcoin, khiến nhà sản xuất ví đổ lỗi một phần cho trí tuệ nhân tạo (AI).
Những điểm chính
- Các seed liên kết với Coldcard bị lộ, tương đương 1.128,4717 BTC, trị giá khoảng 71,1 triệu USD.
- Coinkite cho rằng AI có thể đã phát hiện ra lỗ hổng năm năm, nhưng việc xác định nguồn gốc vẫn chưa được chứng minh.
- Người dùng Coldcard có các seed bị ảnh hưởng phải tạo ví mới trên phần mềm được sửa lỗi.
Một đợt quét có phối hợp làm rỗng hàng trăm ví
Sự việc trở nên công khai sau khi khoảng 594 BTC, có giá trị gần 38 triệu USD vào thời điểm đó, được chuyển từ khoảng 500 địa chỉ bitcoin một chữ ký vào ngày 30 tháng Bảy. When the news first broke, Bitcoin.com News noted rằng các khoản chuyển xảy ra trong khoảng 25 phút và dường như nhắm vào các ví có điểm yếu kỹ thuật chung.
Các đánh giá sau đó về blockchain đã mở rộng quy mô có thể của vụ trộm. Các nhà nghiên cứu ước tính rằng từ 1.082 đến 1.196 địa chỉ có thể đã bị ảnh hưởng trong khoảng thời gian khoảng 41 phút. Một bảng điều khiển tùy chỉnh có tên Coldcard Sweep Watch sau đó xác định tổng số là 1.128,4717 BTC, tương đương khoảng 71,1 triệu USD khi bitcoin giao dịch gần mức 63.044 USD.

Hầu hết số tiền đã được gom vào một địa chỉ chứa hàng trăm bitcoin, nơi một phần lớn vẫn đứng yên. Các địa chỉ bị ảnh hưởng được liên kết bởi một chi tiết quan trọng: Các seed phục hồi của chúng đã được tạo trên các ví phần cứng Coldcard do công ty Canada Coinkite sản xuất.
Một từ khôi phục là 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ể tái tạo hoặc nhận được từ này đều có thể di chuyển số tiền trong ví mà không cần sở hữu thiết bị vật lý.
Coldcard phát hiện hệ thống ngẫu nhiên bị hỏng
Coinkite đã đưa ra cảnh báo khẩn cấp rằng một số seed được tạo trên các thiết bị Coldcard có thể yếu. Các thiết bị Mk3 chạy phiên bản firmware 4.0.1, được phát hành vào khoảng tháng 3 năm 2021 và các phiên bản sau đó là những thiết bị đối mặt với nguy cơ cao nhất.
Phân tích sâu hơn đã mở rộng mối quan tâm đến các hạt đượ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á firmware khẩn cấp. Các sản phẩm Tapsigner, Opendime và Satscard được báo cáo là không bị ảnh hưởng vì chúng sử dụng phần mềm khác.
Lỗ hổng liên quan đến quy trình được sử dụng để tạo dữ liệu ngẫu nhiên. Các ví an toàn phụ thuộc vào độ ngẫu nhiên chất lượng cao để đảm bảo rằng các seed phục hồi của chúng không thể bị đoán trước. Trên các thiết bị Mk3 bị ảnh hưởng nghiêm trọng nhất, các nhà nghiên cứu ước tính rằng seed có thể chỉ chứa khoảng 40 bit độ ngẫu nhiên hiệu quả thay vì 128 bit như mong muốn.
Sự khác biệt đó 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 được thông qua phương pháp bạo lực. 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 kiểm tra các seed tiềm năng ngoại tuyến và so sánh các địa chỉ kết quả với blockchain bitcoin công khai.
Một số thiết bị mới hơn có thể đã cung cấp khoảng 72 bit độ ngẫu nhiên hiệu quả vì phần cứng bảo mật đã thêm một lớp dữ liệu không thể dự đoán. Điều đó sẽ làm cho các hạt khó tái tạo hơn, nhưng vẫn yếu hơn nhiều so với mong muốn.
Một lỗi cấu hình đã tồn tại trong 5 năm
Vấn đề bắt đầu từ một lỗi cấu hình khi xây dựng liên quan đến hai hàm phần mềm thực hiện các công việc tương tự. Một hàm sử dụng bộ tạo số ngẫu nhiên thật dựa trên phần cứng của thiết bị, trong khi hàm kia phụ thuộc vào quy trình phần mềm yếu hơn được kế thừa từ MicroPython.
Coinkite dự định vô hiệu hóa tùy chọn MicroPython. Tuy nhiên, kiểm tra phần mềm chỉ xem xét xem nhãn cấu hình đã được định nghĩa hay chưa, thay vì kiểm tra xem giá trị của nó đã được đặt về không hay chưa. Kết quả là, firmware hoàn chỉnh có thể tự động chọn chức năng yếu hơn mà không thông báo.
Vì hai chức năng có định dạng tương đồng, phần mềm tiếp tục được biên dịch và chạy mà không tạo ra lỗi rõ ràng. Lỗi này được đưa vào mã nguồn xung quanh đợt di chuyển phần mềm năm 2021 và vẫn tồn tại trong phần mềm sẵn sàng công khai hơn năm năm.
Việc cập nhật thiết bị hiện tại không làm tăng cường seed được tạo ra dưới phần mềm lỗi. Người dùng bị ảnh hưởng phải tạo seed hoàn toàn mới bằng firmware đã được sửa hoặc một thiết bị an toàn khác, sau đó chuyển số dư của họ đến các địa chỉ được kiểm soát bởi seed mới đó.

Người dùng đã thêm ít nhất 50 lần ném xúc xắc độc lập khi tạo seed có thể đã cung cấp đủ độ ngẫu nhiên bổ sung để tránh điểm yếu. Một mật khẩu BIP-39 mạnh cũng có thể làm cho việc tái tạo trở nên khó khăn hơn, trong khi các ví yêu cầu chữ ký từ nhiều thiết bị độc lập có thể đã ngăn chặn một seed bị xâm phạm đơn lẻ di chuyển funds.
Coinkite chỉ ra AI, nhưng bằng chứng vẫn chưa có
CEO của Coinkite, Rodolfo Novak, đã xin lỗi công khai và cho biết công ty chịu toàn bộ trách nhiệm về sự cố phần mềm firmware. Ông cho biết đội ngũ đang làm việc để phát triển phần mềm sửa lỗi, báo cáo kỹ thuật và hỗ trợ cho người dùng bị ảnh hưởng.
Coinkite và Novak cũng đưa ra một lý thuyết nổi bật về cách lỗ hổng được phát hiện. Vì phần mềm firmware đã có sẵn công khai trong nhiều năm, công ty cho rằng có thể đã có người sử dụng AI để phân tích các phiên bản cũ hơn của mã nguồn và tìm ra đường dẫn ngẫu nhiên yếu.
“Đối với tất cả các nhà phát triển khác: chúng tôi tin đây là một thực tế rõ ràng của mô hình AI mới. Việc kiểm tra mã được hỗ trợ bởi AI hiện có thể phát hiện các lỗi ẩn với tốc độ nhanh hơn cả các chuyên gia dày dạn nhất trong ngành,” Novak viết trong bài đăng xin lỗi của ông trên X. “Nếu phần mềm firmware của bạn là mã nguồn mở hoặc từng được công khai, hãy giả định rằng nó đã và đang được cả kẻ tấn công lẫn người bảo vệ đọc.”
Hệ thống mã hóa AI hiện đại ngày nay có thể xử lý các kho phần mềm lớn và xác định các mối quan hệ đáng ngờ giữa các cài đặt cấu hình, chức năng và giả định bảo mật. Một kẻ tấn công có thể yêu cầu hệ thống này tìm cụ thể các bộ tạo số ngẫu nhiên yếu, các hàm dự phòng hoặc lỗi ảnh hưởng đến khóa mã hóa.

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

Coinkite thừa nhận rằng việc tự đánh giá của họ bằng một mô hình AI hàng đầu đã không phát hiện ra lỗ hổng trước khi vụ trộm xảy ra. Kết quả này cho thấy các hệ thống AI không tự động phát hiện mọi khiếm khuyết nghiêm trọng. Hiệu suất của chúng có thể phụ thuộc vào các hướng dẫn chúng nhận được, số tiền mã nguồn được cung cấp và liệu người đánh giá con người 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 thất bại của con người đến trước
Một số chuyên gia bảo mật cho rằng việc tập trung quá nhiều vào rủi ro trí tuệ nhân tạo (AI) có thể làm phân tâm khỏi một thất bại kỹ thuật cơ bản. Nhiều người tin rằng lỗi cấu hình là một loại lỗi phần mềm đã được biết đến, và các cuộc xem xét mã, quy trình kiểm thử hoặc kiểm toán tập trung vào việc tạo seed thông thường có thể đã phát hiện ra nó cách đây nhiều năm.

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