کرم هاي رايانه اي (1)

کرم هاي رايانه اي
کرم هاي رايانه اي (1)


 






 
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) از آدرس سيستم هاي قابل نفوذ در مقابل نوع خاصي از حمله تهيه کند. براي اين منظور، حمله کننده لازم است که سيستم دور را به ميزان لازم اصطلاحاً انگشت نگاري کند تا مشخص شود که آيا آن سيستم نفوذپذير هست يا خير. در بسياري از موارد، عمل انگشت نگاري شديداً با نحوه ي انجام نفوذ موفقيت آميز در ارتباط مي باشد.

کرم هاي رايانه اي (1)

روش تهيه ي ليست موفقيت يکي از مقدمات تئوريک کرم هاي معروف 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) را ببينيد.

کرم هاي رايانه اي (1)

• اين کرم با انجام مراحل ساده ي زير به سيستم اشغال شده حمله مي کند:
آدرس هاي 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 را هدف قرار مي دهد.

کرم هاي رايانه اي (1)

حملات 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 مي توانند به گسترش هر چه بيشتر کرم هاي رايانه اي کمک کنند. جالب است که بدانيد اکثر کرم هاي رايانه اي پيغام هاي خود را مستقيماً به آدرس هاي ايميل ارسال مي کنند.

کرم هاي رايانه اي (1)

روش هاي رايج براي انتقال و اجراي کد کرم
 

کرم هاي رايانه اي از نظر چگونگي انتشار کد کرم از يک سيستم به سيستم ديگر نيز با هم اختلاف دارند. اغلب کرم هاي رايانه اي بدنه ي اصلي خود را به صورت پيوست يک پيغام ايميل ارسال مي کنند.
با اينحال، انواع ديگري از کرم ها هستند که از روش هاي متفاوتي براي اين کار استفاده مي کنند، مانند کد تزريق شده (injected code) و روشهاي shellcode به همراه کد نفوذ.

حمله با کمک کد اجرائي
 

پيغام هاي ايميل را مي توان به طرق مختلفي به رمز درآورد، مثلاً Base64(MIME).UU و غيره.
معذلک، پيوست هاي UU-encoded در اينترنت زياد قابل اطمينان نمي باشند زيرا UU از بعضي کاراکترهاي خاص استفاده مي کند که تعبير آنها بسته به موقعيت متفاوت مي باشد. امروزه، اغلب برنامه هاي ايميل از روش کدگذاري MIME به عنوان پيش فرض استفاده مي کنند، و اين همان کاري است که موتور SMTP اکثر کرم ها توسط آن کرم را به سمت اهداف جديد مي فرستد. کرمهاي ايميل از نوع اسکريپت (script)، معمولاً پيوست ها را با همان روش کدگذاري که برنامه ي ايميل سيستم اشغال شده براي آن تنظيم شده، کدگذاري و ارسال مي کنند.

ايجاد لينک به وب سايت ها و پراکسي ها
 

کرم هاي رايانه اي همچنين مي توانند لينک هايي به فايل هاي اجرايي که در محلي نگهداري مي شوند، مثلاً در يک وب سايت، مجموعه اي از سايت ها، يا يک سايت FTP ارسال کنند. اصل پيغام در IRC يا يک ايميل مي تواند داراي هيچ نوع محتواي مخربي نباشد، اما عمل آلوده سازي را به طور غيرمستقيم انجام دهد. يکي از مشکلات احتمالي اين نوع حمله وقوع يک حمله ي DoS تصادفي به سايتي است که کد کرم را نگهداري مي کند. يک مشکل احتمالي ديگر اين است که شخص دفاع کننده مي تواند با ISP تماس گرفته و درخواست تعطيل اين گونه سايت ها را مطرح کند، و جلوي گسترش بيشتر کرم را بگيرد.

کرم هاي رايانه اي (1)

کرم هاي زيرکي وجود دارند که لينک هايي محتوي آدرس IP سيستمي که قبلاً اشغال شده را ارسال مي کنند. در ابتدا کرم يک ماشين را اشغال کرده و يک سرور ابتدايي وب را روي آن را راه اندازي مي کند.
سپس با استفاده از آدرس IP اين ماشين پيغام هايي را به سمت ديگر کاربران مي فرستد و روي يک پورت منتظر دريافت يک درخواست GET مي ماند. در اين حالت نوع حمله به صورت نقطه به نقطه (peer-To-peer) در مي آيد. اينگونه کرم ها قادرند تا فيلتر محتوا را در صورتي که قاعده ي فيلتر کردن محتوي بر اساس فيلتر کردن پيوست هاي تنظيم شده باشد، به سادگي دور بزنند.

پست الکترونيک از نوع HTML-Based
 

ايميل حتي مي تواند از نوع HTML باشد. از کار انداختن پشتيباني از HTML در برنامه ي ايميل مي تواند احتمال قرار گرفتن در معرض حداقل تعدادي از اين تهديدها را بگيرد، مانند VBS/Bubbleboy.
منبع: ماهنامه ي کامپيوتري بزرگراه رايانه، شماره ي 136.



 

نسخه چاپی