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


بسیاری از این حملات سایبری و کلاهبرداری‌ها در فضای بازارهای مالی غیرمتمرکز (Defi) و بازار کریپتوکارنسی اتفاق می‌افتد. یکی از رایج‌ترین سوءاستفاده‌هایی که در فضای دیفای رخ می‌دهد، دستکاری اوراکل (Oracle Manipulation) است. در حملات دستکاری اوراکل، قراردادهای هوشمند بلاک چین‌ها هدف حملات سایبری هستند. آمارها نشان می‌دهند که تنها در سال 2020 حدود 33 میلیون دلار از طریق دستکاری اوراکل به سرقت رفته است. بنابراین، حملات دستکاری سیستم اوراکل به یکی از چالش‌های اساسی دیفای تبدیل شده است. به همین خاطر، در این مقاله به‌سراغ این نوع از خرابکاری‌های سایبری رفته‌ایم و به شما خواهیم گفت که معنی اوراکل چیست، دیتابیس اوراکل چگونه دستکاری می‌شود، دستورات اوراکل با چه چالش‌هایی روبه‌رو هستند و به تمام مواردی از این دست خواهیم پرداخت.


اوراکل چیست؟.png

اوراکل چیست؟

در پاسخ به اینکه معنی اوراکل چیست، باید گفت که منظور از اوراکل (Oracle) خدماتی است که به‌صورت واسطه‌ای بین بلاک چین‌ها و دنیای خارج از زنجیره‌ی بلوکی قرار گرفته و باعث می‌شوند که اطلاعات خارج از زنجیره‌ی بلوکی به داخل بلاک چین و قراردادهای هوشمند بیایند. در واقع، اوراکل‌ها پُلی هستند که به نسل جدید اینترنت، یعنی وب 3 (Web 3) که بر اساس بلاک چین بنا شده است، اجازه می‌دهند که از اطلاعات و داده‌های نسل قدیمی اینترنت و امور مالی متمرکز استفاده کند.


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


⚠️ باید به این نکته توجه داشت که اوراکل یک منبع اطلاعات نیست بلکه لایه‌ای است که اطلاعات خارج از شبکه را جستجو، بررسی و تایید کرده و در نهایت به قرارداد هوشمند ارسال می‌کند. برخی از اوراکل‌های پیشرفته‌تر نه‌تنها اطلاعات خارجی را به بلاک چین می‌آورند بلکه می‌توانند داده‌های داخل بلاک چین را به منابع خارجی بازگردانند.

حمله دستکاری اوراکل چیست؟.png

حمله دستکاری اوراکل چیست؟

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


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


حمله دستکاری اوراکل چگونه عمل می‌کند؟.png

حمله دستکاری اوراکل چگونه عمل می‌کند؟

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


  • شکست اوراکل (حمله‌ی تصادفی): در صورتی که یک خراب‌کار سایبری، امکان ارسال اطلاعات را به اوراکل داشته باشد، می‌تواند اطلاعات غلطی را برای اوراکل ارسال کند. تصور کنید که یک سیستم اوراکل قیمتی، قیمت نادرستی را دریافت کرده و در اختیار یک پلتفرم وام‌دهی بگذارد. بلافاصله پروتکل وام‌دهی، تمام خدمات خود را بر اساس این قیمت تنظیم خواهد کرد. بنابراین، تمام کاربران می‌توانند به‌راحتی و بر اساس یک قیمت غلط، مقادیر زیادی وام از پروتکل دریافت کنند.

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

  • استفاده از کلید خصوصی: اگر یک فرد مهاجم بتواند با استفاده از اوراکل به کد خصوصی یک صرافی دسترسی پیدا کند، می‌تواند توکن‌های اختصاصی صرافی را ضرب‌ کرده و به‌عنوان وثیقه در اختیار خود صرافی بگذارد. در نتیجه با ارائه‌ی این حجم از توکنی که ضرب کرده است، می‌تواند سایر ارزهای صرافی را به سرقت ببرد.

آسیب‌پذیری و نقص‌های رایج مربوط به اوراکل کدام‌اند؟.png

آسیب‌پذیری و نقص‌های رایج مربوط به اوراکل کدام‌اند؟

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


دستکاری قیمت نقطه‌ای

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


بنابراین، در اینجا دو مشکل اساسی وجود دارد:


1_ دستکاری در قیمت یک ارز از طریق اوراکل برای تبهکاران فراهم است.


2_ قرارداد هوشمند با هر قیمتی که دریافت کند، کار خواهد کرد. یعنی اینکه هیچ فرایندی برای بازبینی قیمت دریافت‌شده وجود ندارد.


زیرساخت خارج از زنجیره

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


این حملات ممکن است که در بخش‌های مختلفی روی نرم‌افزار انجام شوند که عبارت‌اند از:


  • سیستم کنترل

  • کدهای برنامه‌نویسی

  • نقل‌و‌انتقال اطلاعات

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


اوراکل‌های متمرکز و مسئله‌ی اعتماد

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


امنیت در اوراکل‌های غیرمتمرکز

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


چگونه می‌توان قرارداد حمله دستکاری اوراکل را بازتولید کرد؟.png

چگونه می‌توان قرارداد حمله دستکاری اوراکل را بازتولید کرد؟

پس از اینکه یک اوراکل مورد حمله قرار می‌گیرد، متخصصان برای کشف نواقص و مشکلات اوراکل، حمله‌ی دستکاری اوراکل را بازتولید می‌کنند. برای این کار، باید اطلاعات کامل قرارداد هوشمند، اوراکل و شماره‌ی بلوک‌ استفاده‌شده را در اختیار داشته باشید. سپس برای شبیه‌سازی حمله‌ی اوراکل باید از ابزارهایی که BlockSec، برای شبیه‌سازی تراکنش‌ها طراحی کرده است، استفاده کنید.


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


سخن پایانی


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