Gần đây, vụ trộm 220 triệu USD của giao thức Cetus đã gây chấn động thế giới tiền điện tử, thu hút sự bàn luận từ nhiều phía. Đội ngũ an ninh mạng Slow Mist cũng đã công bố báo cáo đầy đủ về sự kiện này, và đội ngũ Slow Mist cho biết cuộc tấn công này đã chứng minh sức mạnh của lỗ hổng tràn số. Kẻ tấn công đã chọn các tham số cụ thể thông qua tính toán chính xác, lợi dụng sự thiếu sót của hàm checked_shlw, để có được thanh khoản trị giá hàng tỷ với chi phí chỉ 1 Token. Đây là một cuộc tấn công toán học cực kỳ tinh vi, và khuyến nghị các nhà phát triển cần kiểm tra chặt chẽ tất cả các điều kiện biên của các hàm toán học trong việc phát triển hợp đồng thông minh.
Slow Mist: Sự kiện cốt lõi là lỗ hổng kiểm tra tràn.
Đội ngũ Slow Mist cho biết rằng cốt lõi của sự kiện lần này là kẻ tấn công đã xây dựng các tham số một cách tỉ mỉ, khiến cho việc tràn số xảy ra nhưng vẫn có thể né tránh phát hiện, cuối cùng với một số tiền Token rất nhỏ đã có thể đổi lấy tài sản thanh khoản khổng lồ. Điều này nhất quán với phân tích trước đó của @neeksec.
(Từ lỗ hổng giao thức đến biện chứng phi tập trung: Giải thích chi tiết về sự kiện Cetus, Liệu an toàn của ngôn ngữ MOVE có bị lung lay không? )
Kẻ tấn công trước tiên đã mượn 10,020,000 haSUI thông qua vay chớp nhoáng, nhanh chóng khiến giá trong bể haSUI/SUI giảm 99.9%. Sau đó, họ thêm thanh khoản trong khoảng giá từ tick 300000 đến 300200, với độ rộng chỉ 1%.
Tiếp theo là lỗ hổng quan trọng của sự kiện, kẻ tấn công tuyên bố đã thêm khối lượng thanh khoản ( vượt quá 10 mũ 27 ), nhưng do lỗi mã hóa của hàm checked_shlw, hợp đồng chỉ tính phí cho họ 1 đồng haSUI.
Công thức tính toán thanh khoản cần thiết (Nguồn: Chậm Sương Công Nghệ)
Kẻ tấn công Slow Mist đã có thể đổi 1 Token để lấy được một lượng lớn Thanh khoản. Nguyên nhân cốt lõi nằm ở việc hàm get_delta_a có lỗ hổng trong việc kiểm tra tràn số trong checked_shlw. Kẻ tấn công đã lợi dụng điểm này, khiến hệ thống tính toán sai lệch nghiêm trọng về số lượng haSUI thực tế cần thêm vào. Do tràn số không được phát hiện, hệ thống đã đánh giá sai số lượng haSUI cần thiết, dẫn đến việc kẻ tấn công chỉ cần một lượng rất ít Token đã có thể quy đổi ra một lượng lớn tài sản thanh khoản.
Bất kỳ giá trị đầu vào nào nhỏ hơn 0xffffffffffffffff << 192 đều bỏ qua kiểm tra tràn. Tuy nhiên, khi các giá trị này được dịch chuyển sang trái 64 bit, kết quả vượt quá biểu diễn của u256 và siêu dữ liệu bit cao bị cắt bớt, dẫn đến kết quả nhỏ hơn nhiều so với giá trị lý thuyết. Do đó, hệ thống đánh giá thấp số lượng haSUI cần thiết trong các tính toán tiếp theo.
Xuất hiện mã lỗi ( từ: Slow Mist Technology )
Những kẻ tấn công đã loại bỏ thanh khoản trong ba giai đoạn và thu được tổng cộng 20,04 triệu haSUI và hơn 5,76 triệu SUI. Cuối cùng, kẻ tấn công đã trả lại khoản vay nhanh, cuối cùng đã tạo ra lợi nhuận ròng hơn 230 triệu đô la.
Cetus đã sửa mã
Sau đó, Cetus đã sửa mã, bao gồm:
Sửa 0xffffffffffffffff << 192 thành ngưỡng đúng 1 << 192.
Sửa đổi điều kiện đánh giá từ n > mask thành n >= mask.
Đảm bảo rằng khi việc dịch sang trái 64 bit có thể gây ra tràn, có thể phát hiện chính xác và trả về cờ tràn.
Hàm checked_shlw đã được sửa chữa (Nguồn: Slow Mist Technology) Nhóm Slow Mist: Các nhà phát triển nên xác minh nghiêm ngặt tất cả các điều kiện biên của các hàm toán học.
Slow Mist cho biết kẻ tấn công đã chuẩn bị sẵn phí gas từ hai ngày trước, và đã có một lần thử nghiệm trước khi tấn công, nhưng thất bại. Hiện tại, số tiền trong địa chỉ Sui của kẻ tấn công đã bị đóng băng, và địa chỉ EVM cũng đã bị Slow Mist đưa vào danh sách đen để theo dõi.
Nhóm Slow Mist cho biết cuộc tấn công này đã thể hiện sức mạnh của lỗ hổng tràn số học. Kẻ tấn công đã chọn các tham số cụ thể thông qua tính toán chính xác, lợi dụng khiếm khuyết của hàm checked_shlw để đạt được thanh khoản trị giá hàng tỷ với chi phí chỉ 1 Token. Đây là một cuộc tấn công toán học cực kỳ tinh vi, nhóm bảo mật Slow Mist khuyến nghị các nhà phát triển nên kiểm tra nghiêm ngặt tất cả các điều kiện biên của các hàm toán học trong phát triển hợp đồng thông minh.
Bài viết này Thế giới tiền điện tử có âm thầm qua mặt? Báo cáo sự kiện SlowMist: Hacker đã lợi dụng lỗ hổng mã để rửa tiền 2,2 triệu USD. Xuất hiện lần đầu trên Chain News ABMedia.
Nội dung chỉ mang tính chất tham khảo, không phải là lời chào mời hay đề nghị. Không cung cấp tư vấn về đầu tư, thuế hoặc pháp lý. Xem Tuyên bố miễn trừ trách nhiệm để biết thêm thông tin về rủi ro.
Thế giới tiền điện tử phiên bản lừa gạt? Báo cáo sự kiện SlowMist: Hacker đã lợi dụng lỗ hổng mã để cướp 2,2 triệu đô la Cetus như thế nào
Gần đây, vụ trộm 220 triệu USD của giao thức Cetus đã gây chấn động thế giới tiền điện tử, thu hút sự bàn luận từ nhiều phía. Đội ngũ an ninh mạng Slow Mist cũng đã công bố báo cáo đầy đủ về sự kiện này, và đội ngũ Slow Mist cho biết cuộc tấn công này đã chứng minh sức mạnh của lỗ hổng tràn số. Kẻ tấn công đã chọn các tham số cụ thể thông qua tính toán chính xác, lợi dụng sự thiếu sót của hàm checked_shlw, để có được thanh khoản trị giá hàng tỷ với chi phí chỉ 1 Token. Đây là một cuộc tấn công toán học cực kỳ tinh vi, và khuyến nghị các nhà phát triển cần kiểm tra chặt chẽ tất cả các điều kiện biên của các hàm toán học trong việc phát triển hợp đồng thông minh.
Slow Mist: Sự kiện cốt lõi là lỗ hổng kiểm tra tràn.
Đội ngũ Slow Mist cho biết rằng cốt lõi của sự kiện lần này là kẻ tấn công đã xây dựng các tham số một cách tỉ mỉ, khiến cho việc tràn số xảy ra nhưng vẫn có thể né tránh phát hiện, cuối cùng với một số tiền Token rất nhỏ đã có thể đổi lấy tài sản thanh khoản khổng lồ. Điều này nhất quán với phân tích trước đó của @neeksec.
(Từ lỗ hổng giao thức đến biện chứng phi tập trung: Giải thích chi tiết về sự kiện Cetus, Liệu an toàn của ngôn ngữ MOVE có bị lung lay không? )
Kẻ tấn công trước tiên đã mượn 10,020,000 haSUI thông qua vay chớp nhoáng, nhanh chóng khiến giá trong bể haSUI/SUI giảm 99.9%. Sau đó, họ thêm thanh khoản trong khoảng giá từ tick 300000 đến 300200, với độ rộng chỉ 1%.
Tiếp theo là lỗ hổng quan trọng của sự kiện, kẻ tấn công tuyên bố đã thêm khối lượng thanh khoản ( vượt quá 10 mũ 27 ), nhưng do lỗi mã hóa của hàm checked_shlw, hợp đồng chỉ tính phí cho họ 1 đồng haSUI.
Công thức tính toán thanh khoản cần thiết (Nguồn: Chậm Sương Công Nghệ)
Kẻ tấn công Slow Mist đã có thể đổi 1 Token để lấy được một lượng lớn Thanh khoản. Nguyên nhân cốt lõi nằm ở việc hàm get_delta_a có lỗ hổng trong việc kiểm tra tràn số trong checked_shlw. Kẻ tấn công đã lợi dụng điểm này, khiến hệ thống tính toán sai lệch nghiêm trọng về số lượng haSUI thực tế cần thêm vào. Do tràn số không được phát hiện, hệ thống đã đánh giá sai số lượng haSUI cần thiết, dẫn đến việc kẻ tấn công chỉ cần một lượng rất ít Token đã có thể quy đổi ra một lượng lớn tài sản thanh khoản.
Bất kỳ giá trị đầu vào nào nhỏ hơn 0xffffffffffffffff << 192 đều bỏ qua kiểm tra tràn. Tuy nhiên, khi các giá trị này được dịch chuyển sang trái 64 bit, kết quả vượt quá biểu diễn của u256 và siêu dữ liệu bit cao bị cắt bớt, dẫn đến kết quả nhỏ hơn nhiều so với giá trị lý thuyết. Do đó, hệ thống đánh giá thấp số lượng haSUI cần thiết trong các tính toán tiếp theo.
Xuất hiện mã lỗi ( từ: Slow Mist Technology )
Những kẻ tấn công đã loại bỏ thanh khoản trong ba giai đoạn và thu được tổng cộng 20,04 triệu haSUI và hơn 5,76 triệu SUI. Cuối cùng, kẻ tấn công đã trả lại khoản vay nhanh, cuối cùng đã tạo ra lợi nhuận ròng hơn 230 triệu đô la.
Cetus đã sửa mã
Sau đó, Cetus đã sửa mã, bao gồm:
Sửa 0xffffffffffffffff << 192 thành ngưỡng đúng 1 << 192.
Sửa đổi điều kiện đánh giá từ n > mask thành n >= mask.
Đảm bảo rằng khi việc dịch sang trái 64 bit có thể gây ra tràn, có thể phát hiện chính xác và trả về cờ tràn.
Hàm checked_shlw đã được sửa chữa (Nguồn: Slow Mist Technology) Nhóm Slow Mist: Các nhà phát triển nên xác minh nghiêm ngặt tất cả các điều kiện biên của các hàm toán học.
Slow Mist cho biết kẻ tấn công đã chuẩn bị sẵn phí gas từ hai ngày trước, và đã có một lần thử nghiệm trước khi tấn công, nhưng thất bại. Hiện tại, số tiền trong địa chỉ Sui của kẻ tấn công đã bị đóng băng, và địa chỉ EVM cũng đã bị Slow Mist đưa vào danh sách đen để theo dõi.
Nhóm Slow Mist cho biết cuộc tấn công này đã thể hiện sức mạnh của lỗ hổng tràn số học. Kẻ tấn công đã chọn các tham số cụ thể thông qua tính toán chính xác, lợi dụng khiếm khuyết của hàm checked_shlw để đạt được thanh khoản trị giá hàng tỷ với chi phí chỉ 1 Token. Đây là một cuộc tấn công toán học cực kỳ tinh vi, nhóm bảo mật Slow Mist khuyến nghị các nhà phát triển nên kiểm tra nghiêm ngặt tất cả các điều kiện biên của các hàm toán học trong phát triển hợp đồng thông minh.
Bài viết này Thế giới tiền điện tử có âm thầm qua mặt? Báo cáo sự kiện SlowMist: Hacker đã lợi dụng lỗ hổng mã để rửa tiền 2,2 triệu USD. Xuất hiện lần đầu trên Chain News ABMedia.