攻撃者はどのようにサンドイッチ攻撃を実行するのでしょうか?
攻撃者は155,000,000,000USDTを3 poolに提供します。3 poolに流動性を提供し、3 CRV LPトークンを受け取った。3 CRVは、攻撃で侵害されたプールであるCurve TriPool(Curve DAI/USDC/USDTプール)のLPトークンである。


コール UnderlyingBurner コントラクト .UnderlyingBurner は主にUSDTを保有し、 DAI:USDC:USDT を100,000枚追加します。 100, 000: 227, 079, 039, 776 .この結果、USDT の相対的な量が多く、値が低い、よりアンバランスなプールとなりました。




このプロセスにおいて、悪意のある取引とは、カーブDAI/USDC/USDTマイニングプールから大量のDAIとUSDCの流動性を取り除き、3 CRV LPトークン取引を破壊しました。このトランザクションにより、プールは非常にアンバランスになり、相対的にUSDTの量が多くなり、価値が低くなりました。
他の2つのトランザクションは、攻撃者が流動性を追加し、流動性を引き出したトランザクションを指します。攻撃者は価格差を利用して、自分の保有するDAIとUSDCの流動性をCurve DAI/USDC/USDTプールに追加し、プレミアムで引き出すことで、より多くの3 CRV LPトークンを入手します。
このようにして、攻撃者はサンドイッチ攻撃によって悪意のあるトランザクションを他の2つのトランザクションとパッケージ化し、USDT流動性を低価格で購入し、高価格で売却して利益を得ます。.
取引の順序を制限する
サンドイッチ攻撃を防ぐとなると、コードの実装には複雑なスマートコントラクトとトランザクションロジックが含まれる可能性があります。以下は、トランザクションの順序を制限し、トランザクションの遅延を導入することによってサンドイッチ攻撃を防ぐ方法を示す簡略化した例です。

この例では、スマートコントラクトであるSandwichAttackPreventionがあり、ユーザーの残高と取引操作を管理するために使用される。Sandwich攻撃を防ぐために、2つの主要な防御メカニズムを導入します。
第一に、allowTransaction関数において、コントラクトの所有者のみがallowTransaction関数でisTransactionAllowedをtrueに設定し、トランザクションの実行を許可する。これにより、トランザクションが正しい順序で実行され、攻撃者が2つのトランザクションの間に悪意のあるトランザクションを挿入することができなくなる。
第二に、executeTransaction関数において、トランザクションの待ち時間の概念を導入する。ユーザーは、現在のブロック時間が設定された遅延時間を超えた場合にのみ、トランザクションを実行することができる。これにより、他のユーザーがトランザクションを実行して価格を更新するのに十分な時間が与えられるため、攻撃者が価格差を悪用する機会を減らすことができる。
1.3プロフェシーマシン攻撃
価格プロフェシーマシンは、暗号通貨のリアルタイム価格情報を提供するデータソースです。この情報は、多くのDeFiプロトコルが適切に機能するために不可欠です。予言マシン攻撃とは、攻撃者が、操作された価格に基づく取引から利益を得る目的で、予言マシンによって提供されるデータを人為的に変更することです。
Rodeo Finance の予言マシン攻撃
Rodeo は DeFiプロトコルです。2023 7 11 に、価格予測マシン操作により、ハッカーがRodeoプロトコルから約472ETH(約888,000ドル)を盗みました。
攻撃Tx:
https://explorer.phalcon.xyz/tx/arbitrum/0xb1be5dee3852c818af742f5dd44def285b497ffc5c2eda0d893af542a09fb25a
価格予言マシンはどのように操作されているか。
ロデオファイナンス 攻撃の要は ロデオTWAPオラクルだった。予言者は、ETHとunshETHの間の価格比を追跡するために使用されます。
攻撃トランザクションの分析:攻撃プロセスは、攻撃者が慎重に計画されたトランザクションを実行することから始まります。攻撃者は、プラットフォームのアーキテクチャと時間加重平均価格(TWAP)予測マシンの潜在的な脆弱性を深く理解し、この攻撃を開始しました。
TWAP prophecy machineの操作:攻撃者は、未構成のポリシーアドレスに関連付けられた earn 関数を使用して、 USDC と unshETHの交換を強制することができました;この操作は、 unshETH 価格予測マシンの欠陥によるスリッページ制御を効果的に回避する。要するに、稼ぐ 機能は、 USDC から WETHへ unshETHへの変更を余儀なくされるのです。
TWAP 価格の計算:TWAP 価格は、それぞれ45 分の間隔で、最後の4つの更新の価格を平均することによって計算されます。しかし、欠陥のある価格予測装置は操作された価格を返し、スマートコントラクトにポジションが健全であると信じ込ませていました。
レバレッジを効かせたポジションのオープン:攻撃者は、サンドイッチ攻撃によって TWAP 予言者を操作し、投資家契約から earn 関数を呼び出してレバレッジを効かせたポジションをオープンします。

資産の交換:攻撃者たち借りた資産を原資産である CamelotDEX プールとスワップし、一方で準備した unshETH をプールに売り戻す。
実行検証を回避する:契約は通常、操作が有効であることを検証します。しかし、攻撃者はこのポリシーをコントロールしているため、このチェックを簡単にバイパスすることができます。これにより攻撃者は、準備された unshETH をプールに売り戻すことで、操作されたポジションを利用し、プラットフォームから効果的に流動性を引き出すことができました。
盗んだ資金の送金:攻撃者は盗んだ資金を Arbitrum から イーサリアムに送金し、 285 ETH を unshETH と交換します。nbsp;unshETH;に交換した後、攻撃を継続するためにそれらを Arbitrum に送金した。この盗まれた資金の一部は、 150 ETH に相当し、その後、 Tornado Cash、プライバシーに焦点を当てたイーサリアムハイブリッドコインサービスに送金された。残りの 371.2 ETH(約 701, 679 USD相当)は、攻撃者が管理するアドレスによってまだ保持されています。
この攻撃における主要な脆弱性の1つは、 Rodeo TWAP Oracle の実行における欠陥でした。この予言者は、流動性が低く、したがって価格変動が大きいWETH/unshETHペアのリザーブに依存しています。
複数の予測に基づく価格の計算
価格クエリの信頼性を確保するために、信頼できる予言者は、トークンペアの比率だけに頼るのではなく、複数の予言者または集約されたフィードを使用して価格を計算する必要があります。特に流動性の低いマイニングプールの場合、このように多様な価格情報源を利用することで、価格データの精度が向上し、攻撃者がデータを操作しにくくなります。
この目標を達成するための1つの可能なソリューションは、 Chainlink 予言マシンのような分散型予言マシンを使用することです。データの正確性を検証する。複数のデータソースを使用することで、Chainlink は単一障害点の可能性を減らし、攻撃者がデータを操作することをより困難にする。
以下は、 Chainlink アグリゲーター契約を使用して価格データを取得するコードの例です。style="text-align:center">
上記のコードでは、AggregatorV3Interface型の配列を使って、述語マシンの複数のインスタンスを格納しています。.コンストラクタは、予言マシンのアドレスの配列をパラメータとして受け取り、各アドレスをAggregatorV3Interfaceオブジェクトとしてインスタンス化する。
getLatestPrice 関数は、複数のデータソースから最新の価格データを取得するために使用されます。この関数は、 priceFeeds 配列を繰り返し、各予測子の latestRoundData 関数を呼び出して価格データを取得します。すべての価格データは、 int 型の配列に格納され、呼び出し元に返されます。
このようにして、複数のデータソースから価格データを取得し、価格クエリがより正確に資産価格を反映するようにすることができます。
2.スマートコントラクトの脆弱性リスク
スマートコントラクトの脆弱性スマートコントラクトの脆弱性とは、イーサやその他のスマートコントラクトプラットフォームに書かれたコードのセキュリティホールやバグを指します。DeFi のコアはスマートコントラクトに基づく金融プロトコルであるため、スマートコントラクトの脆弱性はユーザー資金の損失や市場操作、その他の悪意のある行動につながる可能性があります。
これらの脆弱性を特定することは非常に重要であり、私たちは私たちの監査は、潜在的な問題を幅広くカバーします。これには、リエントラントの脆弱性、アクセス制御の脆弱性、整数オーバーフローの脆弱性、ビジネスロジックの脆弱性などが含まれますが、これらに限定されません。当社の包括的な監査サービスは、スマートコントラクトのセキュリティを強化し、これらのリスクから保護するように設計されています。
以下では、スマートコントラクトの脆弱性が DeFi にどのような影響を与えるかの例として、アクセス制御の脆弱性が使用されています。
LeetSwap sのアクセス制御の脆弱性