امنیت

شیوه‌های متداول نفوذ به شبكه‌های كامپیوتری‌

 


مهرداد مناف‌فر
ماهنامه شبکه - مهر ۱۳۸۳ شماره 47

اشاره :

در كنار وجود مشكلات اساسی در طراحی و اجرای سیستم‌‌های عامل، برنامه‌های كاربردی و پروتكل‌های موجود، ساختار شبكه‌های كامپیوتری نیز عاری از ایراد نبوده و دچار مشكلات فراوانی می‌باشند. مهاجمین با نفوذ به سیستم‌های كم اهمیت موجود در روی شبكه و با گسترش میزان دسترسی خود از طریق حفره‌های موجود، به كلیه سیستم‌ها و اطلاعات موجود در روی شبكه دسترسی پیدا می‌كنند. در این نوشتارشیوه‌ها و تكنیك‌هایی كه غالباً توسط مهاجمین برای دسترسی به اطلاعات و كنترل سیستم‌های موجود در روی شبكه مورد استفاده قرار می‌گیرد مورد بحث و بررسی قرار خواهد گرفت كه از جمله این روش‌ها می‌توان به شنود (sniffing) ، جعل (spoofing) و سرقت نشست (Session hijacking) اشاره نمود. تذكر این نكته ضروری است كه در ادامه بحث فرض براین نهاد شده كه مهاجم، از قبل بر روی یكی از سیستم‌های موجود در شبكهِ هدف دارای یك Account بوده و به یك Interactive Shell در روی آن سیستم دسترسی دارد. حال ممكن است این فرد Account مزبور را از طریق نفوذ به شبكه به‌دست‌ آورده یا از قبل در اختیارداشته باشد






شنود 
از جمله شیوه‌هایی كه مهاجمین برای جمع‌آوری اطلاعات تبادلی بر روی شبكه به كار می‌برند می‌توان به شنود یاSniffing اشاره نمود. در این روش، مهاجم با نصب و اجرای برنامه‌هایی كه قابلیت جمع‌آوری ترافیك شبكه مورد‌نظر را  بر روی یكی از كامپیوترهای متصل به شبكه دارند، اقدام به جمع‌آوری اطلاعات از روی شبكه می‌نماید. از آن‌جایی كه غالب این Snifferها در لایه Data Link پشته پروتكلی را هدف قرار داده و بسته‌های داده را از این لایه جمع‌آوری می‌نمایند و بنا بر ویژگی‌های این لایه، عملاً محدودیتی در نوع اطلاعات جمع‌آوری شده وجود نخواهد داشت.

مهاجم پس از دستیابی به Shell یكی از سیستم‌های موجود در شبكه و انتقال فایل‌های برنامه sniffer بر روی كامپیوتر مذكور، اقدام به نصب و راه‌اندازی برنامه نموده و آن را به‌گونه‌ای تنظیم می‌نماید كه ترافیك دریافتی از سطح شبكه بر روی یك فایل محلی ذخیره شود. پس از گذشت مدت زمان مشخصی، مهاجم فایل موردنظر را جهت بررسی داده‌ها و استخراج اطلاعات موردنظر، بر روی كامپیوتر خود منتقل می‌كند. در میان اطلاعات جمع‌آوری شده می‌توان به داده‌هایی از قبیل شناسه‌های كاربری، كلمات عبور، پاسخ‌های DNS ، كلمات عبورFTP ، فایل‌هایی كه با استفاده ازNetwork File System یا Shareهای ویندوز به اشتراك گذاشته شده‌اند دست یافت كه با استفاده از این  اطلاعات، بالاخص شناسه‌های كاربری و كلمات عبور، فرد مهاجم می‌تواند به كامپیوترهای بیشتری در سطح شبكه دسترسی یافته و میزان تسلط خود را بالاتر ببرد . Snifferها می‌توانند بر روی انواع مختلفی از واسط‌های شبكه (مانند واسط‌های PPP یا Token Ring مورد استفاده قرار گیرند ولی به علت وجود پروتكل  غالب اترنت در طراحی LAN ، اغلب Sniffer ها برای این نوع پروتكل شبكه طراحی و تنظیم می‌شوند. همان‌طوری كه می‌دانید در طراحی یك LAN اترنتی می‌توان از هاب (Hub) یا از سوییچ (Switch) استفاده نمود كه هر دو ابزار دارای وظیفه‌ای یكسان با عملكردی متفاوت می‌باشند. در یك LAN طراحی شده با هاب، وقتی بسته‌های داده از یك كامپیوتر به سمت كامپیوتر دیگری ارسال می‌گردد، هاب مستقر در segment كامپیوتر مقصد، پس از دریافت بسته موردنظر آن را به همه كامپیوترهای متصل به خود و موجود در آن قسمت ارسال خواهد داشت. بنابراین اگر مهاجمی یك Sniffer را روی یكی از سیستم‌های موجود در آن قسمت راه‌اندازی نماید، Sniffer می‌تواند داده‌هایی را كه به هر سیستم رویLAN   فرستاده شده و یا از آن خارج می‌شود را دریافت و ذخیره نماید. به این نوع جمع‌آوری اطلاعات، ردیابی غیرفعال یا Passive Sniffing گویند.

برخلاف هاب، سوئیچ‌ها تمامی اطلاعات دریافتی را به همه سیستم‌های موجود در LAN ارسال نخواهند داشت؛ بلكه یك سوئیچ پس از دریافت هر بسته اطلاعات با بررسی Header آن بسته، آدرس MAC كامپیوتر مقصد را استخراج نموده و با توجه به جدول نگاشت آدرس‌های MAC موجود در حافظه خود، بسته مذبور را فقط به سمت كامپیوتر مقصد هدایت می‌نماید (آدرس‌های MAC آدرس‌های سخت‌افزاری یكتا برای هر كارت شبكه می‌باشند). در واقع می‌توان گفت كه بدین طریق سوئیچ‌ها، ترافیك موجود در شبكه را تا حد زیادی كاهش می‌دهند. اگر مهاجمSinffer غیرفعالی را روی یك LAN طراحی شده با سوئیچ فعال نماید، Sniffer  فقط اطلاعاتی را دریافت خواهد كرد كه به سمت كامپیوتر موردنظر ارسال شده و یا از آن خارج می‌شود.

در این موارد، مهاجمین برای كسب همه اطلاعات رد و بدل شده در طول شبكه از طریق شیوه‌های شنود، غالباً از تكنیك‌هایی ازقبیل MAC Flooding و یا Arp spoofing استفاده می‌كنند. در روش اول، مهاجم  ترافیك سنگینی از بسته‌های داده را به آدرس‌های MAC مورد استفاده هر پیوند هدایت می‌نماید. سرانجام حافظه سوئیچ با آدرس‌های MAC  غیرمجاز و جعلی پر شده و  سوئیچ در چنین شرایطی شروع به ارسال داده‌ها روی تمامی پیوندهای متصل به خود می‌كند. در واقع در این مرحله عملاً سوئیچ همانند هاب عمل كرده و مهاجم به راحتی توسط هرSinffer  غیرفعالی می‌تواند تمامی ترافیك موجود در شبكه را مشاهده و ذخیره نماید. در بعضی از ساختارهای سوئیچ، معروف به Unfloodable ، پس از این‌كه حافظه آدرس‌های MAC سوئیچ تا حد خاصی پر شد، سوئیچ دیگر آدرس‌های MAC جدید را در خود ذخیره نمی‌كند و عملاً تكنیك MAC flooding درباره این سوئیچ‌ها كارگر نخواهد بود. در مواجهه با چنین شرایطی غالباً مهاجمان از تكنیكی به نام Arp spoofing استفاده می‌كنند.








شكل 1

همان‌طوری كه می‌دانیم براساس پروتكل RFC628 ) ARP ) ، آدرس‌های 32 بیتی IP جهت استفاده در طول شبكه تبدیل به آدرس‌های 48 بیتی سخت‌افزاری می‌شوند. بدین‌ترتیب در یك شبكه محلی با یك مسیریاب پیش‌فرض، هرگاه سیستمی قصد برقراری ارتباط با یكی از كامپیوترهای موجود در شبكه را داشته باشد با ارسال پیغام‌های عمومی ARP شروع به جستجوی آدرس سخت‌افزاری سیستم هدف می‌كند.در این مرحله سیستم هدف، با ارسال آدرس سخت‌افزاری خود پاسخ این جسجو را داده و ارتباط برقرار خواهد شد. در تكنیك Arp spoofing مهاجم با ارسال پاسخ‌های ARP جعلی به سمت سیستم هدف، جدول ARP قربانی را با نگاشت آدرس IP مسیریاب پیش‌فرض (لایه 3) به آدرس MAC خود (لایه 2) تغییر داده و با این‌كار سیستم هدف را مجبور می‌كند كه برای دستیابی به مسیریاب پیش‌فرض، از آدرس MAC مهاجم استفاده می‌كند و بدین ترتیب همه داده‌های خروجی سیستم هدف با مقصد مسیریاب پیش‌فرض به سمت كامپیوتر مهاجم ارسال خواهند شد. در واقع در طی این فرایند كامپیوتر مهاجم نقش واسط را بین سیستم هدف و مسیریاب پیش‌فرض بازی می‌كند. در مرحله بعد مهاجم با راه‌اندازی سرویس IP Forwarding  بر روی كامپیوتر خود همه ترافیك دریافتی از سیستم هدف را به سمت مسیریاب پیش‌فرض مسیردهی می‌كند تا از ارتباط درخواستی سیستم هدف جلوگیری به عمل نیامده باشد (شكل 1).



جعل آدرسIP
روش متداول دیگری كه مهاجمان برای ایجاد اختلال، پوشاندن ردپا و دسترسی غیرمجاز مورد استفاده قرار می‌دهند، جعل آدرس IP می‌باشد. در این روش مهاجم با تغییر آدرس IP خود از طریق پیكر‌بندی مجدد سیستم سعی در معرفی خود به‌عنوان یكی از سیستم‌های موجود در شبكه می‌نماید. غالباً این نوع روش جعل، زمانی مورد استفاده قرار می‌گیرد كه مهاجم بخواهد منبع بسته‌های ارسالی را مخفی نماید. در این روش، از آن‌جایی كه تمامی بسته‌های ارسالی از جانب كامپیوترِ هدف به سمت آدرس جعلی كه مهاجم وانمود كرده است، ارسال می‌شود، عملاً مهاجم هیچگونه پاسخی را دریافت نكرده و در نتیجه نمی‌تواند هیچ‌گونه نشست تعاملی را با سیستم هدف داشته باشد. لازم به ذكر است كه تكنیك‌های جعل آدرس IP بر روی سیستم‌های مبتنی بر پروتكل TCP قابل اجرا بوده و سیستم‌هایی را هدف قرار می‌دهند كه از آدرس‌های IP برای اعتبارسنجی و برقراری ارتباط استفاده می‌كنند.

در نوع دیگری از تقلید آدرس IP كه به تكنیك مسیریابی مبدا معروف است مهاجم از طریق دستكاری در Header   بسته‌های ارسالی، مسیری كه سیستم هدف برای برقراری ارتباط با هر سیستم دلخواه دیگری باید مورد استفاده قرار دهد را تعیین نموده و ضمن وارد نمودن آدرس IP خود به عنوان بخشی از این مسیر، مسیر فوق را به سیستم هدف تحمیل می‌كند. بدین‌طریق كامپیوتر قربانی جهت برقراری ارتباط براساس مسیر تعیین شده از جانب مهاجم، شروع به ارسال داده‌ها خواهد نمود. جریان داده‌های مذبور در مسیر خود به سمت مقصد ضمن گذر از مسیریاب‌های مختلف، از كامپیوتر مهاجم نیز عبور كرده و بدین‌طریق مهاجم تمامی داده‌های ارسالی از سیستم هدف را دریافت خواهد نمود. برتری این روش نسبت به روش اول در این نكته می‌باشد كه در صورت موفقیت‌آمیز بودن این عمل، مهاجم با مشاهده پاسخ‌های ارسالی از كامپیوتر هدف توانایی ایجاد نشست‌های تعاملی با سیستم‌ هدف را دارا خواهد بود.


سرقت نشست 
در سطوح بالاتر مهاجمین با تركیب روش‌های ذكر شده در بالا و به كار بردن تكنیكی به نام سرقت نشست
(Session hijacking) ، توانایی مشاهده و كنترل تمامی ارتباطات تعاملی ممكن از قبیل rlogin ،Ftp ،telnet و ...
را خواهند داشت. این تكنیك با توجه به شیوه‌های اجرای آن به دو نوع سرقت نشست مبتنی بر میزبان
(hostBased) و مبتنی بر شبكه (NetworkBased) تقسیم‌بندی می‌شود.








شكل 2

با توجه به شكل 2، اگر فرض كنیم نشستی از نوع FTP بین سیستم‌های شماره یك و  دو برقرار شده باشد و مهاجم نیز كنترل یكی از سیستم‌های موجود در همان قسمت از شبكه را در اختیار داشته باشد، به راحتی می‌توان از طریق تكنیك‌های شنود، داده‌های در حال انتقال در طی برقراری این نشست را مشاهده نموده و بر شماره سریال TCP بسته‌های ارسالی نیز نظارت داشت. همان‌طوری كه می‌دانید، هر ارتباط TCP با ارسال یك بسته Synchronization یا هماهنگ‌سازی برای درخواست برقراری ارتباط شروع می‌شود. با توجه به Header   بسته‌های TCP ، هر بسته Syn اولیه دارای یك عدد تصادفی با نام شماره سریال می‌باشد كه در صورت برقراری ارتباط بسته‌های ارسالی بعدی با پیروی از شماره سریال اولیه روندی افزایشی خواهند داشت در نگارش‌های قدیمی IOS كه سیستم‌عامل روترهای سیسكو می‌باشد شماره سریال TCP به راحتی قابل تخمین می‌باشد ولی در نگارش‌های  0.12 و 1.12 این امر تا حد زیادی بهبود یافته است. در تكنیك Session hijacking ، مهاجم در ابتدا با جعل آدرس IP  كامپیوتر موجود در سوی دیگر ارتباط، یعنی سیستم شماره یك، و استفاده از شماره سریال‌های TCP درست و مناسب، بسته‌های داده جعلی را به سمت سیستم هدف ارسال می‌دارد. سیستم هدف پس از دریافت بسته‌های مذكور با بررسی شماره سریال و آدرس IP مبدا بسته‌ها، صحت بسته‌های دریافتی را تأیید كرده و از آن‌ جایی كه تصور می‌كند كه بسته‌های دریافتی از جانب كامپیوتر شماره یك است، براساس موارد خواسته شده پاسخ‌های مناسب را به سمت وی ارسال خواهد داشت. بدین‌ترتیب مهاجم كنترل نشست را در اختیار گرفته و به راحتی می‌تواند فرامین دلخواه را بر روی سیستم قربانی به اجرا درآورد.

در طرف دیگر ارتباط، سیستم شماره یك با دریافت بسته‌های پاسخ و بررسی شماره سریال آن‌ها متوجه روند افزایشی آن شده و با توجه به این‌كه هیچ‌گونه درخواستی برای اطلاعات مذكور از جانب وی صورت نگرفته است به ازای هر بسته دریافتی یك پیغام ACK جهت ایجاد هماهنگی مجدد ارسال خواهد داشت كه پس از گذشت مدت زمان كوتاهی از به سرقت رفتن نشست، ترافیك سنگینی از بسته‌ها در طول شبكه به وجود آمده و در نهایت كامپیوتر شماره  دو پس از ارسال تعداد مشخصی پیغام ACK ارتباط را قطع خواهد كرد. از آن جایی كه در این روش، نشست در هنگام ارسال بر روی شبكه به سرقت می‌رود به آن سرقت نشست مبتنی بر شبكه گویند.

هرگاه مهاجم از قبل كنترل یكی از سیستم‌های موجود در طرفین ارتباط را در اختیار داشته باشد به راحتی می‌توانید از طریق نصب و اجرای ابزارهای سرقت نشست مبتنی بر میزبان در روی این سیستم، بر تمامی ارتباطات برقرار شده نظارت داشته و در هر لحظه می‌تواند كنترل نشست موردنظر را در اختیار بگیرد. تفاوت این روش با روش قبلی در این است كه در روش اول مهاجم به هیچ یك از سیستم‌های طرفین ارتباط دسترسی نداشت ولی در تكنیك سرقت نشست بر پایه میزبان، مهاجم حتما باید كنترل یكی از سیستم‌های طرفین ارتباط را در اختیار داشته باشد. در انتها باید گفت كه علاوه بر روش‌های ذكر شده تكنیك‌های متفاوت دیگری نیز از سوی مهاجمان برای دسترسی به اطلاعات موجود در روی شبكه مورد استفاده قرار می‌گیرد كه بحث در مورد این روش‌ها را به شماره‌های آتی موكول می‌كن


​​