Cảnh báo rủi ro: Đề phòng huy động vốn bất hợp pháp dưới danh nghĩa 'tiền điện tử' và 'blockchain'. — Năm cơ quan bao gồm Ủy ban Giám sát Ngân hàng và Bảo hiểm
Tìm kiếm
Đăng nhập
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
Xem thị trường
Phân tích: Khoảng 566 triệu đô la Mỹ BNB đã bị đánh cắp trong toàn bộ quá trình
秦晓峰
Odaily资深作者
@QinXiaofeng888
2022-10-07 02:43
Bài viết này có khoảng 2416 từ, đọc toàn bộ bài viết mất khoảng 4 phút
CZ: Mạng bị treo và tiền của người dùng vẫn an toàn.

Sáng nay theo giờ Bắc Kinh, BSC Token Hub cầu liên chuỗi BNB Chian đã bị tấn công. Tin tặc đã sử dụng lỗ hổng cầu nối chuỗi chéo để lấy tổng cộng 2 triệu BNB thành hai phần, trị giá khoảng 566 triệu đô la Mỹ.(Lưu ý: BSC Token Hub là cầu nối chuỗi chéo giữa chuỗi đèn hiệu BNB (BEP2) và chuỗi BNB (BEP20 hoặc BSC).)

Ngay sau khi tin tức được đưa ra, giá BNB đã giảm gần 5% trong vòng 2 giờ, xuống mức thấp nhất là 278,7 đô la Mỹ, giá hiện tại là 284 đô la Mỹ, giảm 4,24% trong 24 giờ.

Theo BNB Chain, ước tính sơ bộ về số tiền rút từ BSC nằm trong khoảng từ 100 triệu đô la đến 110 triệu đô la. Hơn nữa, Tether cũng lần đầu tiên đưa địa chỉ của hacker vào danh sách đen. "Cảm ơn cộng đồng và các đối tác bảo mật bên trong và bên ngoài của chúng tôi, ước tính khoảng 7 triệu đô la đã bị đóng băng."

CZ, người sáng lập Binance, đã đăng trên phương tiện truyền thông xã hội rằng Binance đã yêu cầu tất cả những người xác nhận tạm dừng mạng BSC. Tiền của người dùng vẫn an toàn. Anh ấy xin lỗi vì sự bất tiện đã gây ra cho người dùng và sẽ cung cấp thêm các bản cập nhật tương ứng.

tiêu đề phụ

Bài báo phân tích samczsun như sau:

(1) Năm giờ trước, những kẻ tấn công đã đánh cắp 2 triệu BNB (khoảng 566 triệu USD) từ Binance Bridge. Kể từ đó, tôi đã hợp tác chặt chẽ với nhiều bên khác nhau để khám phá xem tất cả những điều này đã xảy ra như thế nào.

(2) Nguyên nhân của vụ việc là do @zachxbt đột nhiên gửi cho tôi địa chỉ của kẻ tấn công. Khi tôi nhấp vào, tôi thấy một tài khoản trị giá hàng trăm triệu đô la; hoặc là có một dự án bỏ trốn, hoặc có một vụ hack lớn đang diễn ra.

(3) Lúc đầu, tôi nghĩ @VenusProtocol lại bị hack. Tuy nhiên, tôi không mất nhiều thời gian để xác định rằng những kẻ tấn công "thực sự" đã gửi hơn 200 triệu USD vào Venus. Đó là lúc tôi cần tìm ra nguồn gốc của những khoản tiền đó.

(4) Câu trả lời là kẻ tấn công bằng cách nào đó đã thuyết phục được cây cầu liên chuỗi Binance gửi trực tiếp cho họ (tin tặc) 1.000.000 BNB, hai lần.

(5) Hoặc là Binance tung ra "gói quà tặng" lớn nhất trong lịch sử của Web3, hoặc kẻ tấn công đã phát hiện ra một lỗ hổng nghiêm trọng. Tôi bắt đầu bằng cách so sánh các giao dịch của kẻ tấn công với các giao dịch rút tiền hợp pháp. Điều đầu tiên tôi nhận thấy là kẻ tấn công luôn sử dụng cùng một chiều cao - 110217401, trong khi các giao dịch rút tiền hợp pháp sử dụng chiều cao cao hơn nhiều như 270822321.

(6) Tôi cũng nhận thấy rằng bằng chứng của kẻ tấn công ngắn hơn đáng kể so với bằng chứng rút tiền hợp pháp. Hai sự thật này thuyết phục tôi rằng kẻ tấn công đã tìm ra cách giả mạo bằng chứng cho khối cụ thể này (110217401). Bây giờ, tôi phải tìm ra cách những bằng chứng này hoạt động.

(7) Trên Binance, có một hợp đồng được biên dịch trước đặc biệt để xác minh cây IAVL. Đừng lo lắng nếu bạn không biết gì về cây IAVL, vì 95% trong số đó là tôi không biết. May mắn thay, tất cả những gì bạn và tôi cần là 5% còn lại.

(8) Về cơ bản, khi bạn xác thực cây IAVL, bạn chỉ định một danh sách "các thao tác". Cầu nối chuỗi chéo Binance thường yêu cầu hai thao tác: thao tác "iavl:v" và thao tác "đa cửa hàng". Đây là cách triển khai của họ: https://github.com/bnb-chain/bsc/blob/46d185b4cfed54436f526b24c47b15ed58a5e1bb/core/vm/lightclient/multistoreproof.go#L106-L125

(9) Để giả mạo bằng chứng, chúng tôi cần cả hai thao tác thành công và chúng tôi cần thao tác cuối cùng (multistore) để trả về một giá trị cố định (hàm băm của khối được chỉ định: 110217401).

(10) Bằng cách xem xét quá trình triển khai, chúng ta có thể thấy rằng thao tác với hàm băm gốc là không thể, hoặc ít nhất là rất khó. Điều này có nghĩa là chúng tôi cần giá trị đầu vào của mình bằng với một trong các id xác nhận.

(11) Giá trị đầu vào của thao tác "multistore" là giá trị đầu ra của thao tác "iavl:v". Điều này có nghĩa là chúng tôi muốn bằng cách nào đó kiểm soát biến gốc ở đây trong khi vẫn chuyển xác thực giá trị.

(12) Vậy cách tính root hash như thế nào? Nó xảy ra trong một chức năng gọi là COMPUTEHASH. Ở mức rất cao, nó đi theo đường dẫn và nút lá một cách đệ quy và thực hiện rất nhiều thao tác băm.

https://github.com/cosmos/iavl/blob/de0740903a67b624d887f9055d4c60175dcfa758/proof_range.go#L237-L290

(13) Các chi tiết triển khai thực sự không quan trọng, điều quan trọng là do cách hoạt động của các hàm băm, về cơ bản chúng ta có thể nói chắc chắn rằng bất kỳ cặp (đường dẫn, nleaf) nào cũng sẽ tạo ra một hàm băm duy nhất. Những điều này phải được giữ nguyên nếu chúng ta muốn ngụy tạo bằng chứng.

(14) Nhìn vào cách trình bày bằng chứng trong giao dịch hợp pháp, chúng tôi thấy rằng nó có một đường dẫn rất dài, không có nút bên trong, chỉ có một nút lá và nút lá này chứa hàm băm của tải trọng độc hại của chúng tôi! Nếu chúng ta không thể sửa đổi nút lá này, thì chúng ta cần thêm một nút lá mới.

(15) Tất nhiên, nếu chúng ta thêm một nút lá mới, chúng ta cũng cần thêm một nút bên trong mới để khớp.

(16) Bây giờ chúng ta phải đối mặt với một rào cản cuối cùng. Làm cách nào để chúng tôi thực sự nhận được COMPUTEHASH để trả lại hàm băm gốc mà chúng tôi muốn? Chà, lưu ý rằng cuối cùng chúng ta sẽ cần một đường dẫn chứa hàm băm phải khác không. Khi chúng tôi tìm thấy một kết quả khớp, chúng tôi khẳng định rằng nó khớp với hàm băm gốc trung gian.

(17) Hãy cụ thể hóa mã một chút để chúng tôi có thể tìm ra hàm băm mà chúng tôi cần, sau đó tất cả những gì còn lại là kết hợp nó lại với nhau, chúng tôi sẽ lấy bằng chứng pháp lý và sửa đổi nó để:

1) Chúng tôi thêm một nút lá mới cho tải trọng giả;

2) Chúng tôi thêm một nút bên trong trống để đáp ứng tục ngữ;

3) Chúng tôi điều chỉnh các nút lá của mình để thoát sớm với hàm băm gốc chính xác

https://gist.github.com/samczsun/8635f49fac0ec66a5a61080835cae3db…

(18) Cần lưu ý rằng đây không phải là phương pháp chính xác mà những kẻ tấn công sử dụng. Đường dẫn bằng chứng của chúng ngắn hơn nhiều và tôi không chắc chúng được tạo chính xác như thế nào. Tuy nhiên, phần khai thác còn lại là như nhau và tôi tin rằng việc chỉ ra cách xây dựng nó từ đầu là rất có giá trị.

(19) Tóm lại, có một lỗi trong cách cầu nối chuỗi chéo Binance xác minh bằng chứng có thể cho phép kẻ tấn công giả mạo các tin nhắn tùy ý. May mắn thay, những kẻ tấn công ở đây chỉ giả mạo hai tin nhắn, nhưng thiệt hại có thể còn tồi tệ hơn nhiều.

BNB
Paradigm
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký
https://t.me/Odaily_News
Tài khoản chính thức
https://twitter.com/OdailyChina