همه چیز درباره سطح حمله یا Attack Surface و آسیب پذیری های رایج آن
سطح حمله یا Attack Surface اشاره به ضعیفترین نقطه یک سیستم دارد که عوامل مخرب میتوانند از طریق آن به سیستم نفوذ کنند. مهاجم یا هکر پس از نفوذ، میتواند دادههای حساس را استخراج، آنها را دستکاری (یا حذف) و بدین ترتیب، آسیبی جدی به سیستم وارد کند. طبیعتا هرچه سطح حمله بزرگتر باشد، نفوذ برای مهاجم راحتتر است. در این مقاله درباره ماهیت سطح حمله، انواع مختلف آن به همراه معرفی روشهای کاهش دسترسی هکرها صحبت میکنیم و در انتها به Attack Surface در بلاک چین و صرافیهای متمرکز میپردازیم. با ما همراه باشید.
سطح حمله چیست؟
Attack Surface در محیط نرمافزار، شاخصی برای امنیت سیستم است. اگر یک سیستم، سطح حمله بزرگتری داشته باشد، در برابر حملات آسیبپذیرتر خواهد بود و هکر با سوءاستفاده از آن، میتواند به سیستم نفوذ کند و خسارات سنگینی مانند حذف یا دستکاری دادهها و یا افزودن بدافزارها به آن وارد کند.
در این مبحث، دو اصطلاح سطح حمله (Attack Surface) و مسیر حمله (Attack Vector) وجود دارد که نباید با یکدیگر اشتباه گرفته شوند. سطح حمله بیانگر میزان امنیت کلی سیستم و مسیر حمله نشانگر راه نفوذ است. برای نفوذ به سطح حمله یک سیستم، یافتن تنها یک مسیر آسیبپذیر یا ناامن از سیستم کافی است؛ اگر Attack Surface کوچکتر باشد، مهاجم باید حمله پیچیدهتری انجام دهد و برای این کار، باید ابتدا کل سیستم و تمام دستگاهها و مسیرهای آنها را ترسیم کند و در نهایت، آسیبپذیریهای بالقوه را شناسایی و مورد سوءاستفاده قرار دهد.
به بیانی دیگر، سطح حمله به معنی تعداد مسیرهای آسیبپذیر سیستم است. این مسیرها میتوانند شبکه، دیتاسنتر، سیستم عامل، اپلیکیشنهای مبتنی بر وب، محیط نرمافزار یا حتی افراد شاغل در یک سیستم باشند. هکرها پس از نفوذ به سیستم، میتوانند از فایروال سیستم عبور کنند (Firewall دستگاهی است که از دسترسیهای غیرمجاز به شبکه جلوگیری میکند) و به چنین دادههایی دسترسی یابند:
- سوابق کارمندان: مهاجمان میتوانند به سرقت دیتاهایی از جمله شماره بیمه، آدرس منزل، ارزیابیها، سوابق پزشکی و در کل، دادههای خصوصی کارمندان بپردازند.
- اطلاعات توسعه محصول: هکرها میتوانند به روند توسعه یک محصول دسترسی پیدا کنند و با انتقال آن به رقبا، باعث پیشی گرفتن آنها از تولیدکننده اصلی شوند.
- سوابق مالی: مهاجم میتواند دادههای مالی خصوصی، توافقات اجاره، قراردادهای فروشندگان، درآمد شرکتها و غیره را استخراج کند.
- اطلاعات محرمانه: هکرها میتوانند به دادههای محرمانه دولتها، ارتشها، شرکتهای بزرگ و غیره دسترسی پیدا کنند و حتی با فروش آنها به دشمنان، باعث جنگ شوند.
این موارد، تنها بخشی از خساراتیست که هکرها میتوانند وارد کنند. آنها همچنین پس از عبور از فایروال میتوانند بدافزارها، نرمافزارهای جاسوسی و مواردی از این قبیل را نیز در شبکهها قرار دهند. طبق بررسی متخصصان امنیت سایبری، هکرها سالیانه حدود ۴۰۰ میلیارد دلار خسارت به شرکتها وارد میکنند. هر اطلاعاتی که در سطح اینترنت وجود دارد، میتواند مورد حمله هکرها قرار گیرد؛ بنابراین تا جای ممکن، باید سطح حمله را پایین نگه داشت و مسیرهای حمله را مسدود کرد.
انواع Attack Surface
سطح حمله به ۳ دسته کلی زیر تقسیم میشود و هر کدام از مسیرهای مختلفی که توضیح دادیم، در یکی از این دستهها قرار میگیرند:
- سطح حمله دیجیتال
- سطح حمله فیزیکی
- سطح حمله مهندسی اجتماعی
سطح حمله دیجیتال
تمام نرمافزارها، سختافزارها و مولفههای شبکه که حساس و مستعد هک هستند، در این دسته قرار میگیرند. المانهای سطح حمله دیجیتال این موارد هستند:
- اپلیکیشنهای تحت وب: وبسایتها و سرویسهای مبتنی بر وب که ورودیهای کاربران را پردازش میکنند و با دیتابیسها تعامل دارند.
- API یا رابط برنامهنویسی کاربردی: APIها به سیستمهای نرمافزاری مختلف امکان تعامل با یکدیگر را میدهند.
- نقاط پایانی (Endpointها): دستگاههای متصل به شبکه مانند لپ تاپ، موبایلهای هوشمند، سرورها، دستگاههای اینترنت اشیا و غیره.
- زیرساخت شبکه: مولفههایی مانند روترها، سوئیچها و فایروالهایی که ارتباط بین دستگاههای یک شبکه را مدیریت میکنند.
سطح حمله فیزیکی
سطح حمله فیزیکی به خطرات امنیتی مرتبط با داراییهای ملموس یک سازمان مربوط میشود. نمونههایی از آن شامل این موارد است:
- دیتاسنتر: مکانهای فیزیکی که سرورها و دیگر سختافزارها در آنجا قرار دارند دیتاسنتر نام دارد. مهاجمین میتوانند با دسترسی به این مکانها، دیتا را سرقت کرده و یا خسارات فیزیکی وارد کنند.
- دستگاههای مورد استفاده کارمندان: کامپیوترها، لپتاپها، موبایلها و دستگاههای دیگری که توسط کارمندان یک سازمان مورد استفاده قرار میگیرند، میتوانند مورد هدف مهاجمین قرار گیرند.
- سیستمهای کنترل دسترسی: تمهیدات امنیتی مانند کارتهای کلید، اسکنرهای بایومتریک و دوربینهای مداربسته میتوانند برای نفوذ به سازمان مورد حمله قرار گیرند.
سطح حمله مهندسی اجتماعی
ذهن و روان مردم یکی از خطرناکترین ابزارها برای حمله به سازمانهاست. ذهن کارمندان یک شرکت، میتواند طوری دستکاری شود که باعث افشای اطلاعات و یا از کار انداختن موارد امنیتی سازمان از سمت آنها شود. در اصل میزان موفقیت مهندسی اجتماعی، متکی به کمبود دانش افراد در مورد نحوه انجام این حملات است.
سازمانهایی که اطلاعات حساس دارند، تا جای ممکن به کارمندان خود درباره روشهای مختلف مهندسی اجتماعی آموزش میدهند و خود نیز از روشهای مختلفی برای کاهش یا حذف این حملات استفاده میکنند. نمونههای حملات مهندسی اجتماعی را مثال میزنیم.
- فیشینگ: در هر دو فضای سنتی و کریپتو، فیشینگ یکی از حملات متداول است. این حمله معمولا با هدف کلاهبرداری عمومی انجام میشود. خصیصه اصلی Phishing کپی کردن یک وبسایت با دامنه شبیه به سایت اصلی است. مثلا وبسایت Uniswap با دامنه Unlswap ساخته میشود. عموم کاربران که متوجه نام دامنه جعلی نمیشوند، کیف پول خود را به سایت متصل کرده و کلاهبردار داراییهای آنها را سرقت میکند! البته فیشینگ انواع مختلفی دارد و ما تنها یک نمونه را اینجا توضیح دادیم.
- Whaling: نوعی فیشینگ که هدف آن یک فرد ردهبالا است؛ (افرادی که مسئول دادههای حساس هستند و یا از آنها اطلاع دارند). معمولاً مسئولین حسابهای پرداختی، امنیت سایبری، حراست، مدیرعامل و غیره جزو اهداف حملات Whaling هستند.
- Media Drops: در این روش، هکر یک USB آلوده را داخل ساختمان میبرد به این امید که یک کارمند ناآگاه آن را برداشته و به یکی از کامپیوترها متصل کند.
- افراد خدماتی جعلی: مهاجمان خود را به جای سرایدار، تعمیرکار، برقکار و غیره جا زده و پس از ورود به سازمان به سرورها، کامپیوترها و روترها دسترسی پیدا میکنند.
البته اینها تنها چند نمونه از حملات مهندسی اجتماعی است و قطعا این حملات بسیار گستردهتر هستند.
مسیر حمله چیست؟
Attack Vector مسیری است که هکرها از طریق آن به سیستم نفوذ میکنند. هر مسیر نشاندهنده یک آسیبپذیری است و این مسیرها میتوانند صدها مورد باشند. مسیر حمله برای هر سازمان، نسبت به شرایط آن متفاوت است و هیچ دو شرکتی وجود ندارند که سطح حمله یکسانی داشته باشند. اما چند مسیر حمله مشترک وجود دارد که در بسیاری از سازمانها تکرار میشوند:
- خودداری از سرویس توزیع شده (DDoS): در این مسیر حمله، ترافیک بسیار سنگینی به سرور یا شبکه مورد هدف روانه میشود و عملکرد آن را مختل میکند. معمولا در حملات پیچیده، هکرها ابتدا یک حمله DDoS به سرور سازمان انجام داده و پس از مختل شدن آن، حملات اصلی را اجرا میکنند.
- عدم رمزگذاری سیستم: اگر پروتکلهای امنیتی سازمان ضعیف باشند، اطلاعات بدون محافظت منتقل و در نتیجه، مسیر برای سرقت باز میشود.
- کارمندان سازمان: یک کارمند بدکار میتواند با در اختیار قرار دادن اطلاعات حساس یا پسوردهای سازمان به مهاجمان، امنیت سازمان را به خطر بیاندازد.
- بدافزارها: این نرمافزارها بسیار خطرناک هستند و به منظور ایجاد اختلال در سیستمها، کاهش سرعت پردازش کامپیوترها، انتشار ویروسها و غیره طراحی میشوند. نوعی از این بدافزارها، نرمافزارهای جاسوسی (Spyware) هستند که برای استخراج اطلاعات شخصی و حساس ایجاد میشوند.
- پسوردهای ساده: رمز عبورهای ضعیفی مانند ۱۲۳۴۵ باعث میشوند نفوذ برای هکرها بسیار راحتتر و سریعتر انجام شود.
- باجافزارها: هکرها پس از نفوذ به سیستم، آن را به طور کامل قفل کرده و در ازای دریافت مبلغی پول یا اطلاعات حساس، آن را باز میکنند.
نحوه ارزیابی سطح حمله
ارزیابی سطح حمله به معنی مشخص کردن تمام مسیرهای حمله است. برای کاهش Attack Surface و ریسک هک، سازمانها باید محیط امنیتی شبکه خود را درک و درباره آن تحقیق کنند. این آنالیزها لیستی دقیق از آسیبپذیریها به شرکتها ارائه میدهند.
دو روش اصلی برای ارزیابی وجود دارد؛ تحلیل دستی و تحلیل خودکار. در روش دستی، متخصصان امنیت سازمان با استفاده از مسیرهای حمله احتمالی، به تست نفوذ میپردازند و سپس آنها را برطرف میکنند. در روش خودکار، ابزارهایی مانند نرمافزارهای مدیریت Attack Surface وجود دارند که بهطور مداوم زیرساختهای سازمان را بررسی و آسیبپذیریهای احتمالی را شناسایی میکنند.
روشهای کاهش Attack Surface
پس از شناسایی آسیبپذیریها، باید سوءاستفاده از آنها را تا حد امکان کاهش داد. مراحل مختلفی برای کاهش سطح حمله وجود دارند:
- آسیبپذیریها: بستن نقاط دسترسی غیرضروری از هر ترمینال، بهینهسازی مسیرهای رفت و آمد دادهها در اپلیکیشنها، بهبود کدهایی که از این مسیرها محافظت میکنند، پسوردها، رمزگذاریها و غیره.
- دسترسی کاربران: چه افرادی به کدام نقاط سیستم دسترسی دارند؟ نیازهای روزمره کاربران چیست؟ آیا الزاماً همه کاربران باید به نقاط خاصی دسترسی داشته باشند؟
- انجام ارزیابی ریسک: شناسایی بخشهایی که کاربران زیادی دارد و بیشترین آسیبپذیری را داراست. تست این بخشها میتواند به یافتن مشکلات موجود کمک کند.
- حذف خدماتی که کاربران کمی دارند: با حذف سرویسهای غیرضروری با تعداد کاربران کم، میتوان مسیرهای حمله را کاهش داد.
- کاهش تعداد خطوط کد: سیستمها توسط کدها اجرا میشوند. با بهینهسازی و کاهش خطوط غیرضروری کدها، میتوان سیستم را امنتر کرد.
- وضع قوانین عدم اعتماد: باید مطمئن شد که فقط افراد مجاز با دسترسی صحیح به منابع حساس دسترسی دارند.
- سادهسازی سیستم: پیچیدگیهای غیرضروری و نرمافزارهای بلااستفاده، باعث ایجاد ضعف در مدیریت آنها میشود و مهاجم میتواند از این ضعف برای رخنه استفاده کند.
- بخشبندی شبکه: این کار به سازمانها اجازه میدهد که سیستم را بهتر و راحتتر مدیریت کنند. استراتژیهایی مانند Microsegmentation و استفاده از فایروال در هر بخش، میتواند باعث به حداقل رساندن سطح حمله شود.
- آموزش کارمندان: کارمندان یک سازمان میتوانند تبدیل به مسیر حمله شوند. آموزش امنیت سایبری و روشهای مختلف حمله به آنها، باعث کاهش Attack Surface میشود.
- ایمن کردن گزارشها: پس از نوشتن گزارشها درباره مشکلات موجود و نحوه برطرف کردن آنها، باید این گزارش به صورت امن نگهداری شود؛ زیرا ممکن است هکرها با نفوذ به سیستم، از این اطلاعات سوء استفاده کنند.
سطح حمله در بلاکچین
اکنون که با مفهوم Attack Surface آشنا شدیم، نوبت به بررسی آن در بلاک چین میرسد. قابل ذکر است که هک و سایر حملاتی که در این مقاله توضیح دادیم را نمیتوان به خود بلاکچینها انجام داد؛ زیرا نمیتوان دادههای ثبت شده در آن را حذف یا تغییر داد و نوع حملات در زنجیره بلوکها متفاوت است. برخی از حملات متداول این موارد هستند:
- حمله ۵۱ درصد
- دوبار خرج کردن (Double Spending)
- حمله سیبیل (Sybil Attack)
- حمله خسوف (Eclipse Attack)
علاوه بر اینها، در زمینه قراردادهای هوشمند نیز حملاتی مانند Reentrancy، فرانت رانینگ، Overflow/Underflow، دستکاری قیمت، دستکاری اوراکل و غیره هم وجود دارند که موضوع بحث ما نیست.
اما انواع حملاتی که در این مقاله معرفی کردیم را میتوان به صرافیها و پلتفرمهای مالی حوزه بلاکچین انجام داد؛ زیرا از سیستمهای آنلاین مانند سایر سایتها استفاده میکنند. چند نمونه از این حملات را توضیح میدهیم:
مورد اول حمله DDoS است. همانطور که قبلا اشاره کردیم، این حمله برای مختل کردن شبکه، سرور یا وبسایت استفاده میشود. در فضای صرافیها، این حمله باعث اختلال در انجام تراکنشها یا ایجاد نوسان در قیمتها میشود.
مورد دوم هدف قرار دادن حساب کاربران است. حملاتی مانند فیشینگ، شکستن رمز عبور کاربران با استفاده از مهندسی معکوس، نصب تروجانها، کلاهبرداریها، فریب کاربران از طریق ایجاد ترافیک یا پیامهای ساختگی، سرقت اکانت، هک اکانت مدیران دیسکورد پلتفرم، تغییر آدرسهای موجود در پلتفرم و در کل، مهندسی اجتماعی از جمله این حملات است.
هک و سرقت دادهها مورد سوم است. هک کامپیوتر کاربران و سرقت کلیدهای خصوصی، پسوردها و فایلهای حساس آنها بسیار متداول است. این کار معمولا از طریق ارسال یک لینک یا فایل آلوده به افراد انجام میشود. کاربران پس از کلیک روی این لینکها یا دانلود فایلها، به هکر دسترسی میدهند که در سیستم آنها بگردد و فایلهای حساس را پیدا کند.
Attack Surface در صرافیهای متمرکز
در مورد صرافیها، هکرها از آسیبپذیریهای موجود در کدهای سایت سوءاستفاده میکنند و با انجام حملات مختلف، ارزهای دیجیتال موجود در آنها را سرقت میکنند. یکی از خطرات بزرگ در این زمینه، حمله apt یا تهدید دائمی پیشرفته است؛ البته این حمله در سیستمهای سنتی نیز وجود دارد و اولین بار در سال ۲۰۰۳ انجام شد. در APT، مهاجم از مسیری انحرافی عبور کرده، تاییدیههای متعدد و سیستمهای مدیریت کنترل امنیتی سرور داخلی را دور میزند و در نهایت، به سیستم نفوذ میکند. این نوع حمله معمولا به مدت طولانی انجام میشود.
در سال ۲۰۱۹ صرافی DragonEx مورد حمله APT قرار گرفت و هکرها توانستند تعداد زیادی از کلیدهای API و کدهای ۲FA موجود در آن را سرقت کنند. با استفاده از این کدها و کلیدها، دارایی و اطلاعات کاربران زیادی به سرقت رفت.
بنابراین از آنجایی که صرافیهای متمرکز و دیگر سرویسهای مالی کریپتویی (که از وبسایت استفاده میکنند) مستعد هک و حملات مختلف سایبری هستند، پیشنهاد میکنیم داراییهای خود را برای بلندمدت در صرافیها نگهداری نکنید و حتما پس از خرید ارزهای دیجیتال، آنها را به کیف پول شخصی خود (ترجیحا سختافزاری) انتقال دهید. اگر تریدر هستید، فقط مقدار پولی که برای معامله نیاز دارید را به صرافی ارسال کنید.
آیا تاکنون در صرافیهای ارز دیجیتال مورد حمله قرار گرفتهاید؟ آیا هکرها توانستهاند داراییهای شما را سرقت کنند؟ تجارب خود را در این خصوص با ما و سایر کاربران به اشتراک بگذارید.