SieuThiBitcoin.comHiểu Bitcoin tận gốc — từ năm 2014
Bảo mật và rủi ro

Lỗ hổng phần mềm Bitcoin: đã từng xảy ra gì và được xử lý ra sao

Phần mềm Bitcoin từng có lỗ hổng nghiêm trọng, và mỗi lần như vậy cộng đồng phát triển đã phát hiện, vá và công bố theo quy trình có trách nhiệm. Hiểu cách xử lý giúp người dùng biết vì sao cần cập nhật phần mềm và tin nguồn chính thức.

Lập trình viên Việt Nam ngồi trước hai màn hình trống trong văn phòng sáng sủa, đang suy nghĩ

Phần mềm Bitcoin không hoàn hảo và đã từng có những lỗ hổng nghiêm trọng. Điểm đáng chú ý là cách chúng được xử lý: phát hiện, vá kín đáo, khuyến khích nâng cấp, rồi công bố chi tiết khi phần lớn mạng lưới đã an toàn.

Bài viết điểm lại các dạng lỗ hổng tiêu biểu, quy trình công bố có trách nhiệm, và những việc người dùng bình thường nên làm. Nội dung mang tính kiến thức, không phải hướng dẫn khai thác lỗi hay lời khuyên đầu tư.

Vì sao phần mềm Bitcoin đặc biệt nhạy cảm

Bitcoin là một hệ thống mà mọi nút phải đồng ý về cùng một tập quy tắc. Một lỗi trong quy tắc đồng thuận có thể khiến các nút nhìn nhận chuỗi khối khác nhau, dẫn tới tách chuỗi ngoài ý muốn.

Khác với ứng dụng thông thường, không có một máy chủ trung tâm để sửa nhanh rồi đẩy bản mới cho tất cả. Mỗi người vận hành nút tự quyết định khi nào cập nhật.

Phần mềm còn xử lý dữ liệu từ những máy lạ trên mạng, nên phải chống lại cả dữ liệu cố tình được tạo ra để gây lỗi hoặc làm sập nút.

Vì tính chất đó, cộng đồng phát triển rất thận trọng với thay đổi, kiểm thử nhiều lớp và xem xét mã nguồn công khai trước khi phát hành.

Một vài sự cố đã đi vào lịch sử

Năm 2010, một lỗi tràn giá trị cho phép tạo ra một giao dịch có đầu ra khổng lồ vượt xa giới hạn cung. Lỗi được phát hiện nhanh, phần mềm được vá, và chuỗi khối được tổ chức lại để loại khối chứa giao dịch đó trong vòng vài giờ.

Năm 2013, một khác biệt giữa hai phiên bản phần mềm trong cách xử lý cơ sở dữ liệu khiến mạng lưới tạm thời tách làm hai chuỗi. Các bên vận hành phối hợp quay về một chuỗi chung, và sự cố được giải quyết trong thời gian ngắn.

Năm 2018, một lỗi có thể khiến nút bị sập khi nhận một khối có giao dịch chi trùng đầu vào, và trong một số phiên bản còn có thể dẫn tới lạm phát ngoài ý muốn. Lỗ hổng được báo kín, vá, và công bố đầy đủ sau khi phần lớn nút đã nâng cấp.

Những sự cố này cho thấy hai điều: lỗi có thể xảy ra ở dự án được xem xét kỹ nhất, và quy trình phản ứng có trách nhiệm giúp hạn chế thiệt hại.

Chúng tôi chỉ nêu ở mức khái quát; người muốn tìm hiểu chi tiết kỹ thuật nên đọc các bản công bố chính thức của nhóm phát triển.

Các dạng lỗ hổng thường gặp

Lỗi đồng thuận. Các nút hiểu quy tắc khác nhau, nguy cơ tách chuỗi.

Lỗi từ chối dịch vụ. Dữ liệu độc làm nút chậm, treo hoặc sập.

Lỗi tràn số. Phép tính vượt giới hạn kiểu dữ liệu, cho ra giá trị sai.

Lỗi xử lý bộ nhớ. Có thể dẫn tới sập hoặc tệ hơn là thực thi mã ngoài ý muốn.

Lỗi mạng ngang hàng. Kẻ tấn công cô lập một nút khỏi phần còn lại của mạng.

Lỗi ví. Sinh khoá yếu, lộ thông tin, hoặc ký sai.

Lỗi bộ sinh số ngẫu nhiên. Từng có trường hợp ví trên một số nền tảng tạo khoá dễ đoán do nguồn ngẫu nhiên kém.

Lỗi thư viện bên thứ ba. Phụ thuộc ngoài cũng có thể mang lỗ hổng vào.

Lỗi trong phần mềm ví của bên khác. Nhiều ví không dùng mã của nút tham chiếu, có thể có lỗi riêng.

Lỗi chuỗi cung ứng. Bản tải về bị chèn mã độc nếu không kiểm chữ ký phát hành.

Lỗi giao diện người dùng. Hiển thị sai địa chỉ hay số tiền khiến người dùng ký nhầm.

Lỗi cấu hình. Mở cổng điều khiển ra internet không có bảo vệ.

Quy trình công bố có trách nhiệm

Khi một nhà nghiên cứu phát hiện lỗ hổng, cách làm được khuyến khích là báo kín cho nhóm phát triển qua kênh bảo mật, thay vì đăng công khai ngay.

Nhóm phát triển đánh giá mức độ nghiêm trọng, chuẩn bị bản vá, và đôi khi đưa bản vá vào một bản phát hành mà không nêu rõ chi tiết để tránh kẻ xấu khai thác trước.

Sau khi phần lớn mạng lưới đã cập nhật, thông tin chi tiết mới được công bố, kèm ghi nhận công lao người phát hiện. Khoảng thời gian chờ có thể vài tháng hoặc lâu hơn.

Quy trình này đánh đổi giữa minh bạch và an toàn. Nó cũng giải thích vì sao người dùng nên cập nhật ngay cả khi ghi chú phát hành chỉ ghi chung chung.

Người dùng bình thường nên làm gì

Chỉ tải phần mềm từ nguồn chính thức. Trang chính thức của dự án, không qua liên kết lạ hay tin nhắn.

Kiểm chữ ký và mã băm bản phát hành. Bước này giúp phát hiện bản tải bị sửa đổi.

Cập nhật khi có bản vá bảo mật. Đọc ghi chú phát hành và cập nhật trong thời gian hợp lý.

Cập nhật firmware thiết bị ký. Ví phần cứng cũng có lỗi được vá theo thời gian; chỉ cập nhật qua công cụ chính thức.

Không chạy phần mềm lạ cùng máy với ví. Giảm bề mặt tấn công.

Cảnh giác email báo "lỗ hổng khẩn cấp". Kẻ gian giả danh nhà phát triển, yêu cầu nhập cụm từ khôi phục để "di chuyển ví".

Không bao giờ nhập cụm từ khôi phục vào trang web. Không có bản vá nào đòi điều đó.

Theo dõi kênh công bố chính thức. Danh sách thư và kho mã của dự án là nơi đáng tin.

Sao lưu trước khi cập nhật lớn. Đề phòng sự cố khi nâng cấp.

Đọc cảnh báo của nhà sản xuất ví. Nếu dùng ví của một bên, theo dõi thông báo của họ.

Báo lỗi đúng kênh nếu phát hiện. Nếu bạn là người kỹ thuật, dùng kênh báo cáo bảo mật thay vì đăng mạng xã hội.

Mã nguồn mở là điểm mạnh hay điểm yếu

Có người lo rằng mã nguồn mở giúp kẻ xấu tìm lỗi. Điều đó đúng một phần, nhưng nó cũng cho phép hàng nghìn người khác xem xét, kiểm thử và phát hiện lỗi trước.

Phần mềm đóng không công khai mã, người dùng phải tin hoàn toàn vào nhà phát triển. Với một hệ thống tiền tệ không có ai đứng ra bảo đảm, khả năng kiểm chứng độc lập có giá trị lớn.

Mã nguồn mở không tự động an toàn. Nó an toàn khi có đủ người thật sự đọc, kiểm thử và phản biện. Dự án Bitcoin có truyền thống xem xét mã nghiêm ngặt, nhưng vẫn cần người tham gia liên tục.

Với người dùng, bài học là hiểu rằng không có phần mềm nào miễn nhiễm với lỗi, và an toàn là một quá trình gồm cả phía nhà phát triển lẫn thói quen của chính bạn.

Lỗ hổng phần mềm khác với mất tiền do người dùng

Khi đọc tin tức, cần phân biệt lỗ hổng trong giao thức hay phần mềm nút với những sự cố do người dùng bị lừa, lộ cụm từ khôi phục hoặc cài phần mềm giả. Phần lớn thiệt hại thực tế thuộc nhóm sau.

Lỗ hổng giao thức hiếm gặp, thường được phát hiện và vá trước khi gây thiệt hại rộng. Ngược lại, các kiểu lừa đảo nhắm vào người dùng diễn ra hằng ngày và không cần lỗi phần mềm nào cả.

Vì thế, thói quen an toàn cá nhân thường quan trọng hơn việc theo dõi từng bản vá. Cập nhật phần mềm là cần, nhưng không thay thế được việc giữ bí mật khoá và cảnh giác với lời mời lạ.

Cuối cùng, nhớ rằng nội dung này là kiến thức về an toàn, không phải lời khuyên đầu tư. Tài sản mã hoá có rủi ro cao, và an toàn kỹ thuật không loại bỏ rủi ro biến động.

Câu hỏi thường gặp

Bitcoin đã từng bị hack chưa?

Giao thức Bitcoin đã có lỗi phần mềm nghiêm trọng, như lỗi tràn giá trị năm 2010, nhưng đều được vá. Phần lớn các vụ mất tiền được báo chí gọi là "hack Bitcoin" thực ra là nền tảng hay ví cá nhân bị tấn công.

Vì sao chi tiết lỗ hổng không được công bố ngay?

Để phần lớn nút kịp cập nhật trước khi kẻ xấu biết cách khai thác. Đây là quy trình công bố có trách nhiệm.

Tôi có cần cập nhật phần mềm ví thường xuyên không?

Nên cập nhật khi có bản vá bảo mật, và chỉ tải từ nguồn chính thức, kiểm chữ ký nếu có thể.

Email báo lỗ hổng và yêu cầu nhập cụm từ khôi phục có thật không?

Gần như chắc chắn là lừa đảo. Không bản vá hợp lệ nào yêu cầu bạn nhập cụm từ khôi phục vào trang web hay gửi cho ai.

Mã nguồn mở có làm Bitcoin kém an toàn không?

Mã nguồn mở cho phép kiểm chứng độc lập và phát hiện lỗi sớm. Nó không tự động an toàn, nhưng là nền tảng quan trọng cho niềm tin vào một hệ thống không có người bảo đảm.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.