اکسپلویت چیست ؟
اکسپلویت (exploit) به قطعهای از کد یا برنامه اشاره دارد که به صورت هدفمند از آسیبپذیریها یا نقصهای امنیتی موجود در نرمافزار یا سختافزار استفاده نموده تا اقداماتی مانند حمله DoS یا نصب بدافزار مانند جاسوسافزار (spyware)، باجافزار (ransomware)، تروجان (Trojan horses)، کرم (worm) یا ویروس (virus) را سرانجام دهد. به عبارت دیگر اکسپلویت، یک بدافزار نیست؛ بلکه ابزاری برای تسهیل انتقال و اجرای بدافزار محسوب میشود.
اکسپلویت کردن نیز به معنای اجرای موفقیتآمیز حملات مذکور است.
معنی کلمه Exploit
توی دنیای امنیت سایبری، بهرهبرداری مثل اینه که یه دزد بفهمه قفل در خونهت خرابه و از همون خرابی استفاده کنه که بیاد تو. حالا توی سیستمهای کامپیوتری، این ‘خرابی’ میتونه یه اشتباه توی کد برنامهنویسی یا یه جای کار که خوب تنظیم نشده باشه. هکرا دنبال اینجور جاها میگردن و با یه ترفند یا یه تیکه کد که بهش میگن ‘بهرهبرداری’، از اون ضعف سوءاستفاده میکنن. هدفشون چیه؟ ممکنه بخوان اطلاعاتت رو بدزدن، سیستم رو قفل کنن، یا حتی خرابکاری راه بندازن. انگار کلید یه در مخفی رو پیدا کنن که نباید دستشون باشه .
نحوه عملکرد exploit چگونه است؟
زمانی که متخصصان مربوطه، سیستمعاملی (OS) را برای یک دستگاه، ایجاد میکنند؛ یا کدنویسی مربوط به یک نرمافزار را انجام میدهند با اشکالاتی در این فرایند مواجه میشوند. این اشکالات میتوانند به آسیبپذیریهایی در سیستم منجر شوند. بنابراین یک اکسپلویت مانند ابزاری است که آسیبپذیریهای موجود را شناسایی میکند تا از طریق آنها به اطلاعات یا منابع مهم، دسترسی پیدا کند یا کارکرد سیستم را مختل کند.
چنانچه یک باگ نرمافزاری، اصلاح نگردد، میتواند مانند یک راه نفوذ برای مجرمان سایبری عمل کند. در دنیای کنونی که دستگاههای فراوانی از طریق شبکه IoT به یکدیگر متصل شدهاند، یک اکسپلویت قادر خواهد بود علاوه بر به خطر انداختن یک دستگاه، امنیت کل شبکهای که به آن متصل است را نیز تهدید کند.
انواع اکسپلویت
-
سختافزاری
بهطور کلی سختافزارها باید در سطوح مختلف بر روی یک سیستمعامل اجرا شوند؛ چه سیستمعامل پیچیده برای یک کامپیوتر شخصی و چه سیستمعامل سادهتر برای یک دستگاه edge.
در هر صورت آسیبپذیریهای موجود در سیستمعامل میتوانند به نقاط وروی برای یک اکسپلویت تبدیل شده و موجب اختلال در حافظه یا توقف عملکرد دستگاه شوند.
-
نرمافزاری
باگهای نرمافزاری که بهطور طبیعی در فرایند توسعه نرمافزار ایجاد میشوند، در صورت عدم اصلاح به موقع، به آسیبپذیریهایی تبدیل خواهند شد که در معرض اکسپلویت قرار میگیرند.
برخی از روشهای رایج اکسپلویت شامل موارد زیر میگردد:
- ضعف امنیتی حافظه؛
- خطا در تایید هویت کاربر؛
- حملات Side-Channel؛
- آسیبپذیری Privilege confusion که سیستم به اشتباه به یک کاربر عادی، دسترسی ادمین یا root میدهد و بالعکس.
-
شبکهای
ممکن است هر یک از المانهای شبکه، حاوی آسیبپذیری باشند؛ اعم از سختافزاری، نرمافزاری و کانفیگ فایروال.
برخی از حملات نیز ممکن است بخشی از یک اکسپلویت باشند؛ مانند:
- تصاحب دامنه (Domain Hijacking): حملهای است که به مهاجم اجازه میدهد به نام دامنه، بدون رضایت ثبتکننده اصلی، دسترسی پیدا کند.
- حمله DoS (denial of Service): حملاتی که با هدف مختل کردن دسترسی به یک سرویس یا منابع آنلاین، انجام میشود.
- حملات DDoS (Distributed Denial of Service): حملهای مشابه DoS اما به طور همزمان از چندین نقطه مختلف (گروهی از باتنتها) صورت میگیرد.
- بدافزار (Malware): نرمافزارهای مخربی که برای آسیب رساندن به سیستمها یا سرقت اطلاعات طراحی میشوند.
-
پرسنل
حتی افراد نیز ممکن است اکسپلویت گردند. مجرمان سایبری میتوانند با استفاده از روشهایی مانند مهندسی اجتماعی، حمله فیشینگ هدفمند (spear phishing) و تلهگذاری (honey trapping)، به سیستمها و اطلاعات لاگین، نفوذ کنند. آموزش کارمندان و پالیسیهایی مانند access control در این خصوص، اهمیت ویژهای دارد.
-
امنیت فیزیکی
چنانچه امنیت فیزیکی یا کنترل دسترسی، کافی نباشد، اکسپلویتها میتوانند به صورت حضوری نیز انجام شوند. یک مهاجم سایبری میتواند به صورت حضوری یا از راه دور به سیستم مورد نظر، نفوذ کرده و دست به اکسپلویتی بزند که کل شبکه را به خطر بیندازد.
طبقهبندی اکسپلویتها
-
اکسپلویت zero-day
این نوع اکسپلویت به معنای آسیبپذیریهایی است که پیشتر ناشناخته بودند. شناسایی و پیشبینی zero-day exploitها از اهمیت ویژهای برخوردار است، چرا که این امر برای توسعه پچهای امنیتی یا اجرای استراتژیهای دیگر جهت کاهش آسیبپذیری یا تهدیدات، حیاتی است.
-
آسیبپذیریهای شناختهشده
آسیبپذیریهای شناختهشده به مواردی اشاره دارند که شناسایی و مستند شدهاند. اعمال پچهای آپدیت برای رفع این نوع آسیبپذیریها، کاربرد دارد. اما مجرمان سایبری نیز میتوانند به این مستندات دسترسی پیدا کرده و اکسپلویت طراحی کنند.
مهمترین تهدیدی که در این مواقع صورت میگیرد، این است که غالبا سازمانها، پچهای آپدیت را به موقع اعمال نکرده باشند یا مشکل را در اولین فرصت، برطرف نکرده باشند. این امر باعث باقی ماندن آسیبپذیری میگردد.
اکسپلویتها چگونه رخ میدهند؟
-
Remote exploits
اکسپلویتهایی که از راه دور انجام میشوند، از طریق یک کامپیوتر خارجی و با استفاده از شبکهای مانند اینترانت یا سایر شبکهها اجرا میشوند. Remote exploit بدون نیاز به دسترسی قبلی به سیستم و از طریق یک آسیبپذیری امنیتی، قابل اجرا است. هدف این اکسپلویت، دسترسی به دادهها، سرقت اطلاعات یا نصب بدافزار بر روی یک سیستم یا کل شبکه است.
-
Local exploits
این اکسپلویتها تنها در صورتی قابل اجرا هستند که یک فرد با هدف مخرب، به یکی از دستگاههای موجود در شبکه، دسترسی فیزیکی یا ریموت داشته باشد و این دسترسی معمولا از طریق یک اکانت کاربری که امنیت آن به خطر افتاده، استفاده میکند.
-
Client exploits
این نوع اکسپلویت، مستقیما کاربران را هدف قرار میدهد و آنها را فریب داده تا روی یک لینک مخرب، کلیک کنند یا بدافزاری را دانلود نمایند. بدافزار دانلودشده میتواند امنیت شبکه یا سیستم را به خطر انداخته و دسترسی غیرمجاز را برای مهاجمان فراهم کند. این نوع اکسپلویت معمولا با استفاده از روشهایی مانند فیشینگ یا مهندسی اجتماعی انجام میشوند.
آیا ابزارهایی برای تشخیص exploit وجود دارد؟
کیتهای اکسپلویت به صورت خودکار و بدون آگاهی کاربران، در جستجوی شناسایی آسیبپذیریهای موجود در دستگاه به هنگام مرور در وب هستند. این کیتها عمدتا به طور خودکار عمل میکنند و به ابزاری محبوب در میان مجرمان سایبری تبدیل شدهاند. غالبا از این کیتها برای توزیع ابزارهای دسترسی از راه دور (RAT) یا انتشار گسترده بدافزار استفاده میشود و با حداقل تعامل انسانی، امنیت سیستمها به خطر میافتد.
به طور معمول هدف کیتهای اکسپلویت، دستیابی به کنترل دستگاهها به روشی ساده و خودکار است. برای موفقیتآمیز بودن حملات، در یک کیت اکسپلویت، یک سری از رویدادها به ترتیب رخ میدهند. ابتدا کاربر وارد یک صفحه landing میشود؛ سپس اکسپلویت اجرا میگردد و در نهایت بارگذاری بدافزار انجام میشود که به مهاجم سایبری امکان میدهند کنترل دستگاه مورد نظر را در دست گیرد.
کیتهای اکسپلویت میتوانند در تست نفوذ (penetration testing) نیز برای ارزیابی امنیت سیستمها، مورد استفاده قرار گیرند. به عنوان مثال، کیت اکسپلویت فورتینت (Fortinet exploit kit) برای اجرای یک تمرین شبیهسازی بر روی سیستمها استفاده میشود تا آسیبپذیریها را نشان دهد.
چگونه میتوان یک حمله اکسپلویت را شناسایی کرد؟
-
کاهش عملکرد سیستم (slow performance)
دلایل مختلفی میتوانند باعث کند شدن عملکرد دستگاه یا سیستم شوند که یکی از آنها، کاهش عملکرد ناشی از اکسپلویت است. بنابراین، اگر به عملکرد سریع دستگاه خود عادت کردهاید و به طور ناگهانی شاهد کاهش غیرعادی سرعت آن هستید، ممکن است این کندی به دلیل آلوده شدن سیستم شما به بدافزار باشد.
-
خرابیهای مکرر (Frequent crashes or freezes)
برخی از مشکلات فنی مانند عدم سازگاری نرمافزار و سختافزار ممکن است باعث خرابی سیستم و حتی بروز صفحه آبی (blue screen) شود؛ اما در عین حال، وجود بدافزار نیز میتواند عامل اصلی این مشکلات باشد.
-
تغییر غیرعادی تنظیمات (Unexplained changed settings)
تغییرات غیرعادی که به یاد نمیآورید آنها را اعمال کرده باشید، مانند تغییر صفحه اصلی پیشفرض در مرورگر، میتواند نشانهای از یک اکسپلویت باشد.
-
حجم گسترده پاپآپهای تبلیغاتی (Tons of pop-ups or ads where they should not be)
پاپآپهای فراوان میتوانند تهدیدات بدافزاری را مخفی کنند یا در حال نظارت بر فعالیتهای شما باشند تا اطلاعات و پسوردهای شما را جمعآوری کنند. همچنین، ایمیلها و پیشنهادات ویژه نیز ممکن است با هدف مشابهی طراحی شده باشند.
-
از دست دادن ناگهانی فضای ذخیرهسازی (Loss of storage space)
از دست دادن سریع و ناگهانی فضای ذخیرهسازی میتواند به دلایل مختلفی رخ دهد، اما یکی از دلایل اصلی آن، آلوده شدن به بدافزار است و باید قبل از رد شدن بهعنوان علت احتمالی، بررسی شود.
چطور میتوان یک exploit attack را خنثی کرد؟
یکی از مهمترین اقدامات در این زمینه، نصب آپدیتهای نرمافزاری است. اما برای مقابله موثر با حملات سایبری باید آموزشهای لازم به کارکنان ارائه شود. از استراتژیهای دیگر میتوان به تجهیزات معتبر و خودکاری اشاره کرد که در صورت بروز تهدیدات امنیتی وارد عمل میشوند.
کلاینتها و تامینکنندگانی که به سیستم شما دسترسی دارند نیز باید اطمینان حاصل کنند که امنیت آنها کافی میباشد.
چطور میتوان از اکسپلویت جلوگیری نمود؟
بدیهی است پیشگیری از اکسپلویت بهتر از اصلاح آسیبهای ناشی از آن است. برخی استراتژیها میتوانند به جلوگیری از اکسپلویت شدن به سازمان کمک کنند.
نرمافزار: پچهای امنیتی را در اولین فرصت، اعمال کنید و اسکن ضدویروس را اجرا کنید.
سختافزار: سیستمعاملها را همیشه بهروزنگهدارید. از نرمافزار ضدویروس برای اسکنهای دورهای استفاده کرده و پروتکلهای دسترسی کنترلشده را در سازمان پیادهسازی کنید.
شبکه: عادتهای ایمن ایجاد کنید، دسترسیها را کنترل کرده، شبکه را برای شناسایی فعالیتهای غیرمعمول نظارت کنید و تدابیر امنیتی شبکه را برقرار سازید.
پرسنل: آموزشهای لازم را در زمینه عادات ایمن رایانهای به پرسنل خود ارائه دهید و آنها را در شناسایی ریسکها و پیشگیری از تهدیدات راهنمایی کنید. احراز هویت چندعاملی (MFA) و دیگر استراتژیهای مدیریت دسترسی را فعال کنید.
محیط فیزیکی: امنیت فیزیکی را به صورت موثر تامین کرده و دسترسیها را به دقت نظارت کنید.
نمونههایی از معروفترین اکسپلویتها
در سالهای اخیر، اکسپلویتهای شناختهشدهای برای شروع حملات بدافزاری و ایجاد نفوذهای گسترده به کار گرفته شدهاند. به عنوان مثال در سال ۲۰۱۶، Yahoo اعلام کرد که در پی یک اکسپلویت که سالها پیش رخ داده بود، دادههای مهمی فاش شده و این نفوذ بر حدود ۱ میلیارد کاربر این شرکت، تاثیر گذاشته است. آسیبپذیری ایجادشده به دلیل استفاده از یک الگوریتم ضعیف و قدیمی بود که به هکرها این امکان را داد تا به چندین حساب ایمیل دسترسی پیدا کنند.
یک اکسپلویت مشهور و جدید به نام EternalBlue از آسیبپذیری موجود در پروتکل Windows Server Message Block استفاده نموده است. این اکسپلویت ابتدا توسط آژانس امنیت ملی ایالات متحده (NSA) طراحی شد، اما توسط گروه Shadow Brokers به سرقت رفت و بهطور عمومی منتشر شد. پس از آن، این اکسپلویت در حملات باجافزاری NotPetya و WannaCry مورد استفاده قرار گرفت.
اخیرا شرکت Equifax که یک شرکت حسابرسی است، نفوذ گستردهای را در دادها تجربه کرده است. هنگامی که هکرها از یک آسیبپذیری در Apache Struts که در یک وباپلیکیشن مورد استفاده قرار میگرفت، استفاده کردند. یک پچ برای رفع این آسیبپذیری، ارائه شد اما Equifax نتوانست بهروزرسانی را به موقع انجام دهد و این امر منجر به فاش شدن دادهها شد.
سوالات رایج در خصوص Exploit
-
منظور از exploit چیست؟
اکسپلویت، قطعهای از کد یا برنامه است که به طور مخرب از آسیبپذیریهای موجود در نرمافزار یا سختافزار استفاده میکند تا وارد سیستم شده و حملهای را آغاز کند.
-
نحوه عملکرد exploit چگونه است؟
باگها میتوانند آسیبپذیریهایی در سیستم ایجاد کنند و اکسپلویت به جستجو برای شناسایی چنین آسیبپذیریهایی پرداخته و به دنبال راهی برای نفوذ به پایگاهدادهها، شبکهها یا سیستمها میگردد.
-
اکسپلویت به چند دسته تقسیم میشوند؟
برخی از انواع اکسپلویتها شامل اکسپلویتهای سختافزاری، نرمافزاری، شبکهای، پرسنلی و فیزیکی هستند.
-
اکسپلویتها چگونه رخ میدهند؟
exploit ها میتوانند به صورت remote، local یا client–base انجام شوند.
-
Exploit kit چیست؟
کیتهای exploit بهطور خودکار بهدنبال شناسایی آسیبپذیریهایی هستند که در هنگام مرور وب توسط کاربران بر روی دستگاه آنها وجود دارد. این کیتها به ابزاری محبوب برای توزیع ابزارهای دسترسی از راه دور (RATs) یا بدافزارهای گسترده توسط مجرمان سایبری تبدیل شدهاند، بهویژه برای کسانی که بهدنبال کسب سود از طریق اکسپلویت هستند.







