یکی از مشکلات مهم مرتبط با امنیت داده ها و سیستم ها، نفوذ هکرها از طریق دستورات قابل اجرا یا برنامه های مخربی است که به آنها اکسپلویت (Exploit) گفته می شود.
اکسپلویت(به معنای سود بردن،بهره جویی) در واقع برنامه یا کد و یا سلسله مراتبی از دستورات است که جهت سود بردن از یک آسیب پذیری، باگ نرم افزاری و یا حفره امنیتی استفاده میشود تا با ایجاد رفتار ناخواسته یا پیش بینی نشده در نرم افزاری خاص یا سیستم سخت افزاری و یا یک دستگاه الکترونیکی، امکان نفوذ و بهره برداری از آن را فراهم کند. این نوع از رفتار ها معمولا جهت بدست آوردن دسترسی سیستمی یا تشدید دسترسی ها و یا محروم سازی سرویس سیستم مورد نظر بکار میرود.
به عنوان مثال، شما یک مرورگر دارید و در درون آن یک آسیب پذیری وجود دارد که اجازه می دهد تا « کدی غیر قابل پیش بینی » اجرا شود و به نصب برنامه های مخرب بر روی سیستمتان بدون آگاهی شما بپردازد. اغلب نخستین گام برای مهاجمان افزایش حق دسترسی است، بدین ترتیب آن ها می توانند هر کاری را که دلشان می خواهد در سیستم آلوده شده انجام دهند. اگر می خواهید بدانید چرا اکسپلویت ها اینقدر ترسناک به نظر می رسند و اگر به آشنایی با انواع اکسپلویت ها و نحوه عملکرد آنها علاقه دارید، شما را به خواندن این مقاله دعوت می کنم.
انواع اکسپلویت ها
اکسپلویت ها معمولا هنگام کشف آسیب پذیری ها و یا بعد از کشف حفره های امنیتی نوشته میشوند، اکسپلویت نویس ها عمدتا هکر میباشند که با تکنیک ها و متدهای مختلف اقدام به نوشتن کدهای مخرب مینمایند، البته گاهی متخصصان و مدیران امنیتی مطرح نیز اقدام به نوشتن اکسپلویت، برای اثبات آسیب پذیری های مهم در طی فرآیند تست نفوذپذیری کرده اند.
اکسپلویت ها به زبانهای مختلف عرضه میشوند، اکثر آنها به زبانهای C++، Perl و یا PHP و Python نوشته میشوند، ولی بسته به نوع آسیب پذیری و بستر آسیب پذیر متغییر میباشند، برای مثال زبانی که اکسپلویت های معروف Metasploit با آن نوشته شده Ruby می باشد.
اکسپلویت ها دسته بندی های گوناگون نیز دارند و از جنبه های مختلفی قابل بررسی هستند. بسته به نوع آنکه نیاز است بر روی یک ماشین اجرا شوند یا آنکه به صورت Remote از طریق ماشین دیگری اجرا شوند و کنترل سیستم قربانی را بدست گیرند. یا با توجه به نوع حفره امنیتی که مورد Exploit قرار می گیرد و یا بسته به نتیجه حمله و هدفی که از قبل برای آن طراحی و اجرا شده اند.
در ادامه مقاله به بررسی انواع اکسپلویت ها می پردازیم.
از نظر محل اجرا:
از نظر محل اجرا اکسپلویت ها به ۲ دسته Local Exploit و Remote Exploit تقسیم میشوند:
اکسپلویت های Local یا محلی
اکسپلویت های Local برای اجرا شدن نیاز به دسترسی مستقیم (دسترسی فیزیکی یا دسترسی های ریموت مانند SSH و Remote Desktop) به سیستم دارند. یک Local Exploit میتواند با دسترسی که از قبل به حفره امنیتی محلی دارد ، جهت تشدید دسترسی های کاربری که Exploit را اجرا نموده مورد استفاده قرار گیرد. به طور کلی میتوان گفت که برای اجرا کردن این اکسپلویت ها نمیتوان از شبکه اقدام کرد و اکسپلویت مستقیما نیاز به اجرا شدن از روی خود سیستم را دارد.یکی از انواع اکسپلویت های Local، اکسپلویت های افزایش سطح دسترسی یا Privilege Escalation هستند. برای مثال اکسپلویت های Local Root برای سیستم عامل Linux و یا اکسپلویت های مشابه برای Windows از این دسته میباشند.
اکسپلویت های Remote یا اجرا از راه دور
اکسپلویت های Remote بر خلاف اکسپلویت های Local نیازی به دسترسی مستقیم به سیستم ندارند و امکان اجرا از طریق شبکه را دارا هستند.
این اکسپلویت ها میتوانند از انواع پروتکل های شبکه برای رسیدن به اهدافشان استفاده کنند. مثلا میتوانند از پروتکل FTP برای اکسپلویت کردن یکی از سرویس های سیستم هدف که در حال استفاده از این پروتکل میباشد، استفاده کنند. یا از پروتکل HTTP برای اکسپلویت کردن مرورگرها یا هر برنامه یا سرویس دیگری که از این پروتکل استفاده میکنند.
از نظر نوع آسیب پذیری:
هر دو دسته ی اکسپلویت های Remote و اکسپلویت های Local از روش هایی برای رسیدن به هدف خود استفاده میکنند. این روش ها معمولا سوء استفاده از آسیب پذیری های نرم افزارهاست.گرچه تنها روش اکسپلویت ها و یا به طور کلی کد های مخرب استفاده از آسیب پذیری ها نیست. این کد ها و اکسپلویت ها همچنین میتواننداز Misconfiguration (تنظیم نادرست یا ایجاد مشکل در تنظیمات سخت افزار و نرم افزار ها) سوء استفاده کنند و به هدف خود برسند. یک مثال ساده و متداول در این رابطه رها کردن تنظیمات به صورت پیشفرض میباشد که معمولاً در تجهیزات شبکه و سیستم ها اتفاق می افتد(برای مثال رها کردن پسورد کنترل پنل فایروال یا روتر ها به حالت پیشفرض)
از معمول ترین آسیب پذیری هایی که اکسپلویت ها از آنها سوء استفاده میکنند، می توان به آسیب پذیری های زیر اشاره کرد:
Buffer Overflow Vulnerability
Heap Overflow Vulnerability
Format String Vulnerability
Integer Overflow Vulnerability
Buffer Underflow Vulnerability
از نظر نوع هدف:
اکسپلویت ها برای رسیدن به اهداف مختلفی اجرا شده و از آسیب پذیری ها سوء استفاده میکنند. علاوه بر این یک اکسپلویت محدود به یک هدف نیست و بعضی اکسپلویت ها را میتوان برای رسیدن به اهداف مختلفی استفاده کرد.
از معمول ترین اهداف اکسپلویت ها میتوان به موارد زیر اشاره داشت:
DOS
Command Execution – Code Execution
Authentication Bypass
Shell Access Maintaining
در سیستم کاربران مرورگرها همراه با فلش، جاوا و مایکروسافت آفیس، در میان بیشترین نرم افزارهای مورد هدف جای دارند. فراگیری این نرم افزارها سبب آن می گردد تا کارشناسان امنیتی و هکرها به طور یکسان آن ها را مورد بررسی قرار دهند و بدین صورت است که توسعه دهندگان این نرم افزارها مرتبا مجبور به ارائه ی وصله های امنیتی برای رفع آسیب پذیری های موجود در نرم افزارهایشان می شوند.
مسیرهای نفوذ
هکرها اغلب ترجیح می دهند به وسیله راه های دیگر ( همانند مهندسی اجتماعی ) از اکسپلویت ها استفاده نمایند. در این میان دو راه وجود دارد که می تواند کاربران را به عنوان طعمه ایی برای اکسپلویت ها تبدیل نماید. نخست، بازدید از صفحات وب که حاوی کدهای مخرب اکسپلویت ها هستند. دوم آنکه، باز نمودن فایلی به ظاهر مشروع که دارای کدهای مخرب پنهان شده می باشد. همانگونه که ممکن است حدس زده باشید، هرزنامه ها و پیام های فیشینگی نیز به عنوان یکی از محتمل ترین راه های پخش اکسپلویت ها در نظر گرفته می شوند.
اکسپلویت ها برای ضربه زدن به نسخه های خاصی از نرم افزارها که دارای آسیب پذیری هستند، طراحی می گردند. بنابراین اگر کاربری که از نسخه های این نرم افزارها استفاده می نماید، شیء مخربی را باز نماید، یا از صفحات وب بازدید نماید که برای باز نمودن آن ها نیاز به استفاده از ورژن های خاص آن نرم افزارها را داشته باشد، در خطر حمله اکسپلویت ها قرار می گیرد.
هنگامی که اکسپلویت از طریق آسیب پذیری شناسایی شده به سیستم قربانی دسترسی پیدا می نماید، بد افزارهایی را از سوی سرور مجرمان اینترنتی در جهت اجرای فعالیت های خرابکارانه بر روی سیستم قربانی بارگیری می نماید. این فعالیت ها شامل دزدیدن داده های شخصی، استفاده از کامپیوتر آلوده شده به عنوان قسمتی از بات نت در جهت ارسال هرزنامه ها یا ایجاد حملات دیداسی، یا هر فعالیت خرابکارانه ایی که این مجرمان در نظر داشته باشند می شود.
اکسپلویت ها حتی برای آن دسته از کاربران آگاهی که همیشه نرم افزارهای خود را به روز نگه می دارند نیز می تواند به عنوان خطری جدی قلمداد گردد. این خطر به دلیل فاصله زمانی ایجاد شده بین کشف آسیب پذیری و توزیع Patch مربوط به آن است. در این زمان، اکسپلویت ها می توانند به صورت آزادانه فعالیت خودشان را انجام دهند و امنیت بسیاری از کاربران اینترنتی را در معرض خطر خود قرار دهند، مگر آنکه ابزارهایی را به کار گیریم که از حملات اکسپلویت ها ی نصب شده جلوگیری به عمل آورد.
حمله ی دسته جمعی اکسپلویت ها
اکسپلویت ها معمولا به صورت یک جا جمع آوری می گردند و آسیب پذیری های گوناگونی که ممکن است در سیستم قربانیشان وجود داشته باشد را مورد بررسی قرار می دهند. هنگامی که یک یا چند آسیب پذیری شناسایی می گردد، اکسپلویت ها ی مناسب وارد عمل می شوند. بسته های اکسپلویت ها همچنین به منظور جلوگیری از شناسایی و رمزنگاری نمودن مسیرهای URL برای جلوگیری از unroot کردن آن ها به دست محققان از کدهای ابهام زا (code Obfuscation) استفاده می نمایند.
در ادامه به معرفی بهترین بسته های شناخته شده می پردازیم:
Angler
از بسته نفوذی Angler یا ماهی گیر به عنوان یکی از پیچیده ترین بسته های شناخته شده یاد می شود. این بسته پس از شروع به شناسایی آنتی ویروس و ماشین های مجازی ( که اغلب توسط محققان امنیتی به عنوان Honeypot شناخته می شود ) و گسترش فایل های رمزنگاری شده ی دراپر، بازی را در زمینه ی حمله ی دسته جمعی اکسپلویت ها تغییر داد. Angler همچنین یکی از سریع ترین بسته های نفوذی است که می تواند Zero-days های تازه منتشر شده را به همراه بد افزارهایشان از طریق حافظه و بدون نیاز به نوشتن آن ها بر روی هارد دیسک قربانیانش به اجرا در آورد.
Nuclear Pack
این بسته قربانیان خود را به وسیله ی اکسپلویت ها ی جاوا و Adobe PDF و آلوده سازی آن ها به وسیله ی تروجان Caphaw مورد هدف قرار می دهد.
Blackhole Kit
روند کار این بسته نفوذی بدین شکل است که آسیب پذیری های موجود در نسخه های قدیمی تر مرورگرهایی چون فایرفاکس، کروم، اینترنت اکسپلورر، سافاری و همچنین افزونه های مشهوری چون ادوبی فلش، Adobe Acrobat و جاوا را مورد حملات خود قرار می دهد. پس از اغوا شدن قربانی و رفتن به صفحه ی هدف، Blackhole kit شروع به مشخص نمودن رایانه فرد قربانی می نماید و تمامی اکسپلویت ها را در آن بارگزاری می نماید تا بر اساس آسیب پذیری موجود، اکسپلویت مناسب بتواند عملیات خود را انجام دهد.
اکسپلویت ترسناک Zero-Days
استفاده از اکسپلویت ها در دنیای امروز یکی از روش های معمول و بسیار خطرناک است که نفوذگران در انجام انواع حملات از آنها استفاده میکنند. با مقداری دانش و خلاقیت، نفوذگران میتوانند ضربات جبران ناپذیری با این روش حمله به اهداف خود وارد کنند.اگرچه هکرهای کلاه سفید از اکسپلویت ها برای تست نفوذپذیری و شناخت آسیب پذیری های سیستم در جهت افزایش امنیت آن استفاده می کنند و کارشناسان خبره امنیت اطلاعات، نیز با انتشار هر اکسپلویت و کشف یک حفره امنیتی به دنبال تولید Patch های امنیتی برای ترمیم آن هستند، اما حفره امنیتی مورد نظر برای نسخه های جدید تر بی ارزش خواهد شد و به همین دلیل است که هکر های کلاه سیاه معمولا اکسپلویت نوشته شده توسط خود را به صورت عمومی انتشار نداده و فقط در اختیار خود و هکر های دیگر و به صورت خصوصی نگهداری می نمایند. در واقع هکرهای کلاه سیاه از آسیب پذیری های ناشناخته و تازه کشف شده که به اصطلاح Zero-days خوانده می شوند به وسیله اکسپلویت ها سوء استفاده می نمایند. اطلاع یافتن از این آسیب پذیری ها و رفع آن ها توسط شرکت سازنده ممکن است زمان بر باشد و در این مدت هکرها می توانند سوء استفاده های زیادی را از این آسیب پذیری ها انجام دهند.
فرهاد مرادی
پنجشنبه ، ۲۵ اردیبهشت ماه ۹۹
سلام و خسته نباشید یک سوال از حضور محترمتون داشتم بنده یک گوشی سامسونگ دارم سوالم اینه که با توجه به این مقاله ای که نوشتیدیعنی امکان این هست که بدون اینکه در گوشی روی هیچ فایلی کلیک کنیم توسط اکسپلویت هک شویم و دسترسی کامل بدیم به هکر؟؟همچین چیزی چطور ممکنه هکر از طریق آی پی نفوذ میکنه یا چه راهی خواهشا توضیح مختصر بدین؟و در گوشی سامسونگ راه مقابله چیه ؟خواهش میکنم ازتون به این سوالات من جواب بدین خیلی خیلی ممنون میشم