
SharkTeam:2024 年上半期Web3セキュリティレポート
TechFlow厳選深潮セレクト

SharkTeam:2024 年上半期Web3セキュリティレポート
2024年の上半期において、ハッキング攻撃、フィッシング攻撃、Rugpull詐欺によって約14.92億米ドルの損失が発生した。
執筆:SharkTeam
2024 年上半期におけるハッキング攻撃、フィッシング攻撃、Rugpull による被害額は約 14.92 億ドルで、2023 年上半期(約 6.90 億ドル)と比較して 116.23% の増加となりました。本レポートでは、2024 年上半期のグローバル Web3 業界のセキュリティ状況、注目イベント、および暗号資産業界の主要な規制政策について整理・分析を行います。読者の皆様に有益な情報と視点を提供し、Web3 の安全かつ健全な発展に貢献することを目指しています。
一、概要
2024 年上半期におけるハッキング攻撃、フィッシング攻撃、Rugpull による被害額は約 14.92 億ドルで、2023 年上半期(約 6.90 億ドル)と比較して 116.23% の増加となりました。本レポートでは、2024 年上半期のグローバル Web3 業界のセキュリティ状況、注目イベント、および暗号資産業界の主要な規制政策について整理・分析を行います。読者の皆様に有益な情報と視点を提供し、Web3 の安全かつ健全な発展に貢献することを目指しています。
二、トレンド分析
SharkTeam のオンチェーンスマートリスク識別プラットフォーム ChainAegis のデータによると、2024 年上半期の Web3 分野では合計 551 件のセキュリティインシデントが発生し(図 1 参照)、被害総額は 14.92 億ドルを超えました(図 2 参照)。前年同期と比較すると、インシデント件数は 25.51% 増加し、被害額は 116.23% 増加しました。

Figure 1 Total Count of Security Incidents in 2024H1

Figure 2 Total Loss of Security Incidents in 2024H1
2024 年上半期には、ハッキング攻撃に関するインシデントが 134 件発生し、前年上半期比 103.03% 増加しました。被害額は 10.80 億ドルに達し、全体の 73% を占めています(図 3 参照)。これは 2023 年上半期(4.36 億ドル)と比べて 147.71% の増加です。
Rug Pull は上半期中に合計 243 件発生し、前年上半期の 61 件から 331.15% 急増しました。被害額も 258.82% 増加し、合計 1.22 億ドルとなり、上半期全体の損失額の 8% を占めました。
フィッシング攻撃は上半期中に合計 174 件発生し、前年比 40.32% 増加しました。被害額は 2.90 億ドルに上り、全体の 19% を占めました。

Figure 3 Amount of Loss by Attack Type in 2024H1

Figure 4 Amount of Count by Attack Type in 2024H1
月別に見ると(図 5、図 6 参照)、5 月の被害額が最も大きく、約 6.43 億ドル、インシデント件数は 92 件でした。内訳はハッキング攻撃 31 件、Rugpull 34 件、フィッシング攻撃 27 件です。

Figure 5 Web3 Security Incidents Loss Overview in 2024H1

Figure 6 Web3 Security Incidents Count Overview in 2024H1
2.1 ハッキング攻撃
上半期中、ハッキング攻撃は合計 134 件発生し、被害額は 10.80 億ドルに達しました。(詳細データは図 7 参照)
2024 年 5 月 21 日、イーサリアム上の Gala Games プロトコルがハッカーに攻撃され、2180 万ドルの損失が出ました。攻撃後、プロジェクト側は直ちに対応し、攻撃者のアドレスをブラックリストに登録し、さらなるトークン売却権限を凍結しました。
2024 年 5 月 31 日、日本の証券会社 DMM.com 傘下の子会社 DMM Bitcoin で不正なビットコイン流出が発生し、流出額は約 480 億円(約 3 億ドル)にのぼりました。これは史上 7 番目に大きな暗号資産関連の被害であり、2022 年 12 月以来最大の攻撃事件となりました。

Figure 7 Overview of Hacking by Month in 2024H1
2.2 Rugpull & Scams
以下の図(図 8)に示す通り、Rugpull & Scam イベントは 3 月に頻度が最も高く 63 件発生しました。一方 6 月は最も少なく 24 件でした。4 月の被害額が最も高く、約 4745 万ドルでした。このうち、ZKasino プロジェクトの逃亡事件が 4 月の高額被害の主因となりました。

Figure 8 Overview of Rugpull&Scam by Month in 2024H1
2.3 フィッシング攻撃
以下の図(図 9)に示す通り、フィッシング攻撃は 1 月に最も多く 39 件発生し、被害額は約 4415 万ドルでした。2 月は最も少なく 21 件で、被害額は約 2834 万ドルでした。5 月はフィッシングイベントが 27 件にとどまりましたが、被害額は上半期で最も高く 1.08 億ドルに達しました。特に 2024 年 5 月 3 日には、アドレス汚染型フィッシングによりユーザーが 1155 WBTC を盗まれ、その価値は 7 千万ドル以上にのぼりました。

Figure 9 Overview of Phishing by Month in 2024H1
三、典型事例分析
3.1 Sonne Finance 攻撃事件分析
2024 年 5 月 15 日、Sonne Finance が攻撃を受け、プロジェクト側は 2 千万ドル以上の損失を被りました。
攻撃者:0xae4a7cde7c99fb98b0d5fa414aa40f0300531f43
攻撃トランザクション:
0x9312ae377d7ebdf3c7c3a86f80514878deb5df51aad38b6191d55db53e42b7f0
攻撃プロセスは以下の通りです:
1. 35,569,150 VELO をフラッシュローンで借り入れ、これらの VELO トークンを soVELO コントラクトに転送する

直接の転送(寄付)であるため、soVELO トークンは発行されません。そのため、soVELO コントラクト内の totalCash は 35,569,150 VELO 増加するが、soVELO の totalSupply は変化しません。
2. 攻撃者は新規コントラクト 0xa16388a6210545b27f669d5189648c1722300b8b を作成し、この新規コントラクトから対象コントラクトに対して攻撃を行う。攻撃プロセスは以下の通り:

(1)新規コントラクトに 2 soVELO を入金
(2)soWETH と soVELO を担保物として設定
(3)soWETH から 265,842,857,910,985,546,929 WETH を借入

上記 borrow 関数の実行過程において、getAccountSnapshot 関数の返り値より以下が判明:
soWETH コントラクトの場合、新規コントラクトの残高は 0、借入額は 0、交換レート (exchangeRate) は 208,504,036,856,714,856,032,085,073
soVELO コントラクトの場合、新規コントラクトの残高は 2(つまり 2wei の soVELO を担保)、借入額は 0、交換レート (exchangeRate) は 17,735,851,964,756,377,265,143,988,000,000,000,000,000,000
exchangeRate 計算式:

1wei の soVELO を担保にすることで、17,735,851,964,756,377,265,143,988 VELO まで借入可能。265,842,857,910,985,546,929 WETH を借入するには、最低でも 265,842,857,910,985,546,929 soWETH が必要となる。
-
soWETH の価格:soWETHPrice = 2,892,868,789,980,000,000,000
-
soVELO の価格:soVELOPrice = 124,601,260,000,000,000
1wei の soVELO を担保とした場合の WETH 借入可能量:
1 * exchangeRate * soVELOPrice / soWETHPrice = 763,916,258,364,900,996,923
約 763 WETH。つまり、1wei の soVELO 担保があれば今回の借入を賄える。
265,842,857,910,985,546,929 WETH(約 265 WETH)を借入するのに必要な soVELO 担保量:
265,842,857,910,985,546,929 * soWETHPrice / soVELOPrice / exchangeRate = 0.348
つまり、1wei の soVELO 担保で十分。
実際に使用されたのは 2wei の soVELO 担保のうち 1wei だけ。
(4)目的の資産(35,471,603,929,512,754,530,287,976 VELO)を引き出す

exchangeRate = 17,735,851,964,756,377,265,143,988,000,000,000,000,000,000
35,471,603,929,512,754,530,287,976 VELO を引き出すために必要な soVELO 担保量:
35,471,603,929,512,754,530,287,976 * 1e18 / exchangeRate = 1.99999436
計算時に切り捨てが行われるため、実際の必要担保量は 1wei の soVELO となる。
実際の担保は 2wei の soVELO で、そのうち 1wei は前述の 265WETH 借入に使用され、残りの 1wei は 35M VELO 引き出しに使用。
(5)借入した 265 WETH および引き出した 35M VELO を攻撃コントラクトに転送
3. 新規コントラクトを 3 回繰り返し(合計 4 回)作成し、同様の攻撃を繰り返す。
4. 最後に、フラッシュローンを返済。

5. 脆弱性分析
上記攻撃では以下の 2 つの脆弱性が悪用された:
(1)寄付攻撃:soVELO コントラクトに直接 VELO トークンを転送(寄付)することで、exchangeRate が変更され、攻撃者は 1wei の soVELO 担保のみで約 265 WETH を借入できた。
(2)計算精度問題:計算時の精度損失と改ざんされた exchangeRate を利用し、1wei の soVELO 担保で 35M VELO を引き出せた。
6. セキュリティ提言
本攻撃事件を踏まえ、開発段階での留意点は以下の通り:
(1)設計・開発段階では、論理の一貫性と厳密さを保つこと。特に預入、ステーキング、状態変数の更新、乗除算結果の扱いなど、あらゆるケースを考慮し、漏れのない堅牢なロジックを構築すること。
(2)プロジェクト公開前に、第三者の専門監査機関によるスマートコントラクト監査を実施すること。
3.2 Web3 における一般的なフィッシング手法分析およびセキュリティ提言
Web3 フィッシングは、Web3 ユーザーを標的にした代表的な攻撃手法であり、さまざまな手段でユーザーの承認や署名を盗み取るか、誤操作を誘導することで、ウォレット内の暗号資産を盗むことを目的としています。
近年、Web3 フィッシング事件が相次ぎ、「Drainer as a Service (DaaS)」といった黒色産業チェーンまで形成されており、セキュリティ情勢は深刻です。
本稿では、SharkTeam が Web3 における典型的なフィッシング手法を体系的に分析し、セキュリティ対策を提言します。これにより、読者の皆様がフィッシング詐欺を識別し、自身の暗号資産を守ることに役立てば幸いです。
-
Permit オフチェーン署名フィッシング
Permit は ERC-20 標準における承認機能の拡張で、簡単に言えば、他のアドレスがあなたのトークンを移動できるように署名で許可できる仕組みです。原理は、あなたが署名することで、承認されたアドレスがその署名を使ってあなたの代金を利用でき、その後承認されたアドレスが署名を用いてオンチェーンで permit 操作を行うことで、呼び出し権限を得て資産を移動できます。Permit オフチェーン署名フィッシングは通常、以下の3段階で行われます:
(1)攻撃者が偽のフィッシングリンクまたはフィッシングサイトを作成し、ユーザーにウォレットで署名させます(コントラクトとのインタラクションなし、オンチェーンではない)。
(2)攻撃者が permit 関数を呼び出して承認を完了します。


(3)攻撃者が transferFrom 関数を呼び出して、被害者の資産を移動させ、攻撃を完了します。
ここで transfer と transferFrom の違いを説明します。ERC20 トークンを直接送信する場合、通常は ERC20 コントラクトの transfer 関数を呼び出します。一方 transferFrom は、第三者が私たちのウォレット内の ERC20 を他のアドレスに移動させる際に使用されます。
この署名はガス不要のオフチェーン署名であり、攻撃者が取得後に permit と transferFrom のオンチェーン操作を実行します。そのため、被害者のアドレスのオンチェーン履歴には承認記録が見えず、攻撃者のアドレスにのみ表示されます。通常、このような署名はワンタイムで、再利用や継続的なフィッシングリスクはありません。
-
Permit2 オフチェーン署名フィッシング
Permit2 は、Uniswap がユーザーの利便性を向上させるために 2022 年末にリリースしたスマートコントラクトで、トークン承認コントラクトであり、異なる DApp 間でのトークン承認の共有と管理を可能にします。今後、ますます多くのプロジェクトが Permit2 と統合されるにつれて、DApp エコシステム内でより統一された承認管理体験を実現し、ユーザーの取引コストを節約できます。
Permit2 登場以前、Uniswap でトークンを交換するには、まず「承認(Approve)」を行い、次に「交換(Swap)」を行う必要があり、2 回の操作と 2 回分のガス代がかかりました。Permit2 導入後、ユーザーは一度に Uniswap の Permit2 コントラクトに全額を承認すれば、以降の交換はオフチェーン署名だけで済むようになりました。
Permit2 はユーザーエクスペリエンスを向上させましたが、それに伴い Permit2 署名を狙ったフィッシング攻撃も出現しました。Permit オフチェーン署名フィッシングと同様、Permit2 もオフチェーン署名フィッシングですが、主に以下の4段階で行われます:
(1)前提条件として、ユーザーのウォレットがフィッシング前に Uniswap を使用し、トークンの承認を Uniswap の Permit2 コントラクトに与えていた必要があります(Permit2 ではデフォルトでユーザーにそのトークンの全残高を承認させます)。
(2)攻撃者が偽のフィッシングリンクまたはページを作成し、ユーザーに署名を促して必要な署名情報を得ます。これは Permit オフチェーン署名フィッシングと同様です。
(3)攻撃者が Permit2 コントラクトの permit 関数を呼び出して承認を完了します。
(4)攻撃者が Permit2 コントラクトの transferFrom 関数を呼び出して、被害者の資産を移動させ、攻撃を完了します。
ここで攻撃者が受け取るアドレスは通常複数あり、その中で金額が最も大きい受取人は実際のフィッシング実行者であり、その他は「フィッシング即サービス(DaaS)」を提供する黒産業のアドレス(例えば PinkDrainer、InfernoDrainer、AngelDrainer など)です。
-
eth_sign オンチェーンブラインド署名フィッシング
eth_sign は任意のハッシュに署名できるオープンな署名方式で、攻撃者は任意の悪意ある署名データ(例:トークン送金、コントラクト呼び出し、承認取得など)を構成し、ユーザーに eth_sign で署名させることで攻撃を完遂できます。
MetaMask は eth_sign 署名時にリスク警告を表示しますが、imToken、OneKey などの Web3 ウォレットはすでにこの関数を無効化しているか、リスク警告を提供しています。すべてのウォレットベンダーがこの方法を無効化し、ユーザーがセキュリティ意識や技術的知識の不足により攻撃されることを防ぐことを推奨します。
-
personal_sign/signTypedData オンチェーン署名フィッシング
personal_sign、signTypedData はよく使われる署名方式で、ユーザーは発信者、ドメイン、署名内容などを慎重に確認し、リスクがある場合は特に警戒する必要があります。
また、上記のように personal_sign、signTypedData が「ブラインド署名」として使用され、ユーザーが平文を見ることができない場合、フィッシンググループに利用されやすく、フィッシングリスクが高まります。
-
承認フィッシング
攻撃者は偽の悪意あるウェブサイトを作成したり、公式サイトにマルウェアを仕込んだりして、ユーザーに setApprovalForAll、Approve、Increase Approval、Increase Allowance などの操作を承認させ、ユーザーの資産操作権限を取得して盗難を行います。
-
アドレス汚染フィッシング
アドレス汚染フィッシングは最近横行しているフィッシング手法の一つで、攻撃者はオンチェーン取引を監視し、ターゲットユーザーの過去取引の相手アドレスに基づいて悪意あるアドレスを偽装します。通常、先頭 4~6 文字と末尾 4~6 文字が正しい相手アドレスと同じになります。その後、これらの偽造アドレスからターゲットユーザーのアドレスに少量の送金や価値のないトークンを送信します。
ターゲットユーザーが後続の取引で習慣的に過去の取引履歴から相手アドレスをコピーして送金する場合、不用意に悪意あるアドレスに資産を誤送金してしまう可能性があります。
2024 年 5 月 3 日、このアドレス汚染フィッシングにより 1155 WBTC が盗まれ、その価値は 7 千万ドル以上でした。
正しいアドレス:0xd9A1b0B1e1aE382DbDc898Ea68012FfcB2853a91
悪意あるアドレス:0xd9A1C3788D81257612E2581A6ea0aDa244853a91
正常取引:
https://etherscan.io/tx/0xb18ab131d251f7429c56a2ae2b1b75ce104fe9e83315a0c71ccf2b20267683ac
アドレス汚染:
https://etherscan.io/tx/0x87c6e5d56fea35315ba283de8b6422ad390b6b9d8d399d9b93a9051a3e11bf73
誤送金取引:
https://etherscan.io/tx/0x3374abc5a9c766ba709651399b6e6162de97ca986abc23f423a9d893c8f5f570
-
より巧妙なフィッシング:CREATE2 を利用してセキュリティ検出を回避
現在、各ウォレットやセキュリティプラグインは徐々にフィッシングブラックリストや一般的なフィッシング手法に対する可視化されたリスク警告を実装しており、署名情報の表示もますます完全になっており、一般ユーザーがフィッシング攻撃を識別する能力を高めています。しかし、攻撃と防御の技術は常に相互に抗しつつ進化しており、より巧妙なフィッシング手法も次々と現れており、警戒が必要です。CREATE2 を利用してウォレットやセキュリティプラグインのブラックリスト検出を回避することは、最近よく見られる方法です。
Create2 は、イーサリアムの「Constantinople」アップグレードで導入されたオペコードで、イーサリアム上でスマートコントラクトを作成することを可能にします。従来の Create オペコードは作成者のアドレスと nonce に基づいて新しいアドレスを生成していましたが、Create2 はユーザーがコントラクトをデプロイする前にアドレスを計算できるようにします。Create2 はイーサリアム開発者にとって非常に強力なツールであり、高度で柔軟なコントラクトインタラクション、パラメータに基づくコントラクトアドレスの事前計算、オフチェーン取引、特定の分散型アプリケーションの柔軟なデプロイと適応を実現できます。
Create2 は利点をもたらす一方で、新たなセキュリティリスクも生じます。Create2 は、悪意ある取引履歴のない新しいアドレスを生成するために悪用され、ウォレットのブラックリスト検出やセキュリティアラートを回避できます。被害者が悪意ある
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News










