برای مشاهده مفیدترین ارسال در این موضوع اینجا کلیک کنید

نمایش نتایج: از شماره 1 تا 5 از مجموع 5
  1. #1
    کاربر ویژه
    تاریخ عضویت
    1970 January
    محل سکونت
    home
    ارسال ها
    21
    تشکر
    16
    تشکر شده 23 بار در 13 پست


    1 امتياز مثبت از 1 راي
    آيا اين پست براي شما سودمند بود؟ بله | خیر

    شرح حمله DOS هوشمندانه HTTP Slow Post

    نام این تکنیک حمله در اصطلاح ، تکنیک HTTP Slow Post میباشد ، با استفاده از این روش حمله، عملاً درخواست هایی خاص برای دریافت (یا ارسال) اطلاعات به سمت سرور هدایت می شود ، قبل از شروع با هم نگاهی به فرایند های انجام ارسال و دریافت درخواست در بیاندازیم :

    • ارتباطات تحت وب، با استفاده از پروتکل های مختلفی امکان پذیر است.
    • پر استفاده ترین پروتکل، پروتکل HTTP می باشد
    • در ارتباطات HTTP، اطلاعاتی از سمت سرور به مشتری و بالعکس در قالب یک سری پیام ، ارسال می شود.
    • پیام های HTTP به دو دسته تقسیم می شود:


    • HTTP Request (از طرف مشتری به سرویس دهنده وب ارسال می شود)
    • HTTP Response(از طرف سرویس دهنده وب به مشتری ارسال می شود)

    • پیام های request (درخواست) و Response (پاسخ)، در قالب استاندارد و خاصّی ارسال می شود (RFC 822).
    • در این قالب، قسمتی مخصوص قرار گیری یک سری اطلاعات کنترلی قرار دارد.
    • این اطلاعات کنترلی، رفتار وب سرور و مشتری را مشخص می کند.
    • به این اطلاعات کنترلی، Header گفته می شود.
    • در هر دو نوع پیام های درخواست و پاسخ، قسمتی مخصوص Header (سرآمد) قرار دارد.
    • شکل کلی یک بسته HTTP به صورت زیر است :

    در شکل زیر یک درخواست ارسال شده توسط کلاینت به سرور HTTP را همراه با سرآیند های HTTP مشاهده مینمایید :
    • با توجه به اطلاعات قرار داده شده در سرآیند ها، سرویس دهنده و مشتری در مورد نحوۀ ادامه ارتباط با یکدیگر تصمیم خواهند گرفت.
    • یکی از فیلد های سرآیند که در هر دو نوع بسته های پیام HTTP در حالت موجود است، Content-Length می باشد.
    • این فیلد، مشخص کنندۀ طول اطلاعاتی است که در بدنۀ اصلی پیام قرار می گیرد. در حالت ارسال اطلاعات به صورت POST این اطلاعات از طرف کلاینت مشخص شده ، و در همه حالات برگشت اطلاعات از سمت سرور این مقدار نشان دهنده مقدار اطلاعات برگشتی است .
    • در صورتی که طول این فیلد، بیشتر از طولی باشد که به عنوان حد اکثر طول پیام در نظر گرفته شده، گیرندۀ پیام، منتظر می ماند تا ادامۀ پیام در بسته های بعدی دریافت شود.
    • در طول زمان انتظار، نشستی که برقرار شده، به صورت باز باقی خواهد ماند.


    نکتۀ قابل توجه در این نوع حمله، استفاده از ویژگی خودِ پروتکل http است. در این حمله، سرآیند بسته های http که برای سرور ارسال می شود، به گونه ای تنظیم می شود که سرور همواره در حالت انتظار برای دریافت (ارسال) ادامه اطلاعات باقی خواهد ماند. بدین ترتیب، میزان بار تحمیل شده به سرور، به مرور افزایش یافته و علیرغم اینکه ترافیک خاصّی در شبکه مبادله نمی شود (بر عکس حملات DDOS یا همان حملات تکذیب سرویس توزیع شده ، که پهنای باند قربانی را مشغول کرده و ترافیک را در اصطلاح میخورند )، سیستم سرور به علّت افزایش بیش از حدّ ارتباطات کم سرعت، قادر به پاسخگویی به مشتریان واقعی نخواهد بود. (IIS به صورت پیش فرض یک مقدار مشخص از تعداد کانکشن ها را میتواند در لحظه ساپورت کند ، چون برای هر کدام از این Thread ها یا همان درخواست های موازی فرستاده شده ، یک مقدار CPU و RAM اختصاص میدهد . در صورت پر شدن ظرفیت های سیستم ، دیگر قادر به پاسخ گویی به شما نیست ) .
    از دیدگاه فنی، این حمله با تنظیم فیلدِ Content-length در سرآیند بسته های HTTP Request انجام خواهد شد. بدین ترتیب، با تنظیم این فیلد به یک مقدار بسیار بزرگ (مثلاً 1000000)، به سرور اعلام می کنیم که اطلاعاتی که قرار است به سرور ارسال شود، حجم بالایی دارند. از طرفی پس از برقراری ارتباط و ارسال کامل بسته های HTTP Request اطلاعاتی که بنا بود به سرور ارسال شود، در قالب چندین هزار بستۀ کوچک و با فاصلۀ زمانی نسبتاً زیاد (هر 110 ثانیه 1 بایت ) از یکدیگر به سمت سرور ارسال می شود. لازم به ذکر است که در این حمله، از شیوۀ POST برای برقراری ارتباط با سرور استفاده می شود. بدین ترتیب هر ارتباط کاملاً پایدار بوده و دقیقاً مشابه زمانی است که یک کاربر قصد مرور اطلاعات سرور را از طریق خطوط کم سرعت Dial-Up داشته باشد.

    این حمله در کنفرانس BlackHat سال 2011 به صورت کلی معرفی شد و نکتۀ حائز اهمیت در مورد آن، این است که با توجه به اینکه این حمله، عملاً با سوء استفاده از خودِ پروتکلِ HTTP انجام می شود.
    مراحل انجام این حمله :
    ابتدا می بایست آدرس یک صفحه از سایت مورد نظر که حاوی فرم های قابل استفاده در متد POST می باشد را شناسایی نمود البته این کار برای محکم کاری انجام می شود )
    سپس می توان با تنظیم پارامتر های دلخواه و ساخت بسته های مورد نظر، حمله را شروع نمود. در این حمله از ابزار ارائه شده توسط OWASP استفاده شده است :
    حمله را با توجه به Help برنامه به صورت یک bash فایل در آورده و اتوماتیک تر میکنیم :
    کد PHP:
    :while
    @echo 
    off
    http_dos_cli
    .exe --host www.victim.com --port 80 --slow-post --connections 1000 --rate 20 --timeout 100 --path /register.aspx --post-content-length 1000000 --random-post-content-length --random-payload --post-field ctl00_RadFormDecorator1_ClientState
    @goto while
    :
    wend 
    بدین ترتیب با شروع حمله و رسیدن تعداد ارتباطات به میزان تنظیم شده، سیستم سرور دیگر قادر به پاسخگویی به درخواست های جدید نخواهد بود. در ادامه، تصویری از میزان بار سرور قبل و بعد از حمله نمایش داده شده:




    موضوعات مشابه:
      Stephen W. Hawking - "The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge."

    • #2
      کاربر عادی
      تاریخ عضویت
      2011 May
      محل سکونت
      تهران
      ارسال ها
      316
      تشکر
      37
      تشکر شده 688 بار در 303 پست
      نوشته های وبلاگ
      39


      1 امتياز مثبت از 1 راي
      آيا اين پست براي شما سودمند بود؟ بله | خیر
      حمله جالبیه، همانطور که توضیح داده شده در وب سرور iis این مورد تست شده
      در وب سرورهای apache و کلاً صفحات php میشه با 2 شیوه جلوی این حملات رو گرفت:
      1- استفاده آسان از htaccess و handle کردن درخواست post و get که خارج از سایت ارسال میشن:
      <limit get post>
      order deny,allow
      deny from all
      </limit>
      کد بالا میگه هر درخواست که خارج از سایت داره ارسال میشه رو بهش اجازه نده ارسال شه(هر دو متد post و get)
      نکته: البته میشه کد بالا رو گسترش داد و به بعضی از آی پی ها اجازه ارسال مقادیر رو داد

      2- در php.ini(تنظیمات php) میتونین تایم اجرا شدن هر صفحه رو تنظیم کنید(برای مثال 5 ثانیه) max_execution_time

      که بعد از این تایم مجدداً منابع cpu و ram آزاد میشه

      نکته حائز اهمیت این نوشته وجود متد استفاده شده است:
      از طرفی پس از برقراری ارتباط و ارسال کامل بسته های HTTP Request اطلاعاتی که بنا بود به سرور ارسال شود، در قالب چندین هزار بستۀ کوچک و با فاصلۀ زمانی نسبتاً زیاد (هر 110 ثانیه 1 بایت ) از یکدیگر به سمت سرور ارسال می شود. لازم به ذکر است که در این حمله، از شیوۀ POST برای برقراری ارتباط با سرور استفاده می شود. بدین ترتیب هر ارتباط کاملاً پایدار بوده و دقیقاً مشابه زمانی است که یک کاربر قصد مرور اطلاعات سرور را از طریق خطوط کم سرعت Dial-Up داشته باشد.

      به این علت تایم ها رو زیاد گرفتن که بتونن فایروال های نرم افزاری و سخت افزاری رو bypass کنند
      روی وب سرور آپاچی همانطور که توضیح دادم این مشکل نبوده و فقط رو iis بوده(درسته؟!) ، روی iis هم فکر کنم حل شده باشه، روی iis چند این اتفاق افتاده؟

      http://payline.ir

      http://flynet.ir

      the poor people are often the most generous

    • #3
      کاربر ویژه
      تاریخ عضویت
      1970 January
      محل سکونت
      home
      ارسال ها
      21
      تشکر
      16
      تشکر شده 23 بار در 13 پست


      1 امتياز مثبت از 1 راي
      آيا اين پست براي شما سودمند بود؟ بله | خیر
      در مورد کدی که نوشتی همونطور که خودتم توضیح دادی کدت باید گسترش پیدا کنه اما شما نمیدونی این حمله از کدوم آی پی قراره انجام بشه پس عملا اگه بخوای این کارو کنی باید به 1سری آپی خاص اجازه post و get بدی و بقیه رو deny کنی که این یعنی سایتت فقط واسه 1سری آدمای خاص و محدود باز میشه که اصلا درست نیست و سیستم باید بتونه واسه همه باز بشه اما اون حمله را رد کنه حالا به هر طریقی .

      اما در مورد قسمت دوم جوابت باز هم همون مشکل بوجود خواهد اومد چون هر بار که سیستمت بعد 5ثانیه cpu و ram را آزاد میکنه دوباره درخواست به سیستمت ارسال میشه و این درخواست ها همینطوری پشت سرهم به سیستم ارسال میشه و این عملا یعنی همون dos که باعث مشغول شدن cpu و ramت در تمام تایم میشه اما با این تفاوت که اینبار خودت باعث این حمله شدی که اصطلاحا بهش میگن self dos.

      در مورد بالا گرفتن تایم ها هم ربطی به bypass فایروال ها نداره و این واسه اینه که سیستم مشغول و منتظر جواب و ادامه کار بمونه ، اصلا bypass فایروال ها به این صورت انجام نمیشه خصوصا فایروال های الان.

      درمورد سوال آخرت هم اصل این حمله روی IIS بوده و تست شده اما از اجرا شدن روی Apache اطلاعات آنچنانی ندارم دلیلشم احتمالا بخاطر اپن سورس بودن Apache هست که بعد چند روز براحتی این باگ ها قابل پچ شدن در آن خواهد بود اما فک کنم روی Apache هم قابل اعمال باشه چون این حمله با استفاده از خود http و مشکلی که توش پیدا شده هست و ربط چندانی به نوع وب سرور نداره (البته فک می کنما بعدا نگی نگفتی ) و تا اونجا که من می دونم روی IIS 7.5 هم جواب داده که احتمالا بعد از 1 مدت باید مایکروسافت مثل همیشه توی 1 سرویس پک یا فایل update اون رو handle کرده باشه وگرنه تا الان این باگ private می موند. مرسی محسن جان که خوندی

      Stephen W. Hawking - "The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge."

    • #4
      کاربر عادی
      تاریخ عضویت
      2011 May
      محل سکونت
      تهران
      ارسال ها
      316
      تشکر
      37
      تشکر شده 688 بار در 303 پست
      نوشته های وبلاگ
      39


      1 امتياز مثبت از 1 راي
      آيا اين پست براي شما سودمند بود؟ بله | خیر
      نقل قول نوشته اصلی توسط hellboy نمایش پست ها
      در مورد کدی که نوشتی همونطور که خودتم توضیح دادی کدت باید گسترش پیدا کنه اما شما نمیدونی این حمله از کدوم آی پی قراره انجام بشه پس عملا اگه بخوای این کارو کنی باید به 1سری آپی خاص اجازه post و get بدی و بقیه رو deny کنی که این یعنی سایتت فقط واسه 1سری آدمای خاص و محدود باز میشه که اصلا درست نیست و سیستم باید بتونه واسه همه باز بشه اما اون حمله را رد کنه حالا به هر طریقی .

      اما در مورد قسمت دوم جوابت باز هم همون مشکل بوجود خواهد اومد چون هر بار که سیستمت بعد 5ثانیه cpu و ram را آزاد میکنه دوباره درخواست به سیستمت ارسال میشه و این درخواست ها همینطوری پشت سرهم به سیستم ارسال میشه و این عملا یعنی همون dos که باعث مشغول شدن cpu و ramت در تمام تایم میشه اما با این تفاوت که اینبار خودت باعث این حمله شدی که اصطلاحا بهش میگن self dos.

      در مورد بالا گرفتن تایم ها هم ربطی به bypass فایروال ها نداره و این واسه اینه که سیستم مشغول و منتظر جواب و ادامه کار بمونه ، اصلا bypass فایروال ها به این صورت انجام نمیشه خصوصا فایروال های الان.

      درمورد سوال آخرت هم اصل این حمله روی IIS بوده و تست شده اما از اجرا شدن روی Apache اطلاعات آنچنانی ندارم دلیلشم احتمالا بخاطر اپن سورس بودن Apache هست که بعد چند روز براحتی این باگ ها قابل پچ شدن در آن خواهد بود اما فک کنم روی Apache هم قابل اعمال باشه چون این حمله با استفاده از خود http و مشکلی که توش پیدا شده هست و ربط چندانی به نوع وب سرور نداره (البته فک می کنما بعدا نگی نگفتی ) و تا اونجا که من می دونم روی IIS 7.5 هم جواب داده که احتمالا بعد از 1 مدت باید مایکروسافت مثل همیشه توی 1 سرویس پک یا فایل update اون رو handle کرده باشه وگرنه تا الان این باگ private می موند. مرسی محسن جان که خوندی

      نمیدونم چقدر با htaccess آشنایی دارید
      در کدی که بنده قرار دادم(توضیح هم دادم) تمامی request های بصورت post و get خارج از سایت محدود میشه، یعنی هیچ سایتی نمیتونه به سایتی که این کد رو قرار داده مقادیری رو post یا get کنه و فقط این مقادیر از طریق خود سایت ارسال میشه(پس سایت برای همه باز میشه، اما نمیتونین با این شیوه به سایت حمله کنید)

      در مورد مبحث دوم، فایروال های نرم افزاری و مخصوصاً سخت افزاری اولین مولفشون درخواست بر اساس زمان هست، در پاراگراف آخر پست قبلی هم دلیل این بازه طولانی رو عرض کردم که چی بوده، اگر درخواست ها در مدت زمان کوتاه و به تعداد زیاد باشند بطور خودکار توسط فایروال بن میشن

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

      این هم در مورد آپاچی که با mod_security اوکی شده:
      (Updated) ModSecurity Advanced Topic of the Week: Mitigating Slow HTTP DoS Attacks - SpiderLabs Anterior

      http://payline.ir

      http://flynet.ir

      the poor people are often the most generous

    • #5
      کاربر ویژه
      تاریخ عضویت
      1970 January
      محل سکونت
      home
      ارسال ها
      21
      تشکر
      16
      تشکر شده 23 بار در 13 پست


      آيا اين پست براي شما سودمند بود؟ بله | خیر
      حتما مطالعه می کنم

      Stephen W. Hawking - "The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge."

     

     

    کاربران برچسب خورده در این موضوع

    علاقه مندی ها (Bookmarks)

    علاقه مندی ها (Bookmarks)

    مجوز های ارسال و ویرایش

    • شما نمیتوانید موضوع جدیدی ارسال کنید
    • شما امکان ارسال پاسخ را ندارید
    • شما نمیتوانید فایل پیوست کنید.
    • شما نمیتوانید پست های خود را ویرایش کنید
    •  


    Powered by vBulletin
    Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
    Content Relevant URLs by vBSEO 3.6.0
    Persian Language By Ustmb.ir
    این انجمن کاملا مستقل بوده و هیچ ارتباطی با دانشگاه علوم و فنون مازندران و مسئولان آن ندارد..این انجمن و تمامی محتوای تولید شده در آن توسط دانشجویان فعلی و فارغ التحصیل ادوار گذشته این دانشگاه برای استفاده دانشجویان جدید این دانشگاه و جامعه دانشگاهی کشور فراهم شده است.لطفا برای اطلاعات بیشتر در رابطه با ماهیت انجمن با مدیریت انجمن ارتباط برقرار کنید
    ساعت 11:52 AM بر حسب GMT +4 می باشد.