DeFi から学んだ教訓、DeFi の攻撃ロジックを確認する
編集者注: この記事は以下から引用しましたクリプトバレーライブ (ID:cryptovalley)、著者: ミカ・ホンカサロ、翻訳: リアム、Odaily が許可を得て転載。
まとめ
スマートコントラクトを攻撃して資金を盗もうとする人々が、スマートコントラクトをまとめる際に生じる脆弱性を悪用するケースが増えています。
編集者注: この記事は以下から引用しました
クリプトバレーライブ (ID:cryptovalley)
クリプトバレーライブ (ID:cryptovalley)
、著者: ミカ・ホンカサロ、翻訳: リアム、Odaily が許可を得て転載。
まとめ
スマートコントラクトを攻撃して資金を盗もうとする人々が、スマートコントラクトをまとめる際に生じる脆弱性を悪用するケースが増えています。
2020年のDeFiへの攻撃では、詐欺や窃盗の総額は3600万ドルに達した。しかし、dForce攻撃者は盗まれた2500万ドルを返金したため、実際の金額は約1100万ドルとなった。
イーサリアムの初期に比べて、ハッキングごとに失われる平均価値は大幅に減少しました。 2020 年の攻撃 10 件のうち 8 件は 100 万ドル未満でした。
従来のサイバー犯罪と比較して、スマート コントラクトへの攻撃が成功すると即座に金銭的報酬が得られる可能性があるため、ブロックチェーン上の情報は攻撃者にとってより価値があります。盗まれた個人情報など、従来ハッキングされてきた情報は、お金を稼ぐために販売する必要がありますが、スマートコントラクトは資産を直接保存します。
イーサリアムの初期の頃、ほとんどの攻撃は、攻撃者にスマート コントラクトを凍結または排出する能力を与える個々の脆弱性の発見に基づいていました。これは、1 億 6,000 万ドルの ETH が盗まれ、最終的にイーサリアムがフォークされた 2016 年の悪名高い DAO ハッキングの場合に当てはまりました。同様に、2017 年のパリティ マルチシグネチャ攻撃では、ハッカーが 3,000 万ドルを盗むことができ、パリティ ウォレットの 1 億 5,000 万ドルが凍結されましたが、これらはすべてこのタイプの脆弱性の結果でした。
このようなスマート コントラクトの脆弱性は、今でも時折悪用されています。最近、攻撃者はトークン コントラクトからすべての VETH を盗むことに成功し、VETH-ETH Uniswap プールを空にするだけで 90 万ドルの利益を得ました。しかし、これは VETH による単純な間違いです。VETH が ERC20 トークン規格を変更した方法に論理的な誤りがあるからです。
一般に、特に注目度の高いプロジェクトのセキュリティが向上しました。セキュリティの強化は、監査に関するユーザーの期待とテストに関するツールの改善によって推進されてきました。最近の DeFi における最大のセキュリティ問題は、融資市場で dForce から 2,500 万ドルのデジタル資産が盗まれたことでした。しかし、攻撃者の IP アドレスが発見され、シンガポール警察と共有されたため、資金は返還されました。
dForce 攻撃は、悪用された脆弱性が再入可能であったため、開発チームによる特に重大な過失の結果であると考えられます。再入攻撃は DAO が枯渇する原因であり、これは開発者が ERC777 トークンを操作するときに考慮する必要があるよく知られた問題です。
次の 4 つの引き出しステップがある契約を想像してください。"再突入"ユーザーは契約を発動し、契約からすべての資金を引き出す準備ができています。
契約により、契約内のユーザーの資金がユーザーに送金されます。
契約は自動的に更新され、ユーザーには契約内の資金がありません。
再入可能の脆弱性により、悪意のあるユーザーがコントラクトが完全に実行される前にコントラクトを再度呼び出すことができます (
再突入
)。上記の例では、攻撃者はステップ 3 と 4 の間に契約を再入力し、ユーザーの残高が更新される前に再度契約を撤回する可能性があります。このプロセスを繰り返すことで、既存の資金をすべて契約から引き出すことができます。
この原則は、ユーザーが imBTC 担保 (ERC777 トークン) の量を継続的に増加させていると契約で判断された場合に、dForce を攻撃するために使用されます。その場合、契約によりユーザーはシステムからより多くの資金を借りることができます。攻撃者は、偽の imBTC 担保を 2,500 万ドルをはるかに超える額に増やし、その後、貸付取引で dForce の流動性をすべて引き出しました。
副題
ブロックチェーン上のスマート コントラクトは、ユーザーや他のスマート コントラクトと対話するためのパーミッションレスに基づいています。スマート コントラクトを設計する人にとって、将来誰かがコントラクトと対話する可能性のあるあらゆる方法を検討するのは難しい場合があります。他の人が、元の作成者が意図しない方法でコントラクトと対話するスマート コントラクトを構築する可能性があります。
ユーザーは、dForce 攻撃で使用された ERC-777 標準に基づく同じエクスプロイトを使用して、imBTC-ETH Uniswap プールから 220,000 ドルを吸い上げました。 Uniswapの場合、攻撃者はETH-imBTCトークンプールからETHを削除しましたが、imBTCトークン残高は増加しませんでした。このような操作は通常、ETHの価格を上昇させます。
dForce の場合とは異なり、Uniswap の開発チームには実際の責任はなく、人々がこの種の罠に陥るのを防ぐことはほぼ不可能です。 Uniswap チームが、ユーザーが枯渇する可能性のあるプールに流動性を追加できないようにインターフェースを確保したとしても、それを許可するスマート コントラクトの上に他のインターフェースが構築されるのを防ぐことはできませんでした。実際、この特定の攻撃は何年も前から広く議論されていました。
最近の 6 月 18 日の Balancer に対する攻撃も、特定の市場で非標準のプログラミング パターンを悪用した同様の例です。 STA は、送金ごとに 1% の手数料がかかる追加のデフレ モデルを備えた ERC20 トークンです。攻撃者は、スマート コントラクトを使用して 1 回のトランザクションで複数の操作を自動的に実行し、WETH トークンと STA トークンを 24 回交換し、バランサーの流動性プールの 1 つで STA トークンを使い果たし、プールに残るのは 0.0000000000000000001 STA (1 weiSTA) のみでした。 。バランサー プールは STA のデフレ モデルを認識しておらず、1 weiSTA に基づいて資産の新しい価格を設定します。その後、攻撃者はプール内の WETH、LINK、SNX、および WBTC を取引しました。この攻撃により、2 つのプールの資金が 50 万米ドル以上失われました。
翌日、Balancer は 2 番目の脆弱性の問題に悩まされました。これも他のスマート コントラクトとの相互作用による予期せぬ動作が原因でした。 Compound のトークンを配布するには、ユーザーが Compound のスマート コントラクトと対話して COMP を要求する必要があります。 COMP と BAL (流動性の提供によって獲得されるバランサー トークン) の両方を獲得したいユーザーは、両方のトークンを受け取る資格があるように COMP を使用して流動性プールを作成する必要があります。
攻撃者は、Balancer 流動性プール内の資産によって生成された新しい COMP が誰にも属していないことを認識しているため、攻撃者はプールに入り、これらの利用可能な COMP トークンを取得し、それらを流動性プールにさらにお金を入れて出て行くことができます。今回発見された脆弱性のように、攻撃者はフラッシュローンを利用して自己資金を最大化し、最大の利益を得る。"副題
3 番目のカテゴリの攻撃には、ブロックチェーン自体のプロパティの悪用が含まれます。
このような問題に長い間悩まされてきたプロトコルの 1 つが Synthetix です。 2019 年 9 月から 2020 年 2 月まで、プロトコルのアービトラージ ボットはオラクルのアップデートに先立って常に実行されていました。 Synthetixでは、マッチングによる買い手と売り手の取引ではなく、オラクルが提供する価格フィードに基づく取引となり、流動性はSNXトークン保有者によって提供されます。
Synthetix のオラクルがオンチェーンで価格フィードを公開すると、オラクルが価格を更新する前に、ボットはイーサリアム ブロックに含めるために高額の取引手数料を支払います。この先制的な裁定取引行動により、Synthetix の取引高は 1 日で最大 6,900 万米ドルに達しましたが、今日の裁定取引の機会がない場合の Synthetix の平均取引高はわずか 150 万米ドルにすぎません。
3月12日(
暗黒の木曜日」)、ボールト(保管庫)の所有者は、MakerDAO の清算で予期せず 830 万ドルを失いました。取引手数料も事故の要因でした。MakerDAO のボールト(ユーザーが担保を預けて Dai を生成する場所)の担保が不十分な場合、彼らのDAI を調達し、清算された財務省の債務を返済するために、担保 (ETH など) がオークションにかけられます。通常、オークションの落札者 (キーパー) が DAI を ETH に交換し、その後、これらの DAI は破棄されます。債務が支払われたら、これらの DAI は破棄されます。オフにすると、財務省の元の所有者が残りの ETH を受け取ります。
3月12日、ETH価格が50%以上急落したため、多くの国債が清算手続きに入った。同時に、イーサリアムネットワークは非常に混雑し、ガスは400グウェイ、つまり通常の価格の20倍にまで高騰し、ほとんどのキーパーが即座に見積もることが不可能になりました。キーパーは清算をトリガーし続け、0ドルの入札で利用可能なETHを獲得しました。
副題


