読み取り時間: 5 分
Web3 の世界は、プロトコルと標準の世界です。 いくつかの ERC 標準に出くわしたに違いありません。 最も有名な ERC 標準のいくつかは、それぞれトークンと NFT 用の 20 と 721 です。 しかし、Web3 はそれだけではありません。
Web3 では定期的な更新とアップグレードが見られます。 最新のアップグレードの 4337 つは ERC 2023 で、4337 年 4337 月にイーサリアム メインネットに導入されました。すべての更新が一度に成功するわけではありません。 同じことがERC XNUMXにも当てはまります。このブログでは、標準のユーザー操作セクションに関する脆弱性とその影響について学びます。 まず、ERC XNUMX 標準の簡単な紹介から始めましょう。
ERC 4337 とは何ですか?
ビットコインのネットワークとは異なり、 Ethereum チェーン上のスマート コントラクトをサポートしているため、イーサリアムは XNUMX つの異なるタイプのアカウント (トランザクション アカウントまたは運用アカウント) を持つことができます。 それに加えて、スマート コントラクトにはアカウントのような独自のスペースがあります。 イーサリアムのこれら XNUMX 種類のアカウントには、独自の機能があります。
イーサリアムで機能するほとんどのウォレットは、スマート コントラクトではなく、ユーザーのアカウントを意味する EOA です。 これらの種類のアカウントには、独自の制限があります。 制限の 4337 つは、ユーザーがアカウントにアクセスするために秘密鍵にのみ依存し、トランザクションにすべての署名を要求することです。 これらの制限により、ERC XNUMX が導入されました。
ERC 4337 は、4337 つのアカウント タイプの機能を組み合わせることで、アカウントの抽象化を提供しようとします。 はい、EOA とスマート コントラクトのアカウントです。 これは、トークンの取引とコントラクトの作成を同時に行うことができる単一のコントラクトによって可能になり、ERC XNUMX はこの素晴らしい新しい進歩を促進する標準です。
UserOperation パッキングの脆弱性?
この標準とプロジェクトのすべてが素晴らしいですが、何が問題だったのでしょうか? 実装上の問題があり、署名に使用された方法に基づいて一貫性のないハッシュが発生しました。 これにより、順序の衝突が発生します。特に、同じ UserOperations の発散ハッシュと、異なる UserOperations のハッシュの衝突が発生します。
影響を受ける地域は、EntryPoint のパッキングの脆弱性と VerifyingPaymaster のパッキングの脆弱性の XNUMX つの脆弱性に限定されていました。 それについては後で詳しく説明します。 まず一般的な理解をしてから、それらについて個別に学びましょう。
UserOperation.sol を見てみましょう:-
UserOperation パラメーターである Calldata が引数として pack 関数に渡されていることがわかります。 構造体を調べてみましょう:-
これらは、UserOperation 構造体が運ぶフィールドです。 Calldata のこの大部分をメモリにコピーするために、コード セグメントはアセンブリを使用します。 コントラクトの一部のメソッドは、ABI エンコーディングで動的フィールドとも呼ばれる可変サイズ フィールドを含む、UserOperation のすべてのフィールドをキャプチャすることを目的としています。 たとえば、この構造体の動的エンコーディングは「initCode」、「callData」、および「paymasterAndData」です。
一部のメソッドには「paymasterAndData」を含めることができません。これは、そのフィールドがまだ定義または宣言されていないためです。 メソッドは、動的データ型に提供される「.offset」便利なフィールドを使用してそれを行います。 ただし、ABI でエンコードされた引数を使用するコントラクトは、フィールドが定義されている順序とオフセットの有効性を検証しません。 通常とは異なるハッシュ プロパティを使用して、Calldata でユーザー操作の有効な表現を構築することができます。
EntryPoint パッキングの脆弱性
UserOperation の問題は、標準の他の部分にも影響します。EntryPoint Packing の脆弱性はその XNUMX つです。 EntryPoint とウォレット コントラクトの間で異なるハッシュ スキームが使用されている場合、または非標準のユーザー操作エンコーディングが使用されている場合、ハッシュの相違が見られます。
リスクは EntryPoint として表面化します。 これで、XNUMX つのユーザー操作を複数の「ユーザー操作ハッシュ」で表すことができ、同じ「ユーザー操作ハッシュ」で複数のユーザー操作を表すことができます。 これにより、望ましくない効果が生じる可能性があります。 その影響について考えてみましょう。
Erc 4337 は XNUMX 月にリリースされたばかりで、まだ初期段階にあるため、これらの脆弱性の影響は完全にはわかっていません。 鳥瞰図からの潜在的な影響を説明するのは困難です。 それ以上の影響は、バンドラー、インデクサー、ユーザー操作エクスプローラー、およびその他のオフチェーン サービスの実装に依存します。 この脆弱性が引き起こす問題のいくつかを見てみましょう。
- ユーザー操作のハッシュは、送信時と包含時の間で変化する可能性があるため、これはユーザーにとって混乱を招く可能性があります。 この現象はほとんどのウォレットでは知られていないため、その違いを説明できない可能性があります。
- すべてのユーザー操作ハッシュを同じに設定することで、意図的にインデックス作成を回避するようにウォレットを変更および設計できます。
- ユーザー操作の包含を監視するオフチェーン サービスが特定のユーザー操作の包含を見逃した場合、データとキーの誤った取り扱いが見られます。
Paymaster パッキングの脆弱性の検証
オンライン ショッピングで何かを注文して、まったく異なる製品を受け取ることを好む人はいません。 Web3 でも同じですが、この脆弱性によりユーザー エクスペリエンスが低下します。 ユーザーは、署名時とチェーンへの包含の間に変更された、または異なる内容を持っている可能性があります。 これが発生する理由は、XNUMX つの異なるユーザー操作が「VerifyingPaymaster.getHash()」関数から同じハッシュを返すためです。
VerifyingPaymaster.getHash() 関数は、構造体である「UserOperation」、「validUnitl」、uint48 値、validAfter の別の uint48 値など、いくつかの引数を取ります。 署名時と挿入時でコンテンツが異なるという問題は、ユーザー エクスペリエンスと全体的なセキュリティに影響を与えます。 それが提起する懸念のいくつかについて議論しましょう。
- ユーザー操作を受け取った後に ABI でエンコードされた形式でサインインするオフチェーンの署名者、または署名用のデータを準備するためのコントラクト統合を持つ署名者は、脆弱になります。
- ハッシュは、予想よりも少ない要素をカバーするように変更できます。これにより、initCode などの静的フィールドの一部がハッシュから除外される可能性があります。 これにより、ペイマスター スポンサーシップの署名の意図とは異なる用途が生じる可能性があります。
- 署名を取得した後に userOp.initCode と userOp.callData を変更することで、ルールの違反とバイパスを確認できます。 これにより、ペイマスターのネイティブ トークンをガスレス NFT の発行以外の目的で使用できるようになります。
まとめ
絶え間ない進歩と発展により、私たちは多くの素晴らしいことを目の当たりにするでしょう.ERC 4337はそのXNUMXつです. セキュリティの開発と向上は決して妥協できないものです。 標準の脆弱性がいかに迅速に発見されたかに注目するのは驚くべきことであり、それを安全にするために継続的な研究と開発が行われています.
Web3 で構築している最大かつ最も有名な組織の一部でさえ、セキュリティ関連の間違いを犯す可能性があり、他のプロトコルも間違いなく間違いを犯すことに注意することが重要です。 継続的な上昇 Web3 インシデント ここ数年は明らかです。
このようなセキュリティの脅威からあなた、ユーザー、およびプロトコルを保護するためのワンストップ ソリューションは、監査を受ける予定です。 私たち QuillAudits は、スマート コントラクト監査とブロックチェーン セキュリティのトップ サービス プロバイダーの XNUMX つです。当社の Web サイトにアクセスして詳細を確認し、プロジェクトを保護してください。 今後も有益なブログをお楽しみください。
34 ビュー
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- Platoblockchain。 Web3メタバースインテリジェンス。 知識の増幅。 こちらからアクセスしてください。
- 未来を鋳造する w エイドリエン・アシュリー。 こちらからアクセスしてください。
- 情報源: https://blog.quillhash.com/2023/04/24/understanding-erc-4337-user-operation-packing-vulnerability/
- :は
- :not
- 20
- 2023
- a
- 私たちについて
- アクセス
- アカウントの抽象化
- アカウント
- 越えて
- 添加
- アドバンス
- 後
- すべて
- また
- 標準装備されたものが、
- an
- および
- 別の
- です
- 引数
- 引数
- AS
- アセンブリ
- At
- 試み
- 監査
- 監査
- ベース
- BE
- なぜなら
- になる
- さ
- BEST
- の間に
- 最大の
- ブロックチェーン
- ブロックチェーンのセキュリティ
- ブログ
- 違反
- 建物
- 焙煎が極度に未発達や過発達のコーヒーにて、クロロゲン酸の味わいへの影響は強くなり、金属を思わせる味わいと乾いたマウスフィールを感じさせます。
- by
- 呼ばれます
- 缶
- キャプチャー
- 原因となる
- 原因
- チェーン
- 変化する
- 変化
- コード
- 結合
- 来ます
- 妥協
- 懸念事項
- 紛らわしい
- 構築する
- 中身
- 連続的な
- 縮小することはできません。
- 契約
- 利便性
- 可能性
- カバー
- 作ります
- データ
- 定義済みの
- 依存
- 展開
- 説明する
- 設計
- 開発
- 開発
- 違い
- 異なります
- 話し合います
- 発散
- do
- ダイナミック
- 早い
- 初期段階
- 効果
- 要素は
- 楽しみます
- 完全に
- ERC-4337
- 等
- イーサリアム
- イーサリアムメインネット
- さらに
- あらゆる
- 例
- 除外
- 予想される
- 体験
- 探る
- 探検
- 目
- 容易化する
- 有名な
- 特徴
- 少数の
- フィールド
- フィールズ
- もう完成させ、ワークスペースに掲示しましたか?
- 名
- 形式でアーカイブしたプロジェクトを保存します.
- 発見
- から
- 完全に
- function
- 機能性
- 機能します
- 取得する
- 受け
- 与えられた
- Go
- 行く
- 起こります
- ハード
- ハッシュ
- ハッシュ
- 持ってる
- 認定条件
- HTTPS
- 影響
- 影響
- 実装
- 実装
- 重要
- in
- include
- 含ま
- 含めて
- 包含
- 個別に
- 有益な
- 統合
- 予定
- 故意に
- に
- 概要
- 問題
- 問題
- IT
- ただ
- キー
- 既知の
- 大
- 姓
- 最新の
- つながる
- LEARN
- ような
- 制限
- 制限
- 限定的
- 見て
- 製
- メインネット
- make
- 作る
- 多くの
- 3月
- 最大幅
- 五月..
- 手段
- メモリ
- 方法
- メソッド
- かもしれない
- 鋳造
- 誤った取り扱い
- ミス
- ミス
- 修正されました
- モニタリング
- 他には?
- 最も
- の試合に
- ネイティブ
- ネイティブトークン
- ネットワーク
- 新作
- NFT
- 今
- of
- on
- ONE
- オンライン
- オンラインショッピング
- OP
- 操作
- オペレーショナル
- 業務執行統括
- or
- 注文
- 組織的な
- その他
- その他のプロトコル
- 私たちの
- が
- 全体
- 自分の
- パック
- パラメーター
- 特に
- 部品
- 渡された
- 現象
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- 可能
- 潜在的な
- 準備
- プライベート
- 秘密鍵
- プロダクト
- プロジェクト
- プロパティ
- 守る
- プロトコル
- 提供します
- 提供
- プロバイダ
- 目的
- すぐに
- クイルハッシュ
- 提起
- 理由
- 受け入れ
- に対する
- 地域
- レギュラー
- リリース
- 依存
- 表す
- 表現
- で表さ
- 研究
- 研究開発
- 結果
- return
- 上昇
- リスク
- ルール
- 同じ
- スキーム
- セクション
- 安全に
- セキュア
- セキュリティ
- セキュリティ上の脅威
- セグメント
- サービス
- サービスプロバイダ
- サービス
- 設定
- いくつかの
- ショッピング
- 符号
- 署名
- 署名
- 同時に
- スマート
- スマート契約
- スマート契約
- So
- SOL
- 溶液
- 一部
- 何か
- スペース
- 主催
- ステージ
- 標準
- 規格
- start
- 滞在
- まだ
- 提出
- 成功した
- そのような
- サポート
- 確かに
- 取り
- より
- それ
- アプリ環境に合わせて
- それら
- そこ。
- ボーマン
- 彼ら
- 物事
- この
- それらの
- 脅威
- 時間
- 〜へ
- トークン
- トークン
- あまりに
- top
- 取引する
- トランザクションの
- 取引
- true
- 理解する
- 不要な
- アップデイト
- 更新版
- アップグレード
- つかいます
- 中古
- ユーザー
- 操作方法
- users
- 検証
- 値
- 非常に
- 詳しく見る
- 訪問
- 脆弱性
- 脆弱性
- 脆弱な
- 財布
- 財布
- ました
- we
- Web3
- ウェブサイト
- WELL
- 周知
- した
- この試験は
- いつ
- which
- while
- なぜ
- 意志
- 目撃者
- 世界
- 間違った
- 年
- You
- あなたの
- ゼファーネット