Silhouetted figures in a futuristic cityscape

توضیحاتی درباره سوءاستفاده‌های پل‌های چند زنجیره‌ای: چگونه مهاجمان ارزها را ضرب، آزاد یا به سمت دیگر هدایت می‌کنند

By Emma Carter11 دقیقه مطالعه

حملات سوءاستفاده از پل‌های زنجیره‌ای زمانی اتفاق می‌افتد که یک مهاجم یک پل را آزاد یا دارایی‌ها را بدون پشتیبانی معتبر منتشر کند، یا کاربران را فریب دهد تا وجوه را به قراردادهای تحت کنترل مهاجم ارسال کنند. موضوع مشترک ساده است: یک پل یک سیستم حسابداری در زنجیره‌ها است و سوءاستفاده، اثبات، اعتبار یا مسیر دستور آن را می‌شکند.

نکات کلیدی

در مدل قفل و انتشار معمول، پل توکن اصلی را در زنجیره منبع قفل می‌کند و یک توکن بسته‌بندی شده معادل را در زنجیره مقصد منتشر می‌کند. بازگشت به پل توکن بسته‌بندی شده را می‌سوزاند و توکن اصلی را آزاد می‌کند. StartupDefense و تحقیقات Presto هر دو این الگو را توصیف می‌کنند و این مدل ذهنی است که توضیح می‌دهد چرا «بدون پشتوانه» حالت شکست پیش‌فرض است. اگر پل بدون قفل واقعی منتشر کند، یا بدون سوزاندن واقعی قفل‌گشایی کند، عرضه و وثیقه دیگر مطابقت نخواهند داشت.

هر پل توکن‌های بسته‌بندی شده را منتشر نمی‌کند. ChainUp همچنین پل‌های شبکه نقدینگی را توصیف می‌کند که به کاربران از استخرها در زنجیره مقصد پرداخت می‌کنند و بعداً تسویه می‌کنند، به علاوه طراحی‌های کم‌اعتمادتر که وضعیت زنجیره دیگر را با استفاده از کلاینت‌های سبک در زنجیره تأیید می‌کنند. معماری مهم است زیرا به کاربر می‌گوید پل از چه چیزی به عنوان اثبات استفاده می‌کند و چه کسی می‌تواند آن را نادیده بگیرد.

این سؤال معمولاً پیش‌بینی‌کننده‌تر از این است که آیا قراردادها دارای نشان «حسابرسی» هستند یا خیر.مسیرهای اصلی سوءاستفاده: چه چیزی در عمل شکست می‌خوردحوادث پل به وضوح به سه وعده‌ای که معامله‌گران به طور ضمنی به آن‌ها تکیه می‌کنند، نقشه‌برداری می‌شوند. وعده اول تأیید است: پل به درستی یک واریز یا پیام واقعی را تأیید می‌کند.

وعده دوم اعتبار است: حقوق انتشار و قفل‌گشایی نمی‌توانند از طریق کلیدهای دزدیده شده، اعتبارسنج‌های آسیب‌دیده یا ارتقاءهای ناامن جعل شوند. وعده سوم تحویل است: دستور کاربر به پل واقعی می‌رسد، نه به شبیه‌سازی مهاجم.

شکست‌های تأیید «رسیدهای جعلی» ایجاد می‌کنند. تحقیقات Presto الگوی رایج را به عنوان صدور دارایی‌ها در زنجیره مقصد و برداشت آن‌ها بدون واریز قانونی در زنجیره منبع توصیف می‌کند. لیست آسیب‌پذیری‌های Chainlink شامل همان دسته از مسائل است، جایی که منطق یا مراحل تأیید قراردادهای هوشمند برای انتشار یا برداشت بدون وثیقه مناسب مورد سوءاستفاده قرار می‌گیرند. به همین دلیل است که اشکالات پل معمولاً شبیه اشکالات حسابداری به نظر می‌رسند، نه اینکه کسی «یک بلاک‌چین را بشکند».

شکست‌های اعتبار معمولاً به دلیل آسیب‌دیدگی کلید یا اعتبارسنج است. Chainlink به آسیب‌پذیری عمده پل به عنوان آسیب‌پذیری کلید خصوصی اشاره می‌کند و حوادثی مانند Ronin (مارس 2022) و Harmony (ژوئن 2022) را که شامل کلیدهای چندامضایی آسیب‌دیده است، فهرست می‌کند. هنگامی که یک مهاجم کنترل قدرت امضای کافی را به دست آورد، پل می‌تواند برداشت‌هایی را تأیید کند که به زنجیره مقصد معتبر به نظر می‌رسند. قابلیت ارتقاء ناامن یک خویشاوند نزدیک این مشکل است.

اگر یک کلید مدیر بتواند منطق پل را بدون کنترل‌های قوی تغییر دهد، مهاجم نیازی به پیدا کردن یک اشکال ندارد. آن‌ها می‌توانند قوانین را بازنویسی کنند.

شکست‌های تحویل دسته‌ای هستند که بیشتر توضیح‌دهندگان از آن صرف‌نظر می‌کنند. تحقیقات Presto حوادث ربودن BGP را مستند می‌کند که در آن کاربران از یک جلوی قانونی به یک سایت فیشینگ هدایت شدند که واریزها را به قراردادهای تحت کنترل مهاجم ارسال می‌کرد. این اصلاً نیاز به شکستن قراردادهای پل ندارد. این واقعیت را مورد سوءاستفاده قرار می‌دهد که بیشتر کاربران از طریق یک وب‌سایت و درخواست‌های کیف پول با یک پل تعامل دارند، نه با تأیید دستی آدرس‌های قرارداد.

چرا پل‌ها همچنان هک می‌شوند

پل‌ها همچنان هک می‌شوند زیرا آن‌ها پیچیدگی را با ارزش متمرکز ترکیب می‌کنند. StartupDefense اشاره می‌کند که پل‌ها به قراردادهای هوشمند، اعتبارسنج‌ها و اجزای ارتباطات زنجیره‌ای مانند اوراکل‌ها و ریلرها وابسته هستند. هر جزء سطح حمله را اضافه می‌کند و پل باید در چندین زنجیره به طور همزمان درست باشد.

داده‌های واقعی از دست دادن، انگیزه را تقویت می‌کند. Chainlink آمار DefiLlama را ذکر می‌کند که نشان می‌دهد بیش از 2.8 میلیارد دلار از پل‌ها هک شده است، تقریباً 40٪ از کل ارزش هک شده وب3. تحقیقات Presto بیان می‌کند که سوءاستفاده‌های پل بیش از نیمی از تمام هک‌های DeFi را تشکیل می‌دهند.

مهاجمان به دنبال پرداخت هستند و پل‌ها معمولاً یک خزانه واحد از وثیقه را نگه می‌دارند یا یک اعتبار واحد برای انتشار را کنترل می‌کنند که می‌تواند مورد سوءاستفاده قرار گیرد.دلیل دیگر این است که «امنیت» یک لایه نیست. یک پل می‌تواند کد قوی در زنجیره داشته باشد و هنوز هم وجوه کاربران را از طریق کلیدهای آسیب‌دیده، ارتقاءهای ناامن یا حملات زیرساختی مانند ربودن BGP از دست بدهد. به همین دلیل است که سریع‌ترین ارزیابی ریسک پل با دو سؤال شروع می‌شود: چه چیزی به عنوان اثبات استفاده می‌شود و چه کسی می‌تواند آن را نادیده بگیرد.پل امضاکننده واحد چیست

برخی پل‌ها چندامضایی یا کمیته‌های اعتبارسنج را تبلیغ می‌کنند، اما واقعیت عملی می‌تواند هنوز به ریسک «امضاکننده واحد» سقوط کند اگر کلیدها به خوبی توزیع نشده باشند، اگر یک اپراتور کنترل کافی از کلیدها را داشته باشد، یا اگر مدیر ارتقاء بتواند بررسی‌های معمول را دور بزند. مثال‌های Chainlink شامل حوادثی است که در آن تعداد کمی از کلیدهای چندامضایی برای تخلیه یک پل کافی بودند و همچنین مواردی را ذکر می‌کند که کلیدهای آسیب‌دیده تحت کنترل متمرکز بودند.

برای کاربران، نتیجه ساده است. یک پل امضاکننده واحد یک انتقال زنجیره‌ای را به یک ریسک غیرامن نسبت به امنیت عملیاتی یک کلید تبدیل می‌کند. این می‌تواند برای استفاده‌های کوچک و محدود زمانی قابل قبول باشد، اما این یک کلاس ریسک متفاوت از طراحی است که در آن تأیید بیشتر به حداقل اعتماد نیاز دارد.dvn چیست و چرا مهم استیک dvn و اینکه چرا مهم است به این بستگی دارد که چه کسی پیام‌های زنجیره‌ای را تأیید می‌کند.

یک شبکه تأییدکننده غیرمتمرکز dvn یک الگوی طراحی است که در برخی از سیستم‌های پیام‌رسانی زنجیره‌ای برای تأیید اینکه یک پیام مشاهده شده در یک زنجیره باید در زنجیره دیگر پذیرفته شود، استفاده می‌شود. نکته این نیست که مخفف چیست.

نکته این است که لایه تأییدکننده «موتور اثبات» پل است و جایی است که رسیدهای جعلی یا متوقف می‌شوند یا اجازه عبور می‌یابند.پل‌های متمرکز بر پیام‌رسانی انعطاف‌پذیری را اضافه می‌کنند زیرا می‌توانند نیت را حمل کنند، نه فقط توکن‌ها. ChainUp لایه‌های پیام‌رسانی زنجیره‌ای را توصیف می‌کند که دستورالعمل‌های دلخواه را با استفاده از مسیرهای اوراکل و ریلر با تأیید در سطح برنامه منتقل می‌کنند. این انعطاف‌پذیری همچنین یک سطح ریسک است. اگر لایه تأییدکننده ضعیف یا بیش از حد متمرکز باشد، یک مسیر آسیب‌دیده می‌تواند پیام‌هایی را تأیید کند که باعث می‌شود قراردادهای پایین‌دستی توکن‌ها را منتشر کنند، قفل‌گشایی کنند یا موجودی‌ها را به‌روزرسانی کنند.به همین دلیل است که اصطلاحاتی مانند پروتکل layerzero از نظر عملیاتی مهم هستند. وقتی یک پل واقعاً یک لایه پیام‌رسانی است، کاربر به همان اندازه که به قرارداد توکن اعتماد می‌کند، به پیکربندی تأیید پیام اعتماد می‌کند. بررسی عملی این است که مجموعه تأییدکننده، آستانه امضا و کنترل‌های ارتقاء که می‌توانند آن قوانین را تغییر دهند، شناسایی شوند.

بزرگترین هک‌های پل چه بودندبزرگترین هک‌های پل تا کنون تحت سلطه چندین حادثه هستند که سه حالت شکست را در عمل نشان می‌دهند. StartupDefense چندین رویداد مهم و خسارات تقریبی را فهرست می‌کند: Ronin (2022) با حدود 620 میلیون دلار، Poly Network (2021) با حدود 610 میلیون دلار که بعداً بازگردانده شد، Nomad (2022) با حدود 190 میلیون دلار و پل BNB Chain (2022) با حدود 100 میلیون دلار.Ronin بهترین مثال از شکست اقتدار است.

Presto Research توصیف می‌کند که چگونه یک تصاحب‌کننده اعتبارسنجی که 5 از 9 اعتبارسنج را به خطر انداخته، امکان انتقال 173,600 ETH و 25.5 میلیون USDC را فراهم کرده است که مجموعاً حدود 625 میلیون دلار خسارت به بار آورده است.

تفاوت جزئی نسبت به رقم حدود 620 میلیون دلار منعکس‌کننده تنوع گزارش‌های معمول از قیمت‌گذاری و حسابداری است، نه یک مکانیزم بنیادی متفاوت.Qubit یک مثال از شکست تأیید است. Presto Research توصیف می‌کند که چگونه ورودی آدرس توکن خنثی از تأیید عبور کرده و حدود 185 میلیون دلار qXETH ضرب کرده است، با خساراتی در حدود 80 میلیون دلار پس از مبادلات. Nomad، همان‌طور که توسط StartupDefense فهرست شده، یادآور این است که یک اشتباه در یک قرارداد هوشمند می‌تواند یک پل را به یک ماشین برداشت عمومی تبدیل کند.چگونه یک بهره‌برداری از پل به پروتکل‌های وام‌دهی گسترش می‌یابد

یک بهره‌برداری از پل از طریق کیفیت وثیقه به پروتکل‌های وام‌دهی گسترش می‌یابد، نه از طریق «عفونت بین زنجیره‌ای» جادویی. وقتی یک پل تخلیه می‌شود، توکن بسته‌بندی شده در زنجیره مقصد می‌تواند به طور مؤثر بدون پشتوانه شود زیرا بازخرید شکسته است، همان‌طور که Presto Research توضیح می‌دهد. اگر آن توکن بسته‌بندی شده به عنوان وثیقه در یک بازار وام‌دهی پذیرفته شود، بازار وام‌دهی اکنون در حال قیمت‌گذاری یک ادعا است که ممکن است دیگر قابل بازخرید نباشد.

مسیر مکانیکی ساده است. حمله‌کنندگان که دارایی‌های بسته‌بندی شده بدون پشتوانه را ضرب می‌کنند می‌توانند آن‌ها را برای دارایی‌های دیگر بفروشند، یا به عنوان وثیقه وام بگیرند. حتی اگر حمله‌کننده به پروتکل وام‌دهی دست نزند، سایر کاربرانی که دارایی بسته‌بندی شده را در اختیار دارند می‌توانند به سرعت برای خروج اقدام کنند، که باعث می‌شود توکن از peg خارج شود و تصفیه‌ها را مجبور کند. این یک ریسک کلاسیک آلودگی دیفای است و به همین دلیل است که حوادث پل اغلب به عنوان فشار نقدینگی وسیع‌تر در یک اکوسیستم ظاهر می‌شوند.

این همچنین دلیل این است که «TVL بالا است» یک استدلال ایمنی برای پل‌ها نیست. Presto Research اشاره می‌کند که ارزش قفل شده بالاتر امنیت پل را تقویت نمی‌کند. این عمدتاً انگیزه برای حمله را افزایش می‌دهد و شعاع انفجار را زمانی که اعتبار دارایی بسته‌بندی شده شکسته می‌شود، افزایش می‌دهد.

چگونه بررسی کنیم که آیا یک پل قبل از استفاده ایمن است

چگونه بررسی کنیم که آیا یک پل قبل از استفاده ایمن است با طبقه‌بندی وعده‌های پل آغاز می‌شود. ابتدا، شناسایی کنید که پل به عنوان مدرک در زنجیره مقصد از چه چیزی استفاده می‌کند. ChainUp مکانیزم‌های تأیید را از اعتبارسنجی‌های مورد اعتماد و کمیته‌های چند امضایی تا مشتریان سبک با حداقل اعتماد توصیف می‌کند. یک کاربر نیازی به خواندن کد ندارد تا بپرسد، «آیا این مدرک عمدتاً امضاهای آفلاین است، یا تأیید زنجیره‌ای از وضعیت زنجیره دیگر؟»

سوم، فرض کنید که رابط کاربری می‌تواند دروغ بگوید. Presto Research خسارات ناشی از سرقت BGP در KLAYswap (حدود 1.9 میلیون دلار) و Celer cBridge (حدود 235 هزار دلار) را مستند می‌کند که در آن کاربران به سایت‌های فیشینگ هدایت شدند.

از نظر عملی، این به معنای استفاده از URLهای نشانه‌گذاری شده، تأیید آدرس‌های قرارداد از مستندات رسمی و احتیاط بیشتر در طول قطعی‌ها یا اعلامیه‌های ناگهانی است که در آن حمله‌کنندگان معمولاً سعی می‌کنند از سردرگمی سوءاستفاده کنند.

در نهایت، دارایی‌های پل را به عنوان مواجهه کوتاه‌مدت در نظر بگیرید. ریسک فقط قرارداد پل نیست. این وثیقه پل، کنترل‌های امضا و ارتقاء آن و زیرساختی است که تراکنش را ارائه می‌دهد. این چارچوب به طور مستقیم به راهنمای اصلی دیفای متصل می‌شود زیرا پل‌ها یکی از سریع‌ترین راه‌ها برای سقوط یک شکست در چندین پروتکل هستند.

تصورات غلط رایج

«پل‌ها توکن‌ها را بین زنجیره‌ها منتقل می‌کنند» تصوری است که باعث بیشتر نابینایی‌های ریسک می‌شود. بیشتر پل‌ها در یک زنجیره قفل یا سوزانده می‌شوند و در زنجیره دیگر ضرب یا آزاد می‌شوند، همان‌طور که StartupDefense، Presto Research و ChainUp توصیف می‌کنند. کاربر در حال نگهداری یک ادعا است که ارزش آن به توانایی پل در احترام به بازخرید بستگی دارد.

«اگر قراردادهای هوشمند حسابرسی شده باشند، ایمن است» کیفیت کد را با امنیت سیستم اشتباه می‌گیرد. Chainlink به خطرات ناشی از نقض کلید خصوصی و قابلیت ارتقاء ناامن به عنوان آسیب‌پذیری‌های عمده اشاره می‌کند و این‌ها می‌توانند مسیرهای کد صحیح را دور بزنند. یک پل می‌تواند به طور کامل کدگذاری شده باشد و هنوز هم تخلیه شود اگر اقتدار امضا به خطر بیفتد.

«بهره‌برداری از پل‌ها همیشه هک‌های قرارداد هوشمند هستند» لایه تحویل را نادیده می‌گیرد. مثال‌های سرقت BGP از Presto Research نشان می‌دهد که وجوه کاربران می‌توانند بدون شکستن قراردادهای پل به سرقت بروند. نکته عملی این است که هر حادثه را به عنوان یک شکست تأیید، یک شکست اقتدار، یا یک شکست مسیر دستور طبقه‌بندی کنید. این لنز معمولاً کافی است تا ریسک را در کمتر از یک دقیقه درک کنید، حتی زمانی که بررسی پس از مرگ پر از اصطلاحات فنی باشد.

منابع

تحقیقات Presto

ChainUp

StartupDefense

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop
  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop
  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop
  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

پرسش‌های متداول

پس از هک شدن یک پل، چه بر سر توکن‌های بسته‌بندی شده می‌آید؟

اگر وثیقه قفل شده در زنجیره منبع دزدیده شود، توکن بسته‌بندی شده در زنجیره مقصد می‌تواند به طور مؤثری بدون پشتوانه شود زیرا بازخرید از طریق پل دیگر کار نمی‌کند. پژوهش پریستو این را به عنوان ریسک اصلی طراحی‌های قفل و ضرب توصیف می‌کند. در عمل، دارایی بسته‌بندی شده می‌تواند مانند یک ادعا بر هیچ چیز معامله شود زمانی که خزانه پل از بین رفته است.

چگونه یک سوءاستفاده از پل سپرده‌گذاری کاذب کار می‌کند؟

یک سوءاستفاده از سپرده‌گذاری کاذب دارایی‌ها را در زنجیره مقصد بدون سپرده‌گذاری معتبر در زنجیره منبع ضرب یا آزاد می‌کند. پژوهش پریستو این الگو را به عنوان سوءاستفاده از یک نقص منطقی برای تحریک صدور بدون وثیقه معتبر توصیف می‌کند. چین‌لینک همچنین نقص‌های قرارداد هوشمند و تأیید را فهرست می‌کند که اجازه می‌دهد بدون پشتوانه مناسب ضرب یا برداشت انجام شود.

چرا پل‌های چندامضایی و اعتبارسنجی خطرناک هستند؟

آنها خطرناک هستند زیرا کنترل پیام‌های بین زنجیره‌ای اغلب به کنترل کلیدهای خصوصی کاهش می‌یابد. چین‌لینک نقض کلید خصوصی را به عنوان یک آسیب‌پذیری اصلی پل ذکر می‌کند و به حوادثی مانند رونین و هارمونی اشاره می‌کند که شامل کلیدهای چندامضایی آسیب‌دیده است. اگر کلیدهای کافی گرفته شوند، پل می‌تواند برداشت‌هایی را تأیید کند که به نظر در زنجیره معتبر می‌آیند.

آیا می‌توان یک پل را بدون هک کردن قراردادهای هوشمند مورد سوءاستفاده قرار داد؟

بله. پژوهش پریستو حملات هک BGP را توصیف می‌کند که کاربران را به سمت رابط‌های فیشینگ هدایت می‌کند و باعث می‌شود سپرده‌ها به قراردادهای تحت کنترل مهاجم بروند حتی اگر قراردادهای پل شکسته نشده باشند. این یک نقص زیرساخت و مسیر کاربر است نه یک سوءاستفاده در زنجیره.

ایمن‌ترین راه برای پل زدن بین زنجیره‌ها چیست؟

منابع ارائه شده هیچ پل «ایمن‌ترین» واحدی را رتبه‌بندی نمی‌کنند، اما نشان می‌دهند که چه چیزی را باید ارزیابی کرد: پل چه چیزی را به عنوان مدرک استفاده می‌کند، چه کسی کنترل مجوز امضا را دارد و چگونه به‌روزرسانی‌ها مدیریت می‌شوند. چین‌آپ توضیح می‌دهد که تأیید می‌تواند به اعتبارسنجی‌های مورد اعتماد یا کلاینت‌های سبک با اعتماد کمتر تکیه کند. چین‌لینک و استارتاپ دیفنس تأکید می‌کنند که مدیریت کلید خصوصی، کنترل‌های به‌روزرسانی و نظارت به طور قابل توجهی بر ریسک دنیای واقعی تأثیر می‌گذارد.

مطالب مرتبط