BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Trang chủ
AI AI
Tin nhanh
Bài viết
Sự kiện
BlockBeats Pro
Thêm
Thông tin tài chính
Chuyên đề
Hệ sinh thái chuỗi khối
Mục nhập
Podcast
Data
OPRR
Partnered With:

Sương mù chậm: Phân tích bị tấn công Furucombo

Đọc bài viết này mất 12 phút
Để tránh việc ủy quyền quá mức, bảo mật DeFi còn một chặng đường dài phía trước.
Nguồn gốc: Planet Daily


慢雾:Furucombo被黑分析


Theo Lianwen News , dự án DeFi nổi tiếng Furucombo đã bị hack, gây thiệt hại hơn 15 triệu đô la Mỹ. Slow MistNhóm bảo mật đã can thiệp ngay lập tức để phân tích và chia sẻ thông tin chi tiết về cuộc tấn công với mọi người.


Phân tích chi tiết cuộc tấn công


Hợp đồng được đề cập lần này nằm trong hợp đồng đại lý của chính Furucombo. Toàn bộ quá trình tấn công rất đơn giản. Kẻ tấn công đặt địa chỉ logic của Proxy AaveV2 của Furucombo, khiến tất cả lệnh gọi logic tiếp theo thông qua hợp đồng proxy Furucombo được chuyển tiếp đến hợp đồng độc hại của chính kẻ tấn công, dẫn đến việc đánh cắp bất kỳ khoản tiền nào.


慢雾:Furucombo被黑分析


Nhưng nếu mọi việc đơn giản như vậy thì Việc phân tích này không có gì đáng nói. Vấn đề phức tạp hơn nhiều so với tưởng tượng.


Như trong hình trên, điểm truy cập của kẻ tấn công là hàm batchExec của Furucombo. Trước tiên chúng ta hãy phân tích hàm batchExec:


慢雾:Furucombo被黑分析


Trên đây là cách triển khai cụ thể hàm batchExec của hợp đồng Proxy Furucombo. Các hợp đồng _preProcess và _postProcess lần lượt thực hiện một số xử lý dữ liệu trước và sau cuộc gọi. Chúng không liên quan đến logic cuộc gọi cụ thể và có thể bị bỏ qua tại đây. Chúng tôi chủ yếu quan sát hàm _execs cốt lõi:


慢雾:Furucombo被黑分析


Qua phân tích mã execs, không khó để nhận ra logic chính của hàm là kiểm tra dữ liệu trong mảng configs và thực hiện một số xử lý trên dữ liệu dựa trên dữ liệu trong mảng configs. Tuy nhiên, nhìn lại dữ liệu cuộc gọi của kẻ tấn công ở trên, không khó nhận thấy trong dữ liệu cuộc gọi của kẻ tấn công, dữ liệu configs là địa chỉ 0:


慢雾:Furucombo被黑分析


Có một mẹo ở đây. Vì địa chỉ 0 là địa chỉ EOA nên tất cả lệnh gọi hàm tới địa chỉ EOA sẽ thành công, nhưng sẽ không có kết quả nào được trả về. Kết hợp với thủ thuật này, phần dữ liệu config trong hàm execs có thể tạm thời bị bỏ qua. Xem trực tiếp hàm _exec cốt lõi cuối cùng:


慢雾:Furucombo被黑分析


_exec cũng rất đơn giản, sau khi xác minh địa chỉ _to, dữ liệu sẽ được chuyển tiếp trực tiếp đến địa chỉ _to được chỉ định. Thông qua phân tích giao dịch tấn công, chúng ta có thể thấy rằng địa chỉ _to này thực sự là một địa chỉ hợp pháp được chỉ định chính thức.


慢雾:Furucombo被黑分析


Bước cuối cùng là gọi _to Địa chỉ , là chức năng khởi tạo được chỉ định chính thức của hợp đồng Proxy AaveV2, đặt địa chỉ độc hại của kẻ tấn công thành địa chỉ logic của hợp đồng Proxy AaveV2. Qua phân tích hợp đồng Furucombo, có thể thấy rằng không có điểm bảo mật nghiêm trọng nào trong toàn bộ quá trình gọi điện và địa chỉ gọi điện cũng đã được đưa vào danh sách trắng. Khi đó vấn đề chỉ có thể nằm ở logic proxy tương ứng được gọi, đó là hợp đồng Proxy AaveV2.


Chúng tôi trực tiếp phân tích logic chức năng khởi tạo của hợp đồng Proxy AaveV2:


慢雾:Furucombo被黑分析


Bạn có thể thấy rằng hàm khởi tạo là một hàm công khai và nó kiểm tra xem _implpentation có bằng 0 hay không địa chỉ ở đầu, nếu là địa chỉ 0 thì sẽ xảy ra lỗi. Mục đích của việc kiểm tra này thực ra là để kiểm tra xem _implpentation đã được đặt chưa, nếu đã đặt thì không thể đặt lại. Dựa trên cài đặt này, không khó để nhận ra rằng hàm khởi tạo chỉ có thể được gọi một lần. Trừ khi Proxy AaveV2 chưa bao giờ đặt _implpentation, cuộc gọi này sẽ không thành công. Có đúng là Furucombo chưa đặt _implpentation tương ứng không? Với câu hỏi này, chúng tôi đã kiểm tra các thay đổi trạng thái trong giao dịch. Như sau:


慢雾:Furucombo被黑分析


Có thể thấy, nội dung của vị trí lưu trữ 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc đã bị thay đổi trong giao dịch và nội dung bằng văn bản là địa chỉ hợp đồng độc hại của chính kẻ tấn công  0x86765dde9304bea32f65330d266155c4fa0c4f04.


Và 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc là địa chỉ lưu trữ của dữ liệu _implpentation.


慢雾:Furucombo被黑分析


Nói cách khác, cài đặt chính thức có chưa bao giờ Chuyển địa chỉ _immplpentation của hợp đồng Proxy AaveV2 đã cho phép kẻ tấn công lợi dụng lỗ hổng này và gây tổn thất tài sản Furucombo.


Tóm tắt


Qua phân tích toàn bộ sự việc,Tai nạn của Furucombo không thuộc phạm vi lỗ hổng bảo mật. Nguyên nhân chính là do quan chức này đã thêm hợp đồng AaveV2 Proxy không được kích hoạt vào danh sách trắng của chính mình và hợp đồng Proxy AaveV2 chưa được khởi tạo, tạo điều kiện cho kẻ tấn công lợi dụng.


Đề xuất


Hiện tại, do Furucombo bị tấn công nên bất kỳ người dùng nào ủy quyền mã thông báo cho hợp đồng Furucombo (0x17e8ca1b4798b97602895f63206afcd1fc90ca5f) sẽ phải đối mặt với nguy cơ mất tiền.


Nhóm bảo mật SlowMist khuyến nghị người dùng đã tương tác với Furucombo hãy kiểm tra xem các mã thông báo liên quan đã được ủy quyền cho hợp đồng Furucombo hay chưa. Nếu được ủy quyền, việc ủy quyền liên quan phải được thu hồi kịp thời để tránh tổn thất thêm.


Liên kết tham chiếu:


Địa chỉ kiểm tra ủy quyền mã thông báo:https://approved.zone/


Giao dịch tấn công:


https://ethtx.info/mainnet/0x6a14869266a1dcf3f51b102f44b7af7d0a56f1766e5b1908ac80a6a23dbaf449


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

举报 Báo lỗi/Báo cáo
Chọn thư viện
Thêm mới thư viện
Hủy
Hoàn thành
Thêm mới thư viện
Chỉ mình tôi có thể nhìn thấy
Công khai
Lưu
Báo lỗi/Báo cáo
Gửi