Thơi gian đọc: 5 phút
Thế giới của Web3 là thế giới của các giao thức và tiêu chuẩn. Bạn chắc chắn đã bắt gặp một số tiêu chuẩn ERC. Một số tiêu chuẩn ERC nổi tiếng nhất là 20 và 721, tương ứng dành cho mã thông báo và NFT. Nhưng Web3 không chỉ giới hạn ở đó.
Chúng tôi thấy các bản cập nhật và nâng cấp thường xuyên trong Web3. Một trong những bản nâng cấp mới nhất là ERC 4337, được triển khai trên Ethereum Mainnet vào tháng 2023 năm 4337. Không phải mọi bản cập nhật đều thành công trong một lần; điều này cũng đúng với ERC 4337. Trong blog này, chúng ta sẽ tìm hiểu về các lỗ hổng liên quan đến phần Thao tác người dùng của tiêu chuẩn và tác động của chúng. Trước tiên, hãy bắt đầu với phần giới thiệu ngắn gọn về tiêu chuẩn ERC XNUMX.
ERC 4337 là gì?
Không giống như mạng của Bitcoin, Ethereum hỗ trợ các hợp đồng thông minh trên chuỗi, khiến Ethereum có hai loại tài khoản khác nhau, một tài khoản giao dịch hoặc tài khoản hoạt động. Thêm vào đó, hợp đồng thông minh có không gian riêng, gần giống như một tài khoản. Hai loại tài khoản này trong Ethereum có các chức năng riêng.
Hầu hết các ví hoạt động với Ethereum là của EOA, có nghĩa là tài khoản của người dùng, không phải tài khoản hợp đồng thông minh. Các loại tài khoản này có những hạn chế riêng. Một hạn chế bao gồm sự tin cậy duy nhất của người dùng vào các khóa riêng tư để truy cập tài khoản và yêu cầu tất cả chữ ký cho các giao dịch. Những hạn chế này đã thúc đẩy sự ra đời của ERC 4337.
ERC 4337 cố gắng cung cấp tính trừu tượng của tài khoản bằng cách kết hợp những tính năng tốt nhất của hai loại tài khoản. Có, tài khoản hợp đồng thông minh và EOA. Điều này có thể thực hiện được nhờ một hợp đồng duy nhất có thể giao dịch mã thông báo và tạo hợp đồng đồng thời và ERC 4337 là một tiêu chuẩn hỗ trợ tiến bộ mới tuyệt vời này.
Lỗ hổng đóng gói UserOperation?
Mọi thứ về tiêu chuẩn và dự án này đều tuyệt vời, nhưng điều gì đã xảy ra? Chà, đã xảy ra sự cố triển khai dẫn đến các giá trị băm không nhất quán dựa trên phương thức được sử dụng để ký. Điều này dẫn đến xung đột thứ tự, đặc biệt là các giá trị băm khác nhau cho cùng một Hoạt động người dùng và các giá trị băm xung đột cho các Hoạt động người dùng khác nhau.
Các khu vực bị ảnh hưởng được giới hạn ở hai lỗ hổng, Lỗ hổng đóng gói EntryPoint và Lỗ hổng đóng gói VerifyingPaymaster. Thêm về điều đó sau. Trước tiên chúng ta hãy tìm hiểu chung, sau đó chúng ta sẽ tìm hiểu về chúng một cách riêng lẻ.
Hãy xem UserOperation.sol: -
Bạn thấy tham số UserOperation, một Calldata, được truyền dưới dạng đối số cho hàm gói. Hãy khám phá cấu trúc: -
Đây là những trường mà cấu trúc UserOperation mang theo. Để sao chép phần lớn Calldata này vào bộ nhớ, các đoạn mã sử dụng hợp ngữ. Một số phương pháp của hợp đồng dự định nắm bắt tất cả các trường của UserOperation, bao gồm các trường có kích thước thay đổi, còn được gọi là trường động trong mã hóa ABI. Ví dụ: mã hóa động trong cấu trúc này là 'initCode', 'callData' và 'paymasterAndData'.
Một số phương pháp không thể bao gồm 'paymasterAndData' vì trường đó chưa được xác định hoặc khai báo. Các phương thức sử dụng trường tiện lợi '.offset' được cung cấp cho các kiểu dữ liệu động để thực hiện điều đó. Tuy nhiên, các hợp đồng sử dụng các đối số được mã hóa ABI không xác thực thứ tự xác định các trường và hiệu lực của phần bù. Có thể xây dựng một biểu diễn hợp lệ cho các hoạt động của người dùng trong Calldata với các thuộc tính băm bất thường.
Lỗ hổng đóng gói EntryPoint
Sự cố với UserOperation cũng ảnh hưởng đến một số phần khác của tiêu chuẩn, lỗ hổng Đóng gói EntryPoint là một trong số đó. Khi một sơ đồ băm khác được sử dụng giữa EntryPoint và hợp đồng ví hoặc sử dụng mã hóa thao tác người dùng không chuẩn, chúng tôi sẽ thấy sự khác biệt của hàm băm.
Rủi ro xuất hiện dưới dạng EntryPoint. Giờ đây, một hoạt động của một người dùng có thể được biểu thị bằng nhiều 'băm op của người dùng' và cùng một 'băm op của người dùng' có thể đại diện cho nhiều hoạt động của người dùng. Bây giờ điều này có thể tạo ra một số hiệu ứng không mong muốn. Hãy thảo luận về tác động mà nó có thể có.
Erc 4337 vẫn đang ở giai đoạn rất sớm vì nó mới được phát hành vào tháng XNUMX, vì vậy tác động của các lỗ hổng này vẫn chưa được biết đầy đủ. Thật khó để mô tả tác động tiềm năng từ góc nhìn của một con chim. Hơn nữa, tác động phụ thuộc vào việc triển khai các gói, bộ lập chỉ mục, trình khám phá hoạt động của người dùng và các dịch vụ ngoại tuyến khác. Hãy xem xét một số vấn đề mà lỗ hổng này gây ra.
- Điều này có thể gây ra trải nghiệm khó hiểu cho người dùng vì hàm băm hoạt động của người dùng có thể thay đổi giữa thời gian gửi và thời gian đưa vào. Hầu hết các ví đều không biết hiện tượng này, vì vậy chúng có thể không tính đến sự khác biệt đó.
- Các ví có thể được thay đổi và thiết kế để cố ý tránh lập chỉ mục bằng cách đặt tất cả các hàm băm hoạt động của người dùng giống nhau.
- Chúng ta có thể thấy việc xử lý sai dữ liệu và khóa nếu một dịch vụ ngoài chuỗi giám sát việc đưa vào hoạt động của người dùng bỏ lỡ việc đưa vào một hoạt động của người dùng nhất định.
Xác minh lỗ hổng đóng gói Paymaster
Không ai thích đặt hàng một thứ gì đó từ mua sắm trực tuyến và nhận được một sản phẩm hoàn toàn khác. Trên Web3 cũng vậy nhưng lỗ hổng này làm suy giảm trải nghiệm người dùng. Người dùng có thể đã thay đổi hoặc thay đổi nội dung giữa thời điểm ký và đưa vào chuỗi. Và lý do điều này xảy ra là do hai hoạt động của người dùng khác nhau trả về cùng một hàm băm từ hàm 'VerifyingPaymaster.getHash()'.
Hàm VerifyingPaymaster.getHash() nhận một vài đối số như 'UserOperation', là một cấu trúc, 'validUnitl', một giá trị uint48 và một giá trị uint48 khác hợp lệSau. Vấn đề về nội dung khác nhau giữa thời gian ký và thời gian đưa vào ảnh hưởng đến trải nghiệm người dùng và bảo mật tổng thể. Hãy thảo luận về một số mối quan tâm mà nó gây ra.
- Người ký ngoại tuyến đăng nhập ở định dạng được mã hóa ABI sau khi nhận được hoạt động của người dùng hoặc người ký có tích hợp hợp đồng để chuẩn bị dữ liệu cho chữ ký trở nên dễ bị tấn công.
- Hàm băm có thể được sửa đổi để bao gồm ít phần tử hơn dự kiến, điều này có thể dẫn đến một số trường tĩnh, như initCode, v.v., bị loại khỏi hàm băm. Điều này có thể dẫn đến việc sử dụng khác với mục đích dành cho chữ ký tài trợ của người quản lý thanh toán.
- Chúng ta có thể thấy sự vi phạm và bỏ qua các quy tắc bằng cách thay đổi userOp.initCode và userOp.callData sau khi nhận được chữ ký. Điều này sẽ cho phép mã thông báo gốc của người quản lý thanh toán được sử dụng cho các mục đích khác ngoài việc đúc NFT không gas.
Kết luận
Với sự tiến bộ và phát triển không ngừng, chúng ta sẽ chứng kiến nhiều điều tuyệt vời và ERC 4337 là một trong số đó. Mặc dù việc phát triển và nâng cao bảo mật là điều mà chúng tôi không bao giờ có thể thỏa hiệp. Thật tuyệt vời khi lưu ý rằng các lỗ hổng được tìm thấy trong tiêu chuẩn nhanh như thế nào, đồng thời việc nghiên cứu và phát triển liên tục đang được thực hiện để đảm bảo an toàn cho nó.
Điều quan trọng cần lưu ý là ngay cả một số tổ chức lớn nhất và nổi tiếng nhất đang xây dựng Web3 cũng có thể mắc các lỗi liên quan đến bảo mật và chắc chắn các giao thức khác cũng mắc phải chúng. Sự gia tăng liên tục trong sự cố web3 trong vài năm gần đây là điều hiển nhiên.
Giải pháp một cửa để bảo vệ bạn, người dùng và giao thức của bạn khỏi các mối đe dọa bảo mật như vậy là tiến hành kiểm tra. Chúng tôi QuillAudits, là một trong những nhà cung cấp dịch vụ hàng đầu về kiểm tra hợp đồng thông minh và bảo mật chuỗi khối, Hãy truy cập trang web của chúng tôi để tìm hiểu thêm và đảm bảo an toàn cho dự án của bạn. Và hãy theo dõi để thưởng thức nhiều blog thông tin như vậy
34 Lượt xem
- Phân phối nội dung và PR được hỗ trợ bởi SEO. Được khuếch đại ngay hôm nay.
- Platoblockchain. Web3 Metaverse Intelligence. Khuếch đại kiến thức. Truy cập Tại đây.
- Đúc kết tương lai với Adryenn Ashley. Truy cập Tại đây.
- nguồn: https://blog.quillhash.com/2023/04/24/understanding-erc-4337-user-operation-packing-vulnerability/
- :là
- :không phải
- 20
- 2023
- a
- Giới thiệu
- truy cập
- Tài khoản
- trừu tượng hóa tài khoản
- Trợ Lý Giám Đốc
- ngang qua
- Ngoài ra
- thăng tiến
- Sau
- Tất cả
- Ngoài ra
- thay đổi
- an
- và
- Một
- LÀ
- đối số
- đối số
- AS
- hợp ngữ
- At
- Nỗ lực
- kiểm toán
- kiểm toán
- dựa
- BE
- bởi vì
- trở nên
- được
- BEST
- giữa
- lớn nhất
- blockchain
- Bảo mật chuỗi khối
- Blog
- vi phạm
- Xây dựng
- nhưng
- by
- gọi là
- CAN
- không thể
- nắm bắt
- Nguyên nhân
- nguyên nhân
- chuỗi
- thay đổi
- thay đổi
- mã
- kết hợp
- Đến
- thỏa hiệp
- Mối quan tâm
- gây nhầm lẫn
- xây dựng
- nội dung
- liên tục
- hợp đồng
- hợp đồng
- thuận tiện
- có thể
- che
- tạo
- dữ liệu
- xác định
- phụ thuộc
- triển khai
- mô tả
- thiết kế
- phát triển
- Phát triển
- sự khác biệt
- khác nhau
- thảo luận
- Divergence
- do
- năng động
- Đầu
- giai đoạn đầu
- hiệu ứng
- các yếu tố
- thưởng thức
- hoàn toàn
- ERC-4337
- vv
- ethereum
- MẠNG CHÍNH ETHEREUM
- Ngay cả
- Mỗi
- ví dụ
- loại trừ
- dự kiến
- kinh nghiệm
- khám phá
- Nhà thám hiểm
- mắt
- tạo điều kiện
- nổi tiếng
- Tính năng
- vài
- lĩnh vực
- Lĩnh vực
- Tìm kiếm
- Tên
- Trong
- định dạng
- tìm thấy
- từ
- đầy đủ
- chức năng
- chức năng
- hoạt động
- Tổng Quát
- được
- nhận được
- được
- Go
- đi
- xảy ra
- Cứng
- băm
- băm
- Có
- Độ đáng tin của
- HTTPS
- Va chạm
- Tác động
- thực hiện
- thực hiện
- quan trọng
- in
- bao gồm
- bao gồm
- Bao gồm
- đưa vào
- Cá nhân
- thông tin
- tích hợp
- ý định
- cố ý
- trong
- Giới thiệu
- vấn đề
- các vấn đề
- IT
- chỉ
- phím
- nổi tiếng
- lớn
- Họ
- mới nhất
- dẫn
- LEARN
- Lượt thích
- giới hạn
- hạn chế
- Hạn chế
- Xem
- thực hiện
- mạng chính
- làm cho
- LÀM CHO
- nhiều
- Tháng Ba
- max-width
- Có thể..
- có nghĩa
- Bộ nhớ
- phương pháp
- phương pháp
- Might
- đúc tiền
- xử lý sai
- bỏ lỡ
- sai lầm
- sửa đổi
- giám sát
- chi tiết
- hầu hết
- nhiều
- tự nhiên
- Mã thông báo gốc
- mạng
- Mới
- NFT
- tại
- of
- on
- ONE
- Trực tuyến
- mua sắm trực tuyến
- OP
- hoạt động
- hoạt động
- Hoạt động
- or
- gọi món
- Tổ chức
- Nền tảng khác
- Các giao thức khác
- vfoXNUMXfipXNUMXhfpiXNUMXufhpiXNUMXuf
- kết thúc
- tổng thể
- riêng
- Gói
- tham số
- đặc biệt
- các bộ phận
- thông qua
- hiện tượng
- plato
- Thông tin dữ liệu Plato
- PlatoDữ liệu
- có thể
- tiềm năng
- Chuẩn bị
- riêng
- Khóa riêng
- Sản phẩm
- dự án
- tài sản
- bảo vệ
- giao thức
- giao thức
- cho
- cung cấp
- nhà cung cấp
- mục đích
- Mau
- quillhash
- tăng giá
- lý do
- nhận
- về
- vùng
- đều đặn
- phát hành
- sự phụ thuộc
- đại diện
- đại diện
- đại diện
- nghiên cứu
- nghiên cứu và phát triển
- kết quả
- trở lại
- Tăng lên
- Nguy cơ
- quy tắc
- tương tự
- Đề án
- Phần
- an toàn
- Bảo mật
- an ninh
- Các mối đe dọa an ninh
- xem
- phân đoạn
- dịch vụ
- các nhà cung cấp dịch vụ
- DỊCH VỤ
- thiết lập
- một số
- Mua sắm
- đăng ký
- Chữ ký
- ký
- đồng thời
- duy nhất
- thông minh
- hợp đồng thông minh
- Hợp đồng thông minh
- So
- SOL
- giải pháp
- một số
- một cái gì đó
- Không gian
- sự tài trợ
- Traineeship
- Tiêu chuẩn
- tiêu chuẩn
- Bắt đầu
- ở lại
- Vẫn còn
- nộp hồ sơ
- thành công
- như vậy
- Hỗ trợ
- chắc chắn
- mất
- hơn
- việc này
- Sản phẩm
- cung cấp their dịch
- Them
- Đó
- Kia là
- họ
- điều
- điều này
- những
- các mối đe dọa
- thời gian
- đến
- mã thông báo
- Tokens
- quá
- hàng đầu
- giao dịch
- giao dịch
- Giao dịch
- đúng
- loại
- sự hiểu biết
- không mong muốn
- Cập nhật
- Cập nhật
- nâng cấp
- sử dụng
- đã sử dụng
- người sử dang
- Kinh nghiệm người dùng
- Người sử dụng
- HIỆU LỰC
- giá trị
- rất
- Xem
- Truy cập
- Lỗ hổng
- dễ bị tổn thương
- Dễ bị tổn thương
- ví
- Ví
- là
- we
- Web3
- Website
- TỐT
- nổi tiếng
- là
- Điều gì
- khi nào
- cái nào
- trong khi
- tại sao
- sẽ
- với
- nhân chứng
- thế giới
- Sai
- năm
- Bạn
- trên màn hình
- zephyrnet