Chiêu trò lừa bịp mới: Ký tên Uniswap Permit2 đánh cắp tài sản ngay lập tức

Hé lộ trò lừa bịp ký tên Uniswap Permit2: chỉ cần ký tên là sẽ bị đánh cắp

Tin tặc luôn là một sự hiện diện đáng sợ trong hệ sinh thái Web3. Đối với các nhà phát triển dự án, tính năng mã nguồn mở khiến họ phải cẩn trọng từng bước trong quá trình phát triển, lo sợ rằng chỉ một dòng mã sai có thể để lại lỗ hổng. Đối với người dùng cá nhân, nếu không hiểu ý nghĩa của các thao tác đang diễn ra, mỗi lần tương tác hoặc ký trên chuỗi đều có thể dẫn đến việc tài sản bị đánh cắp. Do đó, vấn đề an ninh luôn là một trong những vấn đề khó khăn nhất trong thế giới tiền mã hóa. Bởi vì đặc điểm của blockchain, một khi tài sản bị đánh cắp gần như không thể thu hồi, vì vậy việc nắm vững kiến thức về an ninh trong thế giới tiền mã hóa là đặc biệt quan trọng.

Gần đây, một phương pháp lừa đảo mới đã được phát hiện và hoạt động trong khoảng hai tháng qua, chỉ cần ký tên là có thể bị đánh cắp, phương pháp này cực kỳ tinh vi và khó phòng ngừa. Hơn nữa, những địa chỉ từng tương tác với Uniswap đều có thể đối mặt với rủi ro. Bài viết này sẽ phổ biến về phương pháp lừa đảo ký tên này, nhằm hạn chế tối đa việc nhiều người bị thiệt hại tài sản.

Diễn biến sự kiện

Gần đây, một người bạn ( tạm gọi là nhỏ A ) đã bị đánh cắp tài sản ví. Khác với các phương thức bị đánh cắp phổ biến, nhỏ A không hề tiết lộ khóa riêng, cũng như không tương tác với hợp đồng của trang web lừa đảo.

Thông qua trình duyệt blockchain, có thể thấy rằng USDT bị đánh cắp từ ví nhỏ A đã được chuyển giao thông qua hàm Transfer From. Điều này có nghĩa là tài sản bị đánh cắp này được chuyển giao bởi một địa chỉ khác, chứ không phải do lộ khóa riêng của ví.

Tra cứu chi tiết giao dịch phát hiện một số manh mối quan trọng:

  • Địa chỉ có đuôi fd51 đã chuyển tài sản của nhỏ A đến địa chỉ có đuôi a0c8
  • Hành động này tương tác với hợp đồng Permit2 của Uniswap

Ký tên đã bị đánh cắp? Khám phá trò lừa bịp chữ ký Uniswap Permit2

Vậy vấn đề là, địa chỉ có đuôi số fd51 đã nhận được quyền truy cập tài sản này như thế nào? Tại sao lại liên quan đến Uniswap?

Đầu tiên cần biết, để gọi thành công hàm Transfer From, điều kiện tiên quyết là bên gọi phải có quyền hạn mức của Token đó, tức là approve. Khi chúng ta sử dụng một số Dapp, chỉ cần liên quan đến việc chuyển nhượng tài sản thì cần phải thực hiện thao tác (approve) trước, như vậy hợp đồng của Dapp mới có quyền chuyển nhượng tài sản của chúng ta.

Câu trả lời nằm trong hồ sơ giao dịch của địa chỉ có đuôi số fd51. Trước khi thực hiện chuyển tài sản của nhỏ A từ địa chỉ này, đã có một thao tác Permit, và cả hai thao tác này đều liên quan đến hợp đồng Permit2 của Uniswap.

Chữ ký bị đánh cắp? Khám phá trò lừa bịp chữ ký Uniswap Permit2

Hợp đồng Uniswap Permit2 là hợp đồng thông minh mới mà Uniswap ra mắt vào cuối năm 2022. Theo thông tin chính thức, đây là một hợp đồng phê duyệt token, cho phép chia sẻ và quản lý quyền sử dụng token trong các ứng dụng khác nhau, nhằm tạo ra trải nghiệm người dùng đồng nhất hơn, hiệu quả hơn về chi phí và an toàn hơn.

Với ngày càng nhiều dự án tích hợp với Permit2, nó có thể đạt được sự chuẩn hóa on Token phê duyệt trong tất cả các ứng dụng. Permit2 sẽ cải thiện trải nghiệm người dùng bằng cách giảm chi phí giao dịch, đồng thời nâng cao tính bảo mật của hợp đồng thông minh.

Việc ra mắt Permit2 có thể thay đổi quy tắc trò chơi của toàn bộ hệ sinh thái Dapp. Nói một cách đơn giản, phương pháp truyền thống là mỗi lần tương tác với Dapp để chuyển giao tài sản đều cần phải được ủy quyền, trong khi Permit2 có thể bỏ qua bước này, giảm thiểu chi phí tương tác của người dùng và mang lại trải nghiệm người dùng tốt hơn.

Permit2 như là một trung gian giữa người dùng và Dapp, người dùng chỉ cần cấp quyền Token cho hợp đồng Permit2, tất cả Dapp tích hợp hợp đồng Permit2 đều có thể chia sẻ hạn mức ủy quyền này. Đối với người dùng, điều này giảm thiểu chi phí tương tác và nâng cao trải nghiệm; đối với Dapp, việc nâng cao trải nghiệm người dùng mang đến nhiều người dùng và vốn hơn, đây thực sự là một tình huống đôi bên cùng có lợi. Nhưng điều này cũng có thể là một con dao hai lưỡi, vấn đề nằm ở cách tương tác với Permit2.

Trong các phương thức tương tác truyền thống, cho dù là ủy quyền hay chuyển tiền, với người dùng thực hiện thao tác đều là tương tác trên chuỗi. Permit2 biến thao tác của người dùng thành chữ ký ngoài chuỗi, tất cả các thao tác trên chuỗi đều được thực hiện bởi các vai trò trung gian ( như hợp đồng Permit2 và các dự án tích hợp Permit2, v.v. ). Lợi ích của giải pháp này là, do vai trò tương tác trên chuỗi chuyển từ người dùng sang vai trò trung gian, ngay cả khi ví của người dùng không có ETH, họ vẫn có thể sử dụng các Token khác để trả phí Gas hoặc hoàn toàn được trung gian hoàn trả, tùy thuộc vào sự lựa chọn của vai trò trung gian.

Mặc dù sự xuất hiện của Permit2 có thể thay đổi quy tắc trò chơi của Dapp trong tương lai, nhưng đây là một con dao hai lưỡi rất mạnh. Đối với người dùng, việc ký kết ngoài chuỗi là khâu dễ dàng nhất để mất cảnh giác. Chẳng hạn, khi chúng ta đăng nhập vào một số Dapp bằng ví, cần phải ký kết kết nối, hầu hết mọi người sẽ không kiểm tra kỹ nội dung ký kết và cũng không hiểu ý nghĩa của nó, đây chính là chỗ nguy hiểm nhất.

Hiểu về hợp đồng Permit2, quay lại sự kiện của A nhỏ, ta sẽ hiểu tại sao tài sản bị đánh cắp đều liên quan đến việc tương tác với hợp đồng Permit2. Để tái hiện kỹ thuật lừa đảo chữ ký Permit2 này, trước tiên một điều kiện then chốt là ví bị lừa phải có Token được ủy quyền cho hợp đồng Permit2 của Uniswap. Hiện tại, chỉ cần thực hiện Swap trên Dapp tích hợp với Permit2 hoặc Uniswap, đều cần phải ủy quyền cho hợp đồng Permit2.

Chữ ký bị đánh cắp? Khám phá trò lừa bịp chữ ký Uniswap Permit2

Một điểm đáng lo ngại khác là, bất kể số tiền cần Swap là bao nhiêu, hợp đồng Permit2 của Uniswap sẽ mặc định cho phép người dùng ủy quyền toàn bộ số dư của Token đó. Mặc dù MetaMask cho phép nhập số tiền tùy chỉnh, nhưng hầu hết mọi người có thể chỉ cần nhấp vào giá trị tối đa hoặc giá trị mặc định, trong khi giá trị mặc định của Permit2 là hạn mức không giới hạn.

Điều này có nghĩa là, chỉ cần bạn đã tương tác với Uniswap sau năm 2023 và ủy quyền hạn mức cho hợp đồng Permit2, bạn có thể bị lộ trước nguy cơ của trò lừa bịp này.

Chìa khóa nằm ở hàm Permit trong hợp đồng Permit2 mà đã tương tác với địa chỉ có đuôi fd51 trước đó. Nói một cách đơn giản, hàm này sử dụng ví của bạn để chuyển giao hạn mức Token mà bạn đã ủy quyền cho hợp đồng Permit2 cho địa chỉ khác. Điều này có nghĩa là, chỉ cần có được chữ ký của bạn, hacker có thể lấy quyền truy cập vào Token trong ví của bạn và chuyển nhượng tài sản của bạn.

Phân tích chi tiết sự kiện

hàm permit:

Hàm permit tương tự như việc ký hợp đồng trực tuyến. Nó cho phép bạn (PermitSingle) ký trước một "hợp đồng", cho phép người khác (spender) sử dụng một số token của bạn vào một thời điểm nào đó trong tương lai.

Bạn còn cần cung cấp chữ ký (signature), giống như ký tên trên hợp đồng giấy, chứng minh rằng "hợp đồng" này thực sự là bạn đã ký.

Quy trình làm việc của hàm:

  1. Kiểm tra xem thời gian hiện tại có vượt quá thời gian hiệu lực của chữ ký (sigDeadline) hay không. Nếu vượt quá thời gian hiệu lực, chương trình sẽ dừng ngay lập tức.
  2. Kiểm tra tính xác thực của chữ ký. Sử dụng phương pháp đặc biệt (signature.verify) để kiểm tra chữ ký, đảm bảo không bị giả mạo.
  3. Nếu tất cả các kiểm tra đều đạt, ghi lại việc cập nhật chương trình, ghi nhớ rằng bạn đã cho phép người khác sử dụng một phần token của bạn.

Điểm chính chủ yếu ở hàm verify và hàm _updateApproval.

hàm verify:

Hàm verify lấy 3 dữ liệu v, r, s từ tham số thông tin chữ ký. v, r, s là giá trị của chữ ký giao dịch, có thể được sử dụng để khôi phục địa chỉ chữ ký giao dịch. Sau khi hợp đồng khôi phục địa chỉ chữ ký giao dịch, so sánh với địa chỉ chủ sở hữu token được truyền vào, nếu giống nhau thì xác thực thành công, tiếp tục gọi hàm _updateApproval; nếu khác nhau thì hoàn tác giao dịch.

_updateApproval hàm:

Sau khi xác minh chữ ký, gọi hàm _updateApproval để cập nhật giá trị ủy quyền, có nghĩa là quyền của bạn đã được chuyển giao. Lúc này, bên được ủy quyền có thể gọi hàm transferfrom để chuyển token đến địa chỉ chỉ định.

Xem chi tiết giao dịch thực tế trên chuỗi có thể phát hiện:

  • owner là địa chỉ ví của A là ( có đuôi là 308a)
  • Chi tiết có thể thấy địa chỉ hợp đồng Token được ủy quyền (USDT) và thông tin về số tiền.
  • Spender là địa chỉ hacker có số đuôi fd51
  • sigDeadline là thời gian hiệu lực của chữ ký, signature là thông tin chữ ký của A nhỏ.

Ký tên đã bị đánh cắp? Khám phá trò lừa bịp chữ ký Uniswap Permit2

Xem lại hồ sơ tương tác của nhỏ A, phát hiện nhỏ A đã nhấp vào hạn mức ủy quyền mặc định khi sử dụng Uniswap, tức là gần như không giới hạn.

Ký tên bị đánh cắp? Khám phá trò lừa bịp ký tên Uniswap Permit2

Tóm tắt đơn giản: Nhỏ A trước đây đã cấp quyền cho Uniswap Permit2 với hạn mức USDT không giới hạn khi sử dụng Uniswap. Khi thao tác trong ví, Nhỏ A đã vô tình rơi vào bẫy lừa đảo chữ ký Permit2 do hacker thiết kế. Sau khi nhận được chữ ký của Nhỏ A, hacker đã thực hiện hai thao tác Permit và Transfer From trong hợp đồng Permit2, chuyển giao tài sản của Nhỏ A. Hiện tại, hợp đồng Permit2 của Uniswap đã trở thành thiên đường lừa đảo, loại lừa đảo chữ ký Permit2 này dường như đã bắt đầu hoạt động cách đây hai tháng.

Trong hồ sơ tương tác có thể thấy, phần lớn là địa chỉ lừa đảo được đánh dấu (Fake_Phishing), liên tục có người bị lừa.

Ký tên đã bị đánh cắp? Khám phá trò lừa bịp chữ ký Uniswap Permit2

Làm thế nào để phòng ngừa?

Xem xét rằng hợp đồng Uniswap Permit2 có thể trở nên phổ biến hơn trong tương lai, nhiều dự án sẽ tích hợp hợp đồng Permit2 để thực hiện chia sẻ ủy quyền, các biện pháp phòng ngừa hiệu quả bao gồm:

1. Hiểu và nhận diện nội dung chữ ký:

Định dạng chữ ký của Permit thường bao gồm Owner, Spender, value, nonce và deadline. Nếu muốn tận hưởng những tiện ích và chi phí thấp mà Permit2 mang lại, nhất định phải học cách nhận diện định dạng chữ ký này. ( Tải xuống plugin bảo mật là một lựa chọn không tồi )

Ký tên đã bị đánh cắp? Khám phá trò lừa bịp ký tên Uniswap Permit2

2. Tách biệt lưu trữ tài sản và ví tương tác:

Nếu bạn sở hữu nhiều tài sản, nên lưu trữ tài sản trong ví lạnh, ví tương tác trên chuỗi chỉ nên giữ một lượng tiền nhỏ, có thể giảm thiểu đáng kể tổn thất khi gặp phải trò lừa bịp.

3. Giới hạn quyền hạn cho hợp đồng Permit2 hoặc hủy bỏ quyền hạn:

Khi thực hiện Swap trên Uniswap, chỉ cấp quyền cho số tiền cần thiết cho giao dịch. Mặc dù việc cấp quyền lại cho mỗi giao dịch sẽ làm tăng một chút chi phí giao dịch, nhưng có thể tránh được việc bị lừa đảo bằng chữ ký Permit2. Nếu đã cấp quyền cho hạn mức, có thể sử dụng các plugin an toàn tương ứng để hủy bỏ quyền.

Ký tên đã bị đánh cắp? Khám phá trò lừa bịp chữ ký Uniswap Permit2

4. Nhận diện tính chất của mã thông báo, tìm hiểu xem có hỗ trợ chức năng permit hay không:

Trong tương lai, có thể sẽ có ngày càng nhiều token ERC20 sử dụng giao thức mở rộng này để thực hiện chức năng permit. Cần chú ý đến việc các token mà bạn nắm giữ có hỗ trợ chức năng này hay không, nếu có, cần đặc biệt cẩn thận đối với giao dịch hoặc thao tác trên token đó, kiểm tra kỹ từng chữ ký không xác định xem có phải là chữ ký cho hàm permit hay không.

5. Nếu bị lừa mà có token tồn tại trên các nền tảng khác, cần xây dựng kế hoạch cứu trợ hoàn chỉnh:

Phát hiện bị lừa đảo, sau khi token bị hacker chuyển đi, nếu còn token tồn tại trên các nền tảng khác thông qua staking và các phương thức khác, cần phải rút và chuyển đến địa chỉ an toàn, cần biết rằng hacker có thể theo dõi số dư token của bạn bất cứ lúc nào. Bởi vì hắn ta sở hữu chữ ký của bạn, chỉ cần có token xuất hiện trên địa chỉ bị đánh cắp, hacker có thể chuyển trực tiếp. Lúc này cần lập ra một quy trình cứu token hoàn chỉnh, trong quá trình rút token và chuyển token cần thực hiện cùng nhau, không cho hacker chèn giao dịch vào giữa. Có thể sử dụng MEV để chuyển, điều này cần một số kiến thức về blockchain và khả năng lập trình, cũng có thể tìm sự trợ giúp từ các công ty an ninh chuyên nghiệp, tận dụng script chạy trước giao dịch để thực hiện.

Trong tương lai, việc lừa đảo dựa trên Permit2 có thể ngày càng gia tăng, phương pháp lừa đảo bằng chữ ký này cực kỳ kín đáo và khó phòng ngừa. Khi phạm vi ứng dụng của Permit2 mở rộng, số lượng địa chỉ bị rủi ro cũng sẽ tăng lên. Hy vọng sau khi đọc bài viết này, có thể lan tỏa đến nhiều người hơn, tránh cho nhiều người phải gánh chịu tổn thất.

UNI-4.13%
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • 4
  • Chia sẻ
Bình luận
0/400
MetaLord420vip
· 07-31 15:37
Lại bị đánh cắp rồi, tôi hoảng loạn quá.
Xem bản gốcTrả lời0
CodeAuditQueenvip
· 07-31 15:37
Chỉ có thể nói rằng hợp đồng giống như đạn, không có mắt, chỉ cần một chút không cẩn thận là tài sản giảm về 0.
Xem bản gốcTrả lời0
MoonlightGamervip
· 07-31 15:29
Blockchain đại đầu đều không còn nữa thì chơi gì
Xem bản gốcTrả lời0
CounterIndicatorvip
· 07-31 15:27
bẫy cái tiền ai chạy nhanh
Xem bản gốcTrả lời0
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)