Vẫn còn các chuyên gia; họ đã phân tích cách Binance bị tấn công lần này trên chuỗi Ethereum, và giờ tôi nghĩ mình đã hiểu chuyện gì xảy ra.
Lần này, vụ tấn công xảy ra ở bước ký, chứ không phải ở khóa riêng.
Trên Ethereum có một tính năng gọi là 7702, cho phép ví thông thường ký giấy ủy quyền và giao quyền quản lý tài khoản cho một hợp đồng thông minh.
Cứ như thể bạn đang ký giấy ủy quyền với nội dung: kể từ hôm nay, một chương trình của người khác sẽ quản lý tài khoản, và hễ có tiền chuyển vào thì nó sẽ chuyển tiền ra ngoài.
Sau khi ký ủy quyền, tài khoản không còn nằm dưới sự kiểm soát của bạn nữa
Ủy quyền này có hiệu lực tại một số nonce cụ thể
Mỗi ví có một bộ đếm gọi là nonce, tăng thêm một sau mỗi giao dịch bạn gửi
Ủy quyền được gắn với một số cụ thể và chỉ có hiệu lực khi tài khoản đạt đến số đó; sau khi được sử dụng một lần, nó sẽ bị hủy
Khi đó, những kẻ tấn công không biết ví Binance đã đạt đến nonce nào, vì ví liên tục gửi giao dịch
Vì vậy, họ khiến Binance ký 50 ủy quyền liên tiếp cùng một lúc, lần lượt từng cái một, với hy vọng một cái sẽ trúng nonce chính xác
Chỉ cần một trong 50 ủy quyền khớp với nonce hiện tại là nó sẽ có hiệu lực
Và đó chính xác là điều đã xảy ra
Điều thực sự đáng lo ngại là chính Binance đã tự ký 50 ủy quyền này
Có thể thấy các số liên tiếp trên chuỗi, cho thấy chúng được ký cùng lúc trong một khoảng thời gian cực ngắn
Blockaid cho rằng sự việc này giống với việc lạm dụng khóa hơn là đánh cắp khóa
Khóa riêng vẫn nằm trong tay Binance, nhưng những kẻ tấn công đã khiến hệ thống ký tin rằng 50 giao dịch này xứng đáng được ký
Một khi ủy quyền có hiệu lực, ví đó không còn là một chiếc ví thông thường nữa
Thay vào đó, nó trở thành lối vào hợp đồng của những kẻ tấn công, và hợp đồng đó chỉ có một chức năng: rút toàn bộ coin và ETH rồi chuyển đi, chỉ để lại 1 ETH
1 ETH được giữ lại để tài khoản vẫn có thể gửi giao dịch; nếu ai đó gửi thêm tiền vào, số tiền đó cũng sẽ bị rút theo cách tương tự
Đây không phải là một vụ trộm chỉ xảy ra một lần, mà là việc rút tiền liên tục
Trong khi đó, tiền liên tục chảy ra từ các ví nóng của Binance trên nhiều chuỗi
Điều này có nghĩa là những kẻ tấn công không chiếm được một ví cụ thể nào, mà có được khả năng ký cho phép họ tác động đến nhiều ví cùng lúc
Trong mười năm qua, các vụ sàn giao dịch bị trộm tiền thường xảy ra do khóa riêng hoặc cụm từ khôi phục bị rò rỉ, hoặc do nhân viên nội bộ tiếp tay
Nhưng lần này, chẳng có gì bị đánh cắp; chính hệ thống đã ký
Sau 7702, một chữ ký có thể làm được nhiều việc hơn rất nhiều so với chỉ một lần chuyển tiền… lần lượt từng cái một, với hy vọng một cái sẽ trúng nonce chính xác

Chỉ cần một trong 50 ủy quyền khớp với nonce hiện tại là nó sẽ có hiệu lực
Và đó chính xác là điều đã xảy ra
Điều thực sự đáng lo ngại là chính Binance đã tự ký 50 ủy quyền này
Có thể thấy các số liên tiếp trên chuỗi, cho thấy chúng được ký cùng lúc trong một khoảng thời gian cực ngắn
Blockaid cho rằng sự việc này giống với việc lạm dụng khóa hơn là đánh cắp khóa
Khóa riêng vẫn nằm trong tay Binance, nhưng những kẻ tấn công đã khiến hệ thống ký tin rằng 50 giao dịch này xứng đáng được ký
Một khi ủy quyền có hiệu lực, ví đó không còn là một chiếc ví thông thường nữa
Nhưng nó đã trở thành lối vào hợp đồng của những kẻ tấn công, và hợp đồng đó chỉ có một chức năng: rút toàn bộ coin và ETH rồi chuyển đi, chỉ để lại 1 ETH
1 ETH được giữ lại để tài khoản vẫn có thể gửi giao dịch; nếu ai đó gửi thêm tiền vào, số tiền đó cũng sẽ bị rút theo cách tương tự
Đây không phải là một vụ trộm chỉ xảy ra một lần, mà là việc rút tiền liên tục
