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
CertiK: Phân tích sự kiện lỗ sâu cầu xuyên chuỗi Solana
CertiK
特邀专栏作者
2022-02-04 06:39
Bài viết này có khoảng 2787 từ, đọc toàn bộ bài viết mất khoảng 4 phút
Vào rạng sáng ngày 3 tháng 2, Wormhole của dự án cầu xuyên chuỗi Solana đã bị tấn công. Bài viết này sẽ tiết lộ chi tiết quá trình tấn công và các biện pháp phòng ngừa.

Vào lúc 1:58 sáng ngày 3 tháng 2 năm 2022, giờ Bắc Kinh, dự án cầu xuyên chuỗi Solana Wormhole đã bị kẻ tấn công tấn công. Tin tặc đã bỏ qua quy trình xác minh Cầu Wormhole trên Solana và đúc ETH Wormhole (wETH) cho chính chúng.

Trong sự cố này, kẻ tấn công đã bỏ qua bước xác minh hệ thống bằng cách tiêm tài khoản sysvar giả mạo và tạo thành công một "thông báo" độc hại chỉ định rằng 120.000 wETH sẽ được đúc. Cuối cùng, kẻ tấn công đã đúc thành công 120.000 wETH trị giá khoảng 320 triệu đô la bằng cách sử dụng một "tin nhắn" độc hại để gọi hàm "complete_wrapped".

tiêu đề phụ

Giới thiệu về lỗ sâu đục

Lỗ giun (Wormhole) hay còn gọi là cầu Einstein-Rosen hay còn được dịch là lỗ giun. Đó là một đường hầm hẹp có thể tồn tại trong vũ trụ để kết nối hai thời gian và không gian khác nhau.

Trên thực tế, gần nhà hơn, Giao thức lỗ sâu chuỗi cầu xuyên chuỗi của Solana (Giao thức lỗ sâu) thực sự có ý nghĩa và định vị giống như lỗ sâu trong khoa học và thậm chí là khoa học viễn tưởng.

khai thác giao dịch

khai thác giao dịch

Đúc 120.000 ETH lỗ sâu:

https://solscan.io/tx/2zCz2GgSoSS68eNJENWrYB48dMM1zmH8SZkgYneVDv2G4gRsVfwu5rNXtK5BKFxn7fSqX9BvrBc1rdPAeBEcD6Es 

tiêu đề phụ

https://etherscan.io/address/0x629e7da20197a5429d30da36e77d06cdf796b71a#internaltx 

Quy trình tấn công lỗ hổng

Bước 1: Kẻ tấn công sử dụng tài khoản sysvar giả mạo để gọi hàm "verify_signatures": https://solscan.io/tx/25Zu1L2Q9uk998d5GMnX43t9u9eVBKvbVtgHndkc2GmUFed8Pu73LGW6hiDsmGXHykKUTLkvUdh4yXPdL3Jo4wVS① với "sys" giả mạo var" làm đối số cho hàm "verify_signatures":

Ngược lại, ảnh chụp màn hình bên dưới lấy chức năng "verify_signatures" với "tài khoản sysvar" thực làm đối số:

② Hàm “verify_signatures” tải lệnh hiện tại từ sysvar (L92).

③ Tuy nhiên, chức năng "load_current_index" không thể xác minh liệu "sysvar account" có thực sự là "system sysvar" hay không. Vì hướng dẫn hiện tại (L92) được truy xuất từ ​​"sysvar" được kiểm soát bởi kẻ tấn công nên nó có thể vượt qua thành công quy trình xác minh sau.

Bước 2: Sau đó, kẻ tấn công sử dụng chữ ký đã được xác minh ở bước trước để gọi chức năng "post_vaa" và tạo một tài khoản tin nhắn độc hại, yêu cầu đúc 120.000 wETH: https://solscan.io/tx/2SohoVoPDSdzgsGCgKQPByKQkLAXHrYmvtE7EEqwKi3qUBTGDDJ7DcfYS7YJC2f8xwKVVa6SFUph5MZ5 xcyn1 TCN

① Tài khoản2 là bộ chữ ký được tạo bởi lệnh "verify_signatures". ② Tài khoản3 là tài khoản tin nhắn sẽ được sử dụng trong chức năng "complete_wrapped".

Bước 3: Kẻ tấn công gọi hàm "complete_wrapped" để đọc dữ liệu trong tài khoản tin nhắn độc hại và đúc 120.000 wETH: https://solscan.io/tx/2zCz2GgSoSS68eNJENWrYB48dMM1zmH8SZkgYneVDv2G4gRsVfwu5rNXtK5BKFxn7fSqX9BvrBc1rdPAeBEc D 6Es

① Tài khoản3 là tài khoản tin nhắn được tạo bởi chức năng "post_vaa".

② Tài khoản6 là địa chỉ "người nhận" để nhận ETH Wormhole được đúc. ③ Account9 là tổ chức đúc ETH của Wormhole, đây là một PDA (Địa chỉ có nguồn gốc từ chương trình). Đây là lý do tại sao kẻ tấn công có thể đúc mã thông báo trực tiếp sau khi xác minh chữ ký được thông qua.

Nguyên nhân gốc rễ của lỗ hổng này là trong quá trình xác minh chữ ký ("verify_signatures"), chương trình sử dụng chức năng "load_current_index" không được dùng nữa khi Solana được cập nhật lên 1.8.0. Chức năng này sẽ không xác minh xem "tài khoản sysvar" đầu vào có thực sự là "sysvar hệ thống" hay không, vì vậy kẻ tấn công có thể nhân cơ hội này để giả mạo tài khoản quan trọng này.

Phân tích lỗ hổng hợp đồng

Nguyên nhân gốc rễ của lỗ hổng này là trong quá trình xác minh chữ ký ("verify_signatures"), chương trình sử dụng chức năng "load_current_index" không được dùng nữa khi Solana được cập nhật lên 1.8.0. Chức năng này sẽ không xác minh xem "tài khoản sysvar" đầu vào có thực sự là "sysvar hệ thống" hay không, vì vậy kẻ tấn công có thể nhân cơ hội này để giả mạo tài khoản quan trọng này.

tóm tắt

tóm tắt

Hiện tại, nhóm Wormhole đã vá lỗ hổng và khôi phục mạng. Sau đây, CertiK đề xuất các gợi ý sau cho các nhà phát triển:

  • Khi các nhà phát triển sử dụng các chức năng phụ thuộc bên ngoài, họ cần có đủ hiểu biết về chức năng này.

  • Theo dõi các bản cập nhật quan trọng của các cơ sở mã phụ thuộc bên ngoài và thực hiện các điều chỉnh tương ứng đối với cơ sở mã của riêng bạn một cách kịp thời khi có các thay đổi lớn về phiên bản.

  • Khi phiên bản mã được cập nhật, cũng cần phải tiến hành kiểm tra toàn diện kịp thời và cập nhật mã được kiểm tra thành mã đã được triển khai trên chuỗi một cách kịp thời.

Ngày mùng 5 âm lịch đang đến gần, mong mọi người hãy “phá ngũ nghèo”. Đồng thời, cũng hy vọng rằng mỗi dự án được triển khai trực tuyến sẽ sau khi được kiểm toán chặt chẽ để có được tính bảo mật cao hơn và giảm khả năng mất mát tài sản. Vận may bắt đầu “chu kỳ” liên tục từ năm mới, an toàn bắt đầu từ kiểm định chặt chẽ, công trình nào cũng có “khởi đầu” tốt đẹp hơn!

Cho đến nay, CertiK đã được 2.500 khách hàng doanh nghiệp công nhận, bảo vệ hơn 311 tỷ USD tài sản kỹ thuật số khỏi bị mất mát. Chào mừng bạn nhấp vào hộp thoại ở cuối tài khoản công cộng CertiK, để lại tin nhắn để được tư vấn và báo giá miễn phí!


Solana
chuỗi chéo
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
Tóm tắt AI
Trở về đầu trang
Vào rạng sáng ngày 3 tháng 2, Wormhole của dự án cầu xuyên chuỗi Solana đã bị tấn công. Bài viết này sẽ tiết lộ chi tiết quá trình tấn công và các biện pháp phòng ngừa.
Tải ứng dụng Odaily Nhật Báo Hành Tinh
Hãy để một số người hiểu Web3.0 trước
IOS
Android