مقابله با شنود (Sniff) داده‌ها در شبکه‌های کامپیوتری

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

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

شنود شبکه یا اصطلاحا Packet Sniffing به معنای دریافت تمامی packet های عبوری و در دسترس در شبکه است. معمولا در صورتی که شیوه ارتباط کاربران با اینترنت فاقد امنیت کافی (مثلا بدون vpn) باشد، اطلاعات حساسی مانند کلمات عبور plain، برخی url ها و اطلاعات شخصی دیگر را می‌توان از آن بدست آورد.

یک packet sniffer هم می‌تواند یک درایور نرم‌افزاری برای دسترسی به پکتها بوده و یا حتی یک sniffer سخت‌افزاری باشد که به پورت و یا کابل شبکه متصل شده است.

در شبکه‌های فاقد سوییچ، تمامی پکت‌های ارسالی با هر آدرس مبدا و مقصد، به تمامی کلاینتهای موجود در آن شبکه ارسال شده و کلاینتی که آدرس آن با آدرس مقصد مطابقت داشته باشد، از آن استفاده می‌نماید. در این شبکه به دلیل مشترک بودن bus ارتباطی، هر کلاینتی که در حالت promiscuous (حالت دریافت پکتهایی با هر آدرس مقصد) قرار گیرد، به سادگی تمامی پکتها را دریافت می‌کند.

اما در شبکه‌های سوییچ شده که پکتها فقط به آدرس مقصد ارسال می‌شوند، وضعیت کمی متفاوت است. ممکن است در نگاه اول اینطور به نظر برسد که با وجود سوییچ، اجتناب از broadcast داده‌ها و شناسایی مقصد، امکان sniff وجود ندارد، اما اینطور نیست. به دلیل ضعف ساختاری که در پکتهای ARP جهت شناسایی مقصد وجود دارد، یک مهاجم می‌تواند با آلوده کردن MAC Table، خود را به عنوان سیستم مقصد جا زده و یک حمله Man in the middle را به انجام برساند.

در این روش مهاجم در زمان دریافت پکتهای Adress Resolution Protocol که به منظور دریافت آدرس MAC از مقصد، به صورت broadcast منتشر می‌شوند، آدرس MAC خود را به عنوان مقصد معرفی می‌کند. به دلیل cache شدن آدرس‌های MAC در MAC table کلاینتها، با اعلام مداوم MAC جعلی از طرف مهاجم، cache ها بازنویسی خواهند شد.

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

اما روش‌های تشخیص sniff چگونه هستند:

بررسی درخواستهای Name-lookup:
معمولا ابزارهای sniff، جهت بدست آوردن نام هاست ip های مورد شنود، درخواستهای DNS متعددی را ارسال می‌کنند. در چنین مواقعی ابزار AntiSniff با ارسال پکتهای جعلی منتظر دریافت name-lookup request برای ip های مورد نظر از سیستم مهاجم می‌ماند.

مشکل عدم تطابق ARP و IP در ویندوز:
یکی از مشکلات کرنل سیستم عاملهای ویندوز در تشخیص MAC آدرسهای broadcast شده در شبکه این است که فقط مقدار بایت اول MAC را بررسی کرده و در صورتی که مقدار آن 0xff باشد، نتیجه می‌گیرند که آدرس ff:ff:ff:ff:ff:ff است.
اما یک ابزار AntiSniff با سوء استفاده از این نقطه ضعف و ارسال یک پکت با MAC ff:00:00:00:00:00 اما با آدرس ip صحیح مقصد می‌تواند وجود یک مهاجم در حالت promiscuous را تشخیص دهد چرا که مهاجم با تصور broadcast بودن آدرس ممکن است به پکت پاسخ دهد.

تاخیر در پاسخ به پکتهای ICMP:
به دلیل پردازش تمامی پکتهای عبوری در حالت promiscuous، سیستم مهاجم در پاسخ به پکتهای ICMP دچار تاخیر محسوسی خواهد شد که با توجه به مواردی مانند میانگین زمان پاسخ، تعداد درخواست‌های Drop شده و بازه Time-Delta، می‌توان حدس زد که کدام کلاینت یک مهاجم است.

ذخیره تغییرات MAC table:
با ذخیره کردن دنباله تغییرات MAC table می‌توان آلوده شدن ARP را تشخیص داد.

پ.ن 1: به دلایلی ابزارهای AniSniff را معرفی نمی‌کنم. جوینده، یابنده است.
پ.ن 2: اطلاعلات تکمیلی در ARP Attack Protection Technology White Paper

About محمد شمس

برنامه‌نویس، طراح انیمیشن و علاقمند به هوش مصنوعی

3 Comments

  1. مطلب خوبی بود
    موفق و پیروز باشید

  2. ممنون و متشکر از شما دوست عزیز

  3. این همین کاری نیست که دولت ایران در مورد جی میل و … انجام میده؟

پاسخ دهید

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


× 8 = 32