برای یک کارشناس امنیت اطلاعات و ارتباطات این یک امر ضروری است که انواع حملاتی را که به شبکه و سیستم های موجود در آن به ویژه به کنترل های دسترسی موجود انجام می شود را شناسایی و درک کند. امن کردن دیتا از جهت دسترسی غیر مجاز در یک شبکه میتواند از طریق های مختلف اتفاق بیفتد، بسیاری از هکر های قانون مند از دانش خود در راه تست نفوذ و ارزیابی امنیتی استفاده می کنند. در حوزه هک قانونمند میبایست برخی تعاریف را شناخت که Exploit یکی از آنهاست، در این مقاله سعی بر آن است تا آشنایی نسبی در این خصوص کسب نماییم.
این واژه که فراوان در حوزه امنیت با آن مواجه میشویم در واقع روشی است که هکر از نقطه آسیب پذیر موجود استفاده می کند تا به سیستم یا شبکه نفوذ کند. تقریباً هر نوع حمله ای که در شبکه و سیستم انجام می شود برای تشریح چگونگی آن از واژه Exploit استفاده می کنند. البته واژه Exploit را در جای دیگر هم استفاده می کنیم، زمانیکه یک نرم افزار مخرب یا دستور مخرب استفاده می گردد هم این واژه نمایان خواهد شد. بنابراین مراقب باشید که از آسیب پذیری Cache نرم افزار Internet Explorer و Cookie های آن به شما Exploit نگردد.
اکسپلویت یا Exploit در حقیقت برنامه و یا کدی است که توسط هکر یا محققین امنیتی ساخته شده و می تواند از یک آسیب پذیری در یک سیستم عامل یا نرم افزار سوء استفاده کرده و دسترسی های خاص را برای ما ایجاد کنند، در یک تعریف ساده اکسپلویت یا كد مخرب ، کدی است که برای سوء استفاده از یک آسیب پذیری طراحی شده است. اکسپلویتها برای این طراحی می شوند که امکان دسترسی غیرمجاز به داده ها و برنامه ها را در سامانه ی قربانی برای مهاجم فراهم کنند، اکسپلویتها معمولاً هنگام کشف آسیب پذیریها و یا بعد از کشف حفره های امنیتی نوشته میشوند و اکسپلویت نویسها عمدتاً هکر میباشند که با تکنیک ها و متدهای مختلف اقدام به نوشتن کدهای مخرب مینمایند.
هدف اکسپلویت ها به دو دسته تقسیم می شود :
1. برای مقاصد خرابکارانه
2. برای نشان دادن ضعف امنیتی و استفاده در جهت تست نفوذ
سایت های بسیاری هستند که خود را مرجع اکسپلویت معرفی می کنند، این سایتها با گذشت زمان و به راه اندازی اجتماعات خاص در میان هکر ها محبوبیت یافته و هم اکنون بیشتر هکرها پس از تولید کد مربوطه نتیجه کار خود را در این سایتها منتشر می کنند. بهترین سایتهای این مقوله جهت دریافت اکسپلویت عبارتند از :
Securityfocus، day، exploit-db، Secunia، NVD، cvedetails، vuldb، htbridge، insecure، securitytracker، soldierx، hellboundhackers، Shodan، Cxsecurity
طبقه بندی اکسپلویت
شیوه های متفاوتی جهت طبقه بندی اکسپلویت ها وجود دارد، یکی از رایج ترین این شیوه ها را میتوان نحوه دسترسی آنها به باگ امنیتی نرم افزار موردنظر برشمرد، یک Remote Exploit یا اکسپلویت اجرا شده از راه دور میتواند بدون هیچ دسترسی به سیستم تحت شبکه به حفره امنیتی نرم افزار نفوذ پیدا کند. یک اکسپولیت محلی یا Local Exploit نیز میتواند با دسترسی که از قبل به باگ امنیتی محلی دارد، جهت تشدید دسترسی های کاربری که آن را اجرا نموده مورد استفاده قرار گیرد.
اکسپلویت ها بر اساس آسیب پذیری های کشف شده لیست می شوند برای مثال حمله Code Injection که برای تزریق کد در یک برنامه استفاده می شود می تواند شامل هزاران اکسپلویت کشف شده باشد. این عملیات نوعی حمله است اما این نوع حمله می تواند برای هزارن نرم افزار و چندین سیستم عامل استفاده شود فلذا بهترین راه برای دیدن لیست دسته بندی اکسپلویت ها آگاهی از تعداد دسته های آسیب پذیری است.
برخی از Exploit ها نیز به نوعی در جهت نفوذ به Client ها مورد استفاده قرار می گیرند که معمولاً شامل سرور های دستکاری شده ای هستند که هنگام دسترسی توسط آن کاربر، اکسپولیت را ارسال می نمایند. این نوع از اکسپلویت ها معمولاً نیاز به ارتباط جزئی با کاربر دارند فلذا در برخی مواقع نیاز است تا از برخی متدهای Social Engineering نیز بهره برد، بر این اساس دسته بندی آخر را نیز میتوان بر اساس فعالیت Exploit ها در نظر گرفت که خود میتواند شامل دسته بندی زیر باشد:
1.دسترسی غیر مجاز به داده ها
2. اجرای فایل ها به صورت خودسرانه
3. حمله انکار سرویس یا حمله DDOS
اکسپلویت ها معمولاً به صورت زیر دسته بندی می شوند:
• نوع حفره امنیتی که مورد استفاده اکسپولیت قرار می گیرند.
• بسته به نوع آنکه نیاز است بر روی یک ماشین اجرا شوند یا آنکه به صورت Remote از طریق ماشین دیگری اجرا شوند و کنترل سیستم قربانی را بدست گیرند.
• بسته به نوع نتیجه حمله که میتواند شامل DOS ،EoP و حمله spoofing باشد.
بیشتر Exploit ها طوری طراحی شده اند که دسترسی در سطح SuperUser برای یک کامپیوتر را فراهم میکند. هر چند این امکان فراهم شده است که بتوان از چندین اکسپلویت برای دسترسی ها در سطوح مختلف استفاده نمود بدین صورت که ابتدا در سطوح پایین دسترسی را ایجاد و سپس با Exploit های بعدی دسترسی به ریشه یا Root را در اختیار گرفت و به طور معمول یک اکسپلویت میتواند فقط از حفره امنیتی یک نرم افزار استفاده نماید. هنگامی که یک Exploit منتشر می شود، حفره امنیتی توسط Patch یا وصله ترمیم و حفره امنیتی مورد نظر برای نسخه های جدیدتر بی ارزش خواهد شد و علت اصلی آن که هکر های کلاه سیاه معمولاً اکسپلویت نوشته توسط خود را به صورت عمومی انتشار نخوهد داد و فقط در اختیار خود و هکرهای دیگر به صورت خصوصی نگهداری می نمایند همین علت است و این اکسپلویت ها را معمولاً Zero-Day می خوانند و دسترسی به این Exploit ها معمولاً یکی از بزرگترین امیال نفوذگران غیر حرفه ای می باشد که آنها را Script Kiddies می نامند.
بهترین کار برای شروع برنامه نویسی اکسپلویت یادگیری زبان برنامه نویسی میباشد، در حین یادگیری باید فرد با اصول امنیت اطلاعات آشنا شود و خود را کم کم تبدیل به یک محقق امنیت کند، با دانش برنامه نویسی و امنیتی می توانید شروع به تحلیل ابزارها و سیستم ها کنید. اکسپلویت ها را معمولاً با زبان برنامه نویسی python، perl، GO، C، Java، C++، Ruby، PHP طراحی مینمایند.
محور سازی در اکسپلویت
واژه محور سازی معمولاً اشاره دارد به متدی که در آن نفوذگران از سیستم های موجود بر روی یک شبکه استفاده کرده و در جهت از بین بردن همه محدودیت های موجود مانند تنظیمات Firewall ها یا دیواره های آتش که ممکن است مانع دسترسی مستقیم به یک سیستم شوند، بهره می گیرند. برای مثال یک نفوذگر میتواند یک شبکه شرکتی را در اختیار گرفته و سپس از طریق وب سرور مذکور حمله ای را بر روی سیستم های دیگر آن شبکه پیاده سازی نماید، معمولاً این نوع از حملات را حملات چند لایه تحت شبکه های کامپیوتری می نامند.
• محور سازی با استفاده از Proxy
به صورت معمول به صورت کانال های ترافیکی از یک سیستم مبداء که به صورت Proxy تعریف شده، بر روی سیستم های هدف حملات صورت خواهد گرفت. این نوع از محور سازی به استفاده از پورت های خاص UDP و TCP که توسط Proxy ها پشتیبانی میشود محدود است.
• محور سازی با استفاده از VPN
نفوذگر را قادر می سازد تا از یک لایه امنیتی رمز نگاری شده به سیستم مبدأ عمل tunneling را انجام داده و ترافیک شبکه را به سمت سیستم هدف هدایت نماید، به عنوان مثال از یک اکسپلویت بر روی شبکه داخلی و سیستم مبدأ استفاده کرده و دسترسی به سیستم قربانی را برقرار نماید.
در انتها میبایست خاطر نشان شد که معمولاً سیستمهایی که بروزرسانی یا update نمیشوند بیشتر مورد حمله توسط اکسپلویتها قرار می گیرند. بنابراین نكته اول، بروزرسانی دائم و به موقع سیستم است. نكته بعدى استفاده از سیستمهای تشخیص و جلوگیری از نفوذ در سیستم و شبکه است نظیر آنتى ویروس و IDS و IPS. نكته سوم استفاده نکردن از ابزارهای نامعتبر و غیر رسمی است. این نكات تا حد بسیار زیادی جلوی این مخاطره را میگیرد.