# Jarvis Networkプロジェクトがフラッシュローン再入攻撃を受けた分析2023年1月15日、Jarvis_Networkプロジェクトが攻撃を受け、663,101 MATICが失われました。この攻撃は主にフラッシュローンと再入ス漏洞を利用したもので、プロジェクトの資金が流出しました。! [ジャービスネットワークフラッシュローン再入攻撃インシデント分析](https://img-cdn.gateio.im/social/moments-4d8e15a518ca397b76a7e497617ab978)取引のコールスタックを分析することで、攻撃者がremove_liquidity関数で再入攻撃を実行したことがわかりました。この関数は流動性を削除し、ユーザーのトークンを返還する役割を担っています。PolygonはEVMチェーンの構造に似ているため、MATICの送金プロセス中にコントラクトの再入がトリガーされました。! [ジャービスネットワークフラッシュローン再入攻撃インシデント分析](https://img-cdn.gateio.im/social/moments-e8af1d7d09e86438ebf38ead98676d76)再入攻撃は価格照会の段階で発生します。攻撃者が流動性を取り除く際に、MATICが攻撃者の契約に移転されます。コールバックの過程で、攻撃者はまずあるトークンの価格を照会しました。契約内のself.D変数の更新が送金操作に遅れているため、初期の価格取得に誤りが生じました。! [ジャービスネットワークフラッシュローン再入攻撃インシデント分析](https://img-cdn.gateio.im/social/moments-723c5b4a39a2f19df12a1a8148314db0)remove_liquidity関数の実行プロセスは次のとおりです。1. ユーザーLPトークンを破棄する2. ユーザーにステーキング資金を送信する3.自己を更新します。 D変数! [ジャービスネットワークフラッシュローン再入攻撃インシデント分析](https://img-cdn.gateio.im/social/moments-9bab9c70334266f146fdb56281be3974)self.D変数は価格計算に使用され、流動性の追加および削除時に更新されます。攻撃者は大規模な資金操作を利用し、流動性を追加する際にself.Dの値が著しく増加し、削除時にはタイムリーに更新されませんでした。! [ジャービスネットワークフラッシュローン再入攻撃インシデント分析](https://img-cdn.gateio.im/social/moments-111047ecd9af84620f98df2f4dd67efa)remove_liquidity関数は@nonreentrant('lock')デコレーターを使用して再入を防止していますが、攻撃者はクロスコントラクト借入を通じてこの制限を回避しました。! [ジャービスネットワークフラッシュローン再入攻撃インシデント分析](https://img-cdn.gateio.im/social/moments-eec688a506ffd949bdb6891b97fabb6c)今回の攻撃は、プロジェクトコードにセキュリティ上の脆弱性が存在することを暴露しました。同様の問題を避けるために、プロジェクト側に以下の対策を講じることをお勧めします:1. 厳格なセキュリティ監査を実施する2. 変数の変更操作を外部呼び出しの前に置く3. 複数のデータソースを使用して価格を取得する4. Checks-Effects-Interactionsのコーディング規則に従う! [ジャービスネットワークフラッシュローン再入攻撃インシデント分析](https://img-cdn.gateio.im/social/moments-a0f03c13dd2d37ba67ccf538fec62aa0)コードロジックを最適化し、セキュリティ対策を強化することで、プロジェクトの安全性と安定性を効果的に向上させ、類似の攻撃が再発するのを防ぐことができます。! [ジャービスネットワークフラッシュローン再入攻撃インシデント分析](https://img-cdn.gateio.im/social/moments-fcd66f4cc03bb8e822c9414526681442)! [ジャービスネットワークフラッシュローン再入攻撃インシデント分析](https://img-cdn.gateio.im/social/moments-9b2de9b00c52d3ff96d5a361df65769a)! [ジャービスネットワークフラッシュローンリエントランシー攻撃インシデント分析](https://img-cdn.gateio.im/social/moments-88f9283ee0923cff2a22405715721cd2)! [ジャービスネットワークフラッシュローン再入攻撃インシデント分析](https://img-cdn.gateio.im/social/moments-d41ac025ee561569cce3b941d7e07967)! [ジャービスネットワークフラッシュローン再入攻撃インシデント分析](https://img-cdn.gateio.im/social/moments-2c4474781d661306bc8c432dad3942c0)
Jarvis Networkがフラッシュローンの再入攻撃を受け、663,101個のMATICを失いました。
Jarvis Networkプロジェクトがフラッシュローン再入攻撃を受けた分析
2023年1月15日、Jarvis_Networkプロジェクトが攻撃を受け、663,101 MATICが失われました。この攻撃は主にフラッシュローンと再入ス漏洞を利用したもので、プロジェクトの資金が流出しました。
! ジャービスネットワークフラッシュローン再入攻撃インシデント分析
取引のコールスタックを分析することで、攻撃者がremove_liquidity関数で再入攻撃を実行したことがわかりました。この関数は流動性を削除し、ユーザーのトークンを返還する役割を担っています。PolygonはEVMチェーンの構造に似ているため、MATICの送金プロセス中にコントラクトの再入がトリガーされました。
! ジャービスネットワークフラッシュローン再入攻撃インシデント分析
再入攻撃は価格照会の段階で発生します。攻撃者が流動性を取り除く際に、MATICが攻撃者の契約に移転されます。コールバックの過程で、攻撃者はまずあるトークンの価格を照会しました。契約内のself.D変数の更新が送金操作に遅れているため、初期の価格取得に誤りが生じました。
! ジャービスネットワークフラッシュローン再入攻撃インシデント分析
remove_liquidity関数の実行プロセスは次のとおりです。
! ジャービスネットワークフラッシュローン再入攻撃インシデント分析
self.D変数は価格計算に使用され、流動性の追加および削除時に更新されます。攻撃者は大規模な資金操作を利用し、流動性を追加する際にself.Dの値が著しく増加し、削除時にはタイムリーに更新されませんでした。
! ジャービスネットワークフラッシュローン再入攻撃インシデント分析
remove_liquidity関数は@nonreentrant('lock')デコレーターを使用して再入を防止していますが、攻撃者はクロスコントラクト借入を通じてこの制限を回避しました。
! ジャービスネットワークフラッシュローン再入攻撃インシデント分析
今回の攻撃は、プロジェクトコードにセキュリティ上の脆弱性が存在することを暴露しました。同様の問題を避けるために、プロジェクト側に以下の対策を講じることをお勧めします:
! ジャービスネットワークフラッシュローン再入攻撃インシデント分析
コードロジックを最適化し、セキュリティ対策を強化することで、プロジェクトの安全性と安定性を効果的に向上させ、類似の攻撃が再発するのを防ぐことができます。
! ジャービスネットワークフラッシュローン再入攻撃インシデント分析
! ジャービスネットワークフラッシュローン再入攻撃インシデント分析
! ジャービスネットワークフラッシュローンリエントランシー攻撃インシデント分析
! ジャービスネットワークフラッシュローン再入攻撃インシデント分析
! ジャービスネットワークフラッシュローン再入攻撃インシデント分析