درخواست های ارتباط
جستجو
    لیست دوستان من
    صندوق پیام
    همه را دیدم
    • در حال دریافت لیست پیام ها
    صندوق پیام
    رویدادها
    همه را دیدم
    • در حال دریافت لیست رویدادها
    همه رویدادهای من
    تخفیف های وب سایت
    همه تخفیف ها

    عضویت در

    کانال تلگرام

    توسینسو

    اطلاعات مطلب
      مدرس/نویسنده
      حسن صفری
      امتیاز: 1662
      رتبه:205
      0
      4
      0
      8
      حسن صفری فارغ التحصیل مقطع کارشناسی در رشته ICT با بیش از 3 سال سابقه کاری در پارک علم و فناوری دانشگاه آزاد، دارای مدارک تخصصی شبکه در حوزه ی سیسکو و پیکربندی و اجرای مباحث امنیتی، عیب یابی فایروال هایASA و اعمال HA و همچنین شرکت در مباحث علمی مربوط به شبکه، خواندن کتب، مقالات علمی لاتین و....... پروفایل کاربر
      تاریخ 23 ماه قبل
      نظرات 2
      بازدیدها 286
      در این قسمت از بحثمون می خوایم ابتدا با تعدادی از اتک هایی که در سطح data plane routed اتفاق میآفتد آشنا بشیم و در ادامه راه های مقابله یا کاهش این تهدید را بیاموزیم.

      Routed data plane attack type

      IP Spoofing -1
      Slow path-DOS -2
      Traffic flooding -3


      • IP Spoofing

      یعنی اینکه بیاییم IP خود را جعل کنیم و با آن وارد شبکه شویم این در صورتی می باشد که ما با IP اصلی خودمان اجازه ورود به آن شبکه را نداریم.خود این نوع اتک بنا بر 3 روش اهداف خود را پیش می برد:
      1- وارد کردن پکت هایی به شبکه با IP های موجود در شبکه .مثلا یک کلاینت به اینترنت دسترسی دارد من با spoof کردن IP آن می آیم به اینترنت دسترسی پیدا می کنم.
      2- Spoof کردن یک کلاینت در شبکه با استفاده از source routing.مثلا بیاییم یک مقصد خاص را spoof کنیم حال وقتی ترافیکی وارد یا خارج شود از اون مقصد می شود،ابتدا به من اتکر می رسد بعد به مقصد.
      3- بیاییم با وارد کردن IP های غیرمعتبر به شبکه اتک denial of service را اجرا کنیم که برای flood کردن شبکه کاربرد دارد.

      • Slow-path-denial of service


      این را می دانیم که روترها بسته های خود را با استفاده از routing table و mac-address فوروارد می کنند.حال پکت هایی هستند که با cpu فوروارد می شوند.وقتی بیاییم این پکت ها را با حجم زیاد روانه شبکه کنیم علانا توانسته ایم که cpu دستگاه را درگیر و اشغال کنیم و در نهایت cpu دچار overload شده و دیوایس از کار می افتد.
      چه ترافیک هایی با استفاده از cpu روت می شوند؟
      1-ترافیک های سیگنالینگی .مثل routing ها
      2-ترافیک های مدیریتی.مثل telnet, SSH, remote desktop, NTP ...
      3-ترافیک های data plane .مثل ترافیک هایی که به NAT نیاز دارنند یا ترافیک هایی که بر اثر صفر شدن TTL ارسال می شوند.

      • Traffic flooding


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

      روش های جلوگیری از این اتک ها


      1. Reflexive ACL
      2. Time-base ACL
      3. Flexible packet matching
      4. Flexible Net-flow
      5. Unicast reverse path forwarding (unicast RPF)



      Reflexive ACL -1

      وقتی می خواستیم ترافیک های شبکه ما دسترسی خاصی به جایی مثلا اینترنت داشته باشند با استفاده ازACL می آمدیم می گفتیم که ترافیک هایی که به سمت WEB میروند را Permit و بقیه را deny کن.حال در مسیر برگشت دیگر ما نمی توانیم جلوی ترافیک را بگیریم برای این منظور باید یک ACL در موقع برگشت نیز وار کنیم که این خود باعث افزایش کانفیگ و پیچیدگی آن ها می شود.و همچنین یکطرفه فیلتر کردن ترافیک باعث بروز مشکلاتی نیز می شود.به طور مثال از بیرون از شبکه به راحتی می توانیم وارد شبکه شویم. برای رفع این مشکل سراغ reflexive ACL خواهیم رفت.
      RACL می گوید که ترافیک ها می توانند از بیرون به داخل شبکه بیایند ولی مشروط بر اینکه قبلا از داخل به بیرون روت شده باشند.و یا از داخل سازمان اگر دستوری وارد نشد، اجازه ورود نداشته باشند.در واقع RACL یک نسخه کوچکی از فایروال می باشد که در ACL اجرا می شود.
      امنیت در data plane routed



      Time-base ACL -2

      کنترل بر اساس زمان می باشد.یعنی کنترل را می خواهیم در زمان های مشخص و خاص انجام دهیم.به عنوان مثال می خواهم کاربران من از ساعت 8:00 تا 14:00 بعدازظهر فقط اینترنت داشته باشند غیر این تایم به اینترنت دسترسی نداشته باشند.قبل از نوشتن این ACL باید اول یک time range تعریف کنیم و آن را در ACL تعریف کنیم.حال خود این time range بر دو نوع می باشد.
       1-periodic :به صورت متناوب و دوره ای اجرا می شود این نوع از time range.مثلا هرهفته چهارشنبه ها دسترسی به اینترنت قطع باشد.
       2-absolute:در زمان های خاص اجرا می شود نه به صورت دوره ای.مثلا 22بهمن 1395 دسترسی به ftp سرور قطع باشد.
      Router (config) #time-range (time-range –name)
      Router (config-time-range) # periodic (day of the week| hh:mm)
      Router (config-time-range) #absolute [start time data][end time data]
      Router (config) # access-list 101 <protocol><source><destination><time range name>
      


      Flexible packet matching -3

      همانند ACL می تواند ترافیک را کنترل کند با این تفاوت که این کنترل بسیا دقیق تر انجام می گیرد.یعنی می توان کنترل ترافیک را بر اساس بیت های موجود در هدر آن بسته انجام داد.برای فهم بیشتر یک مثال میزنم:
      فکر کنید یک ویروسی وارد سیستم شده که ما نمی توانیم جلوی آن را بنا به دلایل زیادی بگیریم.در این صورت یک نمونه از آن بسته را لود میکنیم و یک بیت از بیت های مشخص آن را پیدا می کنیم و انتخاب می کنیم حالا می گوییم که اگر بسته ای دریافت کردی که این بیت ها را داشت جلوی آن را بگیر و آن را drop کند.
      برای راه اندازی FPM باید مراحل زیر را دنبال کرد:
      1- باید ابتدا بسته ها را با پروتکل PHDF لود کنیم ابتدا تا کنترل ما نیز دقیق تر صورت گیرد طبق آن چیزی که بالا ذکر شد.
      با استفاده از دستور زیر می آییم آن را کانفیگ می کنیم.
      Router (config) # load protocol location: filename
      
      Exam:
      Router (config) # load protocol system:fpm/phdf/ip.phdf
      Router (config) # load protocol system:fpm/phdf/tcp.phdf
      

      2- با استفاده از class-map می آییم ترافیک های خودمان را جدا می کنیم.منظور ترافیک های مورد نظر می باشد.
      ما دو نوع class-map داریم:
      الف- Stack :فقط براساس پروتکل ها می تواند عملیات classification را اجرا کند.پروتکل هایی مثل IP-TCP-UDP و همچنین فقط در زدن دستورات از کامند match all می توانیم استفاده کنیم.
      ب- Access-control :هم بر اساس پروتکل و هم بر اساس pattern های خاصی در ترافیک می تواند ترافیک را کنترل کند.

      Router (config) # class-map type [stack | access-control] [match-all | match-any] class-map-name     
      Router (config-cmap) # match field protocol protocol-field [eq | neq | gt | lt | range range] value next                                           next-protocol
      Router (config-cmap) # match start [l2-start | l3-start] offset offset size size [eq | neq | gt | lt | range                                           range] value
      

      3- با استفاده از Policy-map می آییم action مورد نظر را ری این ترافیک انتخاب شده انجام می دهیم که drop کند یا permit کند ویا ...
      Router (config) # policy-map type access-control policy-map-name
      Router (config-pmap) # class class-name
      Router (config-pmap-c) # drop
      

      4- در آخر این پالیسی هارا به اینترفیس مورد نظر apply می کنیم
      Router (config) # interface type <mod/num>
      Router (config-if) # service-policy type access-control [input | output] policymap-name
      


      Flexible Net-flow -4

      یک ابزار مانیتورینگ می باشد یعنی می توانیم با آن بیاییم کلیه ی ترافیک های یک اینترفیس را در دست بگیریم و مشاهده کنیم.
      Flow به ترافیک هایی گفته می شود که هم از نظر src , dest هم از نظر شماره پورت و هم از نظر پروتکل باهم برابر باشند.
      حالا netflow می آید کنترل این flow ها را به عهده می گیرد.این ترافیک ها وارد نرم افزاری می شوند برای مانیتورینگ.نرم افزار های خاصی مثل manage engine مثل solar winds.
      Flexible netflow با netflow تفاوت های بخصوصی دارد:
      1- این فیچر می تواند در اندازه های بزرگ و روی اینترفیس هایی با ظرفیت و پهنای باند بالا نیز کار کند.
      2- از ورژن بالایی همچون ورژن9 استفاده می کند.
      3- در netflow ما حق این را نداشتیم که آنالیز خودمان را بر اساس ویژگی های ترافیک انجام دهیم.اما در flexible میتوانیم آنالیز ترافیک خود را بر اساس src ip dest ip src port dest port protocol انجام دهیم.
      4- همچنین accounting خوبی برای IP و BGP می باشد و می تواند خدمات خوبی را ارائه دهد.
      5- کانفیگ کردن key field و nonkey field

      Key field: با flexible netflow می توانیم کاری کنیم که flow های مختلف بیایند مجزا یا تفکیک شوند.یعنی flow هایی که از یک اینترفیس وارد می شوند با flow هایی که از یک اینترفیس دیگر وارد می شوند را در قسمت های مختلف یا flow های مختلف قرار دهیم.
      Nonkey field: فیلدهایی که می خواهیم در موقع خروج برای ما نمایش داده شوند. مثلا src ip را نمایش دهد یا بر اساس src ip نمایش دهد.

      کاربرد های F netflow :


      1- مانیتورینگ شبکه
      2- مانیتورینگ نرم افزارها
      3- مانیتورینگ کاربران
      4- امنیت
      5- مانیتورینگ دیتاهای خاص

      اجزای اصلی F netflow :


      1- net flow record:اون دو فیچر nonkey field و key field هایی که می خواهیم بر اساس آن ها flow ها شناسایی و مانیتورینگ شوند.
      Router (config) # flow record flow-record-name
      	To specify key fields:
      Router (config-flow-record) # match [ipv4 | ipv6 | datalink | routing | flow |interface} options
      	To specify nonkey fields:
      Router (config-flow-record) # collect [counter | ipv4 | ipv6 | datalink | routing | flow | interface |     timestamp] options
      


      2- net flow exporters : محل خروجی مانیتورینگ را مشخص می کند.

      Router (config) # flows monitor flow-monitor-name
      Router (config-flow-monitor) # record [flow-record-name | netflow | netfloworiginal] {ipv4 | ipv6}           {Original-input | original-output}
      

      3- net flow sample : به دلیل زیاد بودن ترافیک در اینترفیس ها و انجام عمل مانیتورینگ باعث بالا رفتن پروسس CPU می شود برای رفع این مشکل می آیند از ترافیک نمونه برداری می کنند.به عنوان مثال می آیند از هر سه پکت دریافتی یک پکت را مانیتور می کنند.در این صورت بار ترافیکی کاسته و میزان پروسس کاهش می یابد.

      Router (config) # sampler sampler-name
      Router (config-sampler) # mode {deterministic | random} 1 out-of window-size
      
      4- netflow monitoring : تمامی سه موارد بالا در این قسمت صدا زده می شوند .و خود این قسمت به اینترفیس apply می شود.

      Router (config) # flows monitor flow-monitor-name
      Router (config-flow-monitor) # record [flow-record-name | netflow | netfloworiginal]
      {ipv4 | ipv6} {Original-input | original-output}
      

      Application of a Flow Monitor
      حال net flow monitor را باید به یک اینترفیس معرفی کنیم.اون اینترفیسی که باید به یک ابزار مانیتورینگ بدهیم.با دستورات زیر این کار را انجام می دهیم.
      Router (config-if) # ip flow monitor flow-monitor-name {sampler sampler-name} [multicast | unicast] [input | output]
      


      Unicast Reverse Path Forwarding (Unicast RPF) -5

      برای جلوگیری از اتک های IP Spoofing استفاده می شود.برای اینکه دیگر از ACL استفاده نکنیم و درگیر پیجدگی های آن نشویم از این فیچر استفاد می کینم.پیچیدگی این روش یسیار کم می باشد به طوری که می گوید اون ترافیک هایی که از بیرون می خواهند به داخل بیایند src آن را چک میکند.در صورتی می توانند ،که یک خط روت در جدول روتینگ به آن مقصد وجود داشته باشد.
      به عنوان مثال اگر یک ip valid دریافت کند چون ipهای valid ما به اینترنت دسترسی ندارنند پس بنابراین اون ip دریافت شده را drop می کند.
      در دو مد کاری از RPF استفاده می شود:
       Strict (normal): همین روشی که در بالا گفته شد عمل می کند.

       Loose: مثل روش بالا عمل می کند با این تفاوت که اگر در جدول روتینگ هم به اون آدرس یه روت وجود داشت باز هم آن بسته drop می شود.

       ip cef {distributed}#
      ip verify unicast source reachable-via [rx | any] {access-list} #
      


      نویسنده : حسن صفری
      منبع ITPRO:
      هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

      برچسب ها
      ردیفعنوان
      1آموزش اجرای فایروال ASA در نرم افزار GNS3
      2معرفی فیچرهای امنیتی پروتکل STP و چگونگی پیکربندی
      3امنیت در قسمت data plane سوئیچ ها
      4امنیت در data plane routed
      دورهمجموعه کل دوره
      مطالب مرتبط

      در حال دریافت اطلاعات

      نظرات
      • سلام ،
        داشتم هدر مقاله تون رو میخوندم ، خیلی سطحی با IP Spoofing برخورد کردید،
        بهتره بگیم ، عمل IP Spoofing یعنی جعل IP ! فرستادن پکت در شبکه ( TCP و UDP ) به منظور نا مشخص شدن آی پی مبدا ! منظور از نا مشخص هم اینه که هر آی پی که دوست داری رو میتونی به جای آیی خودت بزاری ! حتی آی پی وقصد و هدف ! یعنی وقتی که طرف داره بسته های شبکه رو نگاه و بررسی میکنه که از کجا میاد میبینه که داره از آی پی خودش به خودش فرستاده میشه ! البته از یه راهی میشه فهمید که جلوشو گرفت که 2 خط کدنویسی میخواد
        خب حالا برای این پلن دفاع هم که شما چیزی مثل نوشتن یه تیکه خط کد و یا حتی پلن های سیسکویی مثل ای پی سورس گارد و... که بهتر میشه نتیجه گرفت رو مطرح نکردید اما راهی که اصطلاحا لقمه رو دور سر میچرخونه رو باز کردید

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

      برای ارسال نظر ابتدا به سایت وارد شوید