امنیت بلاکچین یکی از مهمترین مباحث مطرح در این حوزه است؛ چراکه بلاکچینها با دادههای حساس و سرمایه کاربران سروکار دارند.
امروز بلاکچینها منحصر به امور مالی مدرن و ارزهای دیجیتال نیستند. صنایع مختلف از زنجیرههای تامین گرفته تا ذخیرهسازی داده به دلیل ماهیت تمرکززدایی و شفافیت بلاکچین، از این فناوری در زیرساختهای خود استفاده میکنند. اما نباید از یاد ببریم که به موازات توسعه فناوری، سیستمهای بلاکچین هم با چالشهای امنیتی پیچیدهتری مواجه میشوند.
امنیت بلاکچین ها یک موضوع چندلایه است که تمام لایهها ازجمله صفر، یک، دو و سه را شامل میشود. در این مطلب از میهن بلاکچین قصد داریم به مقایسه جامع امنیت بلاکچین ها در لایههای مختلف بپردازیم، چالشهای احتمالی و استراتژیهای مقابله با آنها را معرفی کنیم و نمونهای از تهدیدهای امنیتی گذشته را بررسی کنیم. با ما همراه باشید.
مقایسه امنیت بلاکچین ها در لایههای مختلف
بلاکچینها بر اساس لایه به چهار دستهبندی مجزا شامل لایه صفر (لایه زیرساخت)، لایه یک (زنجیره اصلی)، لایه ۲ (راهحل توسعه) و لایه سه (لایه برنامه) تقسیم میشوند. پیشتر سپیده برون در مطلبی با عنوان «از لایه صفر تا لایه سه؛ مقایسه میان لایه های بلاکچین» نگاه پرباری به ساختار معماری، کاربرد و هدف لایههای مختلف بلاکچین داشته است. اکنون در این مطلب هر لایه را از منظر امنیت بررسی میکنیم.
امنیت بلاکچینهای لایه صفر؛ لایه زیرساخت
منظور از لایه صفر (L0) زیرساخت بلاکچین است که شامل سختافزارها، شبکه، مکانیزم اجماع و سایر موارد مشابه میشود. امنیت این لایه بهطور مستقیم روی پایداری و امنیت کل سیستم بلاکچین تاثیر میگذارد.
چالشهای امنیتی
- امنیت سختافزارها: در صورتیکه دستگاههای سختافزاری خراب شوند یا در معرض حملات فیزیکی قرار بگیرند، بلاکچین با نشت داده و نقض امنیتی سیستم مواجه میشود.
- امنیت شبکه: اگر شبکههای بلاکچین با حمله انکار سرویس توزیعشده (DDoS) مواجه شوند، عملکرد عادی شبکه تحت تاثیر قرارمیگیرد.
- امنیت مکانیزم اجماع: ممکن است مکانیزمهای اجماع مانند اثبات کار (PoW) و اثبات سهام (PoS) مورد حمله قراربگیرند. در این صورت شبکه با حمله دوبار خرج کردن (Double-Spending Attacks) مواجه میشود یا در معرض ریسکهای ناشی از فورک شدن قرار میگیرد.
استراتژیهای امنیتی
- استفاده از فناوریهای رمزنگاری برای دستگاههای سختافزاری: شبکهها میتوانند برای حفاظت از کلیدها و دادههای حساس خود از ماژولهای امنیتی سختافزاری (HSMs) و محیطهای اجرایی قابلاعتماد (TEEs) استفاده کنند.
- حفاظت از شبکه: اجرای راهکارهای امنیتی مانند پیادهسازی فایروالها و مکانیسمهای مقابله با حملات DDoS میتواند به پایداری شبکه کمک کند.
- بهینهسازی مکانیزم اجماع: شبکهها میتوانند با پیچیدهتر کردن محاسبات اثبات کار یا استفاده از مکانیزمهای تایید چندسطحی در بلاکچینهای اثبات کار، الگوریتمهای اجماع را بهبود دهند و حمله به شبکه را دشوارتر کنند.
نمونهای از تهدید امنیت لایه صفر
اتریوم کلاسیک (Ethereum Classic) یک زنجیره فورکشده از اتریوم است که ویژگیهای زنجیره اصلی را به ارث میبرد. این شبکه در سالهای ۲۰۱۹ و ۲۰۲۰ (۹۸-۱۳۹۷) مورد حمله ۵۱٪ (51% Attack) قرار گرفت.
مهاجمان که بیش از ۵۰٪ قدرت محاسباتی شبکه را در اختیار داشتند، چندین حمله سازماندهیشده را انجام دادند. بهدنبال این اتفاق، شبکه با حمله دوبار خرجکردن و از دست دادن میلیونها دلار سرمایه کاربران مواجه شد و امنیت و اعتبار شبکه زیر سوال رفت. پس از این حمله، کامیونیتی اتریوم کلاسیک چندین اقدام امنیتی را اعمال کردند که شامل موارد زیر میشد:
- تقویت نظارت بر شبکه
- معرفی ابزارهایی برای شناسایی و دفاع در برابر حملات ۵۱٪
- افزایش هزینه مقابله با حملات
امنیت بلاکچینهای لایه یک؛ زنجیره اصلی
لایه ۱، همان زنجیره اصلی بلاکچین است که شامل پروتکلها و ساختار داده میشود. منظور از امنیت لایه یک، یکپارچگی شبکه و تغییرناپذیری دادهها است.
چالشهای امنیتی
- آسیبپذیری پروتکل: نقص در طراحی پروتکلهای بلاکچین یا آسیبپذیریهای ناشی از پیادهسازی، منجر به تحریک عوامل مخرب و سوء استفاده میشود.
- امنیت نودها: اگر نودها مورد حمله قرار بگیرند، عملکرد عادی شبکه تحت تاثیر قرار میگیرد.
اقدامات امنیتی
- آدیت پروتکلها: شبکههای بلاکچینی باید آدیت (Audit) و بازبینی کدها را بهطور پیوسته انجام دهند و آسیبپذیریهای احتمالی را رفع کنند.
- آدیت قراردادهای هوشمند: زنجیرهها میتوانند با استفاده از ابزارها و سرویسهای آدیت شخص ثالث، کدهای قراردادهای هوشمند را بهطور جامع بررسی کنند و از امنیت آنها اطمینان پیدا کنند.
- محفاظت از نودها: بهتر است برای حافظت از نودها در برابر حملات مختلف از سیستمهای تشخیص نفوذ (IDS) و فایروالها استفاده شود.
نمونهای از تهدید امنیت لایه یک
در سال ۲۰۱۶ (۱۳۹۴)، سازمان مستقل غیرمتمرکز (DAO) اتریوم مورد حمله قرارگرفت. این حادثه ناشی از یک نقض امنیتی در شبکه بود. در واقع مهاجم توانسته بود با سوء استفاده از آسیبپذیری تابع برگشتی در قرارداد هوشمند دست به حمله دوبارخرج کردن بزند و ۵۰ میلیون دلار اتریوم را سرقت کند. در پی این اتفاق کامیونیتی اتریوم برای بازگرداندن وجوه مسروقه تصمیم به فورک شبکه گرفت و دو زنجیره اتریوم (ETH) و اتریوم کلاسیک (ETC) ایجاد شد.
همچنین دائو یا همان سازمان خودگردان غیرمتمرکز اتریوم بهمنظور بالابردن امنیت شبکه مکانیزمهای سختگیرانهتری را برای آدیت و بررسیهای امنیتی اجرا کرد.
امنیت بلاکچینهای لایه ۲؛ راهحلهای مقیاسپذیری
لایه ۲ها، اکثرا راهحلهایی برای بهبود مقیاسپذیری و عملکرد شبکه هستند و در عین حال امنیت زنجیره را در بالاترین سطح ممکن حفظ میکنند. زنجیرههای جانبی، کانالهای وضعیت و شبکههای لایتنینگ نمونههایی از راهحلهای لایه ۲ هستند. امنیت در این لایه شامل حفظ امنیت تعاملات میانزنجیرهای و تایید تراکنشها میشود.
چالشهای امنیتی
- امنیت ارتباطات میانزنجیرهای: در صورتی که پروتکلهای ارتباط میانزنجیرهای دچار آسیبپذیری باشند، احتمال حمله یا سوء استفاده از آنها وجود دارد.
- امنیت تایید تراکنشها: اگر مکانیسم تایید تراکنشها در لایه ۲ نقص داشته باشد، ممکن است شبکه با حمله دوبار خرجکردن یا تراکنشهای تایید نشده مواجه شود.
اقدامات امنیتی
- آدیت پروتکلهای میانزنجیرهای: برای اطمینان از امنیت پروتکلهای ارتباط میانزنجیرهای باید آدیتها بهصورت جامع و پیوسته انجام شوند.
- بهینهسازی مکانیزم تایید تراکنشها: شبکههای لایه ۲ میتوانند از طریق بهینهسازی مکانیزم تایید تراکنشها از منحصربهفرد بودن و تغییر ناپذیربودن تراکنشها اطمینان پیدا کنند.
- تایید امنیتی طرح توسعه: زنجیرههای لایه ۲ برای تایید کامل طرحهای توسعه و اطمینان از امنیت آنها باید از ابزارهای تست امنیت و تاییدهای رسمی استفاده کنند.
نمونهای از تهدید امنیت لایه ۲
شبکه لایتنینگ یک طرح توسعه لایه ۲ برای پرداختهای خرد و سریع در شبکه بیت کوین است. در سال ۲۰۱۹ (۱۳۹۷)، محققان یک آسیبپذیری را کشف کردند که سرقت وجوه کاربران از طریق تراکنشهای مخرب را امکانپذیر میکرد.
ماجرا از این قرار بود که مهاجم میتوانست با ارسال تراکنش نامعتبر قبل از بسته شدن کانال، دارایی کاربر را سرقت کند. اگرچه اتفاق خاصی نیفتاد؛ اما این آسیبپذیری شبکه لایتنینگ را از نظر امنیتی در معرض خطرات بالقوهای قرار میداد. تیم توسعه به محض اطلاع از این نقض امنیتی با صدور یک اطلاعیه از کاربران خواستند نسخههای خود را بهروزرسانی کنند. همچنین شبکه لایتنینگ بعد از این اتفاق آدیتهای امنیتی قویتری را اجرا کرد.
امنیت بلاکچینهای لایه ۳؛ لایه برنامه
منظور از لایه ۳، برنامههای مبتنی بر بلاکچین مانند برنامههای غیرمتمرکز (DApp)، پلتفرمهای قرارداد هوشمند و مکانیزمهای حاکمیت آنچین است. امنیت لایه ۳ شامل حفظ امنیت داده کاربر و منطق برنامه میشود.
چالشهای امنیتی
- امنیت دادههای کاربر: در صورتی که دادههای کاربر درز پیدا کند یا دستکاری شود، حریم خصوصی کاربران نقض میشود.
- آسیبپذیری منطق برنامه: اگر منطق برنامه دچار آسیبپذیری باشد، احتمال وسوسه عوامل مخرب برای انجام حمله بیشتر میشود.
- امنیت احراز هویت: مکانیزمهای احراز هویت هم اگر نقص داشته باشند، احتمال سوء استفاده را بیشتر میکنند.
استراتژیهای امنیتی
- رمزگذاری دادهها: یکی از راههای حفظ حریم خصوصی کاربر در لایه ۳ها، ذخیرهسازی داده با استفاده از فناوریهای رمزنگاری است.
- آدیت منطق برنامه: برای بررسی جامع منطق برنامه و اطمینان از امنیت آنها میتوان از ابزارها و سرویسهای آدیت شخص ثالث کمک گرفت.
- احراز هویت چندعاملی: استفاده از مکانیزمهای احراز هویت چندعاملی باعث ارتقا امنیت هویت کاربر میشود.
نمونهای از تهدید امنیت لایه ۳
در آگوست ۲۰۲۱ (مردادماه ۱۴۰۰) پروتکل قابلیت همکاری میانزنجیرهای پالی نتورک (Poly Network) بهطور ناگهانی هک شد. به دنبال این اتفاق سرویس سواپ شبکه که از این پروتکل استفاده میکرد، متحمل ضررهای سنگینی شد؛ چراکه داراییهای سه شبکه اصلی اتریوم، زنجیره هوشمند بایننس و پالیگان به غارت رفتند.
ارزش رمزارزهایی که تنها ظرف ۱ ساعت از این سه شبکه سرقت شد، به ترتیب ۲۵۰ میلیون، ۲۷۰ میلیون و ۸۵ میلیون دلار بود و شبکه در مجموع ۶۱۰ میلیون دلار خسارت دید. این حمله از طریق جایگزینی کلید عمومی ولیدیتور زنجیره ریلی (Relay) اتفاق افتاد. بهعبارت دیگر مهاجم جایگزین ولیدیتور میانجی شد و کنترل میانزنجیره را برعهده گرفت. این حادثه صرافیهای غیرمتمرکز را به فکر واداشت تا علاوهبر اعمال آدیتهای امنیتی سختگیرانهتر برای قراردادهای هوشمند، احراز هویت چندعاملی را پیادهسازی کنند.
جمعبندی
امنیت بلاکچین ها یک موضوع چند لایه است و باید تمامی سطوح از لایه صفر تا لایه ۳ درنظر گرفته شود. از آنجایی که ساختار معماری هر لایه متفاوت است و برای هدف و کاربرد خاصی طراحی شده است، روش تامین امنیت لایههای مختلف بلاکچین با یکدیگر متفاوت است. برای حفظ امنیت لایه صفر، باید مواردی مانند سختافزارها، مکانیزم اجماع و امنیت شبکه را درنظر گرفت. لایه یک همان زنجیره اصلی است و آسیبپذیری پروتکلها، قراردادهای هوشمند و حمله به نودها میتواند امنیت این لایه را به خطر بیندازد.
امنیت لایه ۲ها در گرو آدیت پروتکلهای میانزنجیرهای، بهینهسازی مکانیزم تایید تراکنشها و اطمینان از امنیت طرحهای توسعه است. در نهایت امنیت لایه ۳ از طریق رمزنگاری دادههای کاربر، آدیتهای منطق برنامه و استراتژیهایی نظیر احراز هویت چندعاملی بهدست میآید. تنها درصورتی که تمام این موارد دست به دست هم دهند، امنیت کلی بلاکچین تضمین میشود و کاربر میتواند تجربه امنی در این فضا داشته باشد.