Cointime

Download App
iOS & Android

Các lỗ hổng bảo mật cầu phổ biến là gì?

Bài viết này là một đệ trình cộng đồng. Tác giả là Minzhi He, kiểm toán viên tại CertiK.

Quan điểm trong bài viết này là của người đóng góp/tác giả và không nhất thiết phản ánh quan điểm của Binance Academy.

TL;DR

Cầu chuỗi khối rất quan trọng trong việc đạt được khả năng tương tác trong không gian chuỗi khối. Do đó, an ninh cầu là rất quan trọng. Một số lỗ hổng bảo mật cầu phổ biến bao gồm xác thực on-chain và off-chain yếu, xử lý token gốc không đúng cách và cấu hình sai. Nên kiểm tra cây cầu chống lại tất cả các vectơ tấn công có thể để đảm bảo logic xác minh hợp lý.

Giới thiệu

Cầu chuỗi khối là một giao thức kết nối hai chuỗi khối để cho phép tương tác giữa chúng. Nếu bạn sở hữu bitcoin nhưng muốn tham gia vào hoạt động DeFi trên mạng Ethereum, cầu nối chuỗi khối cho phép bạn làm như vậy mà không cần bán bitcoin của mình.

Cầu chuỗi khối là nền tảng để đạt được khả năng tương tác trong không gian chuỗi khối. Chúng hoạt động bằng cách sử dụng các xác thực khác nhau trên chuỗi và ngoài chuỗi, do đó có các lỗ hổng bảo mật khác nhau.

Tại sao bảo mật cầu lại quan trọng?

Cầu nối thường giữ mã thông báo mà người dùng muốn chuyển từ chuỗi này sang chuỗi khác. Thường được triển khai dưới dạng hợp đồng thông minh, cầu nối nắm giữ một lượng lớn mã thông báo khi chuyển khoản xuyên chuỗi tích lũy, khiến chúng trở thành mục tiêu sinh lợi cho tin tặc.

Ngoài ra, cầu chuỗi khối có bề mặt tấn công lớn vì chúng liên quan đến nhiều thành phần. Với ý nghĩ đó, các tác nhân độc hại có động lực cao để nhắm mục tiêu vào các ứng dụng chuỗi chéo để rút một khoản tiền lớn.

Các vụ tấn công cầu dẫn đến thiệt hại hơn 1,3 tỷ USD vào năm 2022, chiếm 36% tổng thiệt hại của năm, theo ước tính của CertiK.

Lỗ hổng bảo mật cầu chung

Để nâng cao tính bảo mật của cầu nối, điều quan trọng là phải hiểu các lỗ hổng bảo mật cầu nối phổ biến và kiểm tra các cầu nối trước khi khởi chạy. Những lỗ hổng này có thể được phân loại thành bốn lĩnh vực sau.

Xác thực on-chain yếu

Đối với các cầu đơn giản, đặc biệt là những cầu được thiết kế cho các DApp cụ thể, việc xác thực trên chuỗi được giữ ở mức tối thiểu. Những cây cầu này dựa vào một phụ trợ tập trung để thực hiện các hoạt động cơ bản như đúc, đốt và chuyển mã thông báo trong khi tất cả các xác minh được thực hiện ngoài chuỗi.

Ngược lại, các loại cầu khác sử dụng hợp đồng thông minh để xác thực thông báo và thực hiện xác minh trên chuỗi. Trong trường hợp này, khi người dùng gửi tiền vào một chuỗi, hợp đồng thông minh sẽ tạo một thông báo đã ký và trả lại chữ ký trong giao dịch. Chữ ký này đóng vai trò là bằng chứng về khoản tiền gửi và được sử dụng để xác minh yêu cầu rút tiền của người dùng trên chuỗi khác. Quá trình này sẽ có thể ngăn chặn các cuộc tấn công bảo mật khác nhau, bao gồm các cuộc tấn công phát lại và hồ sơ tiền gửi giả mạo.

Tuy nhiên, nếu có lỗ hổng trong quá trình xác thực trên chuỗi, kẻ tấn công có thể gây ra thiệt hại nghiêm trọng. Ví dụ: nếu một cây cầu sử dụng cây Merkle để xác thực bản ghi giao dịch, kẻ tấn công có thể tạo bằng chứng giả mạo. Điều này có nghĩa là họ có thể bỏ qua xác thực bằng chứng và đúc mã thông báo mới vào tài khoản của mình nếu quá trình xác thực dễ bị tấn công.

Một số cây cầu nhất định triển khai khái niệm “mã thông báo được bao bọc”. Chẳng hạn, khi người dùng chuyển DAI từ Ethereum sang Chuỗi BNB, DAI của họ được lấy từ hợp đồng Ethereum và một lượng DAI được gói tương đương được phát hành trên Chuỗi BNB.

Tuy nhiên, nếu giao dịch này không được xác thực hợp lệ, kẻ tấn công có thể triển khai một hợp đồng độc hại để định tuyến các mã thông báo được bao bọc từ cầu đến một địa chỉ không chính xác bằng cách thao túng chức năng.

Những kẻ tấn công cũng cần nạn nhân phê duyệt hợp đồng cầu nối để chuyển mã thông báo bằng cách sử dụng chức năng “transferFrom” để rút tài sản khỏi hợp đồng cầu nối.

Thật không may, điều này trở nên tồi tệ hơn vì nhiều cầu nối yêu cầu phê duyệt mã thông báo vô hạn từ người dùng DApp. Đây là một phương pháp phổ biến giúp giảm phí gas nhưng tạo thêm rủi ro bằng cách cho phép hợp đồng thông minh truy cập vào số lượng mã thông báo không giới hạn từ ví của người dùng. Những kẻ tấn công có thể khai thác việc thiếu xác thực và phê duyệt quá mức để chuyển mã thông báo từ người dùng khác cho chính họ.

Xác thực off-chain yếu

Trong một số hệ thống cầu nối, máy chủ phụ trợ ngoài chuỗi đóng vai trò quan trọng trong việc xác minh tính hợp pháp của các thông báo được gửi từ chuỗi khối. Trong trường hợp này, chúng tôi đang tập trung vào việc xác minh các giao dịch gửi tiền.

Cầu nối chuỗi khối với xác thực ngoài chuỗi hoạt động như sau:

Người dùng tương tác với DApp để gửi mã thông báo vào hợp đồng thông minh trên chuỗi nguồn. Sau đó, DApp sẽ gửi hàm băm giao dịch gửi tiền đến máy chủ phụ trợ thông qua API. Hàm băm giao dịch phải tuân theo một số xác thực của máy chủ. Nếu được coi là hợp pháp, người ký sẽ ký một tin nhắn và gửi chữ ký trở lại giao diện người dùng thông qua API. Khi nhận được chữ ký, DApp sẽ xác minh chữ ký đó và cho phép người dùng rút mã thông báo của họ khỏi chuỗi mục tiêu.

Máy chủ phụ trợ phải đảm bảo rằng giao dịch gửi tiền mà nó xử lý đã thực sự diễn ra và không bị giả mạo. Máy chủ phụ trợ này xác định liệu người dùng có thể rút mã thông báo trên chuỗi mục tiêu hay không và do đó, đây là mục tiêu có giá trị cao cho những kẻ tấn công.

Máy chủ phụ trợ cần xác thực cấu trúc của sự kiện phát ra của giao dịch, cũng như địa chỉ hợp đồng đã phát ra sự kiện. Nếu điều thứ hai bị bỏ qua, kẻ tấn công có thể triển khai một hợp đồng độc hại để giả mạo một sự kiện gửi tiền có cấu trúc giống như một sự kiện gửi tiền hợp pháp.

Nếu máy chủ phụ trợ không xác minh địa chỉ nào đã phát ra sự kiện, nó sẽ coi đây là một giao dịch hợp lệ và ký vào thông báo. Sau đó, kẻ tấn công có thể gửi hàm băm giao dịch đến chương trình phụ trợ, bỏ qua xác minh và cho phép họ rút mã thông báo khỏi chuỗi mục tiêu.

Xử lý mã thông báo gốc không đúng cách

Các cầu nối có các cách tiếp cận khác nhau để xử lý mã thông báo gốc và mã thông báo tiện ích. Ví dụ: trên mạng Ethereum, mã thông báo gốc là ETH và hầu hết các mã thông báo tiện ích đều tuân thủ tiêu chuẩn ERC-20.

Khi người dùng có ý định chuyển ETH của họ sang một chuỗi khác, trước tiên họ phải gửi nó vào hợp đồng cầu nối. Để đạt được điều này, người dùng chỉ cần đính kèm ETH vào giao dịch và số lượng ETH có thể được lấy bằng cách đọc trường “msg.value” của giao dịch.

Gửi mã thông báo ERC-20 khác đáng kể so với gửi ETH. Để gửi mã thông báo ERC-20, trước tiên người dùng phải cho phép hợp đồng cầu nối chi tiêu mã thông báo của họ. Sau khi họ đã phê duyệt điều này và gửi mã thông báo vào hợp đồng bắc cầu, hợp đồng sẽ ghi mã thông báo của người dùng bằng chức năng "burnFrom()" hoặc chuyển mã thông báo của người dùng sang hợp đồng bằng chức năng "transferFrom()".

Một cách tiếp cận để phân biệt điều này là sử dụng câu lệnh if-else trong cùng một chức năng. Một cách tiếp cận khác là tạo hai chức năng riêng biệt để xử lý từng tình huống. Việc cố gắng gửi ETH bằng chức năng ký gửi ERC-20 có thể dẫn đến việc mất các khoản tiền này.

Khi xử lý các yêu cầu gửi tiền ERC-20, người dùng thường cung cấp địa chỉ mã thông báo làm đầu vào cho chức năng gửi tiền. Điều này gây rủi ro đáng kể vì các cuộc gọi bên ngoài không đáng tin cậy có thể xảy ra trong quá trình giao dịch. Việc triển khai danh sách trắng chỉ bao gồm các mã thông báo được cầu nối hỗ trợ là một cách phổ biến để giảm thiểu rủi ro. Chỉ các địa chỉ trong danh sách trắng mới được phép chuyển thành đối số. Điều này ngăn các cuộc gọi bên ngoài vì nhóm dự án đã lọc địa chỉ mã thông báo.

Tuy nhiên, các vấn đề cũng có thể phát sinh khi các cầu nối xử lý chuyển giao chuỗi chéo mã thông báo gốc, vì mã thông báo gốc không có địa chỉ. Địa chỉ số 0 (0x000...0) đại diện cho mã thông báo gốc. Điều này có thể có vấn đề vì việc chuyển địa chỉ 0 cho hàm có thể bỏ qua xác minh danh sách trắng ngay cả khi được triển khai không chính xác.

Khi hợp đồng cầu nối gọi “transferFrom” để chuyển tài sản của người dùng sang hợp đồng, lệnh gọi bên ngoài đến địa chỉ số 0 trả về false do không có chức năng “transferFrom” nào được triển khai trong địa chỉ số không. Tuy nhiên, giao dịch vẫn có thể xảy ra nếu hợp đồng không xử lý giá trị trả lại một cách thích hợp. Điều này tạo cơ hội cho những kẻ tấn công thực hiện giao dịch mà không cần chuyển bất kỳ mã thông báo nào vào hợp đồng.

cấu hình sai

Trong hầu hết các cầu nối chuỗi khối, một vai trò đặc quyền chịu trách nhiệm đưa mã thông báo và địa chỉ vào danh sách trắng hoặc danh sách đen, chỉ định hoặc thay đổi người ký và các cấu hình quan trọng khác. Đảm bảo rằng tất cả các cấu hình đều chính xác là rất quan trọng, vì ngay cả những sai sót tưởng chừng như nhỏ nhặt cũng có thể dẫn đến tổn thất đáng kể.

Trên thực tế, đã xảy ra sự cố khi kẻ tấn công bỏ qua thành công quá trình xác minh bản ghi chuyển do cấu hình sai. Nhóm dự án đã triển khai nâng cấp giao thức vài ngày trước vụ hack, liên quan đến việc thay đổi một biến. Biến được sử dụng để biểu thị giá trị mặc định của tin nhắn đáng tin cậy. Thay đổi này dẫn đến việc tất cả các tin nhắn được tự động coi là đã được chứng minh, do đó cho phép kẻ tấn công gửi một tin nhắn tùy ý và vượt qua quy trình xác minh.

Làm thế nào để cải thiện an ninh cầu

Bốn lỗ hổng cầu nối phổ biến được giải thích ở trên cho thấy những thách thức đối với việc đảm bảo an ninh trong hệ sinh thái chuỗi khối được kết nối với nhau. Có những cân nhắc quan trọng để xử lý từng lỗ hổng bảo mật này và không có cẩm nang riêng lẻ nào áp dụng cho tất cả chúng.

Ví dụ: việc cung cấp các hướng dẫn chung để đảm bảo quy trình xác minh không có lỗi là một thách thức vì mỗi cây cầu có các yêu cầu xác minh riêng. Cách tiếp cận hiệu quả nhất để ngăn chặn bỏ qua xác minh là kiểm tra kỹ lưỡng cây cầu chống lại tất cả các hướng tấn công có thể xảy ra và đảm bảo logic xác minh hợp lý.

Tóm lại, điều cần thiết là phải thực hiện kiểm tra nghiêm ngặt chống lại các cuộc tấn công tiềm ẩn và đặc biệt chú ý đến các lỗ hổng bảo mật phổ biến nhất trong các bridge.

Bớt tư tưởng

Do giá trị cao của chúng, các cầu xuyên chuỗi từ lâu đã trở thành mục tiêu của những kẻ tấn công. Các nhà xây dựng có thể tăng cường bảo mật cho cầu của họ bằng cách tiến hành thử nghiệm kỹ lưỡng trước khi triển khai và tham gia vào các cuộc kiểm tra của bên thứ ba, giảm nguy cơ bị tấn công tàn phá đã gây khó khăn cho cầu trong vài năm qua. Cầu nối rất quan trọng trong thế giới đa chuỗi, nhưng bảo mật phải là mối quan tâm hàng đầu khi thiết kế và xây dựng cơ sở hạ tầng Web3 hiệu quả.

Các bình luận

Tất cả bình luận

Recommended for you

  • Chủ tịch Ủy ban Ngân hàng Thượng viện Hoa Kỳ: Các điều khoản dự thảo mới liên quan đến lợi suất stablecoin có thể được công bố ngay trong tuần này.

    Theo Cointime, Thượng nghị sĩ Tim Scott, Chủ tịch Ủy ban Ngân hàng Thượng viện, phát biểu tại Hội nghị thượng đỉnh Blockchain DC rằng các nhà lập pháp có thể xem xét dự thảo luật mới, ít nhất là các điều khoản liên quan đến stablecoin, ngay trong tuần này. Ông Scott lưu ý rằng lợi suất stablecoin là vấn đề được thảo luận công khai nhiều nhất trong dự luật, nhưng các nhà lập pháp vẫn đang tiếp tục làm việc về vấn đề này. Ông nói: “Tôi tin rằng tôi sẽ có bản đề xuất đầu tiên để xem xét trong tuần này. Nếu điều đó xảy ra vào cuối tuần, và tôi nghĩ nó sẽ xảy ra, chúng ta ít nhất sẽ biết liệu khung pháp lý có đang hình thành hay không. Nếu vậy, tôi nghĩ chúng ta sẽ ở vị thế tốt hơn.” Ông cũng cho rằng tiến triển này là nhờ nỗ lực của Thượng nghị sĩ đảng Dân chủ Angela Alsobrooks, Thượng nghị sĩ đảng Cộng hòa Thom Tillis và quan chức Nhà Trắng Patrick Witt về vấn đề lợi suất stablecoin. Ông cho biết thêm rằng các vấn đề chưa được giải quyết khác cũng đã được đề cập trong các cuộc đàm phán trong tháng qua, bao gồm mối lo ngại của các nhà lập pháp về các dự án tiền điện tử của Tổng thống Donald Trump và gia đình ông, việc thiếu đại diện lưỡng đảng trong các cơ quan quản lý quan trọng và các quy định về Xác minh danh tính khách hàng (KYC). Ông Scott cũng cho biết: “Tôi nghĩ chúng ta đang rất gần đạt được thỏa thuận về các vấn đề đạo đức và số lượng thành viên cần thiết để thông qua. Chúng ta biết đây là vấn đề quan trọng đối với phía bên kia, vì vậy chúng ta cũng đang giải quyết nó. Tôi nghĩ chúng ta cũng đang đạt được tiến triển trong một số đề cử, đó là tin tốt. Còn về DeFi, đây là lĩnh vực mà Thượng nghị sĩ Mark Warner đang tập trung vào, và Chống rửa tiền (AML) là một phần rất quan trọng trong đó. Vì vậy, tôi nghĩ chúng ta đang tiến lên phía trước về những vấn đề này.”

  • Bản tin buổi sáng vàng | Những diễn biến quan trọng trong đêm ngày 18 tháng 3

    21:00-7:00 Từ khóa: Phantom, Stripe, Autonomous, Iran 1. Iran tuyên bố có thể hợp pháp tấn công các quốc gia cho phép Mỹ và Israel sử dụng lãnh thổ của mình; 2. CFTC Hoa Kỳ: Ví điện tử Phantom không yêu cầu đăng ký làm môi giới; 3. Tổng chưởng lý Arizona đệ đơn kiện hình sự chống lại nhà tiếp thị dự đoán Kalshi; 4. Bộ Ngoại giao Hoa Kỳ đã ra lệnh cho tất cả các đại sứ quán trên toàn thế giới tiến hành đánh giá an ninh "ngay lập tức"; 5. Robinhood Venture Capital đầu tư khoảng 35 triệu đô la vào Stripe và ElevenLabs; 6. GSR đầu tư 57 triệu đô la để mua lại Autonomous và Architech nhằm tạo ra một nền tảng quản lý quỹ tiền điện tử; 7. SEC và CFTC Hoa Kỳ ban hành hướng dẫn mới về tiền điện tử, nêu rõ rằng hầu hết các tài sản kỹ thuật số không phải là chứng khoán.

  • Ủy ban Chứng khoán và Giao dịch Hoa Kỳ (SEC) và Ủy ban Giao dịch Hàng hóa Tương lai (CFTC) đã đưa ra các ý kiến ​​mới về tiền điện tử, trong đó nêu rõ rằng hầu hết các tài sản kỹ thuật số không thuộc loại chứng khoán.

    Ngày 18 tháng 3, Cointime đưa tin Ủy ban Chứng khoán và Giao dịch Hoa Kỳ (SEC) và Ủy ban Giao dịch Hàng hóa Tương lai (CFTC) đã ban hành một tài liệu hướng dẫn dài 68 trang về tiền điện tử, trong đó nêu rõ hầu hết các tài sản kỹ thuật số không phải là chứng khoán. Tài liệu giải thích mới này nêu chi tiết phân loại stablecoin, hàng hóa kỹ thuật số và token “công cụ kỹ thuật số”, tất cả đều được cơ quan này khẳng định không phải là chứng khoán. Nó cũng cố gắng giải thích cách thức các “tài sản tiền điện tử không phải chứng khoán” có thể trở thành chứng khoán và làm rõ cách luật chứng khoán liên bang áp dụng cho khai thác, đặt cược giao thức và airdrop. SEC cũng giải thích cách thức các tài sản kỹ thuật số không phải chứng khoán có thể trở thành đối tượng của các hợp đồng đầu tư. Cơ quan này nêu rõ trong phần giải thích của mình: “Các tài sản tiền điện tử không phải chứng khoán trở thành đối tượng của các hợp đồng đầu tư khi một nhà phát hành thuyết phục các nhà đầu tư đầu tư vào một doanh nghiệp chung và đưa ra cam kết hoặc tuyên bố sẽ thực hiện công việc quản lý cần thiết, và người mua có lý do để kỳ vọng thu lợi nhuận từ đó.”

  • Mastercard dự định mua lại công ty tiền điện tử ổn định BVNK với giá lên tới 1,8 tỷ đô la.

    Theo Cointime, Mastercard đang lên kế hoạch mua lại công ty khởi nghiệp về cơ sở hạ tầng stablecoin BVNK với giá lên tới 1,8 tỷ đô la, bao gồm khoản thanh toán bổ sung trị giá 300 triệu đô la nếu thương vụ thành công. Thương vụ này diễn ra chỉ bốn tháng sau khi các cuộc đàm phán sáp nhập trị giá khoảng 2 tỷ đô la giữa BVNK và Coinbase đổ vỡ. Cả hai công ty đã xác nhận thỏa thuận trong một tuyên bố chung được phát hành vào thứ Ba.

  • BTC vượt mốc 75.000 đô la

    Dữ liệu thị trường cho thấy BTC đã vượt qua mốc 75.000 đô la và hiện đang giao dịch ở mức 75.033,01 đô la, tăng 2,83% trong 24 giờ. Thị trường đang trải qua biến động mạnh, vì vậy hãy quản lý rủi ro của bạn cho phù hợp.

  • BTC vượt mốc 71.500 đô la.

    Dữ liệu thị trường cho thấy BTC đã vượt qua mốc 71.500 đô la và hiện đang giao dịch ở mức 71.510,19 đô la, tăng 1,06% trong 24 giờ. Thị trường đang trải qua biến động mạnh, vì vậy hãy quản lý rủi ro của bạn cho phù hợp.

  • ETH vượt mốc 2100 đô la.

    Dữ liệu thị trường cho thấy ETH đã vượt qua mốc 2.100 đô la và hiện đang giao dịch ở mức 2.100,58 đô la, tăng 0,44% trong 24 giờ. Thị trường đang trải qua biến động mạnh; vui lòng quản lý rủi ro của bạn cho phù hợp.

  • Quỹ ETF Ethereum giao ngay tại Mỹ đã ghi nhận dòng vốn ròng 26,7 triệu đô la vào ngày hôm qua.

    Theo dữ liệu được Farside Investors theo dõi, vào ngày 14 tháng 3, quỹ ETF Ethereum giao ngay của Mỹ đã ghi nhận dòng vốn ròng 26,7 triệu đô la.

  • Bộ Tư pháp Hoa Kỳ sẽ kháng cáo phán quyết trong vụ kiện Powell, điều này có thể làm trì hoãn việc bổ nhiệm ông Warsh.

    Ngày 14 tháng 3, sau khi một thẩm phán bác bỏ trát triệu tập gửi đến Cục Dự trữ Liên bang, Chưởng lý Hoa Kỳ Robert Piro tuyên bố sẽ tiếp tục điều tra Chủ tịch Fed Jerome Powell, có khả năng trì hoãn việc bổ nhiệm người kế nhiệm ông, Kevin Warsh, người có nhiệm kỳ kết thúc vào tháng 5. Thẩm phán Tòa án Quận Hoa Kỳ James Bosberg tuyên bố rằng chính phủ đã không cung cấp bất kỳ bằng chứng nào để biện minh cho các trát triệu tập liên quan đến việc cải tạo trụ sở Fed và những bình luận của Powell về dự án này. Piro tuyên bố: "Quá trình này đã bị gián đoạn một cách tùy tiện bởi một thẩm phán cực đoan. Quá trình này đáng lẽ phải diễn ra suôn sẻ, nhưng họ đã không làm vậy. Họ thật đáng hổ thẹn." Thượng nghị sĩ Tillis, một thành viên của Ủy ban Ngân hàng Thượng viện, cảnh báo rằng ông sẽ ngăn chặn bất kỳ đề cử nào cho chức chủ tịch Fed chừng nào cuộc điều tra của Bộ Tư pháp đối với Powell còn tiếp diễn. "Phán quyết này xác nhận cuộc điều tra hình sự đối với Chủ tịch Powell yếu kém và vô căn cứ như thế nào; nó không gì khác ngoài một cuộc tấn công thất bại vào tính độc lập của Fed," Tillis nói. "Việc kháng cáo sẽ chỉ trì hoãn việc phê chuẩn Kevin Warsh làm chủ tịch Fed tiếp theo."

  • BTC giảm xuống dưới 72.000 đô la.

    Dữ liệu thị trường cho thấy BTC đã giảm xuống dưới 72.000 đô la và hiện đang giao dịch ở mức 71.996,46 đô la. Mức tăng trong 24 giờ đã thu hẹp xuống còn 2,32%. Thị trường biến động mạnh, vui lòng quản lý rủi ro của bạn cho phù hợp.