Tiêu đề gốc: " Lần lượt, các ví di động Web3.0 lần lượt xuất hiện với các phương thức tấn công lừa đảo độc đáo: Modal Phishing 》
Nguồn gốc: Chứng nhận

Gần đây chúng tôi đã phát hiện ra một kỹ thuật lừa đảo mới, Có thể được sử dụng để đánh lừa nạn nhân về danh tính của ứng dụng phi tập trung (DApp) được kết nối.
Chúng tôi đặt tên cho kỹ thuật lừa đảo mới này là Lừa đảo phương thức (tấn công lừa đảo phương thức).
Kẻ tấn công có thể gửi thông tin giả mạo đến ví di động để mạo danh DApp hợp pháp và hiển thị thông tin sai lệch trong cửa sổ phương thức của ví di động. lừa nạn nhân chấp thuận giao dịch. Kỹ thuật lừa đảo này được sử dụng rộng rãi. Chúng tôi đã liên lạc với các nhà phát triển thành phần phù hợp và xác nhận rằng họ sẽ phát hành các API xác minh mới để giảm thiểu rủi ro này.
Trong nghiên cứu bảo mật của CertiK về ví di động, chúng tôi nhận thấy rằng một số thành phần giao diện người dùng (UI) nhất định của ví tiền tệ Web3.0 có thể bị kẻ tấn công kiểm soát. các cuộc tấn công. Chúng tôi đặt tên cho kỹ thuật lừa đảo này là Lừa đảo phương thứcvì những kẻ tấn công chủ yếu nhắm mục tiêu vào các cửa sổ phương thức của ví tiền điện tử để thực hiện các cuộc tấn công lừa đảo.
Mô thức (hoặc cửa sổ phương thức) là một thành phần giao diện người dùng thường được sử dụng trong các ứng dụng di động. Phương thức thường xuất hiện ở đầu cửa sổ chính của ứng dụng. Thiết kế như vậy thường được sử dụng để hỗ trợ người dùng thực hiện các thao tác nhanh chóng, chẳng hạn như phê duyệt/từ chối các yêu cầu giao dịch đối với ví tiền tệ Web3.0.
Một thiết kế điển hình trên ví tiền tệ Web3.0 thường cung cấp thông tin cần thiết để người dùng kiểm tra yêu cầu, chẳng hạn như chữ ký, cũng như các nút để chấp thuận hoặc từ chối yêu cầu.

So sánh chế độ phê duyệt giao dịch thực và chế độ phê duyệt giao dịch lừa đảo
Trong ảnh chụp màn hình ở trên, chúng tôi cho thấy phương thức phê duyệt giao dịch thông thường xuất hiện như thế nào trên Metamask.
Khi một yêu cầu giao dịch mới được bắt đầu bởi một ứng dụng phi tập trung được kết nối (DApp), ví sẽ hiển thịmột cửa sổ phương thức mới và yêu cầu người dùng thực hiện xác nhận thủ công.
Như được hiển thị ở phía bên trái của hình ảnh trên, một cửa sổ phương thức thường chứa danh tính của người yêu cầu, chẳng hạn như địa chỉ trang web (trong trường hợp này là localhost), biểu tượng, v.v. . Một số ví như Metamask cũng sẽ hiển thị thông tin chính về yêu cầu. Trong ví dụ này, chúng tôi thấy một số thành phần giao diện người dùng được đánh dấu "Xác nhận" để nhắc nhở người dùng rằng đây là yêu cầu giao dịch thông thường.
Tuy nhiên, kẻ tấn công có thể kiểm soát các thành phần giao diện người dùng này để thực hiện các cuộc tấn công Lừa đảo phương thức. Trong ảnh chụp màn hình bên phải, chúng ta có thể thấy kẻ tấn công có thể thay đổi chi tiết giao dịch và ngụy trang yêu cầu giao dịch thành yêu cầu "Cập nhật bảo mật" từ "Metamask" để lừa người dùng phê duyệt nó.
Như được hiển thị trong ảnh chụp màn hình, kẻ tấn công có thể thao túng nhiều thành phần giao diện người dùng.
Vì vậy, trong bài viết này, chúng tôi sẽ chia sẻ với bạn hai trường hợp điển hình và xác định những thành phần giao diện người dùng có thể bị kẻ tấn công kiểm soát.
Chi tiết như sau:
1 . Nếu giao thức Wallet Connect được sử dụng, kẻ tấn công có thể kiểm soát các thành phần UI thông tin DApp (tên, biểu tượng, v.v.).
2. Những kẻ tấn công có thể kiểm soát các thành phần UI thông tin hợp đồng thông minh trong một số ứng dụng ví.

Các nguồn thông tin phương thức và liên quan (DApp) do kẻ tấn công kiểm soát Tên thông tin và phương thức) Ví dụ
Ví dụ 1: Tấn công lừa đảo DApp thông qua Wallet Connect
Giao thức Wallet Connect là giao thức nguồn mở phổ biến để kết nối ví của người dùng với DApp thông qua mã QR hoặc liên kết sâu. Người dùng có thể kết nối ví của họ với DApp thông qua giao thức Wallet Connect và sau đó thực hiện các giao dịch hoặc chuyển khoản bằng giao thức.
Trong quá trình ghép nối giữa ví tiền Web3.0 và DApp, chúng tôi nhận thấy rằng ví tiền Web3.0 sẽ hiển thị một cửa sổ phương thức, Hiển thị thông tin meta cho các yêu cầu ghép nối đến—bao gồm tên, địa chỉ trang web, biểu tượng và mô tả của DApp. Thông tin và phương thức được hiển thị bởi ví Web3.0 khác nhau tùy theo tên, biểu tượng và địa chỉ trang web DApp để người dùng xem.
Tuy nhiên, thông tin này được cung cấp bởi DApp và ví không xác minh xem thông tin nó cung cấp có hợp pháp và đúng sự thật hay không. Ví dụ: trong một cuộc tấn công lừa đảo, một Leibi nhất định có thể giả vờ là một Sprite nhất định (cả hai đều là DApp) rồi lừa người dùng kết nối với nó trước khi người dùng bắt đầu yêu cầu giao dịch.
Bạn bè có thể sao chép liên kết [https://www.youtube.com/watch?v=x6muJmDBC3o] vào trình duyệt để xem CertiK được tạo cho việc này bài kiểm tra nhỏ.
Trong video này, CertiK cho thấy kẻ tấn công "lừa dối" Uniswap DApp như thế nào - Kẻ tấn công tự xưng là Uniswap DApp và kết nối với ví Metamask để lừa người dùng phê duyệt các giao dịch đến.
Trong quá trình ghép nối, một cửa sổ phương thức hiển thị trong ví sẽ hiển thị tên, URL trang web và favicon của Uniswap DApp tuân thủ.
Vì lược đồ https được sử dụng trong URL nên biểu tượng ổ khóa cũng được hiển thị, làm cho cửa sổ phương thức trở nên thực tế và hợp pháp hơn. Trong quá trình ghép nối, bất cứ khi nào nạn nhân muốn thực hiện thao tác giao dịch trên trang web Uniswap giả mạo, kẻ tấn công có thể thay thế các tham số yêu cầu giao dịch (chẳng hạn như địa chỉ đích và số tiền giao dịch) để đánh cắp tiền của nạn nhân. .
Xin lưu ý rằng mặc dù thiết kế phương thức trên các ví khác nhau là khác nhau nhưng kẻ tấn công luôn có thể kiểm soát thông tin meta.
Hình ảnh bên dưới cho thấy mẫu phê duyệt ghép nối trông như thế nào khi chúng tôi kết nối ví ZenGo và 1Inch với DApp của trang web lừa đảo.

Lừa đảo theo phương thức: DApp giả được kết nối với ví Zengo và 1Inch
Bây giờ chúng ta đã biết rằng những kẻ tấn công có thể thao túng các cửa sổ phương thức ghép nối và giao dịch, một cuộc tấn công như vậy có thể được sử dụng để khiến người dùng tin rằng các yêu cầu giao dịch đến từ các DApp hợp pháp.
Như được hiển thị trong ảnh chụp màn hình bên dưới, chúng tôi đã tạo một DApp giả mạo tự xưng là "Metamask" và tung ra một hợp đồng thông minh lừa đảo. Kẻ tấn công có thể mạo danh Metamask hoặc Uniswap DApp trong phương thức phê duyệt giao dịch.

Như được trình bày trong ví dụ trên, giao thức Wallet Connect được sử dụng rộng rãiTính hợp pháp của thông tin DApp được ghép nối chưa được xác minh. Thông tin meta bị thao túng sẽ được ứng dụng ví tiếp tục sử dụng và hiển thị cho người dùng, thông tin này có thể bị khai thác để lừa đảo phương thức. Là một giải pháp tiềm năng, giao thức Wallet Connect có thể xác minh trước tính hợp lệ và hợp pháp của thông tin DApp. Các nhà phát triển của Wallet Connect đã thừa nhận đã biết vấn đề này và đang tìm giải pháp.
Ví dụ 2: Lừa đảo thông tin hợp đồng thông minh thông qua MetaMask
Bạn có thể nhận thấy rằng bên dưới biểu tượng hoặc tên trang web của phương thức phê duyệt Metamask, có một chế độ xem khác hiển thị một chuỗi không cố định, chẳng hạn như "Xác nhận" hoặc "Phương thức không xác định". Thành phần giao diện người dùng này được Metamask thiết kế đểxác định loại giao dịch tương ứng.
Khi trình bày phương thức phê duyệt giao dịch, Metamask sẽ đọc các byte chữ ký của hợp đồng thông minh và sử dụng sổ đăng ký phương thức trên chuỗi để truy vấn tương ứng Tên phương thức, như được hiển thị trong đoạn mã sau. Tuy nhiên, điều này cũng tạo ra một thành phần UI khác mà kẻ tấn công có thể kiểm soát.

Mã nguồn MetaMask đọc tên hàm của hợp đồng thông minh thông qua byte chữ ký

Mô tả tên phương thức hợp đồng thông minh của MetaMask
p>
Chúng ta có thể thấy rằng có một phương thức yêu cầu giao dịch trên Metamask, được đánh dấu là "Cập nhật bảo mật". Kẻ tấn công đã xây dựng một hợp đồng thông minh lừa đảo có SecurityUpdate với chức năng thanh toán và cho phép nạn nhân chuyển tiền vào hợp đồng thông minh.
Kẻ tấn công cũng sử dụng SignatureReg để đăng ký chữ ký phương thức dưới dạng chuỗi "SecurityUpdate" mà con người có thể đọc được. Như đã đề cập trước đó, khi Metamask phân tích hợp đồng thông minh lừa đảo này, nó sử dụng byte chữ ký hàm để truy vấn phương thức hàm tương ứng và hiển thị nó cho người dùng theo phương thức phê duyệt.
Có thể thấy từ các giao dịch của hợp đồng thông minh này, hợp đồng thông minh lừa đảo cụ thể này đã hoạt động được hơn 200 ngày.

Kết hợp các thành phần giao diện người dùng có thể kiểm soát này, kẻ tấn công có thể tạo ra một sức thuyết phục rất mạnh mẽ yêu cầu giao dịch xuất hiện dưới dạng yêu cầu "SecurityUpdate" từ "Metamask", tìm kiếm sự chấp thuận của người dùng.

Phương thức phê duyệt giao dịch lừa đảo
Ở trên Trong Ví dụ: chúng tôi chỉ ra cách các thành phần giao diện người dùng trên ví liên quan đến thông tin hợp đồng thông minh có thể bị thao túng bởi những kẻ tấn công lừa đảo.
Trong khi chúng tôi sử dụng Metamask làm ví dụ ở đây, các ví khác có thể có lỗ hổng tương tự. Các nhà phát triển ứng dụng Wallet phải luôn theo dõi nội dung được hiển thị cho người dùng và thực hiện các biện pháp phòng ngừa để lọc ra các thuật ngữ có thể được sử dụng trong các cuộc tấn công lừa đảo.
Trong bài viết này, chúng tôi giới thiệu cho bạn Web3 . 0 Một thành phần giao diện người dùng phổ biến trên ví tiền tệ không nên tin cậy một cách mù quáng - cửa sổ phương thức.
Một số thành phần giao diện người dùng nhất định trong cửa sổ phương thức có thể bị kẻ tấn công thao túng để tạo ra bẫy câu cá rất "thực tế và thuyết phục". Vì vậy, chúng tôi đặt tên cho kỹ thuật lừa đảo mới này là Modal Phishin.
Nguyên nhân sâu xa của cuộc tấn công này là do ứng dụng ví không xác minh kỹ lưỡng tính hợp pháp của các thành phần giao diện người dùng được trình bày.
Ví dụ: ứng dụng ví trực tiếp tin cậy siêu dữ liệu từ SDK Kết nối Wallet và hiển thị siêu dữ liệu đó cho người dùng. SDK Kết nối Wallet cũng không xác thực siêu dữ liệu đến, trong một số trường hợp cho phép kẻ tấn công kiểm soát siêu dữ liệu được trình bày. Trong Metamask, chúng ta có thể thấy rằng các nguyên tắc tấn công tương tự cũng bị kẻ tấn công lạm dụng để hiển thị tên phương thức chức năng hợp đồng thông minh gian lận trong cửa sổ phương thức.
Nhìn chung, chúng tôi tin rằng các nhà phát triển ứng dụng ví nênluôn cho rằng dữ liệu đến từ bên ngoài là không đáng tin cậy. Nhà phát triển nên cẩn thận lựa chọn thông tin nào sẽ hiển thị cho người dùng và xác minh rằng thông tin này là hợp pháp. Ngoài ra, người dùng cũng nên bảo vệ an ninh của chính mình bằng cách luôn nghi ngờ mọi yêu cầu giao dịch không xác định.
Liên kết gốc
Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm Telegram thảo luận: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia