BTC
ETH
HTX
SOL
BNB
Xem thị trường
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Kỷ nguyên hậu an toàn: Một mô hình mới về bảo mật đa chữ ký mà mọi người dùng an toàn nên nắm vững

星球君的朋友们
Odaily资深作者
2025-02-28 06:10
Bài viết này có khoảng 1868 từ, đọc toàn bộ bài viết mất khoảng 3 phút
"Đừng tin tưởng, hãy xác minh" là nguyên tắc cốt lõi của bảo mật Web3.
Tóm tắt AI
Mở rộng
"Đừng tin tưởng, hãy xác minh" là nguyên tắc cốt lõi của bảo mật Web3.

Tác giả gốc: Moonbeam

Dòng thời gian

  • Ngày 21 tháng 2 năm 2025: Ví đa chữ ký Bybit bị tấn công và 1,5 tỷ đô la đã chảy ra thông qua các giao dịch chữ ký "hợp pháp".

  • Theo dõi trên chuỗi: Tiền được chuyển đến các địa chỉ ẩn danh và được chia thành các đồng tiền hỗn hợp. Kẻ tấn công có thể có kết nối với một số nút xác minh.

  • Phân tích sau sự cố: Kiểm tra bảo mật phát hiện ra rằng kẻ tấn công đã sử dụng lỗ hổng chuỗi cung ứng ở giao diện Safe để cài đặt các tập lệnh độc hại.

Tại sao cuộc tấn công xảy ra

Tin tặc đã sử dụng mã front-end độc hại để thuyết phục những người ký tên vào ví đa chữ ký bybit rằng đây là một giao dịch hợp pháp (chẳng hạn như chuyển token thông thường), điều này thực sự khiến họ ký vào các giao dịch bất hợp pháp. Để ngăn những người ký tên phát hiện ra các vấn đề với nội dung giao dịch thông qua các phương tiện khác, tin tặc thậm chí còn giả mạo cuộc tấn công này thành một giao dịch chuyển tiền, để những người ký tên bybit sẽ cố gắng không kiểm tra calldata giao dịch thông qua các phương tiện khác. (Nội dung giao dịch thường được gọi là calldata)

Nói tóm lại, phương pháp tấn công như sau:

  1. Tin tặc đã chiếm được quyền phát triển của Safe front-end, sửa đổi mã front-end và cài một tập lệnh độc hại nhắm vào các cuộc tấn công bybit;

  2. Một thành viên đa chữ ký của bybit đã truy cập vào trang web bị nhiễm và thấy thông tin giao dịch giả mạo:

  3. Trang họ nhìn thấy: "Chuyển 100 ETH đến địa chỉ A"

  4. Những gì thực sự cần phải ký là: "Sửa đổi logic ví lạnh"

Giống như máy ATM thay màn hình hiển thị, màn hình hiển thị 100 tệ, nhưng thao tác thực tế là rút 1 triệu tệ.

APP chính thức - Điểm mù lòng tin của người dùng

Quá trình giao dịch đa chữ ký theo nhận thức của người dùng rất đơn giản: xem giao dịch → ký → gửi vào chuỗi, nhưng thực tế nó ngụ ý một sự tách biệt khóa:

  1. Giao dịch được người dùng nhìn thấy

  2. Giao dịch thực tế đã ký

Việc sử dụng ứng dụng chính thức sẽ làm giảm đáng kể sự cảnh giác của người dùng, đến mức họ bỏ qua lớp phân tách này. Nếu trang ứng dụng chính thức bị hack, chữ ký của người dùng sẽ là chữ ký thật, họ chỉ không biết mình đã ký gì vào thời điểm đó.

Lúc này, nếu có một kênh độc lập để xác minh tính xác thực của nội dung chữ ký thì rủi ro do các cuộc tấn công từ phía front-end gây ra có thể được loại bỏ ở mức độ lớn. Đây chính là điều mà blockchain ủng hộ: Đừng tin tưởng nó, hãy XÁC MINH nó.

Cơ sở lý thuyết của "xác minh kênh độc lập"

Trước tiên chúng ta hãy xem hợp đồng Safe hoạt động như thế nào (cho đến nay, hợp đồng Safe vẫn đủ an toàn):

  1. Đầu tiên, tính toán giá trị băm cho nội dung giao dịch (tương tự như việc tạo "dấu vân tay" của giao dịch)

  2. Ký giá trị băm này bằng khóa riêng

  3. Khi đã thu thập đủ chữ ký, hãy gửi giao dịch gốc và các chữ ký này đến chuỗi

  4. Chuỗi tính toán lại giá trị băm dựa trên văn bản gốc và xác minh xem chữ ký có hợp lệ không. Nếu thu thập đủ giao dịch hợp lệ, chúng sẽ được thực hiện, nếu không, chúng sẽ bị từ chối.

Không còn nghi ngờ gì nữa, tính bảo mật và tính khó làm giả của hàm băm và chữ ký là hai nền tảng cơ bản của công nghệ blockchain.

Do đó, nếu có một kênh độc lập có thể lấy được chữ ký và văn bản giao dịch gốc trước khi giao dịch được gửi lên chuỗi, thì có thể xác minh "giao dịch do người dùng ký chính xác là gì" và "liệu người dùng đã ký giao dịch hay chưa".

Do đó, ngay cả khi frontend hoặc backend bị tấn công, trường hợp xấu nhất là dữ liệu sai được trả về. Tuy nhiên, dữ liệu sai trong "kênh độc lập" sẽ tạo ra các tình huống sau:

  • Văn bản giao dịch sai, chữ ký sai - người dùng từ chối gửi giao dịch đến chuỗi

  • Văn bản giao dịch sai, chữ ký hợp lệ - người dùng từ chối gửi giao dịch đến chuỗi

  • Văn bản giao dịch sai, chữ ký sai - người dùng từ chối gửi giao dịch đến chuỗi

Chúng ta có thể thấy rằng trường hợp xấu nhất là giao dịch sẽ không được gửi đến chuỗi. Ngoài ra, sẽ không có tổn thất nào trên chuỗi xảy ra. Do đó, cách tốt nhất để đối phó với các "cuộc tấn công hiển thị" như vậy là xác minh thông qua nhiều kênh, điều này cũng phù hợp với tinh thần của blockchain: đừng tin tưởng, hãy XÁC MINH.

Các giải pháp hiện có

Nhiều sản phẩm đa chữ ký xác minh lẫn nhau

Có nhiều sản phẩm đa chữ ký tương thích với safe trên thị trường. Ví dụ, bản thân Safe đã triển khai hai trang front-end độc lập:

https://eternalsafe.vercel.app/welcome/
https://eternalsafe.eth.limo/chào mừng/
Sau khi người dùng ký một giao dịch đa chữ ký, người đó hoặc người ký tiếp theo sẽ đăng nhập vào trang của một sản phẩm đa chữ ký khác và xem lại giao dịch gốc. Nếu các sản phẩm đa chữ ký khác nhau hiển thị chính xác cùng một phân tích nội dung giao dịch, thì người dùng có thể tin tưởng rằng "nội dung giao dịch cần ký" là chính xác.

Tuy nhiên, điều này đòi hỏi các sản phẩm đa chữ ký khác nhau đều sử dụng backend của {Safe} để lưu trữ các giao dịch ngoài chuỗi và dữ liệu chữ ký, đồng thời gửi dữ liệu chữ ký đã thu thập của họ đến backend của {Safe}, nơi đặt ra các yêu cầu rất khắt khe về sự hợp tác giữa các sản phẩm; và Safe không thân thiện với việc phân tích cú pháp văn bản gốc của một số giao dịch không theo quy ước. Ngay cả khi nhiều front-end Safe hiển thị cùng một calldata, nếu đó chỉ là một chuỗi vô nghĩa 0x abcdefsf, thì điều đó sẽ làm nản lòng những người ký.

Lưu ý: Hiện tại, hai trang web thay thế độc lập do Safe cung cấp đều yêu cầu bạn cung cấp liên kết RPC của riêng bạn:

Công cụ xác minh giao dịch an toàn độc lập

Cộng đồng đã phản ứng nhanh chóng với cuộc tấn công Safe front-end. Chúng tôi tìm thấy trong nhóm điện tín Safe chính thức rằng có người đã cung cấp một công cụ phân tích giao dịch Safe độc lập, có vẻ đơn giản và trực tiếp hơn.

Chúng tôi cũng đã xác thực công cụ này. Như hình minh họa, bạn chỉ cần dán liên kết chia sẻ giao dịch vào trang an toàn, bạn có thể tự động đọc dữ liệu an toàn và xác minh độc lập tính chính xác của giá trị băm và chữ ký của giao dịch gốc. Tóm lại, nếu bạn chắc chắn rằng phân tích calldata trong hình là giao dịch bạn muốn và xác minh "Kiểm tra băm an toàn" và "Kiểm tra chữ ký" đã được thông qua, bạn có thể nghĩ rằng "đây là giao dịch bạn muốn gửi" và "bạn đã ký đúng".

Tất nhiên, để an toàn, chúng ta cũng phải kiểm tra cẩn thận Địa chỉ an toàn, địa chỉ người ký được phân tích qua chữ ký, địa chỉ hợp đồng tương tácloại hoạt động , cho dù đó là Call hay Delegatecall. Ví dụ, giao dịch bị bybit tấn công lần này là giao dịch trong đó delegatecall và transfer xuất hiện cùng lúc. Một nhà phát triển có một chút kinh nghiệm sẽ biết rằng sự kết hợp như vậy rất kỳ lạ.

Nếu bạn gặp thông tin giao dịch không thể đọc được:

Bạn có thể nhấp vào Giải mã để cung cấp ABI của phương thức giao dịch, chẳng hạn như:

Bạn có thể hiển thị thông tin giao dịch có thể đọc được:

Giữ an toàn - XÁC MINH, đừng tin tưởng

Cuộc tấn công đa chữ ký của Bybit một lần nữa nhắc nhở chúng ta rằng sự tin tưởng ở giao diện đầu cuối không đồng nghĩa với tính bảo mật của giao dịch. Ngay cả khi sử dụng ứng dụng chính thức, nội dung giao dịch vẫn có thể bị giả mạo và người ký phải có cách độc lập để xác minh nội dung mình đã ký.

Đừng tin vào nó, hãy XÁC MINH nó. là nguyên tắc cốt lõi của bảo mật Web3. Hy vọng rằng trong tương lai, hệ sinh thái Safe và nhiều sản phẩm đa chữ ký hơn sẽ có thể tăng cường cơ chế xác minh chữ ký độc lập để ngăn chặn các cuộc tấn công tương tự xảy ra lần nữa.

Sự an toàn
cái ví
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
Nhóm trò chuyện
https://t.me/Odaily_CryptoPunk
Tài khoản chính thức
https://twitter.com/OdailyChina
Nhóm trò chuyện
https://t.me/Odaily_CryptoPunk
Tìm kiếm
Mục lục bài viết
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