Stuxnet یک کرم رایانه ای مخصوص سیستم های ویندوز است که اولین بار در ژوئن 2010 توسط شرکت بلاروسی VirusBlokAda کشف گردید. این اولین کرم کشف شده ی جاسوس و تغییر دهنده ی برنامه ی سیستم های صنعتی است. اولین کرمی که دربرگیرنده ی یک روت کیت (rootkit) PLC است و در نهایت اولین کرمی است که بخش های حساس در زیرساختار صنعت را مورد هدف قرار می دهد.
این کرم بطور خاص برای حمله به سیستم های SCADA (مورد استفاده برای کنترل و نظارت بر فرآیندهای صنعتی) نوشته شده است. Stuxnet دارای قابلیت برنامه ریزی مجدد PLCها و پنهان سازی این تغییرات است. کرم های رایانه ای از ابتدای پیدایش خود دستخوش تغییر و تحولات بسیاری گشته اند که در این مقاله با نگاهی تاریخی به آن ها خواهیم پرداخت.
طبق تعریف، کرم (worm)، یک برنامه ی خود-تکثیر شونده (self-replicating) است که قادر به انتشار خود در شبکه های رایانه ای بوده و نوعاً، دارای اثری مخرب می باشد. پیشرفت های پدیدآمده در برنامه نویسی، امکانات فراوانی را برای ما بوجود آورده است و در عین حال این پیشرفت ها، روش های پیچیده ای نیز برای مجرمین رایانه ای برای ارتکاب این گونه جرایم پدید آورده اند. این مقاله به بررسی طبیعت و نحوه ی تکامل کرم های رایانه ای، از ساده ترین انواع ابتدایی گرفته تا کرم های تلفن سیار که از طریق Bluetooth انتشار می یابند، می پردازد.
این مقاله به بحث درباره ی ساختار بنیادی (generic) و یا حداقل نمونه ای کرم های رایانه ای و استراتژی های رایج برای حمله به سیستم های جدید توسط این برنامه ها می پردازد. کرم های رایانه ای بطور عمده در شبکه ها گسترش می یابند، در عین حال این ها زیر مجموعه ای از ویروس های رایانه ای به شمار می روند. جالب است که حتی در مجامع تحقیقاتی امنیتی، بسیاری از افراد ابراز می کنند که کرم های رایانه ای بطور قابل ملاحظه ای متفاوت از ویروس ها می باشند. در واقع، حتی در درون CARO (سازمان محققین ضد ویروس های رایانه ای) نیز هیچ دید مشترکی در مورد این که دقیقاً چه چیزی را باید به عنوان یک کرم رایانه ای تلقی کرد، وجود ندارد. ما امیدوار هستیم که این دید مشترک را داشته باشیم، اما به هرحال، حداقل اندکی از ما در این مطلب توافق داریم که تمامی کرم های رایانه ای ویروس نیز به شمار می روند. در واقع، استراتژی ایجاد آلودگی در بستر شبکه، یکی از تفاوت های اولیه میان ویروس ها و کرم های رایانه ای است. علاوه بر این، کرم ها معمولاً نیازی به آلوده کردن فایل های دیگر نداشته و به صورت برنامه های مستقل انتشار می یابند. دیگر این که چندین کرم می توانند کنترل یک سیستم را از راه دور و بدون نیاز به کمک کاربر، به دست گیرند که معمولاً از طریق نفوذ از یک یا چند نقطه ضعف صورت می گیرد. با این حال، این مشخصه های رایج در کرم های رایانه ای همیشه صادق نمی باشند. جدول ذیل چند نوع کرم جدیداً منتشر شده را نشان می دهد.
ساختار پایه ی کرم های رایانه ای
هر کرم رایانه ای دارای چندین جزء اساسی است، از قبیل مشخص کننده ی محل هدف و قسمت های پخش کننده ی آلودگی و چند قسمت غیر اساسی دیگر، مانند کنترل از راه دور، اینترفیس به روزآوری (update interface)، اداره کننده ی سیکل زیستی، و روتین های payload.
هدف یاب (target locator)
برای گسترش سریع در شبکه، کرم باید قادر به یافتن اهداف جدید باشد. بسیار از کرم ها، رایانه ی شما را بدنبال آدرس های ایمیل جستجو کرده و کپی خود را به این آدرس ها ارسال می کنند. cellspبرای گسترش سریع در شبکه، کرم باید قادر به یافتن اهداف جدید باشد. بسیار از کرم ها، رایانه ی شما را بدنبال آدرس های ایمیل جستجو کرده و کپی خود را به این آدرس ها ارسال می کنند.
تاریخ کشفنام کرم |
2010/09/05
| بالا | از خود روتین انتشاری ندارد |
TR/Drop.Stuxnet.A.40
|
2009/08/17
| بالا | شبکه ی محلی، Autorun feature
|
Worm/Conficker.Z.30
|
2010/07/10
| متوسط | دانلود فایل های آلوده |
Worm/Agent.45056.43
|
2010/06/13
| متوسط |
Autorun feature
|
Worm/Taterf.B.142
|
2010/08/16
| متوسط |
Autorun feature
|
Worm/Taterf.DM.4
|
2010/03/19
| متوسط |
Autorun feature
|
Worm/Taterf.B.88
|
2010/08/19
| بالا |
Messenger, Peer to Peer
|
Worm/Palevo/afbn
|
2010/07/25
| متوسط |
Messenger
|
Worm/Yahos.AM
|
2010/08/19
| متوسط |
Messenger
|
Worm/Autorun.bknp
|
این امر برای حمله کنندگان کافیست، زیرا سازمان ها اغلب مجبورند انتشار پیامهای ایمیل را از طریق فایروال شرکت آزاد بگذارند و بدین ترتیب یک راه نفوذ آسان برای کرم بوجود آورند.
بسیاری از کرم ها، از روش هایی خاص برای جستجو در شبکه به دنبال گره ها و در سطح IP استفاده می کنند و حتی سیستم دور را (برای امتحان آن از نظر میزان نفوذپذیری) اصطلاحاً انگشت نگاری (fingerprint) می کنند.
پخش کننده ی آلودگی (Infection Propagator)
یکی از اجزاء اساسی یک کرم عبارتست از: استراتژی کرم برای انتقال خود به یک گره ی جدید و گرفتن کنترل سیستم دور. اغلب کرم ها فرض می کنند که شما یک نوع مشخص سیستم دارید، مثلاً یک ماشین Windows؛ و منطبق با این سیستم ارسال می شوند.
برای مثال نویسنده ی کرم، برای حمله به سیستم شما ممکن است از هر گونه زبان اسکریپت نویسی، فرمت مدارک، یا کد باینری یا تزریق شونده در حافظه (memory injected code) و یا ترکیبی از همه ی این روش ها استفاده نماید. بطور نمونه، حمله کننده، گیرنده را از طریق روش های مهندسی اجتماعی (social engineering)، به اجرا کردن کرم ترغیب می نماید. با این حال، روز به روز کرم های بیشتری یافت می شوند که از ماجول های مخصوص برای اجرای خودکار و بدون نیاز به کمک کاربر استفاده می کنند.
برخی کرم های کوچک قدیمی مانند W32/Witty و W32/Slammer ظاهراً هدف یاب (اسکن شبکه) و پخش کننده ی آلودگی را در یک فراخوانی تابع (funcion call) جمع کرده اند. با این حال هنوز دارای قابلیت های مشخصی هستند، از قبیل تولید آدرس های IP تصادفی و گسترش بدنه ی کرم در اهداف جدید.
کنترل از راه دور و رابط به روز آوری (Update Interface)
یک عنصر اصلی دیگر در کرم عبارتست از کنترل از راه دور با استفاده از یک ماجول ارتباطی. بدون وجود این ماجول، نویسنده ی کرم قادر به کنترل شبکه ی آلوده شده (از طریق ارسال پیغام های کنترلی به کپی های کرم) نخواهد بود. این چنین امکان کنترل از راه دوری می تواند به حمله کننده امکان استفاده از کرم را بعنوان ابزاری برای اجرای حملات DDOS در شبکه و بر علیه چندین هدف ناشناس بوجود آورد.
یک رابط به روز آوری یا plug-in، عنصر مهمی از کرم ها است که امکان به روزآوری کرم، در یک سیستم که قبلاً آلوده شده است را فراهم می آورد. یکی از مشکلات رایج برای حمله کننده ها این است که بعد از این که یک سیستم توسط یک روش خاص نفوذی تحت کنترل در آمد، اغلب نمی توان بار دیگر آن را از همان طریق مورد حمله قرار داد. البته این مشکل به حمله کننده کمک می کند تا از آلوده سازی چند باره بپرهیزد؛ چون ممکن است باعث crash شود.
در عین حال، حمله کننده می تواند روش های بسیار زیاد دیگری برای پرهیز از آلوده سازی دوباره بیابد.
Life cycle
برخی از نویسندگان کرم های رایانه ای ترجیح می دهند که یک نگارش از کرم، برای یک مدت زمان از قبل تعیین شده کار کند. برای نمونه، کرم W32/Welchia.A در ابتدای سال 2004 دست به خودکشی زد و سپس نوع B این کرم در اواخر فوریه ی 2004 ظاهر شد و به مدت سه ماه فعال ماند. از طرفی، بسیاری از کرم ها در قسمت اداره ی دوره ی حیات خود دچار مشکل (bug) بوده و بدون توقف به کار خود ادامه می دهند. علاوه بر این، اغلب با انواع تغییر یافته (variant) از کرم های رایانه ای مواجه می شویم که برای اینکه بدون وقفه کار کنند توسط دیگران دستکاری شده اند.
Payload
یک عنصر اختیاری ولی بسیار رایج در کرم های رایانه ای، payload می باشد. در بسیاری از موارد، کرم های رایانه ای هیچ گونه payloadی را دارا نمی باشند. یکی از payloadهایی که بسیار رایج شده است، حمله ی DOS بر علیه یک سایت وب معین می باشد. با این حال، یکی از اثرات جنبی حاصل از کرم های رایانه ای حملات DOS اتفاقی در شبکه های بشدت بارگذاری شده می باشد (مخصوصاً روترهای شبکه که به شدت بارگذاری شده اند).
در عین حال، اثرات جانبی جالب دیگری هم مشاهده شده اند، از قبیل حملات اتفاقی علیه چاپ گرهای شبکه. همچنین کرم های رایانه ای می توانند از سیستم های اشغال شده به عنوان ابر رایانه (super computer) استفاده کنند. برای مثال، کرم W32/Opaserv با به اشتراک گذاردن حمله میان گره های آلوده، سعی در شکستن یک کلید شبه DES دارد، شبیه به شبکه ی SETI. در واقع بعضی کرم های رایانه ای مانند W32/Hdy برنامه ی SETI را در رایانه های اشغال شده داون لود و نصب می کنند.
یکی دیگر از تمایلات جالب کرم ها، عبارتست از تقابل برنامه ریزی شده بین دو رایانه به عنوان payload. چندین ضد کرم (antiworm) با هدف کشتن دیگر کرم های رایانه ای و نصب تغییرات بازدارنده از نفوذ آن کرم ها بوجود آمده اند. برای مثال می توان Linux/Lion در برابر Linux/Cheese و W32/CodeRed در برابر W32/CodeGreen را نام برد. در این مبحث همچنین به بررسی دیگر انواع تقابل بین برنامه های بدافزار (malicious) خواهیم پرداخت.
این روزها نصب یک سرور SMTP برای رله کردن اسپم (spam) بسیار رایج شده است. پخش کنندگان اسپم، سیستم ها را در مقیاس وسیعی توسط کرم هایی از قبیل W32/Bobax مورد نفوذ قرار داده و سپس با استفاده از سرور رله ی SMTP پیام های خود را از طریق سیستم های "زامبی" (zombie) ارسال می نمایند.
قابلیت self-tracking
بسیاری از نویسندگان ویروس مایلند بدانند که ویروس آنها چه تعداد از ماشین ها را آلوده می کند. از طرف دیگر، آن ها می خواهند به دیگران اجازه دهند تا مسیر آلودگی های ویروس را ردگیری نمایند. چندین نوع از ویروس ها، اطلاعات IP سیستم آلوده شده را به یک سرور FTP ارسال می کنند. کرم های رایانه ای بطور نمونه یک پیغام ایمیل، شامل اطلاعاتی درباره ی سیستم آلوده شده را برای ردگیری گسترش خود، به حمله کننده ارسال می کنند. کرم Morris از یک ماجول خود-ردگیر استفاده می کرد که قرار بود یک UDP datagram را برای هاستی در ernie.berkeley.edu بعد از هر 15 مورد آلودگی ارسال کند، اما این روتین مشکل داشت و عملاً هیچ اطلاعاتی ارسال نکرد.
مشخص کننده ی موقعیت هدف (target locator)
یک ماجول مشخص کننده موقعیت هدف که دارای کارکرد مؤثری باشد، عنصر مهمی از کرم رایانه ای را شکل می دهد. آسان ترین مکانیزم برای حمله کننده، جمع آوری آدرس های ایمیل در سیستمی که کرم در آن اجرا شده و ارسال پیوست هایی (attachments) به این گونه اهداف می باشد، اما روش های بسیار زیاد و پیچیده دیگری برای رسیدن سریع به اهداف جدید وجود دارد، مانند ساختن آدرس های IP بطور تصادفی در ترکیب با port scanning کرم های امروزی همچنین شبکه را با استفاده از پروتکل های متعدد مورد حمله قرار می دهند.
در این بخش برخی از متداول ترین انواع حملات و روش های اسکن شبکه را بطور خلاصه بررسی خواهیم کرد.
درو کردن آدرس های ایمیل (Email Address Harvesting)
راه های بسیاری برای یک کرم رایانه ای، برای جمع آوری آدرس های ایمیل، جهت حمله وجود دارد. حمله کننده می تواند با استفاده از API استاندارد به شمارش کتابچه های آدرس (address books) بپردازد، مثلاً با استفاده از COM Interfaces. یک مورد از این نمونه کرم، W32/Serot می باشد. فایل ها را می توان مستقیماً جهت یافتن آدرس در آن ها شمارش کرد. علاوه بر این ها، کرم های پیشرفته ممکن است از پروتکل NNTP Network News Transfer Protocol، یا پروتکل انتقال اخبار شبکه برای خواندن گروه های خبری (newsgroups) استفاده کرده یا موتورهای جستجو مانند Google را برای جمع آوری آدرس های ایمیل و با استفاده از روش های مشابه پخش کنندگان اسپم، بکار گیرند.
کرم های کتابچه ی آدرس (Address-Book Worms)
تمام محیط های رایانه ای، از نوعی کتابچه ی آدرس برای ذخیره کردن اطلاعات لازم برای تماس با اشخاص استفاده می کنند. برای مثال، کتابچه ی آدرس Windows یا Outlook ممکن است آدرس های ایمیل دوستانتان، همکاران و مشتریان، یا لیست ایمیل هایی که در آنها شرکت دارید را در خود داشته باشند. اگر یک کرم بتواند به آدرس های ایمیل درون این مکان ها دسترسی یابد، می تواند خود را برای تمامی آدرس های داخل آنها ارسال کرده و با یک نرخ تصاعدی تکثیر یابد. متاسفانه دسترسی به اطلاعات داخل این کتابچه های آدرس عملی پیش پا افتاده به شمار می رود.
حملات File Parsing
چندین نوع از کرم های رایانه ای مانند W32/Magistr بطور ساده به دنبال فایل های برنامه های ایمیل یا تمام فایل هایی که پسوند آن ها WAB است گشته و این گونه فایل ها را مستقیماً برای یافتن آدرس های ایمیل در آن ها مورد تجزیه و تحلیل قرار می دهند. استفاده از این روش پس از اینکه مایکروسافت قابلیت های امنیتی خاص بر علیه کرم های رایانه ای در نرم افزار Outlook قرار داد، رونق گرفت.
همان طور که ممکن است انتظار داشته باشید، حملات مبتنی بر تجزیه ی فایل، نقاط ضعف خاص خود را دارند. برای مثال، برخی کرم ها دارای نوعی وابستگی به فرمت فایل هستند. کتابچه ی آدرس ویندوز در همه ی نگارش های این سیستم عامل، با یک فرمت ثابت ذخیره نمی شود. پشتیبانی از Unicode همیشه موجود نبوده و فرمت فایل در این مورد متفاوت خواهد بود. به همین علت است که این گونه کرمها نمی توانند تحت این شرایط به سیستم های دیگر گسترش پیدا کنند. مشکلاتی شبیه به این مورد ممکن است در هنگام انجام تست های آلودگی طبیعی در آزمایشگاه ها ایجاد اشکال کنند. این مثالی است از قانون مورفی (Murphy"s law) که در آن تمام دنیا توسط کرمی آلوده شده که در شرایط آزمایشگاهی موفق به کار نمی شود. معذلک، بنظر می رسد که این روش در دنیای واقعی مؤثر است، و تعداد بسیار زیاد حملات موفق، شاهدی بر این مدعاست.
کرم Mydoom فایل هایی را که دارای پسوندهای ,sht, php, asp, dbx, tbb, abd, pl, wab, htm و txt بودند در جستجو برای آدرس، مورد تجریه قرار می داد. کرم های رایانه ای برای تشخیص اینکه آیا یک رشته (string) خاص می تواند احتمالاً یک آدرس ایمیل باشد یا خیر از روش های تجربی (heuristics) استفاده می کنند. یک روش تجربی بالقوه ی جستجو برای رشته های mailto: در فایل های HTML و فرض کردن اینکه بدنبال آن یک آدرس خواهد آمد، می باشد. در برخی موارد، طول نام دامنه (domain name) محدود است. برای مثال، somebody@a.com ممکن است توسط برخی کرمها مانند W32/klez.H به عنوان یک آدرس معتبر پذیرفته نشود، زیرا a.com خیلی کوتاه است (اگرچه ممکن است کسی یک شبکه ی محلی را برای استفاده از چنین نام دامنه ای پیکربندی کند). علاوه بر این، بعضی کرم ها گیرنده هایی با یک زبان خاص مثلاً مجارستانی را هدف قرار می دهند، و برای اغفال کاربر به اجرای کرم، TLD هر آدرس (top level domain) را همانطور که گفته شد چک می کنند. برای مثال، کرم Zafi.A، خود را برای آدرس های ایمیل که TLD آنها .hu (مجارستان-Hungary) است، ارسال می کند.
کرم Sircam، در دایرکتوری cache متعلق به ExplorerInternet، دایرکتوری Personal کاربر و در دایرکتوری که کتابچه ی آدرس ویندوز در آن قرار دارد، در فایل هایی که اسامی آنها با ,sho, get یا hot شروع می شود یا به پسوندهایی مانند HTM یا WAB ختم می گردد، به جستجوی آدرس می پردازد.
جمع کننده های ایمیل با استفاده از NNTP
حمله کنندگان مدتهاست که مخلوقات خود را در گروه های خبری اینترنتی معرفی می کنند. در سال 1996 سوء استفاده از News Net به حد اعلای خود رسید. در نتیجه، محققین تیم ضد ویروس Dr.Solomon تصمیم به ایجاد سرویسی به نام Virus Patrol گرفتند، تا پیام های Usenet را به دنبال نرم افزارهای مخرب شناخته شده و نیز انواع احتمالاً ناشناس که بطور مستمر در این گونه پیام ها جاسازی می شدند را اسکن کند.
از پروتکل NNTP می توان در برخی از کاربردهای مخرب استفاده نمود. برای مثال یک حمله کننده می تواند از یک خواننده ی سرور خبری (news server) برای ایجاد یک پایگاه داده ی بزرگ جهت نگهداری آدرس میلیون ها نفر استفاده نماید. حمله کننده همچنین می تواند از این پایگاه داده برای کمک به پخش اولیه ی سریع کرم با اجرای کرم در سیستمی که پایگاه داده را میزبانی می کند، استفاده کند.
این یکی از روش های رایج مورد استفاده توسط پخش کنندگان اسپم است، و گمان می رود که کرم هایی مانند W32/sobig با بهره گرفتن از چنین روش هایی گسترش پیدا کردند. در واقع، اولین ویروس Win23 شناخته شده که از ایمیل برای گسترش خود استفاده کرد، از یک جمع کننده ی آدرس NNTP استفاده می نمود. عجیب نیست که همانند بسیاری دیگر از ویروس های GriYo، ویروس Parvo از خاصیت چند شکلی (Polymorphism) برای آلوده کردن فایل های PE استفاده می کرد، و اما این ویروس، اولین ویروسی بود که از یک موتور SMTP برای ارسال ایمیل در حجم وسیع بهره می جست. ویروس Parvo سال ها جلوتر از زمانه ی خود بود، و به زبان اسمبلی (Assembly) خالص نوشته شده بود که سبب شده بود که حجم بدنه ی ویروس آن فقط به اندازه ی 15 کیلو بایت باشد. ویروس W32/Parvo برای جمع آوری آدرس های ایمیل از چندین گروه خبری استفاده می نمود؛ اما ظاهراً وجود یک اشکال جزئی گسترش آن را محدود نمود. Parvo بطور تصادفی سعی می کرد تا به دو سرور خبری احتمالی یعنی talia.ibernet.es یا diana.ibernet.es متصل شود.
با این حال، این سرورها در آن زمان برای هر کسی قابل دسترسی نبودند. بدین ترتیب جمع کننده ی ایمیل Parvo به کار در محدوده ی داخل مرزهای اسپانیا محدود شد. Parvo از طریق پورت TCP/119 به دو سرور بالا متصل شده و شروع به تبادل اطلاعات می نماید. حمله کننده سه پیغام ایمیل مختلف با محتوایی که انتظار داشت برای اعضای سه گروه خبری متفاوت به اندازه ی کافی جذاب باشد تهیه نموده بود. اولین پیغام Parvo خوانندگان دائمی گروه های خبری مربوط به هک مانند alt.hacker, alt.hackers, alt.hackers.malicious, alt.bio.hackers و غیره را هدف قرار می دهد. پیغام دوم به زیر مجموعه ی این لیست گروه خبری ارسال می شود. نهایتاً پیغام سوم خوانندگان گروه های خبری غیراخلاقی (erotic) مانند alt.binaries.erotica, alt.binaries.erotica.pornstar و غیره را هدف حملات خود قرار می دهد.
برای یافتن آدرس های ایمیل در گروه های خبری، Parvo از دستور group برای پیوستن به یک گروه تصادفی و از دستورات next و head با تعداد تصادفی برای گرفتن یک پیغام بطور اتفاقی استفاده می کند. نهایتاً آدرس ایمیل را از درون عنوان (header) پیغامی که بطور تصادفی انتخاب شده استخراج می کند، خود را به این آدرس ارسال نموده، و این پروسه را تکرار می نماید.
درو کردن آدرس های ایمیل در وب
حمله کنندگان همچنین می توانند از موتورهای جستجو برای یافتن آدرس استفاده کنند. این یک فرآیند نسبتاً ساده می باشد که به حمله کننده، امکان دسترسی سریع به تعداد زیادی ایمیل را می دهد.
هنگام نگارش این کتاب، اولین گونه های این نوع کرم در حال پایدار شدن بودند که از موتورهای جستجوی معروف مانند Yahoo, Google, Lycos و Altavista برای درو کردن آدرس های ایمیل استفاده می کنند. برای مثال، کرم W32/Mydoom.M@mm بطور موفقیت آمیزی از این روش بهره جست و به گفته ی Google، این کرم حملات Dos خفیفی بر ضد سرورهای این سایت انجام داده است.
درو کردن آدرس های ایمیل از طریق ICQ
برخی کرم های رایانه ای، مانند کرم چند شکلی W32/Toal@mm، آدرس ایمیل را از طریق صفحات سفید Pages()white ICQ موجود در سرورهای ICQ جمع آوری می کنند.
برای مثال، http://www.icq.com/whitepages به شما اجازه می دهد تا براساس مشخصات مختلفی از قبیل نام، نام مستعار، جنسیت، سن، و کشور به جستجوی اطلاعات تماس گشته و اطلاعاتی مانند آدرس ایمیل اشخاصی که با شرایط جستجوی شما انطباق دارند، بدست آورید. عجیب نیست که کرم های رایانه ای می توانند از اطلاعات بدست آمده از این طریق استفاده های زیادی ببرند.
نظارت بر دسترسی کاربر به SMTP و گروه های خبری
بطور جایگزین، یک کرم رایانه ای می تواند آدرس های ایمیل را از روی پیغام های ارسالی به بیرون استخراج نماید. حتی اگر یک آدرس ایمیل مشخص در هیچ جایی از سیستم ذخیره نشده باشد، وقتی کاربر پیغامی به آن آدرس خاص ارسال می کند، کرم هم می تواند این کار را بکند. کرم Happy99 اولین کرمی بود که از این روش استفاده نمود. این کرم دو پیغام که شبیه مثال نشان داده شده در کد ذیل است را ارسال می کند. به X-Spanska:Yes در ابتدای پیغام توجه کنید. این یک روش خود-ردگیری است که توسط نویسنده ی کرم مورد استفاده قرار می گیرد. سرورهای SMTP معمولاً فرمان هایی که با پیشوند "X" شروع می شوند را نادیده می گیرد.
Data: Fri, 26Feb 1999 09:11:40 +0100 (CET)
From: "XYZ" <xyz@xyz.cz>
To: <samples@datafellows.com>
Subject: VIRUS
X-Spanska:Yes
پیغام اصلی به این شکل بوده است.
From: "XYZ" <xyz@xyz.cz>
To: <samples@datafellows.com>
Subject: VIRUS
Date: Fri, 26 Feb 1999 09:13:51 +0100
X-MSMail-Priority: Normal
X-MimeOLE: Product By Microsoft MimeOLE V4.72.3110.3
بدنه ی ایمیل دوم یک فایل اجرایی که به روش UU-encoded رمز شده است را به همراه دارد که نام آن Happy99.exe است. هنگامی که کاربر برنامه ی پیوست شده را اجرا می کند، کد کرم فعال می شود.
کرم Happy99 در بخش export از DLL.WSOCK32 به دنبال نام دو تابع API می گردد. این DLL کتابخانه ی ارتباطات Socket در ویندوز است که توسط بسیاری از برنامه های شبکه ای مورد استفاده قرار می گیرد، از جمله چندین برنامه ی معروف ایمیل. کرم مزبور، مدخل های آدرس export مربوط به APIهای send() و connect() را به محل های جدیدی در انتهای قسمت text. این DLL تغییر می دهد.
هنگامی که این DLL تغییر یافته توسط یک برنامه ی شبکه ای به حافظه لود می شود، کرم با APIهای connect() و send() تلاقی می کند. هر وقت کاربر یک ارتباط برقرار می کند، کرم شماره ی پورت آن را چک می کند. اگر معلوم شود که شماره ی پورت مربوط به پست الکترونیک یا دسترسی به اخبار است، یک DLL جدید، بنام SKA.DLL در فضای آدرسی برنامه لود می شود. این DLL دربرگیرنده ی کد کامل کرم است که قبلاً بر روی دیسک ثبت شده است.
هنگامی که تابع send فراخوانی می شود، کرم دوباره چک می کند که آیا این مربوط به پست الکترونیک یا گروه های خبری است. اگر اینطور باشد، کرم قسمتی از header موجود در ایمیل را با توجه به کلید واژه های متداول پست الکترونیک مثل From:, To:, CC, BCC و NEWSGROUPS کپی می کند. نهایتاً رشته ی X-Spanska:Yes را به هدر می افزاید. چندین نوع دیگر از کرم ها از روشی مشابه Happy99 استفاده می کنند. برخی از این کرم ها کد کامل خود را در کتابخانه ی WSOCK23 کپی می نمایند.
روش های ترکیبی
البته روش های زیادی برای جمع آوری آدرس های ایمیل و گسترش کرم می توان یافت. برای مثال کرم Linux/Slapper قادر به جمع آوری آدرس ها و ارائه ی آنها از طریق کنترل از راه دور به حمله کننده می باشد. سپس یک کرم دیگر ممکن است توسط حمله کننده ایجاد شود تا از پایگاه داده شامل آدرس های ایمیل برای گسترش ناگهانی و سریع خود استفاده نماید، بدون اینکه نیازی به آلوده کردن در حد وسیع به منظور جمع آوری تعداد کافی آدرس داشته باشد. حتی محتمل تر این است که حمله کننده از آدرس های جمع آوری شده، برای ارسال اسپم استفاده نماید.
حملات Network Share Enumeration
احتمالاً ساده ترین روش برای پیدا کردن سریع گره های دیگر در شبکه شمارش کردن (enumerate) شبکه به دنبال سیستم های دور می باشد. سیستم های windows (خصوصاً در این مورد) جزو آسیب پذیرترین سیستم ها بشمار می روند وعلت آن پشتیبانی بسیار غنی برای یافتن ماشین های دیگر و وجود اینترفیس های ساده برای این کار می باشد. ویروس های رایانه ای مانند W32/funlove از اصل شماره گذاری (enumeration) برای آلوده کردن فایل های موجود در هدف های دور استفاده می کردند. این نوع حملات سبب بروز صدمات عمده ای در سازمان های بزرگ در اطراف جهان شده اند.
چندین نوع از کرم های رایانه ای دارای برخی مشکلات اجرائی جزئی بوده و نهایتاً در یافتن منابع شبکه ای از جمله چاپ گرهای مشترک در شبکه ها موفق خواهند شد. این امر بدین دلیل محقق می شود که همه ی کرم ها به نوع منبعی (resource) که آن را شمارش می کنند، اهمیت نمی دهند و این مسئله ممکن است سبب چاپ شدن اتفاقی بر روی چاپگرهای شبکه گردد. در واقع، کرم های دچار مشکل، کاراکترهای به ظاهر بی معنی را در چاپگر چاپ می کنند، که در واقع کد کرم است. موفقیت این نوع کرم معمولاً وابسته به رابطه ی دو طرفه میان سیستم ها می باشد. با این حال عوامل دیگری هم در این مورد دخالت دارند:
• کلمات عبور خالی (blank passwords): بسیاری از سیستم ها در حالت نصب بصورت پیش فرض، نسبت به حملات آسیب پذیر هستند زیرا برای دسترسی به منابع به اشتراک گذاشته شده در سطح مدیریت سیستم، هیچ گونه مجموعه ای از کلمات عبور پیش فرض ندارند.
• کلمات عبور آسیب پذیر-حملات بر اساس فرهنگ لغات: کلمات عبور ضعیف (weak passwords) از سال 1988 هدف حملات کرم های رایانه ای بوده اند،که به لحاظ تاریخی با کرم Morris شروع می شود. با این حال، حمله به سیستم های Windows به کمک فرهنگ لغات تا سال 2003 رایج نشده بود، و با ظهور ناگهانی کرم BAT/Mumu آغاز گردید. بطرز عجیبی، کرم Mumu لیست کوتاهی از کلمات عبور را به همراه داشت که شامل 123, 1234, 12345, 123456, password, passwd, admin, pass و یک کلمه ی عبور خالی (blank) بود. به احتمال زیاد، موفقیت این کرم بخاطر استفاده از کلمه ی عبور خالی در accountهای مدیریتی بوده است.
آسیب پذیری های مرتبط با کنترل کلمات عبور
کرم W32/Opaserv در سپتامبر 2002 ظاهر شد و به خاطر حملاتش علیه سیستم هایی که دارای کلمات عبور قوی بوده ولی منابع شبکه ای را در سیستم هایی که نسخه های آسیب پذیر Windows روی آنها نصب شده بود به اشتراک گذاشته بودند، شهرت یافت. بطور مشخص، کرم Opaserv نقطه ضعف بحث شده در بولتن امنیتی شماره ی MS00-270 را که سیستم های ویندوز 95/98 و Me را تحت تأثیر قرار می دهد، مورد حمله قرار داد. این آسیب پذیری که به آسیب پذیری کلمه ی عبور اشتراکی شناخته می شود، امکان دسترسی به منابع به اشتراک گذاشته شده ی شبکه را با استفاده از اولین کاراکتر کلمه ی عبور فراهم می کند؛ فرقی نمی کند که طول کلمه ی عبور چقدر باشد. تعداد سیستم هایی که منابع شبکه ای را بدون استفاده از فایروال در اینترنت به اشتراک گذارده اند بسیار زیاد است و به Opaserv اجازه ی دسترسی آسان به این منابع که قابل نوشتن (writeable) نیز هستند را می دهد.
حملات Password-Capturing به منظور کسب اختیارات مدیریتی
در شبکه های ویندوز، مدیران شبکه قادر به خواندن و نوشتن در هر فایلی (در هر ماشین موجود در شبکه) می باشند، مگر اینکه بطور مشخص از این کار منع شده باشند. در سیستم های مبتنی بر NT، مدیران شبکه حتی مجاز به اجرای برنامه ها از راه دور و اجرای فرامینی هستند که نیاز به سطح بالاتری از اختیارات نسبت به کاربران عادی شبکه دارند. این قابلیت ها، مدیریت از راه دور را برای شبکه ممکن می سازد، اما در عین حال مجموعه ی جدیدی از مشکلات امنیتی را نیز ایجاد می کنند. کسب اختیارات مدیر دامنه کار ساده ای نیست. با این حال، یک کرم می تواند در صورت داشتن زمان کافی، از عهده ی انجام این کار برآید.
یک کرم می تواند از طریق مجراهای عادی گسترش یابد، و سپس با استفاده از روش های عادی network sniffing در TCP/IP، به گوش دادن به ترافیک شبکه بپردازد. پس از یافتن اطلاعات متعلق به مدیر شبکه که در حال انتقال در آن قسمت از شبکه می باشد. مثلاً هنگامی که مدیر شبکه در حال ورود به شبکه از طریق یکی از ایستگاه های کاری است، نام کاربر و کلمه ی عبور مدیر شبکه را بصورت hash ثبت می کند. سیستم های مبتنی بر NT کلمه ی عبور را بصورت Plain text منتشر نمی کنند، بلکه آن را در ابتدا از درون یک تابع hash یک طرفه عبور می دهند. این تابع قابل معکوس شدن نیست، بنابر این کلمه ی عبور را نمی توان مستقیماً از روی hash گردآوری نمود. در عوض، کرم می تواند یک حمله از نوع brute-force را برای امتحان هر ترکیب ممکن برای کلمه ی عبور انجام دهد. کرم می تواند هر کلمه ی عبور را ( مثلاً A, AA, AAA و غیره) از درون همان تابع یکطرفه عبور داده و نتیجه را مقایسه کند. اگر خروجی ها با هم منطبق باشند، کلمه ی عبور پیدا شده است. به عنوان یک راه حل دوم، کرم می تواند از یک حمله ی فرهنگ لغات (dictionary attack) نیز برای یافتن کلمه ی عبور استفاده کند.
در صورت قوی بودن کلمه ی عبور، ممکن است این پروسه روزها به طول انجامد، اما یک کلمه ی عبور NT معمولی کمتر از یک هفته زمان نیاز دارد که در یک رایانه ی مجهز به سیستم ویندوز و یک پردازنده ی پنتیوم شکسته شود. با فرض اینکه کرم می تواند با دیگر سیستم های اشغال شده در شبکه ارتباط برقرار کند، می تواند حجم کار را بین گره های مختلف تقسیم کرده و پروسه ی شکستن کلمه ی عبور را حتی سریعتر از این هم انجام دهد. پس از این که کرم موفق به بدست آوردن کلمه ی عبور مدیر شبکه ی NT شد، شبکه از آن او شده و هر عملی را می تواند در آن انجام دهد. بطور مشخص کرم می تواند خود را بر روی تمامی ماشین های موجود در شبکه کپی کند.
در ماشین های مبتنی بر NT این کرم حتی قادر است که به طور خودکار و با اختیارات دسترسی بالا راه اندازی کند. اینچنین کرمی حتی می تواند کلمه ی عبور مدیر دامنه و مدیران محلی را تغییر داده و با این کار جلوگیری از عملکردش را هر چه مشکل تر نماید.
در واقع، الگوریتم های hash موجود در دامنه های NT کلمات عبور طولانی را به قسمت های کوچکتر هفت کاراکتری تقسیم می کند، و این مسئله به کرم کمک می کند تا کلمه ی عبور را بسیار سریع تر پیدا کند. کلمات عبور خود را قبل از این که خیلی دیر شود ایمن کنید. البته اگر کرم رایانه ای را در نظر بگیرید که برای ثبت اطلاعات کاربران و کلمات عبور به ثبت کننده ی کلیدهای (keylogger) داخلی مجهز باشد، ممکن است دیگر نتوان به این نصیحت به درستی عمل نمود.
اسکن شبکه و انگشت نگاری از هدف (target fingerprinting)
چندین نوع کرم رایانه ای وجود دارند که برای حمله به گره های دیگر روی شبکه، شماره های IP تصادفی ایجاد می کنند. با تجزیه و تحلیل الگوریتم اسکن کننده ی کرم، می توان سرعت گسترش کرم در شبکه را پیش بینی نمود. با استدلال می توان نشان داد که یک حمله کننده می تواند کل اینترنت را توسط یک ماشین واحد اسکن کند، این کار با ساختن آدرس های IP بصورت پشت سر هم (مثلاً 2،1،1،3، 1،1،1،3، 3،1،1،3 و الی آخر) و حذف دقیق آدرس های غیرمعتبر انجام می شود. این روش به حمله کننده اجازه می دهد تا یک لیست موفقیت (پایگاه داده ای از آدرس های IP) از آدرس سیستم های قابل نفوذ در مقابل نوع خاصی از حمله تهیه کند. برای این منظور، حمله کننده لازم است که سیستم دور را به میزان لازم اصطلاحاً انگشت نگاری کند تا مشخص شود که آیا آن سیستم نفوذپذیر هست یا خیر. در بسیاری از موارد، عمل انگشت نگاری شدیداً با نحوه ی انجام نفوذ موفقیت آمیز در ارتباط می باشد.
روش تهیه ی لیست موفقیت یکی از مقدمات تئوریک کرم های معروف Warhol می باشد. کرم های Warhol توانستند 90 درصد از سیستم های قابل نفوذ در اینترنت را در مدت زمان 15 دقیقه آلوده کنند. انتظار می رود که IPv6 کرم های رایانه ای را مجبور به استفاده از روش لیست موفقیت به جای روش های مرسوم اسکن نماید.
اسکن با استفاده از جدول از پیش تعریف شده ی کلاس
کرم های شبکه ای می توانند با جمع کردن آدرس های IP ولی بر اساس یک جدول از پیش تعریف شده ی کلاس ها، به اسکن سیستم ها بپردازند. برای مثال، کرم Linux/Slapper از کلاس های تعریف شده در لیست، برای حمله به سیستم های Apache بالقوه نفوذپذیر که تحت Linux اجرا می شوند، استفاده می کند. کرم Scalper با استفاده از کد نفوذ scalp به سیستم های Apache حمله می کند. کلاس های گفته شده در بالا فاقد برخی شبکه های سایز A، شبکه های محلی، مانند 01 یا بسیاری دیگر از محدوده های آدرس های IP از جمله کلاس های غیرمعتبر می باشد. کرم، آدرس پایه ی ماشین هدف را مطابق آنچه در لیست ذیل آمده است، می سازد.
a=classes[rand()%(sizeof classes[;
b=rand ();
c=0;
d=0;
حمله از آدرسی مانند 199.8.0.0 شروع شده و کرم تمام محدوده های گره های موجود در شبکه را از این آدرس به بالا اسکن می کند. کرم Slapper سعی می کند تا روی پورت 80 (HTTP) متصل شود تا بتواند سیستم دور را انگشت نگاری کند. کرم این کار را با ارسال یک درخواست غلط روی پورت 80 که فاقد هدر Host: می باشد، انجام می دهد.
GET/HTTP/1.1\r\n\r\n
کرم انتظار دارد که وب سرور Apache یک پیغام خطا در پاسخ به این درخواست برگرداند، Apache پیغام نشان داده شده در لیست زیر را به گره ی حمله کننده باز می گرداند:
HTTP/1.1 400 Bad Request
Date: Mon, 23 Feb 2004 23:43:42 GMT
Server: Apache/1.3.19 (UNIX) (Red-Hat/Linux) mod_ssl/2.8.1
OpenSSL/0.9.6 DAV/1.0.2 PHP/4.0.4pl1 mod_perl/1.24_01
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1
به کلیدواژه ی Server: Apache در پیغام خطا توجه کنید. داده های برگشتی همچنین حاوی اطلاعاتی راجع به شماره ی نگارش وب سرور نیز می باشد، که در این مثال 1،3،19 است.
کرم سپس با بررسی و تطبیق اطلاعات سرور، چک می کند که آیا پیغام خطا از یک سرور Apache آمده یا خیر.
پس از آن از یک جدول که با اعداد و اطلاعات مربوط به ساختار و نگارش پر شده برای تشخیص اینکه هدف با نوع حمله تطابق دارد یا نه استفاده می کند.
struct archs {
char *os;
char *apache;
int func_addr;
}architectures ={
" Gentoo",""0x08086c34},}
"Debian", "1.3.26", 0x080863cc},}
"Red-Hat", "1.3.6", 0x080707ec},}
"Red-Hat", "1.3.9", 0x0808ccc4},}
"Red-Hat", "1.3.12", 0x0808f614},}
"Red-Hat", "1.3.12", 0x0809251c},}
"Red-Hat", "1.3.19", 0x0809af8c},}
"Red-Hat", "1.3.20", 0x080994d4},}
"Red-Hat", "1.3.26", 0x08161c14},}
"Red-Hat", "1.3.23", 0x0808528c},}
"Red-Hat", "1.3.22", 0x0808400c},}
{"SuSE", "1.3.12", 0x0809f54c},
{"SuSE", "1.3.17", 0x08099984},
{"SuSE", "1.3.19", 0x08099ec8},
{"SuSE", "1.3.20", 0x08099da8},
{"SuSE", "1.3.23", 0x08086168},
{"SuSE", "1.3.23", 0x080861c8}
Mandrake", "1.3.14", 0x0809d6c4},"}
Mandrake", "1.3.19", 0x0809ea98},"}
Mandrake", "1.3.20", 0x0809e97c},"}
Mandrake", "1.3.23", 0x08086580},"}
Slackware", "1.3.26", 0x083d37fc},"}
Slackware", "1.3.26", 0x080b2100},"}
حمله کننده می داند که سیستم دور Apache را روی سیستمی که احتمالاً با کد نفوذی کرم تطابق دارد اجرا شده است. با این فرض که سیستم هنوز patched نشده است. سومین عدد یک آدرس جادویی (magic) است که با کد نفوذ ارتباط دارد. در این مثال کرم آدرس 0x0809af8c را در استفاده از RedHat و ساختار 1،3،19 و اطلاعات مربوط به نگارش انتخاب می کند (خط پررنگ تر را در ساختار بالا ببینید).
اسکن تصادفی
تا مدت ها کرم Slammer مسئول سریع ترین صدمات ناشی از کرم های رایانه ای در تاریخ بوده است. کرم Slammer به پورت UDP 1434 (سرور SQL) حمله کرده و زحمت چک کردن اینکه آیا آدرس IP معتبر است یا خیر را به خود نمی دهد. این کرم خیلی ساده آدرس های IP اتفاقی تولید کرده و یک بسته ی اطلاعاتی (packet) به سمت هر کدام از اهداف می فرستد. آلودگی Slammer تقریباً در یک زمان در تمام نقاط دنیا مشاهده شد و نیازی به انجام هیچگونه انگشت نگاری (fingerprinting) ندارد.
این کرم از آلوده کردن اهدافش اطمینان دارد، اهدافی که پس از آلودگی خود به صورت آلوده کننده ی گره های دیگر در آمده و آتش بازی راه می اندازد.
روش های اسکن ترکیبی
کرم Welchia از یک تولید کننده ی آدرس های IP شبیه به Slapper استفاده می کند، با این حال این کرم از ترکیبی از روش ها بهره می برد:
کرم Welchia شبکه های کلاس B نزدیک شبکه ی کلاس B میزبان (host) را اسکن می کند. کرم این کار را یا با اسکن دقیق شبکه ی کلاس B و یا توسط اسکن قدری بالاتر یا پایین تر آن انجام می دهد، با این امید که این سیستم های مجاور نیز شاید نسبت به همان راه های نفوذ آسیب پذیر باشند. کرم از یک لیست موفقیت (hit list) برای شبکه های کلاس A استفاده می کند.
حمله کننده انتظار دارد که این سیستم ها دارای اهداف نفوذپذیر بیشتری باشند. در این روش نیز از یک استراتژی اسکن اتفاقی با حمله به 63556 آدرس IP اتفاقی استفاده می شود. قبل از این که کرم Welchia نفوذ خود را شروع کند، حضور سیستم دور را با استفاده از پیغامهای اکوی ICMP تست می کند (اصطلاحاً آنها را ping می کند).
پخش کننده های ی آلودگی
در این بخش چندین روش جالب که کرم های رایانه ای برای گسترش خود به سیستم های دیگر به کار می برند، بطور خلاصه مورد بحث قرار می گیرد.
حمله ی Backdoor
با اینکه اکثر کرم های رایانه ای عمداً به سیستمی که قبلاً اشغال شده حمله نمی کنند، برخی از کرم ها از اینترفیس های backdoor (درب پشتی) برای گسترش خود استفاده می کنند. کرم W32/Borm جزو اولین کرم هایی بود که به سیستم هایی که توسط backdoor اشغال شده بودند، حمله کردند. کرم W32/Borm نمی تواند سیستم دیگری بجز آن هایی که از قبل توسط Back Orifice (یکی از backdoorهای نسبتاً معروف در بین حمله کنندگان) اشغال شده اند را آلوده کند. Back Orifice دارای یک اینترفیس فرمان از راه دور است که از یک کانال ارتباطی رمز شده میان client و سرور Back Orifice که در سیستم اشغال شده نصب شده، برخوردار است.
Borm از یک تابع اسکن و انگشت نگاری شبکه ای برای یافتن سیستم هایی که توسط Back Orifice اشغال شده اند، استفاده می کند. برای توضیح بیشتر شکل (2) را ببینید.
• این کرم با انجام مراحل ساده ی زیر به سیستم اشغال شده حمله می کند:
آدرس های IP را بطور اتفاقی ایجاد کرده و با استفاده از فرمان BO_PING مربوط به Back Orifice شبکه را بصورت فعال اسکن می کند. برای شروع هر گونه ارتباط معنی دار، لازم است که کرم کلمه ی عبور جادویی Back Orifice را بداند، که *!*QWTY? می باشد. هدر داده های ارتباطی با یک نوع رمزگذاری ساده به رمز در آمده که برای سرور Back Orifice ضروری است. Borm داده ها را قبل از ارسال به سمت IP اتفاقی تولید شده در پورت UDP/31337 به رمز در می آورد. اگر گره ی راه دور به فرمان BO_PING پاسخ دهد، کرم به مرحله ی بعدی کار خود وارد می شود، در غیر این صورت یک IP دیگر برای حمله تولید می کند.
Borm فرمان BO_HTTP_ENABLE را به سمت سرور ارسال می کند. در پاسخ، این فرمان به Back Orifice دستور می دهد تا یک سرور HTTP مجازی در ماشین اشغال شده ایجاد کند. کرم به Back Orifice دستور می دهد تا از پورت TCP/12345 برای راه اندازی سرور HTTP در سیستم اشغال شده استفاده کند. سپس کرم به سیستم متصل شده و خود را به فرمت MIME-encoded به سرور ارسال می کند.
نهایتاً کرم، فایل اجرایی فرستاده شده را با ارسال فرمان BO_PROCESS_SPAWN اجرا می کند. این کار باعث اجرای کرم در ماشین گشته و بنابراین می تواند از این گره ی جدید شروع به اسکن سیستم های دیگر برای یافتن Back Orifice نماید.
حملات شبکه ای نقطه به نقطه (Peer-To-Peer)
حملات نقطه به نقطه از جمله روش هایی است که استفاده از آن در میان کرم ها، رو به فزونی است و نیازی به استفاده از تکنیک های پیشرفته برای اسکن شبکه ندارد. در عوض، این گونه کرم ها خیلی ساده یک کپی از خود را در پوشه ی P2P به اشتراک گذاشته شده بر روی دیسک قرار می دهند. هر چیزی که در پوشه ی داون لود P2P موجود باشد، توسط دیگر کاربران شبکه ی P2P قابل جستجو و یافته شدن می باشد. در واقع، بعضی از کرم ها در صورتیکه کاربر تمایلی به اشتراک گذاردن محتویات خود با دیگر کاربران نداشته و فقط به دنبال جستجو و یافتن محتوای مورد علاقه ی خود باشد، یک پوشه ی اشتراکی (shared) در رایانه ی او ایجاد می کنند. اگرچه این نوع حمله بیشتر شبیه به نصب اسب تروا است تا گسترش تصاعدی، کاربران شبکه ی P2P محتوای به اشتراک گذاشته شده را به سادگی یافته و برای تکمیل چرخه ی آلودگی، کد مخرب را در سیستم خود اجرا می کنند. برخی کرم های P2P از قبیل W32/Maax، فایل های داخل پوشه ی P2P را آلوده می کنند. رایج ترین روش آلوده سازی، روش نوشتن روی محتویات فایل (overwrite) است، اما افزودن به ابتدا یا انتهای فایل نیز دیده شده است. برنامه های P2P مانند Grokster, BearShare, KaZaA, LiteKaZaA, Limewire, Morpheus و Edonkey بیشتر از دیگر برنامه ها، هدف کدهای مخرب قرار می گیرند. شبکه های P2P از جمله روش های تبادل موسیقی بصورت دیجیتال هستند که روز به روز به محبوبیت آنها افزوده می شود، و قانونمند کردن آن ها بدلیل غیر متمرکز بودن، مشکل می باشد.
حملات علیه سیستم های پیام رسانی فوری
این نوع حملات از سوء استفاده از فرمان DCC Send/ در mIRC منشاء گرفته اند. از این فرمان برای فرستادن یک فایل به کاربران مرتبط با یک کانال گفتگو استفاده می شود. معمولاً، حمله کننده ها یک فایل اسکریپت محلی را تغییر می دهند، مانند فایل script.ini که برای فرمان دادن به برنامه ی mIRC جهت ارسال یک فایل هنگام پیوستن هر عضو جدید به گروه به کار می رود.
مدل هایی از کرم های (Internet Relay Chat) IRC می توانند بطور دینامیک به یک برنامه ی IRC متصل شده و پیغام هایی ارسال کنند که گیرنده را ترغیب به اجرای یک لینک یا فایل پیوست (attachment) کنند. بدین ترتیب، حمله کننده نیازی به تغییر دادن هیچ فایل محلی ندارد. برای مثال کرم W32/Choke با استفاده از API MSN Messenger خود را برای دیگر شرکت کنندگان چت به عنوان یک بازی بنام shooter game ارسال می کند. اگرچه چندین نوع از برنامه های Instant Messenger برای فرستادن فایل کاربر را ملزم به فشردن یک دکمه می کنند، کرم ها می توانند پنجره های گفتگو را بررسی کرده و دکمه های آن را کلیک کنند، طوری که لازم نیست که کاربر واقعی آنها را کلیک کند. این انتظار نیز می رود که کرم های رایانه ای نقاط آسیب پذیر از نوع Buffer Overflow را در نرم افزارهای پیغام رسان بیابند.
برای نمونه، نگارش های معینی از AOL Instant Messenger اجازه اجرا از راه دور (remote execution) هر کد دلخواهی را از طریق یک آرگومان با طول زیاد در یک تابع درخواست برای بازی می دهند.
حملات کرم ها از طریق ایمیل و روش های اغفال
بسیاری از کرم های رایانه ای از ایمیل برای گسترش به سیستم های دیگر استفاده می کنند. جالب است که ببینیم حمله کننده ها چگونه در هر روز کاربران زیادی را با فرستادن کدهای مخربشان ترغیب به اجرای این کدها در سیستم های آنها می کنند. بیایید با آن روبرو شویم: این یکی از مشکلات امنیتی می باشد. کارشناسان امنیتی چگونه می توانند کاربران را در مقابل خودشان حفظ نمایند؟ طی چندین سال گذشته، تعداد روز افزونی از کاربران در ماتریس سیستم های عامل گرفتار شده اند. خصوصاً Windows این توهم را در ذهن میلیون ها کاربر رایانه در سرتاسر جهان ایجاد کرده است که آنها "ارباب" رایانه ی خود هستند، نه برده ی آن. این توهم سبب بروز اعمال جاهلانه از نظر امنیتی می شود. در حقیقت، بسیاری از کاربران هنوز نمی دانند که باید مراقب پسوندهای ایمیل باشند.
W97M/Melissa را در نظر بگیرید، که برای اغفال گیرنده ی پیغام به اجرای کرم در ماشین خود از ایمیل زیر استفاده می کرد:
"این مدرکی است که خواسته بودید ... آن را به کس دیگری نشان ندهید" روش رایج دیگر عبارتست از تغییر در هدر (header) ایمیل. برای مثال، حمله کننده می تواند از آدرس ایمیل بخش پشتیبانی مایکروسافت یعنی support@microsoft.com به عنوان فرستنده ی پیغام استفاده کند. این کار به سادگی باعث اغفال گیرنده و اطمینان به فایل پیوست و باز کردن آن بدون هیچ تاملی می گردد. دیگر کرم های رایانه ای، صبر می کنند تا کاربر یک پیغام دریافت کند، سپس بلافاصله با فرستادن یک نسخه از کرم به فرستنده به آن پاسخ می دهند. عجیب نیست که این روش از جمله مؤثرترین روشهای اغفال به شمار می رود.
کرم ها همچنین تغییرات مختصری در فیلد From: پیغام می دهند تا بطور اتفاقی نام فرستنده را مخدوش نمایند. در عمل ممکن است شما تعداد زیادی ایمیل از اشخاص مختلف دریافت کنید، و اغلب اوقات آنها هیچ ارتباطی با کرمی که آدرس آنها را مورد سوء استفاده قرار داده، نداشته باشند. آخر اینکه تذکر دادن به "فرستنده" لزوماً چیزی را حل نخواهد کرد.
تزریق کننده های پیوست ایمیل
برخی کرم های رایانه ای پیغام را مستقیماً درون صندوق پستی (mailbox) برنامه های ایمیل، تزریق می کنند. در این حالت، کرم نیازی به فرستادن پیغام ندارد، بلکه خیلی ساده برای فرستادن آن، به خود برنامه ی ایمیل تکیه می کند. اولین نمونه های کرم های رایانه ای سیستم های Windows از این نوع بودند. یک مثال از این مورد Win/Redteam است، که صندوق پستی خروجی برنامه ی ایمیل Eduora را هدف قرار می دهد.
حملات SMTP به کمک پراکسی (Proxy)
کرم W32/Tarpox@mm نمونه ای از کرم های فریبکاری بود که به عنوان یک پراکسی برای SMTP عمل می کنند. کرم Taripox به فایل WINDOWS%SYSTEM32/DRIVERS/ETC/HOSTS% حمله می کند تا ترافیک پستی (ایمیل) را به سمت خود، پراکسی کند. بطور طبیعی، فایل HOSTS برای آدرس هاست محلی (localhost) تعریف مشخصی دارد:
127.0.0.1 localhost
W32/Tarpox@mm آدرس IP سرور SMTP را به سمت هاست محلی تغییر می دهد. کرم می تواند روی پورت 25 (SMTP) گوش فرا دهد و منتظر بماند تا یک برنامه ی SMTP ارتباط برقرار کند. سپس پیغام خروجی SMTP به سمت سرور واقعی MIME-encoded در آن تزریق می کند. کرم همچنین با گنجاندن توضیحاتی (comments) در فایل HOSTS با مضامینی از قبیل "به این قسمت دست نزنید..." که در مورد localhost به کار می رود، و "این قسمت را برندارید..." که به عنوان توضیحی (comment) برای تغییر مسیر آدرس IP سرور SMTP به هاست محلی بکار می رود، کاربران را اغفال می کند. شکل 6 نحوه ی عملکرد Taripox را نشان می دهد.
فایل HOSTS هدف رایجی برای کرمهای Retro به شمار می رود که توسط آن جلوی دسترسی به سایتهای آنتی ویروس و شرکتهای امنیتی گرفته می شود. حمله ی Taripox بسیار شبیه به Happy99 است، با این تفاوت که بسیار ساده تر بوده و نیازی به تغییرات پیچیده در فایلهای باینری مانند WSOCK32.DLL ندارد.
حملات SMTP
با تقویت Outlook توسط مایکروسافت برای حفاظت علیه حملات کرم ها، نویسندگان کرم های رایانه ای هر چه بیشتر به سمت استفاده از حملات بر اساس SMTP متمایل شدند. اولین صدمات گسترده ی جهانی از این دست توسط کرم Sircam به وقوع پیوست، و با کرم معروف W32/Nimda ادامه یافت.
حملات کوچکتری قبلاً این اتفاقات را هشدار داده بودند، که می توان به ظهور گسترده ی W32/ExploreZip اشاره کرد.
Sircam با گرفتن اطلاعات SMTP مستقیماً از registry خود را از وابستگی به برنامه های SMTP رهانیده بود. این اطلاعات شامل کلیدهای آمده در ذیل می باشد، که توسط تعدادی از برنامه های پست الکترونیک مایکروسافت مورد استفاده قرار می گیرند.
آدرس ایمیل کاربر فعلی:
Account Manager\Default Mail Account\Accounts\SMTP
Email Address HKCU\Software\Microsoft\Internet
آدرس سرور ایمیل:
Account Manager\Dafault Mail Account\Accounts\SMTP
Server HKCU\Software\Microsoft\Internet
نام نمایش داده شده ی کاربر:
HKCU\Software\Microsoft\Internet Account Manager\Default Mail Account\Accounts\SMTP Display Name
اگر به هر دلیلی این اطلاعات موجود نباشند، Sircam از prodigy.net.mx به عنوان سرور ایمیل، و نام ورود کاربر (logon) به عنوان آدرس ایمیل و نام نشان داده شده استفاده می کند. استفاده از یک لیست آدرس های IP مربوط به سرورهای SMTP روش رایجی در میان کرم ها می باشد، اما این حقه باعث می شود که مجموعه ی مشخصی از سرورها پس از گسترش کرم دچار اضافه بار شوند. بطور نمونه، اینچنین کرم هایی سرورهای SMTP خود را بسرعت با یک حمله ی DoS مواجه می کنند. خوشبختانه بدلیل وجود اشتباهات اجرایی در کرم ها، مدت زمانی لازم بود تا کرم های SMTP جای واقعی خود را بیابند. تا قبل از Sircam، اغلب کرم ها فاقد جزئیات کافی در مکانیزم گسترش خود بودند. برای مثال، Magistr فایل های آلوده نشده یا فایل های آلوده شده ای را ارسال می کند که نیاز به وجود کتابخانه هایی در سیستم گیرنده دارند که ممکن است در آن وجود داشته باشند، بدین ترتیب موفق به نفوذ در سیستم هدف نمی شوند.
در این نقطه، ممکن است ایمیل در یک پوشه با نام موقتی با فرمت (EML) Electronic Mail List قرار گیرد. برای مثال، شکل زیر یک پیغام ایمیل را نشان می دهد که توسط کرم W32/Aliz فرستاده شده و در پوشه ی dropmail متعلق به سرور Microsoft IIS قرار گرفته است.
این قطعه نقطه ضعف نوع محتوی (Content-Type) را در بدنه ی پیغام نشان می دهد.
گسترش از طریق SMTP در Steroidها با استفاده از درخواست های MX
کرم هایی مانند Nimda, Klez, Sobig و Mydoom ارسال پیغام های ایمیل در سطح وسیع را با استفاده از آدرس یابی خودکار سرورهای SMTP و از طریق جستجو در رکوردهای MX و بکارگیری DNS به حد اعلای خود رساندند. این نوع از کرم ها، نام دامنه ی آدرس های ایمیلی که جمع آوری کرده اند را چک کرده و یک سرور SMTP معتبر برای آن دامنه پیدا می کنند.
کرم Mydoom حتی از آدرس سرورهای پشتیبان (backup) نیز بجای سرور اصلی استفاده می کند تا بار اضافی سرور SMTP را هر چه بیشتر کاهش دهد. کرم سریعاً خود را به سیستم هایی که می تواند به درستی پیدا کند می فرستد، و این کار را چندین بار در دقیقه انجام می دهد.
حملات (Network News Transfer Protocol) NNTP
کرم هایی مانند Happy99 می توانند خود را برای گروه های خبری (newsgroups) و نیز آدرس های ایمیل ارسال کنند. حملات Usenet می توانند به گسترش هر چه بیشتر کرم های رایانه ای کمک کنند. جالب است که بدانید اکثر کرم های رایانه ای پیغام های خود را مستقیماً به آدرس های ایمیل ارسال می کنند.
روش های رایج برای انتقال و اجرای کد کرم
کرم های رایانه ای از نظر چگونگی انتشار کد کرم از یک سیستم به سیستم دیگر نیز با هم اختلاف دارند. اغلب کرم های رایانه ای بدنه ی اصلی خود را به صورت پیوست یک پیغام ایمیل ارسال می کنند.
با اینحال، انواع دیگری از کرم ها هستند که از روش های متفاوتی برای این کار استفاده می کنند، مانند کد تزریق شده (injected code) و روشهای shellcode به همراه کد نفوذ.
حمله با کمک کد اجرائی
پیغام های ایمیل را می توان به طرق مختلفی به رمز درآورد، مثلاً Base64(MIME).UU و غیره.
معذلک، پیوست های UU-encoded در اینترنت زیاد قابل اطمینان نمی باشند زیرا UU از بعضی کاراکترهای خاص استفاده می کند که تعبیر آنها بسته به موقعیت متفاوت می باشد. امروزه، اغلب برنامه های ایمیل از روش کدگذاری MIME به عنوان پیش فرض استفاده می کنند، و این همان کاری است که موتور SMTP اکثر کرم ها توسط آن کرم را به سمت اهداف جدید می فرستد. کرمهای ایمیل از نوع اسکریپت (script)، معمولاً پیوست ها را با همان روش کدگذاری که برنامه ی ایمیل سیستم اشغال شده برای آن تنظیم شده، کدگذاری و ارسال می کنند.
ایجاد لینک به وب سایت ها و پراکسی ها
کرم های رایانه ای همچنین می توانند لینک هایی به فایل های اجرایی که در محلی نگهداری می شوند، مثلاً در یک وب سایت، مجموعه ای از سایت ها، یا یک سایت FTP ارسال کنند. اصل پیغام در IRC یا یک ایمیل می تواند دارای هیچ نوع محتوای مخربی نباشد، اما عمل آلوده سازی را به طور غیرمستقیم انجام دهد. یکی از مشکلات احتمالی این نوع حمله وقوع یک حمله ی DoS تصادفی به سایتی است که کد کرم را نگهداری می کند. یک مشکل احتمالی دیگر این است که شخص دفاع کننده می تواند با ISP تماس گرفته و درخواست تعطیل این گونه سایت ها را مطرح کند، و جلوی گسترش بیشتر کرم را بگیرد.
کرم های زیرکی وجود دارند که لینک هایی محتوی آدرس IP سیستمی که قبلاً اشغال شده را ارسال می کنند. در ابتدا کرم یک ماشین را اشغال کرده و یک سرور ابتدایی وب را روی آن را راه اندازی می کند.
سپس با استفاده از آدرس IP این ماشین پیغام هایی را به سمت دیگر کاربران می فرستد و روی یک پورت منتظر دریافت یک درخواست GET می ماند. در این حالت نوع حمله به صورت نقطه به نقطه (peer-To-peer) در می آید. اینگونه کرم ها قادرند تا فیلتر محتوا را در صورتی که قاعده ی فیلتر کردن محتوی بر اساس فیلتر کردن پیوست های تنظیم شده باشد، به سادگی دور بزنند.
پست الکترونیک از نوع HTML-Based
ایمیل حتی می تواند از نوع HTML باشد. از کار انداختن پشتیبانی از HTML در برنامه ی ایمیل می تواند احتمال قرار گرفتن در معرض حداقل تعدادی از این تهدیدها را بگیرد، مانند VBS/Bubbleboy.
منبع: ماهنامه ی کامپیوتری بزرگراه رایانه، شماره ی 136.