Cointime

Download App
iOS & Android

SharkTeam: Phân tích cuộc tấn công vào Prisma Finance

Vào ngày 28 tháng 3 năm 2024, Prisma Finance bị một cuộc tấn công cho vay nhanh và dự án bị thiệt hại khoảng 12,21 triệu USD.

SharkTeam đã tiến hành phân tích kỹ thuật về sự cố này và tóm tắt các biện pháp phòng ngừa bảo mật. Chúng tôi hy vọng rằng các dự án tiếp theo có thể học hỏi từ điều này và cùng nhau xây dựng đường dây bảo mật cho ngành công nghiệp blockchain.

Kẻ tấn công 1: 0x7e39e3b3ff7adef2613d5cc49558eab74b9a4202 (viết tắt là 0x7e39)

Hợp đồng tấn công 1: 0xd996073019c74b2fb94ead236e32032405bc027c (viết tắt là 0xd996)

Kẻ tấn công 2: 0x7fe83f45e0f53651b3ed9650d2a2c67d8855e385

Hợp đồng tấn công 2: 0x4148310fe4544e82f176570c6c7b649290a90e17

Hợp đồng mục tiêu bị tấn công: 0x1cc79f3f47bfc060b6f761fcd1afc6d399a968b6

Cuộc tấn công bao gồm 16 giao dịch, lấy giao dịch tấn công đầu tiên làm ví dụ:

0x00c503b595946bccaea3d58025b5f9b3726177bbdc9674e634244135282116c7

Quá trình tấn công như sau:

1. Đọc tất cả tài sản thế chấp và nợ trong hợp đồng mục tiêu tại địa chỉ 0x56a201b872b50bbdee0021ed4d1bb36359d291ed (viết tắt là 0x56a2).

Kết quả trả về như sau:

Kết quả trả về như sau:

Địa chỉ 0x56a2 có tổng số 1.745 wstETH làm tài sản thế chấp trong hợp đồng mục tiêu và tổng số nợ là 1.442.100 mkUSD.

2. Kẻ tấn công 0x7e39 gọi hàm flashLoan trong hợp đồng nợ mkUSD thông qua hợp đồng tấn công 0xd996.

Bộ thu tham số được đặt thành MigrateTroveZap và số tiền là tất cả khoản nợ được truy vấn ở trên.

Sau đó, hàm onFlashLoan trong bộ thu (ở đây là MigrateTroveZap) được gọi trong hàm flashLoan.

Chức năng onFlashLoan trước tiên sẽ hoàn trả tất cả các khoản nợ ban đầu thông qua các khoản vay nhanh, rút ​​tài sản thế chấp cho người nhận, sau đó người nhận thế chấp lại một lượng tài sản thế chấp nhất định và vay một số nợ nhất định. Có hai chức năng chính được gọi là:

(1) chức năng closeTrove, trả nợ và rút toàn bộ tài sản thế chấp (1745.08 swtETH) từ troverManager đến người nhận (ở đây là hợp đồng MigrateTroveZap);

(2) chức năng openTrove, người nhận sẽ thế chấp lại 463,18 wstETH vào troverManager và gánh khoản nợ 1.443.598 mkUSD.

Có thể thấy từ dữ liệu trên rằng sau khi chức năng flashLoan được thực thi, tài sản thế chấp được trích xuất từ ​​troverManager và thuộc địa chỉ 0x56a2 vẫn được giữ lại trong bộ thu và số tiền xấp xỉ 1745,08 – 463,18 = 1281,90 wstETH.

3. Kẻ tấn công 0x7e39 đã vay 1 wstETH từ Balancer thông qua khoản vay nhanh bằng cách tấn công hợp đồng 0xd996.

Sau đó, thế chấp 1 wstETH và vay khoản nợ 2000 mkUSD, cộng với phí, tổng số nợ là 2200 mkUSD.

4. Tương tự bước 2, gọi hàm flashLoan trong hợp đồng nợ mkUSD, ở đây bộ nhận tham số vẫn được đặt là MigrateTroveZap, số tiền là toàn bộ số nợ sau khi cam kết 1 wstETH tức là 2000 mkUSD. Trong hàm FlashLoan, hàm onFlashLoan trong bộ thu được gọi, sau đó các hàm closeTrove và openTrove được gọi.

Tuy nhiên, tài khoản tham số trong hàm closeTrove và openTrove ở đây không còn là địa chỉ 0x56a2 ở trên mà là hợp đồng tấn công 0xd996 cam kết 1 wstETH.

(1) chức năng closeTrove, trả nợ và rút toàn bộ tài sản thế chấp (1 swtETH) từ troverManager về người nhận (đây vẫn là hợp đồng MigrateTroveZap). Tại thời điểm này, có 1281,90 +1=1282,90 wstETH trong bộ thu.

(2) chức năng openTrove, người nhận sẽ thế chấp lại 1282,80 wstETH (gần như tất cả) vào troverManager và gánh khoản nợ 2001,8 mkUSD.

Trên thực tế, 1281,80 wstETH trong tài sản thế chấp ở đây không thuộc về hợp đồng tấn công 0xd996 mà thuộc về địa chỉ trên 0x56a2.

5. Cuối cùng, kẻ tấn công 0x7e39 đã gọi riêng hàm closeTrove thông qua hợp đồng tấn công 0xd996 và trích xuất 1282,80 wstETH đã thế chấp vào hợp đồng tấn công 0xd996.

Sau khi hoàn trả khoản vay nhanh, kẻ tấn công vẫn kiếm được lợi nhuận 1281,80 wstETH, tương đương khoảng 2,30 triệu USD.

Nguyên nhân sâu xa của sự cố này là do hợp đồng dự án có tính năng xác minh logic và quyền, cho phép kẻ tấn công lợi dụng lỗ hổng này để lấy tài sản cầm cố từ các địa chỉ tài khoản khác.

WstETH cuối cùng mà kẻ tấn công thu được là tài sản thế chấp của địa chỉ ban đầu 0x56a2 trong hợp đồng troverManager.Thông qua chức năng flashLoan của hợp đồng mkUSD, hắn đã tùy chỉnh các tham số của hàm onFlashLoan trong hợp đồng MigrateTroveZap, sử dụng MigrateTroveZap để chuyển đổi nó thành tài sản thế chấp của hợp đồng tấn công, sau đó sử dụng nó để tấn công hợp đồng. Giải nén nó.

Kẻ tấn công thao túng việc thế chấp và rút các địa chỉ tài khoản khác thông qua hàm flashLoan trong hợp đồng mkUSD và hàm onFlashLoan trong hợp đồng MigrateTroveZap.

(1) Hàm flashLoan thiếu xác minh địa chỉ người nhận tham số, vì người nhận trong hàm onFlashLoan sẽ nhận được tất cả tài sản thế chấp của tài khoản nên người nhận cần được xác minh là đáng tin cậy;

(1) Hàm flashLoan thiếu xác minh địa chỉ người nhận tham số, vì người nhận trong hàm onFlashLoan sẽ nhận được tất cả tài sản thế chấp của tài khoản nên người nhận cần được xác minh là đáng tin cậy;

(2) Chức năng onFlashLoan thiếu xác minh địa chỉ tài khoản, vì chức năng closeTrove và openTrove đều là tài sản của tài khoản đang được vận hành nên cần bổ sung xác minh quyền cho tài khoản;

Ngoài việc xác minh hai tham số địa chỉ này, cũng có thể cần phải xác minh các tham số số lượng và logic triển khai trong hàm flashLoan.

Để đối phó với cuộc tấn công này, chúng ta nên tuân theo các biện pháp phòng ngừa sau trong quá trình phát triển:

(1) Trong quá trình thiết kế và phát triển dự án, phải duy trì tính toàn vẹn và chặt chẽ của logic, đặc biệt khi liên quan đến việc chuyển giao tài sản, đồng thời cần tăng cường xác minh quyền nghiên cứu chức năng để đảm bảo rằng người gọi , hàm gọi và các tham số hàm, logic truyền, v.v. đều an toàn và đáng tin cậy.

(2) Trước khi dự án đi vào hoạt động, cần tìm nhóm kiểm toán bên thứ ba chuyên nghiệp để thực hiện kiểm toán hợp đồng.

Tầm nhìn của SharkTeam là bảo vệ thế giới Web3. Nhóm bao gồm các chuyên gia bảo mật giàu kinh nghiệm và các nhà nghiên cứu cấp cao từ khắp nơi trên thế giới, những người thành thạo lý thuyết cơ bản về blockchain và hợp đồng thông minh. Nó cung cấp các dịch vụ bao gồm nhận dạng và ngăn chặn rủi ro, kiểm toán hợp đồng thông minh, KYT/AML, phân tích trên chuỗi, v.v. và đã tạo ra nền tảng chặn và nhận dạng rủi ro thông minh trên chuỗi ChainAegis, có thể chống lại Mối đe dọa liên tục nâng cao một cách hiệu quả (Nâng cao). Persistent Threat) trong thế giới Web3. , APT). Nó đã thiết lập mối quan hệ hợp tác lâu dài với những người chơi chủ chốt trong các lĩnh vực khác nhau của hệ sinh thái Web3, như Polkadot, Moonbeam, Polygon, Sui, OKX, imToken, Collab.Land, v.v.

Trang web chính thức: https://www.sharkteam.org

Twitter: https://twitter.com/sharkteamorg

Điện tín: https://t.me/sharkteamorg

Bất hòa: https://discord.gg/jGH9xXCjDZ

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.

  • Mạng chính FusnChain sắp ra mắt: blockchain công khai đầu tiên trên thế giới dành cho thực thi tài chính, mở ra cơ sở hạ tầng thực thi tài chính trên chuỗi cho kỷ nguyên PayFi.

    Một sự thay đổi mang tính lịch sử sắp diễn ra trong bối cảnh cơ sở hạ tầng Web3 toàn cầu. FusnChain, mạng lưới chính thức chuyên kết nối thế giới tiền điện tử với dòng tiền thực tế, đã chính thức thông báo về việc sắp ra mắt mạng chính (mainnet) của mình.

  • 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.