برای مطالعه قسمت قبل آموزش رایگان دوره CEH اینجا کلیک کنید.
توزیع و انتشار تروجانها
توزیع و انتشار تروجانها کار سادهای نیست. کاربران در مقایسه با گذشته تا حدودی هوشیارتر شدهاند و تمایلی به باز کردن پیوستهای ایمیل ناشناس ندارند و به احتمال زیاد نرمافزار ضدویروس روی سیستم آنها در حال اجرا است. به همین دلیل هکرها از روشهای انتشار نوینی استفاده میکنند. در رایانههای ویندوزی کافی بود که هکر فضای زیادی میان نام برنامه و پسوند یا پیشوند فایل اجرایی شبیه به important_message_text.txt.exe قرار دهد یا هکر از نامی مشابه با نام برنامه اصلی برای فریب کار به اجرای برنامه مخرب استفاده کند. بهطور مثال، هکر فایلی شبیه به Notepad.exe را به سادگی میتوانست به جای نمونه اصلی روی کامیپوتر قربانی نصب اجرا کند. با این حال سطح دانش کاربران و مدیران شبکه در ارتباط با این تکنیکها بیشتر شده است. به همین دلیل، هکرها به سراغ شبکههای اجتماعی رفته یا از تکنیکهای مهندیسی اجتمای برای نصب تروجانها روی سامانه قربانیان استفاده میکنند. در حالی که بیشتر حملات از رویکرد فنی پیروی میکنند، اما هنوز هم تکنیکهای مهندسی اجتماعی برای فریب کاربران به نصب نرمافزارهای مخرب استفاده میشود. به عنوان نمونه، ممکن است مهاجم سعی کند قربانی را به یک آدرس اینترنتی کوچک شبیه به http://tinyurl.com/kxmanf6 هدایت کند.
به همان ترتیب که فناوری در حال تغییر است، رویکردهای توزیع بدافزارها نیز تغییر میکند. اگرچه توانایی آنتیویروسها در تشخیص بدافزار بهبود یافته، اما به همان نسبت بدافزارها موفق شدهاند از شیوههای مختلفی برای اختفا استفاده کنند. واقعیت این است که امروزه تشخیص بدافزارها دشوارتر از گذشته شده است. امروزه رویکرد چندان غیر معمولی نیست که هکرها از چند لایه فنی برای پنهانسازی بدافزارها و بهکارگیری الگوریتمهای رمزنگاری برای غیر قابل شناسایی کردن کدهای مخرب توسط ضدویروسها استفاده میکنند. ترکیب این عوامل با یکدیگر به هکرها اجازه میدهد به شیوه قدرتمندتری به سراغ آلودهسازی کامپیوترها بروند. در حال حاضر هکرها از تکنیکهای wrappers، packers و crypters استفاده میکنند. Wrappers به هکرها اجازه میدهد از خطوط دفاعی عادی استفاده شده توسط کاربران عبور کنند. Wrapper برنامهای است که برای ترکیب دو یا چند فایل اجرایی درون یک برنامه بستهبندی شده واحد استفاده میشود. در یک برنامه بسته بندی شده استفاده می شود.
Wrapper قابلیتهایی همچون مقیدسازی، بستهبندی و الصاق اجرایی را پیشنهاد میدهد که تمامی این رویکردها معادل ساخت فایلهای اجرایی قابل حمل برای ویندوز است. برخی از Wrappers اجازه الصاق شدن به برنامهها میدهند، در حالی که برخی دیگر اجازه الصاق دو، سه، چهار، پنج یا بیشتر برنامه کاربردی را میدهند. در اصل، این برنامهها راهکاری شبیه به نرمافزارهای بستهبندی ارائه میکنند. نرمافزارهایی که به توسعهدهندگان اجازه میدهند فایلهای متعلق به یک برنامه کاربردی را درون یک فایل نصبی قرار دهند. Wrappers ضمن آنکه اجازه مقیدسازی را به هکرها میدهند، لایههای اضافی از رمزنگاری را اضافه میکنند تا اساسا یک فایل اجرایی جدید توسط هکرها ساخته شود.
یک نمونه خوب از Wrappers بدافزار BurnEye بود. بدافزار فوق توسط تیم هکری TESO ساخته شده بود. یک گروه هکر که در اتریش مستقر بودند و از اواخر دهه 90 میلادی تا اوایل دهه 2000 فعال بودند. TESO فایل فوق را برای محافظت از باینریهای ELF که قابلیت اجرای روی سیستمعامل x86 اینتل را داشتند طراحی کرده بودند. برای اطلاعات بیشتر در مورد BurnEye به لینک زیر مراجعه کنید.
http://packetstormsecurity.com/groups/teso/
BurnEye از سه لایه حفاظتی به شرح زیر استفاده میکرد:
لایه انسداد: سعی میکرد محتوای فایل اجرایی را به شکلی غیرقابل دستیابی کند.
لایه گذرواژه: به هکر اجازه میدهد تا فایلهای اجرایی کامپیوتر قربانی را رمزگذاری کند
لایه اثرانگشت: به هکرها اجازه میدهد تا بدافزار را تنها در یک محیط مطابق با معیارهای خاص اجرا کند.
مثال زیر نمونهای از عملکرد wrapper که دو برنامه را با یکدیگر ترکیب میکند نشان میدهد.
Packers عملکردی شبیه به نرمافزارهای WinZip ، Rar و Tar دارند که برای فشردهسازی فایلها استفاده میشوند. با این حال، در حالی که برنامههای فشردهسازی فایلها با هدف صرفهجویی در فضا به کار گرفته میشوند Packers با هدف عدم شناسایی محتوای مخرب توسط ضدویروسها استفاده میشوند. ایده در پشت Packersها این است تا کدهای مخرب بدون آنکه قابل رهگیری باشند در حافظه مستقر شوند. Packers به هکرها اجازه میدهند از مکانیسمهای محافظتی سامانههای تشخیص نفوذ نصب شده در شبکهها (HIDS و NIDS) عبور کنند. packerهای مخرب زمانی که برنامه در حافظه قرار دارد، آنرا از حالت فشرده خارج میکنند تا کدهای اصلی برنامه قابلیت اجرا پیدا کنند. رویکرد فوق اصلیترین روشی است که هکرها برای دور زدن ضدویروسها از آن استفاده میکنند.
Crypters برای رمزگذاری یا مسدود کردن ردیابی کدهای مخرب استفاده میشوند. برخی از crypterها محتوای مخرب درون تروجانها را با استفاده از الگوریتمهای رمزنگاری غیر قابل مشاهده میکنند. Crypterها میتوانند از الگوریتمهای AES ، RSA، Blowfish یا ممکن از تکنیکهای اساسیتر انسداد مانند XOR، رمزگذاری Base64 یا حتا ROT13 استفاده کنند. باز هم، این تکنیکها برای پنهان کردن محتوای برنامه اجرایی، غیرقابل تشخیص کردن کدمخرب توسط ضدویروسها استفاده میشوند. شکل زیر نمونهای از یک crypter را نشان میدهد.
برای آگاهی بیشتر در ارتباط با این برنامهها اجازه دهید به چند نمونه رایج از آنها اشاره کنیم. این برنامهها و نمونههای مشابه در دنیای زیرزمنی هکرها و جستوجو در وب در اختیار کاربران قرار داشته و قابلیتهای گسترده متنوعی ارائه میکنند.
■ Morphine: Morphine یک بستهبندی کننده/کریپتر ساده است که میتواند برای مبهمسازی کدهای مخرب بدافزارها استفاده شود. .
■ Yoda’s Crypter: یک کریپیوتر رایگان و کوچک است که یکسری گزینههای محافظت ارائه میکند. Yoda's Crypter همچنین دارای گزینههای مختلفی شبیه به رمزنگاری چندریختی و ضد اشکالزدایی است.
■ Trojan Man: این نرمافزار بستهبندی کننده قادر است دو برنامه را با یکدیگر ترکیب کرده و بسته را با هدف پیشگیری از شناسایی شدن توسط ضدویروس رمزنگاری کند.
■ CypherX Crypter: این برنامه به شما امکان میدهد تا هر فایلی همچون تروجانها، RATs و بدافزارها را رمزنگاری و مقیدسازی کنید.
■ Teflon Oil Patch: برنامه دیگری است که برای الصاق تروجانها به هر فایلی که مشخص میکنید و با هدف پیشگیری از شناسایی توسط تروجان توسط نرمافزارهای امنیتی استفاده کنید.
■ Restorator: درست است که Restorator به عنوان یک ابزار هک طراحی نشده، اما میتوانید برای ویرایش، اضافه کردن یا حذف منابعی از قبیل متن، تصاویر، نمادها، صداها، فیلمها، نسخه، دیالوگ ها و منوها از آن استفاده کنید. میتوان از نرمافزار فوق برای اضافه کردن تروجان به یک بسته شبیه به محافظ صفحهنمایش استفاده کرد و آنرا برای قربانی ارسال کرد.
■ Pretty Good Malware Protection: این ابزار به شما امکان میدهد حتا نمونه شناخته شده بدافزارهایی را که احتمالاً توسط موتورهای آنتیویروس شناسایی شدهاند، تولید کرده و کد را با رمزگذاری بسیار بالایی بستهبندی مجدد کنید تا نرمافزارهای ضدویروس موفق به شناسایی آن نشوند.
مهم است به این نکته دقت کنید که crypterها تنها بخشی از این فرآیند هستند. مراحلی که به هکرها اجازه میدهد با موفقیت یک تروجان را آماده و روی یک سیستم نصب کنند به شرح زیر هستند:
مرحله 1. ساخت تروجان یا بهدست آوردن یک تروجان آماده.
مرحله 2. ویرایش تروجان ساخته شده به شکلی که توسط ضدویروسهای فعلی شناسایی نشود.
مرحله 3. تروجان باید با یک فایل معتبر ترکیب شود. تروجان ممکن است برای انتشار قدرتمندتر به فایلهایی با فرمت اجراییexe ، .ppt ، .pdf ، .xls یا فایلهای مرتبط ضمیمه شود.
مرحله 4. تروجان پنهان شده با استفاده از روشهایی که به آنها اشاره شد به منظور اجرا برای قربانی ارسال شود.
ارتباطات پنهانی
توزیع یک تروجان فقط نیمی از فعالیتهای تهاجمی یک هکر است. هکر باید راهی برای جمعآوری و ارسال دادهها قبل از آنکه شناسایی شود پیدا کند. اگر به تاریخچه ارتباطات پنهانی نگاهی بیندازید، اولین سند مربوط به معیارهای ارزیابی سامانههای کامپیوتری قابل اعتماد (TCSEC) را مشاهده میکنید که درباره حملات و مفهوم ارتباطات پنهان توضیحات جالبی ارائه کرده است.
حملات کانال پنهان را به دو گروه زیر تقسیم میشوند:
حملات کانال پنهان زمانبندی: شناسایی حملات زمانبندی شده دشوار است، زیرا بر اساس زمان و عملکرد سیستم اجرا شده و برخی مولفههای سیستمی را تغییر میدهند تا به شکل زمانبندی شده از منابع استفاده شود.
حملات کانال پنهان ذخیره شده: از یک فرآیند خاص برای نوشتن دادهها در یک محل ذخیرهسازی و فرآیند دیگری برای خواندن دادهها استفاده میشود.
به عنوان یک کارشناس امنیتی باید ارتباطات پنهان شده را به دقت بررسی کنید، زیرا به عنوان ابزاری برای پنهانسازی اطلاعات یا دادههای مخرب استفاده میشوند. بهطور مثال، بیشتر افراد فیلمی را دیدهاند که در آن یک خبرچین به پلیس سیگنال میدهد که وقت آن رسیده که به مقرر مجرمان حمله کرده و آنها را بازدداشت کنند. این سیگنال آگاهکننده ممکن است روشن کردن یک سیگار یا کج قرار دادن کلاه باشد. این سیگنالهای کوچک برای فردی معمولی که ممکن است در همان نزدیکی باشد بی معنی است، اما برای افرادی که میدانند به دنبال چه چیزی باشند، به عنوان یک سیگنال معتبر در نظر گرفته میشود.
در دنیای هکری، ارتباطات پنهانی از طریق کانالهای مخفی انجام میشود. کانال پنهان راهی برای انتقال اطلاعات از طریق کانال ارتباطی یا پروتکل به شیوهای است که قبلا استفاده نشده است. کارشناسان امنیتی باید شناخت دقیقی از کانالهای پنهان داشته باشند. برای هکرهای اخلاقمدار که وظیفه آنها ارزیابی حملات و نفوذ است، چنین ابزارهایی مهم هستند، زیرا هکرها میتوانند از این راهکارها برای بررسی وضعیت اولیه یک شبکه ایمن استفاده کنند. برای سرپرستان شبکه، درک نحوه کار این ابزارها و اثر انگشتها میتواند به تشخیص نقاط ورود احتمالی به شبکه کمک فراوانی کند. برای هکرها، کانالهای پنهان ابزارهای قدرتمندی هستند که میتوانند اجازه کنترل و دسترسی بالقوه را بدهند.
ارتباطات پنهان چگونه کار میکنند؟ خوب، طراحی TCP / IP فرصتهای بسیاری را برای سوء استفاده آماده کرده است. پروتکلهای اولیه ارتباطات پنهانی شامل پروتکل اینترنت (IP)، پروتکل کنترل انتقال (TCP)، پروتکل دادههای کاربر (UDP)، پروتکل کنترل پیام اینترنت (ICMP) و سرویس سامانه نام دامنه (DNS) است.
تونلزنی از طریق لایه اینترنت
لایه اینترنت فرصتهای مختلفی را برای هکرها برای تونلکردن ترافیک ارائه کرده است. دو پروتکل رایجی که برای تونلزنی استفاده میشوند IPv6 و ICMP هستند.
IPv6 مانند تمام پروتکلهای رایج میتواند برای سوء استفاده یا دستکاری شود تا به عنوان یک کانال مخفی عمل کند. اینکار شدنی است، زیرا دستگاههای لبه ممکن است برای تشخیص ترافیک IPv6 تنظیم نشده باشند، حتا اگر وضعیت پشتیبانی از IPv6 روی سیستمعاملها فعال باشد. طبق گزارش US-CERT، سوء استفاده از سیستمعامل ویندوز به چند عامل زیر متکی است:
پشتیبانی ناقص از IPv6
قابلیت پیکربندی خودکار IPv6
بدافزار طراحی شده برای فعالسازی IPv6 در میزبانهای مستعد.
برنامههای مخرب که از تکنیک تونلزنی ترافیک برای انتقال دادهها از بستر اینترنت در تعامل با شبکههای خصوصی استفاده میکنند. ابزارهای زیادی برای تونلزنی IPv6 وجود دارند که از جمله آنها میتوان به 6tunnel، socat ، nt6tunnel و relay6 اشاره کرد. بهترین راه حفظ امنیت در تعامل با IPv6 این است که حتا دستگاههایی که از IPv6 پشتیبانی میکنند، قادر نباشند ترافیک IPV6 کپسوله شده درون بستههای IPv4 را تجزیه و تحلیل کنند.
پروتکل دوم که ممکن است در لایه اینترنت برای تونلزنی استفاده شود، پروتکل کنترل پیام اینترنت (ICMP) است. ICMP توسط RFC 792 مشخص شده و به منظور ارائه پیامهای خطا، بهترین اطلاعات مسیر و پیامهای تشخیصی/عیبیابی طراحی شده است. ping نمونهای روشن از بهکارگیری پروتکل فوق است. از ICMP برای آزمایش اتصال به اینترنت استفاده می کند. شکل زیر جزئیات قالب سرآیند ICMP را نشان می دهد.
همانگونه که در شکل بالا مشاهده میکنید، فیلدهای درون یک بسته پینگ به شرح زیر هستند:
■ Type: برای درخواست روی 8 و برای پاسخ روی 0 تنظیم میشود.
■ Code: روی 0 تنظیم کنید.
■ Identifier: یک فیلد 2 بایتی است که تعداد اعداد تولید شده توسط ارسالکنندهای که از تطابق اکوی ICMP استفاده کرده را همراه با اکوی بازگشتی متناظر ذخیره میکند.
Sequence Number: یک فیلد 2 بایتی است که یک شماره اضافی که برای تطابق ICMP Echo با Echo Reply استفاده میشود را ذخیره میکند. ترکیب مقادیر شناسهها و فیلدهای ترتیبی یک پیام خاص اکو را مشخص میکند.
Optional Data: داده اختیاری است.
آیا درباره آخرین فیلد که اشاره به دادههای اختیاری دارد کنجکاو نشدهاید؟ آنچه در این فیلد ذخیره میشود به سیستم بستگی دارد. لینوکس فیلد فوق را با مقادیر عددی که روند افزایشی دارند پر میکند، در حالی که یک سیستم ویندوزی بر مبنای حروف الفبای این فیلد را پر میکند. فیلد اختیاری تنها به عنوان یک پر کننده طراحی شده است. این فیلد برای متناسب کردن حداقل اندازه فیلد با مقدار استاندارد استفاده میشود.
در شماره آینده مبحث فوق را ادامه میدهیم.
برای مطالعه رایگان تمام بخشهای دوره CEH روی لینک زیر کلیک کنید:
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟