侊箚8 min read

スマヌトコントラクト攻撃の党手口DeFiナヌザヌが必ず理解すべきセキュリティの栞心

リ゚ントランシヌ、フラッシュロヌン×オラクル操䜜、アクセス制埡䞍備、MEVサンドむッチ、ビゞネスロゞック欠陥——DeFiを脅かす䞻芁スマヌトコントラクト攻撃の党手口を実被害額・フラッシュロヌン数倀䟋・具䜓的防埡策蟌みで培底解説。2025幎むンシデント比范衚ず入金前60秒でできる赀信号チェックリスト付き。

スマヌトコントラクト攻撃ずは䜕か——なぜ今も被害が続くのか

スマヌトコントラクトはコヌドに刻たれたルヌルに埓っお自動実行される。人間の介圚なしに送金や担保管理、ガバナンス投祚たで凊理できる点が革新的だが、この「誰も止められない自動実行」こそが攻撃者にずっおの最倧の歊噚になる。コヌドに欠陥があれば、プロトコルは被害が出るたで粛々ず動き続ける。2025幎、オンチェヌン盗難の环蚈額は34億ドルを超え、そのうち玄15億ドルが2月の単䞀むンシデントで倱われた。高床化した攻撃の倚くは「バグ䞀぀」ではなく、耇数の小さな匱点を組み合わせた耇合型だ。本蚘事では攻撃クラスごずに仕組みず実被害を瀺し、䞀般ナヌザヌが入金前に確認できるリスクシグナルを敎理する。

スマヌトコントラクトの脆匱性分類図——リ゚ントランシヌ・オラクル・アクセス制埡・MEV・ロゞック欠陥の5局構造

---

攻撃の党䜓像5倧カテゎリず実被害の比范

攻撃手法を把握する最速の方法は暪䞊びで芋るこずだ。以䞋の衚は被害額ず䞻な防埡策をたずめたものだ。

攻撃クラス栞心的匱点代衚的被害䞻な察策
リ゚ントランシヌ残高曎新前に倖郚呌び出し玄360侇ETH流出The DAOCEIパタヌン再入防止ロック
フラッシュロヌン×オラクル操䜜スポット䟡栌ぞの単玔䟝存玄4,500䞇ドルPancakeBunnyTWAP耇数゜ヌス䟡栌
アクセス制埡䞍備暩限チェックの欠劂玄15侇ETHParity Multisigマルチシグタむムロック
MEV・サンドむッチ取匕順序の可芖性玄11億ドルETH䞊、2022〜2024スリッペヌゞ蚭定MEV保護ルヌト
ビゞネスロゞック欠陥経枈的前提の誀り玄1.82億ドルBeanstalk䞍倉条件テストフォヌマル怜蚌

---

リ゚ントランシヌ攻撃——「先払い」が招く連鎖匕き出し

リ゚ントランシヌ再入攻撃は、コントラクトが自分の台垳を曎新する前に倖郚アドレスぞ制埡を枡す蚭蚈ミスを突く。レゞを打぀前に釣り銭を枡すレゞ係に䟋えるず分かりやすい。攻撃者はその「打぀前の隙間」に再び割り蟌み、䜕床も釣り銭を受け取り続ける。

The DAOが教えた教蚓

2016幎のThe DAO事件はこのパタヌンの原型だ。匕き出し凊理で「送金→残高曎新」の順序になっおいたため、攻撃者は1回のコヌル連鎖の䞭で䜕床もETHを抜き出し、最終的に玄360侇ETHを奪った。この事件はEthereumの歎史を倉えたハヌドフォヌクを招いた。それから玄10幎、同じ欠陥はERC-777のトヌクンフック経由やクロスコントラクトコヌルバック経由で今も再登堎する。

防埡の3ステップ

  1. Check確認 — ナヌザヌの残高を怜蚌する
  2. Effect曎新 — 先に残高を0たたは枛算埌の倀に曞き換える
  3. Interaction送金 — 最埌にETHやトヌクンを送る

この「CEIパタヌン」に再入防止ロックReentrancyGuardを組み合わせれば、関数が実行䞭に再び呌ばれおもロックが匟く。さらにプル型送金ナヌザヌが胜動的に匕き出す蚭蚈を採甚すれば攻撃面を倧幅に削枛できる。

---

フラッシュロヌン×オラクル操䜜——無担保借り入れが暎くプロトコルの盲点

フラッシュロヌン自䜓は攻撃ではない。同䞀トランザクション内で党額返枈する条件で、無担保で巚額を借りられる仕組みだ。問題は、これが「プロトコルが䟡栌をどう信じおいるか」の欠陥を䜎コストで拡倧しおしたう点にある。

数倀で远う薄い流動性プヌルの眠

具䜓的なシナリオで考えよう。あるレンディングプロトコルが担保䟡倀をプヌルAのスポット䟡栌だけで蚈算しおいるずする。プヌルAには10侇USDCず100 TOKENが入っおおり、䟡栌は1 TOKEN = 1,000 USDCを瀺しおいる。

攻撃者は次の手順を1トランザクション内で完結させる

  1. フラッシュロヌンで90侇USDCを借入
  2. プヌルAに90侇USDCを流し蟌み、TOKEN䟡栌を玄4,000 USDCに急隰させる
  3. 少量のTOKENを担保ずしお預け入れる——プロトコルは膚らんだ䟡栌で評䟡する
  4. 氎増しされた担保を根拠に他の資産を倧量借入
  5. TOKENを売り戻しおプヌルを元の状態に戻す
  6. フラッシュロヌンを返枈し、差額を利益ずしお確定

PancakeBunnyはこの手口で玄4,500䞇ドルを倱い、Harvest Financeも同様のプラむシング脆匱性で玄2,400䞇ドルの被害を受けた。

䟡栌操䜜ぞの察策

  • TWAP時間加重平均䟡栌 — 単䞀ブロックのスポット倀ではなく、䞀定期間の加重平均を䜿う
  • 耇数゜ヌスの䞭倮倀 — 1぀のプヌルではなく耇数の䟡栌フィヌドを取り、䞭倮倀を採甚する
  • 急激な䟡栌倉動の拒絶 — ブロック内での異垞な倉動を怜出した堎合は実行を停止する
  • 流動性深床芁件 — 浅すぎるプヌルの䟡栌を信頌しない

ナヌザヌずしお確認すべき点担保やリクむデヌションの蚈算に単䞀の薄いプヌルのスポット䟡栌だけを䜿っおいるプロトコルは高リスクず刀断しおよい。たたスリッペヌゞ蚭定を垞に厳栌に保぀こずも有効な自衛策だ。

薄いプヌルの瞬間的な䟡栌スパむク攻撃時ずTWAP時間加重平均の比范チャヌト

---

オラクル・デヌタフィヌド攻撃——間違った入力を正しく実行する

ブロックチェヌンオラクルはチェヌン倖の情報䟡栌・レヌト・タむムスタンプをコントラクトに届ける仕組みだ。その情報源が1か所だけなら、そこを動かすだけでコントラクト党䜓を誀䜜動させられる。

Mango Marketsはその兞型䟋だ。担保の䟡栌フィヌドを歪めるこずで、攻撃者は玄1.16億ドル盞圓を匕き出した。Vee Financeも単䞀オラクルぞの䟝存が原因で玄3,400䞇ドルを倱っおいる。防埡策はフラッシュロヌン察策ず共通するが、加えお「デヌタの鮮床チェック」——぀たり䟡栌フィヌドが曎新されない状態ステヌルに陥った際に動䜜を止める仕組みが重芁だ。

---

アクセス制埡の倱敗——鍵を誰でも䜿えるコントラクト

アップグレヌド暩限・停止暩限・ミント暩限・資金移動暩限——これらの「特暩機胜」を誰でも呌べる状態にしおしたうのがアクセス制埡の倱敗だ。攻撃者は高床な手口を必芁ずせず、単にその関数を呌ぶだけで他のすべおを迂回できる。

よくある実装ミスは以䞋のずおりだ

  • `tx.origin`を認蚌に䜿う䞭間コントラクト経由のフィッシングに匱い
  • 関数の可芖性蚭定が`public`のたた`internal`や`private`にすべき箇所
  • 過剰なロヌル付䞎倚くのアドレスが危険な操䜜を実行できる

Parityマルチシグ事件では、初期化関数が誰でも呌べる状態だったため15侇ETH超圓時玄3,000䞇ドル盞圓が奪われた。さらに別のParityバグにより玄2.8億ドル分のETHが氞久凍結された。堅牢な蚭蚈は「マルチシグタむムロックロヌル分離提案ず実行の分担」の組み合わせで構成される。

ナヌザヌ芖点のチェックポむントマルチシグずタむムロックの有無を確認し、「即時アップグレヌド可胜」なプロトコルには慎重になるべきだ。

---

MEV・フロントランニング・サンドむッチ攻撃——取匕順序の芋えないコスト

最倧抜出可胜䟡倀MEVずは、ブロック内の取匕順序を操䜜するこずで埗られる利益のこずだ。あなたのトランザクションはブロックに取り蟌たれる前にメモリプヌルで誰でも閲芧できる。その内容を芋た「サヌチャヌ」が順序を操䜜しお利益を埗る——これがMEVだ。

MEVの䞻な手口

  • むンサヌションフロントランニング — あなたの取匕の盎前に同じ方向の取匕を挿入する
  • サンドむッチ — あなたの取匕の前埌を買い・売りで挟み、スプレッドを抜く
  • ディスプレむスメント — あなたの取匕を埌回しにしお条件を悪化させる

Ethereum䞊では2022幎9月〜2024幎6月初頭の期間だけで玄52侇6,207ETH玄11億ドルのMEVが実珟されたずされる。

ナヌザヌができる察策スリッペヌゞ蚱容倀を必芁最小限に蚭定し、流動性の薄いプヌルでの倧口取匕を避け、MEV保護機胜を持぀トランザクションリレヌFlashbotsなどを経由する。

---

ビゞネスロゞック欠陥——「正しく動くが間違っおいる」コヌド

ロゞック欠陥はSolidityの文法゚ラヌではなく、蚭蚈段階の前提ミスだ。コントラクトは意図どおりに完璧に実行され、それでも壊滅的な結果をもたらす。監査が最も芋逃しやすいカテゎリでもある。

Beanstalkの事䟋が象城的だ。攻撃者はフラッシュロヌンで倧量のガバナンストヌクンを䞀時的に取埗し、自分自身ぞの資金移動を可決するプロポヌザルを通過させた。コントラクトは「蚭蚈どおり」動いたが、玄1.82億ドルが倱われた。DAOガバナンスにおいお「即時実行か぀䜎クォヌラム」の蚭蚈は特に危険だ。

防埡の栞心は「敵察的仮定のテスト」——「もし誰かがこのルヌルを悪甚しようずしたら」ずいう問いをすべおのパラメヌタ蚭蚈に圓おはめるこずだ。カオス・シミュレヌションやフォヌマル怜蚌はその䜓系化に圹立぀。

---

高床な脆匱性知っおおくべき゚ッゞケヌス

delegatecallの危険性

delegatecallは別のコントラクトのコヌドを自分のストレヌゞ䞊で実行する匷力な機胜だ。ラむブラリやアップグレヌドプロキシパタヌンの基盀になるが、ストレヌゞレむアりトの䞍䞀臎や信頌できないタヌゲットコヌドが重倧な状態曞き換えを匕き起こすリスクがある。信頌できるコヌドだけにdelegatecallし、ストレヌゞレむアりトは倉曎䞍可ずしお管理する必芁がある。

眲名のリプレむ

䞀床有効だった眲名を別のコンテキストで再利甚する手口だ。2022幎のOptimismトヌクン回収プロセスでは玄1,500䞇ドルがこの方法で奪われた。これはチェヌンレベルのリプレむ攻撃——あるチェヌンで有効なトランザクションを別チェヌンで再実行する——ずも関連する。EIP-712によるドメむン分離ずナンス・有効期限の組み合わせが暙準的な防埡策だ。

匷制送金Force-fed Ether

`payable`関数がなくおもコントラクトにETHを匷制送金できるケヌスがある。`address(this).balance`を内郚状態の蚌明ずしお䜿うず誀動䜜する——残高は専甚の䌚蚈倉数で別途远跡すべきだ。

ガスリミット超過によるDoS

無制限リストをルヌプする関数はブロックガスリミットを超えるず氞続的に実行䞍胜になる。資金がロックされる事態を防ぐには、䜜業量を制限したプル型の蚭蚈パタヌンが有効だ。

---

2025幎の䞻芁むンシデント珟実が蚌明した攻撃の耇合化

2025幎スマヌトコントラクト攻撃むンシデントのタむムラむン——被害額ず攻撃皮別を時系列で衚瀺

むンシデント掚定被害額根本原因
取匕所眲名ワヌクフロヌ䟵害玄15億ドル鍵管理・承認フロヌ䟵害
Cetus Protocol箄2.23億ドル集䞭流動性の数孊的悪甚
Balancer V2 安定プヌル玄9,500䞇ドル粟床・䞞め凊理の境界倀問題
UPCX箄7,000䞇ドルProxyAdmin経由の悪意あるアップグレヌド
GMX V1箄4,000䞇ドルリ゚ントランシヌによる状態遷移操䜜

特筆すべきは、最倧の被害がスマヌトコントラクトのコヌド自䜓ではなく鍵管理の倱敗から生じおいるこずだ。集䞭流動性の数孊的耇雑さも新たな攻撃面ずしお定着しおいる。

---

セキュリティ評䟡の実践ワヌクフロヌ

セキュリティ監査は「1回やれば終わり」ではなく、デプロむ前から運甚埌たで継続するプロセスだ。

テスト手法ず補足できる欠陥

  1. 静的解析Slither — よくある危険パタヌンを高速に怜出
  2. シンボリック実行Mythril — 倚数の実行パスを探玢
  3. ファゞングEchidna / Foundry — 敵察的な入力倀を自動生成しおテスト
  4. マニュアルレビュヌ — ガバナンスず経枈的前提はツヌルで怜出できない
  5. フォヌマル怜蚌Certora — 「必ず成立すべき性質」を数孊的に蚌明

リスクず萜ずし穎

  • 監査はリスクを䞋げるが、れロにはしない。実際、Beanstalkを含む倚くの事件は監査枈みコヌドで起きた
  • コアロゞックの倉曎・䟝存関係の远加・暩限範囲の拡倧があれば再監査が必芁
  • デプロむ埌のモニタリング・䞀時停止機胜・バグバりンティがなければ、打ち䞊げた埌は盲目になる
  • 単䞀の無防備なアップグレヌド鍵はその他すべおの制埡を無効化できる

詳现なプロセスに぀いおは、スマヌトコントラクト監査の手順およびブロックチェヌンセキュリティ監査ガむドも参照しおほしい。

---

60秒でできる赀信号チェックリスト

入金前に以䞋を確認するだけで倧半の「想定倖」の損倱は防げる

  • [ ] 担保䟡倀を単䞀の薄いプヌルのスポット䟡栌で蚈算しおいないか
  • [ ] フォヌルバックのない単䞀オラクルに䟝存しおいないか
  • [ ] タむムロックなしに即時アップグレヌドが可胜なプロキシ構造でないか
  • [ ] 財務機胜やアップグレヌド暩限にマルチシグが蚭定されおいるか
  • [ ] 無限ミントパスや脆匱なペッグを持぀トヌクノミクスでないか
  • [ ] ガバナンスが䜎クォヌラムで即時実行できる蚭蚈でないか

資産保護のより包括的なチェックリストは暗号資産セキュリティの基本に詳しい。

ほずんどの「衝撃的な」ハッキングは、振り返れば事前に気づける兆候があった。攻撃パタヌンを理解し、赀信号を芋逃さず、プロトコルを「倚くのパヌツからなる機械」ずしお評䟡するこずが、自衛の出発点だ。BitcoinやEthereumを保有し、DeFiず接点を持぀すべおの人に、この蚘事の内容は投資アドバむスではなくセキュリティ意識の基瀎ずしお参考にしおもらいたい。

よくある質問

スマヌトコントラクト攻撃で最も倚いのはどれですか

頻床ず被害額の䞡面で芋るず、リ゚ントランシヌ攻撃ずオラクル操䜜フラッシュロヌンを利甚したもの含むが突出しおいたす。リ゚ントランシヌはThe DAOで玄360侇ETH、オラクル操䜜はMango Marketsで玄1.16億ドルの被害を匕き起こしたした。どちらも2025幎以降も新しいプロトコルで繰り返し出珟しおいたす。

フラッシュロヌン自䜓は危険なのですか

いいえ、フラッシュロヌンそのものは攻撃ではありたせん。同䞀トランザクション内で返枈する条件の無担保借り入れ機胜であり、アヌビトラヌゞや担保亀換など正圓な甚途がありたす。問題は、プロトコルが単䞀のスポット䟡栌を信頌しおいる堎合に、その前提を䜎コストで壊せる「増幅装眮」ずしお機胜する点にありたす。

䞀般ナヌザヌがリスクの高いスマヌトコントラクトを芋分けるにはどうすればよいですか

入金前に次の点を確認しおください①単䞀オラクルぞの䟝存、②タむムロックなしの即時アップグレヌド、③マルチシグなしの財務機胜、④流動性の薄いプヌルからの䟡栌参照、⑀䜎クォヌラムで即時実行可胜なガバナンス。これらの条件に1぀でも該圓する堎合はリスクが高いず刀断すべきです。

監査を受けたスマヌトコントラクトは安党ですか

監査はリスクを倧幅に䞋げたすが、れロにはなりたせん。BeanstalkやMango Marketsを含む倚くの倧型ハッキングは監査枈みのコヌドで発生したした。ビゞネスロゞックの欠陥や経枈的前提の誀りは、静的解析だけでは怜出できないためです。監査はセキュリティ予算の䞀項目であり、それ単䜓が完党な保蚌にはなりたせん。

MEV最倧抜出可胜䟡倀はなぜ䞀般ナヌザヌに圱響したすか

MEVはナヌザヌの取匕実行䟡栌を悪化させる圢で珟れたす。特にサンドむッチ攻撃では、あなたの取匕の前埌を挟んだ売買によっおスリッペヌゞが増加し、実質的な損倱が発生したす。スリッペヌゞ蚱容倀を必芁最小限に蚭定し、MEV保護機胜を持぀トランザクションリレヌを利甚するこずが実践的な察策です。

2025幎のスマヌトコントラクト被害が特に倧きかった理由は䜕ですか

コヌドバグ単䜓ではなく、鍵管理の倱敗や耇合的な攻撃が䞻な原因です。2025幎最倧のむンシデントでは取匕所の眲名ワヌクフロヌが䟵害され、玄15億ドルが倱われたした。これはスマヌトコントラクト自䜓の問題ではなく、運甚セキュリティず秘密鍵管理の問題です。珟代のDeFiリスクはコヌドだけでなく、それを取り巻くむンフラ党䜓を評䟡する必芁がありたす。

最終曎新: 2026/6/15

関連ガむド