شبکه

تکنیک های Sniffing

تکنیک های Sniffing

از جمله روش ها و تکنیک های sniffing می توان به موارد زیر اشاره کرد که به توضیح کامل هر کدام به همراه روش های جلوگیری از آن خواهیم پرداخت.

  • حملات مک (mac)
  • حملات ARP
  • حملات DHCP
  • حملات DNS

حملات MAC

MAC یا Media Access Control یک آدرس 48 بیتی می باشد که در لایه دوم شبکه وجود دارد و در واقع در شبکه های لایه دوم مسیر یابی به کمک این آدرس فیزیکی صورت می گیرد. سوییچ ها دارای یک mac table یا cam table هستند که آدرس مک فیزیکی هر کامیپوتری را در آن می نویسد همانطور که در شکل زیر می بینید.

حملات MAC

این جدول سوییچ دارای تعداد خانه های حافظه ثابت می باشد مثلا یک سوییچ در شکل زیر فقط 3 عدد مک آدرس می تواند یاد بگیرد و هر گونه اطلاعات مربوط به هدف را فقط به هدف تحویل میدهد و دیگران نمی توانند این ترافیک را شنود کنند.

حملات MAC

ولی اگر تعداد بیشتر از 3 عدد کامیپوتر شد چه اتفاقی می افتد ؟ این اتفاق باعث میشود بخش یادگیری سوییچ ها مختل شده و دیگر هر پیامی را به صورت broadcast به کلیه پورت ها میفرستد یعنی عملکرد آن شبیه به hub شده و در نتیجه اتکر میتواند عمل sniff را انجام دهد.

Mac flooding

در این حمله اتکر با استفاده از تولید پیام هایی با مک آدرس جعلی حافظه cam table سوییچ را پر می کند و همانطور که قبلا گفتیم با این عمل سوییچ تبدیل به هاب شده و پیغام های broadcast ارسال می کند و درنتیجه همه می توانند این ترافیک را مشاهده کنند. در شکل زیر زیر کامپیوتر با ادرس مک C میتواند ترافیک ارسال شده از A  به B را ببیند.

حملات Mac flooding

برای استفاده از این حمله یکی از بهترین ابزارها برای ایجاد این ترافیک Macof می باشد که مربوط به سیستم عامل های لینوکسی است.

Switch port stealing

در این روش هکر خود را به جای کس دیگری معرفی میکند به عنوان مثال در شکل زیر زمانی که هکر میخواهد خود را به جای pc2 جا بزند ، مک آدرس هدف را جعل میکند و با آی پی خود به سمت سوییچ میفرستد و چون پیام جدید میباشد سوییچ cam table خود را آپدیت می کند و پیغام ها به سمت هکر فرستاده می شود.

Switch port stealing

Mac spoofing

در این نوع حمله اتکر ابتدا ادرس مک های سیستم ها را که از طریق سوییچ با هم در ارتباط هستند به دست آورده و سپس اقدام به ارسال پیام جعلی با مک ادرس های موجود کرده و خود را به جای افراد دیگر جا میزند و اطلاعات به سمت اتکر فرستاده می شود.

Mac spoofing

ابزار قدرتمندی که در این حمله استفاده میشود smac و technitium mac address changer می باشد و همینطور در ویندوز نیز می توان به صورت زیر عمل کرد:

Control panel>hardware and sounds>device manager

Mac spoofingMac spoofing

Network Adapters>select NIC and right click , properties>advance>select locally administered address value = spoof mac

Mac spoofing

در اخر میتوانید با استفاده از ipconfig/all مشاهده کنید که مک شما عوض شده است ، البته در برخی از کارت شبکه ها ممکن است که این عمل قابل انجام نباشد.

Mac spoofing

جلوگیری کردن از حملات MAC

برای جلوگیری از این حملات باید بر روی سوییچ ها port security را فعال کرد ، پورت سکوریتی بر اساس تعداد مک آدرس کار می کند و چون سوییچ ها به صورت داینامیک میتوانند مک آدرس ها را یاد بگیرند ، این قابلیت تعیین می کند که چه تعداد مک آدرس از یک پورت میتواند یاد بگیرد و در زمان حمله mac flooding به دلیل اینکه در این نوع حمله تعداد زیادی مک آدرس تولید میشود که از یک پورت به سمت سوییچ ارسال میشود در نتیجه پورت غیر فعال شده و دیگر نمیتوان این حمله را انجام داد. همچنین برای جلوگیری از حمله port stealing نیز میتوان port security را جوری تنظیم کرد که فقط یک مک ادرس روی آن پورت سوییچ کار کند و اگر مک آدرس دیگری بر روی پورت ارسال شود پورت غیر فعال شود. برای تنظیم پورت سکوریتی بر روی سوییچ های سیسکو طبق زیر عمل میکنیم:

Mac spoofing

برای جلوگیری از mac spoofing راه جلوگیری از حملات ARP و DHCP که جلوتر بیان میکنیم نیز موثر می باشد.

حملات ARP

همانطور که در اول گفتیم arp یک پروتکل با وظیفه چسباندن (bind) آدرس ip و mac را بر عهده دارد و در لایه 2 فعالیت می کند. سوییچ دارای حافظه arp میباشد که به آن arp cache میگویند. اگر سوییچ در حافظه خود ادرس مک یک آی پی را نداشته باشد پروتکل arp یک پیغام برودکست ایجاد میکند که در آن سوال میکند چه کسی صاحب آن آی پی بوده و سپس صاحب آی پی در جواب پیام arp ، فیلد مربوط به mac address پیام arp را پر میکند و به سمت درخواست کننده می فرستد.

حملات ARP

Arp poisoning/ Arp spoofing

پروتکلARP عمل تبدیل IP به MAC را برای ما انجام می دهد و مهاجم از این پروتکل برای حمله خود سود می برد.در این روش مهاجم با استفاده از پروتکل ARP یک بسته  (Gratuitous ARP) GARP ارسال می کند. به طور مثال IP Address  گیت وی شبکه را با MAC آدرس خود اعلام می کند و سیستم های موجود در شبکه اطلاعات مربوط به ARP خود را با اطلاعات جدید بروز می کند و از این پس ترافیک خارج از شبکه خود را تحویل مهاجم می دهند و اگر مهاجم بعد از بدست آوردن اطلاعات مورد نیاز خود ترافیک به گیت وی اصلی ارسال کند کاربران از این اتفاق بی خبر خواهند بود(men in the middle).

Arp poisoning/ Arp spoofing

این حمله میتواند اهداف زیر را دنبال نماید:

  • packet sniffing
  • Session hijacking
  • Voip call tapping
  • Manipulating data
  • Man in the middle attack
  • Data interception
  • Connection hijacking
  • Connection reseting
  • Stealing password
  • Denial of server ( DOS) attack

محدودیت حملات Arp spoofing

  • وقتی ARP Poisoning در شبکه راه اندازی می شودترافیک شبکه به طور قطعی بالا می رود و تاخیر در شبکه رخ می دهد به این دلیل که از هر بسته ای که داخل شبکه فرستاده می شود یک نسخه از آن به سمت هکر ارسال می شود .
  • برای اعمال ARP Poisoning توسط هکر می بایست که ARP Cache entry مربوط به هر دستگاه یا نود وجود داشته باشد تا اینکه با بسته های GARP بتوان ARP Cache entry رو آپدیت کرد . باید توجه داشت که با بسته های GARP نمی توان رکوردی را درون ARP Cache table نود اضافکرد و این بسته در صورت وجود رکورد و Resolve شدن آی پی آدرس کلاینت های مقابل در این جدول می تواند ، فقط اپدیت رکورد امکان پذیر می باشد.
  • اگر هکر بخواهد ARP Poisoning در شبکه راه اندازی کند می بایست در یک Broadcast Domain در لایه دو این کار را انجام دهد، به عبارتی این کار فقط در درون سازمان شدنی هست و بیرون از سازمان هیج گونه پیاده سازی عملیاتی ندارد.

جلوگیری از حملات Arp poisoning/ Arp spoofing

برای جلوگیری از این کار در شبکه های بسیار کوچک مانند کافی نت ها بهتر است که mac address مربوط به سیستم ها را به arp cash سیستم ها اضافه کنید.برای این منظور می توانید از دستور arp –s و باضمیمه کردن ip و mac مربوط به gateway در cmd این کار را انجام دهید با این کار هکر نمیتواند با overwrite کردن arp cash گذرگاه اقدام به arp spoofing کند.اما در شبکه های بزرگ باید از فیچری که سیسکو عرضه کرده استفاده کرد.برای این مشکل شرکت سیسکو یک فیچری عرضه کرده که این مشکل را رفع می نماید:

DAI==DYNAMIC ARP INSPECTION

شبکه شما می تواند با استفاده از این توانمندی در برابر این حملات مقاومت بیشتری را نشان دهد.این توانمندی بسیار شبیه توانمندی DHCP SNOOPING می باشد که در بسیار مواقع این دو باید با هم همراه شوند یعنی هر دو فیچر باید استفاده شود.و بهتر است که برای امنیت بیشتر توانمندی port security نیز فعال باشد. قابل ذکر است که باید قبل از DAI فیچر DHCP SNOOPING راه اندازی شود.یعنی DHCP SNOOPING یک جدولی درست میکند که سیستم ARP INSPECTION از ان استقاده می کند.این توانمندی از پورت های TRUSTED و UNTRUSTED استفاده میکند که در این شرایط که در این شرایط فقط پورت های سوئیچ که در وضعیت TRUSTED باشند قادر به دریافت پاسخ ARP خواهند بود و در صورتی که یک در خواست ARP از طریق پورت UNTRUSTED دریافت شود اطلاعات ان با جدول DHCP binding مقایسه خواهد شد در صورتی که با این جدول مطابقت نداشته باشد حذف خواهد شد پورت disable می شود.

Switch# configure terminal
Switch(config)# ip arp inspection vlan 1

تعیین پورت trusted: به صورت پیش فرض بعد از توانمندی dai کلیه پورت ها در وضعیت untrusted قرار خواهند گرفت و شما باید پورت یا پورت هایی را که می خواهید را در وضعیت trusted قرار بگیرند را تعیین نمایید.برای این منظور از دستور زیر استفاده نمایید:

Switch(config)# interface fastethernet 0/1
Switch(config-if)# ip arp inspection trust

دستور بالا باعث می شود پورت در وضعیت trusted قرار بگیرد.راه دیگری نیز توسط سیسکو وجود دارد که این کار را بااستفاده از ACCESS LIST انجام می دهند.که این راه برای STATIC ARP است.چون خیلی از IP ها با DHCP ASSIGNنمی شوند.

Switch# configure terminal
Switch(config)# ip arp inspection vlan 1
Switch(config)# arp access list static arp
Switch(config-acl)# permit ip host 192.168.1.10 mac host 0005.50a1.146g
Switch(config-acl)#exit
Switch(config)# ip arp inspection filter static arp vlan 1
Switch(config)# interface fastethernet 0/1
Switch(config-if)# ip arp inspection trust

نکته: ممکن است کلاینتی از DHCP آی پی دریافت نکرده باشدو برای این رکورد های ARP Cache table رکوردی در DHCP Snooping وجود ندارد به همین خاطر می باید آی پی آن را به صورت Static در DHCP Snooping تعریف کرد.

حملات DHCP

DHCP پروتکلی میباشد جهت اختصاص آی پی به صورت اتوماتیک به سیستم های داخل یک شبکه که با پورت 67 برای سرور و 68 برای کلاینت کار میکند. این پروتکل به صورت زیر کار میکند.

ابتدا کلاینت یک درخواست broadcast برای پیدا کردن dhcp server فرستاده سپس سرور در پاسخ یک آی پی برای کلاینت فرستاده و بعد از آن کلاینت یک درخواست در جهت تخصیص آی پی میدهد و در اخر کلاینت نیز آی پی را به کلاینت اختصاص میدهد و در حافظه خود ثبت میکند.

حملات DHCP

Dhcp starvation

در این حمله اتکر با ایجاد درخواست های جعلی برای گرفتن آی پی از dhcp سرور اقدام میکند و آنقدر این کار را تکرار میکند تا تعداد آی پی هایی که سرور dhcp در اختیار دارد (dhcp pool) تمام شده و دیگر کلاینت های جدید نمیتوانند از dhcp سرور استفاده کنند و شبکه مختل میشود. اما این حمله به تنهایی انجام نمیشود و معمولا با حمله rogue dhcp server attack همراه میشود.

Dhcp starvation

Rogue dhcp server attack

در این حمله هکر بعد از انجام حمله dhcp starvation که توضیح دادیم یک dhcp server جعلی در شبکه تنظیم میکند و به درخواست های کلاینت ها پاسخ داده و به آنها آی پی جعلی اختصاص میدهد در نتیجه با در دست گرفتن کنترل شبکه میتواند عملیات sniffing را انجام بدهد . بهترین ابزار های این حمله dhcpstarv و Yersinia می باشند.

Rogue dhcp server attack

راه های جلوگیری از حملات DHCP

برای جلوگیری از این نوع حمله نیز قابلیت های dhcp snooping و port security موثر می باشند که قبل تر توضیح دادیم.

حملات DNS

DNS یا Domain Name Service یک پروتکل میباشد که جهت تبدیل اسم به آی پی استفاده میشود. پشت هر سایت، یک آدرس IP وجود دارد. در حالی که به یاد داشتن آی پی آدرس هر سایت مشکل است نام دامنه به شما کمک می کند تا شما به آی پی سایت مربوطه دسترسی داشته باشید. به عنوان مثال،Google.com همه با این نام آشنا هستند ولی اگر از اشخاص متعددی سئوال کنید آی پی آدرس  “74.125.45.100” چیست شاید اشخاص کمی بدانند که همان آی پی  آدرس گوگل است.

Dns cache poisoning

زمانی که dns یک درخواست از کلاینت دریافت میکند که نمیداند آی پی آن چیست به dns سرور های دیگر یک query میفرستد ، و dns سرور های دیگر نیز به همین صورت تا زمانی که پاسخ پیدا شود و به سمت کلاینت برگردد. اما زمانی که dns یک پیام جعلی دریافت میکند دیتابیس خود را آپدیت میکند. برای افزایش سرعت و کارایی dns از یک حافظه cache استفاده میکند و این پیام جعلی فرستاده شده باعث مسمومیت حافظه cache  شده و تا زمانی که پیام در حافظه cache منقضی نشود اتکر میتواند افراد را به سایت های جعلی به جای سایت های اصلی هدایت کند

Intranet dns spoofing

در این نوع حمله اتکر مستقیما به شبکه داخلی وصل میباشد و به کمک حمله arp poisoning خود را به عنوان gateway در شبکه معرفی کرده و با شنود پکت های شبکه ، پکت های dns را جدا کرده و به آنها پاسخ میدهد و به سمت سایت جعلی میفرستد. در این حمله باید اتکر سریع باشد تا قبل از پاسخdns  سرور اصلی پاسخ دهد.

Intranet dns spoofing

Internet dns spoofing

در این روش اتکر ابتدا به سیستم قربانی نفوذ کرده و با آلوده کردن سیستم با یک تروجان ، اقدام به عوض کردن dns کرده و باعث میشود قربانی به سمت آدرس های جعلی فرستاده شود مانند شکل زیر اتکر آی پی خود را به عنوان dns به کلاینت معرفی می کند.

Intranet dns spoofing

Proxy server dns spoofing

در این روش اتکر مانند روش قبل یک تروجان به سیستم قربانی میفرستد و سپس باکمک تروجان اقدام به تغییر proxy سرور در مرورگر اینترنت قربانی می کند.

Proxy server dns spoofing

جلوگیری از حملات DNS

Resolver خود را امن و خصوصی نگاه دارید. اگر از Resolver شخصی استفاده می‌کنید، باید دسترسی آن را محدود کنید. فقط کاربرانی دسترسی داشته باشند که مورد اعتماد شما هستند.  برای اینکه بدانید در شبکه‌تان Resolver باز وجود دارد یا نه می‌توانید از Measurement Factory’s online tool استفاده کنید.

تنظیمات را به گونه‌ای انجام دهید که در برابر cache poisoning امن باشد.

  • به جای استفاده از پورت ۵۳ UDP از شماره پورت‌های تصادفی استفاده کنید
  • Query ID را تصادفی کنید.
  • حروف نام دامنه‌ای که برای گرفتن IP به Resolver فرستاده شده‌اند را به طور تصادفی کوچک و بزرگ کنید.
  • سرور DNS خود را به طور امن مدیریت کنید.

اگر شما میزبان سرور DNS تان هستید:

  • گرفتار آسیب‌پذیری‌های شناخته شده نشوید. اگر DNS سرور خودتان را اجرا می‌کنید، هوشیار باشید که تمام پچ‌ها را نصب کرده باشید و سرور و نرم‌افزارهایش را به روز نگاه دارید.
  • با استفاده از سرور‌های جداگانه، توابع resolver و authoritative را از هم جدا کنید. این حرکت باعث می‌شود در اثر حمله DoS سرور شما Off نشود.
  • سرور نام دامنه اصلی خود را مخفی نگاه دارید.
  • سرور نام دامنه خود را مانیتور کنید. مطمئن باشید که کوچکترین تغییرات در این سرور از دید شما مخفی نماند.
  • برای محافظت از سرورتان از PKI استفاده کنید.
  • پورت‌ها و سرویس‌هایی که رد سرورتان به آنها نیازی ندارید را بسته یا غیرفعال کنید.

اگر از Domain Name Registrar استفاده می‌کنید: اگر سرور نام دامنه شما توسط Registrar یا واسطه‌های دیگر مدیریت می‌شود، باید مطمئن شوید که امنیت را برقرار می‌کنند. گزینه‌های زیر به شما کمک می‌کنند که از برقراری امنیت در Registrarها مطمئن شوید.

  • احراز هویت دو عامله (Two factor authentication)
  • قفل تغییرات سرور نام دامنه (DNS change locking)
  • ورود IP ‌های مشخص شده (IP-dependent log in)
  • DNSSEC

DNSSEC چیست؟

DNSSEC جهت برطرف کردن مشکلات امنیتی DNS از زیرساخت امضای دیجیتال استفاده می کند. به صورت پیش فرض، DNSSEC سرویسی برای Confidentiality ارائه نمی کند و همچنین مستقیما دارای مکانیزمی برای مقابله حملات DoS نیست، با این وجود سرویس Authentication سبب می گردد تا پاسخ های دریافت شده identical باشد. DNSSEC دارای Record Type های جدیدی در مقایسه با DNS است.

DNSSEC چیست؟

علی کلانتری

کارشناس شبکه CCNA , CCNP MTCNA, MTCRE, MTCTCE, MTCWE, MTCUME , MTCINE MCSA,VCP 5.5,LPIC-1,CEH

یک دیدگاه

  1. بسیار مطلب مفیدی بود مخصوصا اینکه همه موارد لازم یکجا جمع شده است . با تشکر از استاد کلانتری عزیز

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


دکمه بازگشت به بالا