شبیه سازی حمله سرریز بافر (Buffer Overflow Attack) با نرم افزار OMNET

  • دوشنبه ۲۴ اردیبهشت ۱۳۹۷
  • بازدید 153 نفر
  • 1 امتیاز2 امتیاز3 امتیاز4 امتیاز5 امتیاز (39 امتیاز از 8 رای)
    Loading...

شبیه سازی حمله سرریز بافر (Buffer Overflow Attack) با نرم افزار OMNET

شبیه سازی حمله سرریز بافر با OMNET

در این بخش پروژه شبیه سازی حمله سرریز بافر (Buffer Overflow Attack – BOF) را با نرم افزار OMNET آماده کردیم که در ادامه به تشریح صورت مسئله پرداخته و فیلم و تصاویری از خروجی این پروژه امنیت شبکه قرار داده شده است.

تشریح صورت مسئله

هنگامی که یک روتر بسته ای را دریافت می کند نیاز است تا برخی از مشخصات مربوط به هر بسته را در خود ذخیره کند تا به وسیله ی آن بتواند گزارشی از تمام بسته های عبوری را ارائه کند. به وسیله این گزارش ها که توسط یک روتر در هر ISP دریافت می شود می توان این اطلاعات را از تمام سرویس دهنده ها دریافت و آنها را تجزیه و تحلیل کرد. به وسیله این اطلاعات می توان مسیرهای عبوری بسته های مختلف را ترسیم کرد و در صورت نیاز رهگیری های لازم مربوط به حمله های مختلف را انجام داد.

مشخصه هایی که به وسیله ی آنها می توان بسته های مربوط به یک جریان را از یکدیگر جدا کرده و آنها را یکتا سازد، آدرس IP و شماره پورت های مربوط به مبدا و مقصد هر بسته می با شد. با توجه به تکراری بودن این اطلاعات در هر جریان برای جلوگیری از سربار اضافی برای تکرار آن، فیلدی با نام Count در نظر گرفتیم تا تعداد بسته های مربوط به یک جریان را در آن بنویسیم، با دریافت هر بسته با مشخصه های یکسان یکی به تعداد اضافه می کنیم. در ارتباطات TCP با توجه به این که ممکن است بسته ها به ترتیب دریافت نشوند می توان از sequence number آنها استفاده کرده و جریان را از اطلاعات ذخیره شده بسازیم. به همین منظور برای ارتباطات TCP مشخصه Seq Number که در بسته وجود دارد را نیز ذخیره می کنیم. با توجه به توضیحات صورت گرفته شکل زیر جدولی از اطلاعات لازم برای گزارش گیری را نشان می دهد. تعداد بیت های لازم برای ذخیره سازی هر ردیف از اطلاعات گزارش شده از بسته ها ۱۶۰ بیت می باشد.

شبیه سازی حمله سرریز بافر (Buffer Overflow Attack) با نرم افزار OMNET

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

  1. اگر بسته های دریافتی که در یک پنجره ی زمانی دریافت می شود دارای آدرس IP و شماره پورت مبدا و مقصد یکسان باشد می توان این نتیجه را گرفت که این بسته ها مربوط به یک جریان هستند بنابراین در یک ردیف به صورتی ذخیره می شود که از تکرار این مشخصه ها پرهیز شود و تنها Seq Number آنها تغییر خواهد کرد. با انجام این کار کمی از دقت گزارش گیری کاسته می شود که شدت آن به اندازه ی پنجره ی زمانی وابسته خواهد بود که هر چه این بازه کوچکتر باشد سربار بیشتر ولی دقت کمتر خواهد شد.
  2. ممکن است بسته هایی که مربوط به یک جریان می باشد در یک بازه ی زمانی دریافت نشوند و یا شمارهی توالی مربوط به آنها به ترتیب نباشد، برای کاهش تعداد دفعات ارسال می توان این بسته ها را نیز با بسته های مشابه خود در بازه های زمانی دیگر ارسال کرد.

تنها در بسته هایی Seq Number کاربرد دارند که دارای پروتکل لایه انتقال پروتکل TCP می باشند، برای دیگر بسته های دریافتی که دارای پروتکل UDP یا پروتکل ICMP و … می باشند بخشی با نام Seq Number وجود ندارد و به ثبت ترتیب ورود آنها اکتفا می کنیم.

شبیه سازی حمله سرریز بافر (Buffer Overflow Attack) با نرم افزار OMNET

در شکل بالا مسیریاب های مرزی وظیفه ی گزارش گیری را بر عهده دارند. جداول ذخیره شده در این مسیریاب ها به صورت دوره ای به لاگ سرور ارسال می شود. با توجه به اطلاعاتی که لاگ سرور از این مسیریاب ها می گیرد می تواند مسیر بسته ها را تشکیل بدهد. اطلاعاتی که لاگ سرور درون خود ذخیره می کند مانند اطلاعات ذخیره شده در مسیریاب ها می باشد که شناسه ی مربوط به مسیریاب ارسال کننده ی آن اطلاعات (router ID or as number) نیز به آن اضافه می شود. زمانی که در خواستی برای رهگیری به لاگ سرور ارسال می شود، باید مشخصات کلیدی آن نیز ارسال بشود. این مشخصات آدرس IP و شماره پورت مبدا و مقصد بسته هایی است که حمله توسط آن صورت گرفته است. لاگ سرور با جستجو توسط این کلید تمام مسیریاب هایی که این مشخصات را ارسال کرده اند را پیدا می کند و با توجه به شماره توالی که وجود دارد می تواند گراف حمله را تشکیل داده و سرویس دهنده ی اینترنتی که حمله از آن صورت است را پیدا می کند.

شبیه سازی حمله سرریز بافر (Buffer Overflow Attack) با نرم افزار OMNET

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

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

تصاویری از خروجی پروژه شبیه سازی حمله سرریز بافر

شبیه سازی حمله سرریز بافر (Buffer Overflow Attack) با نرم افزار OMNET

شبیه سازی حمله سرریز بافر (Buffer Overflow Attack) با نرم افزار OMNET

شبیه سازی حمله سرریز بافر (Buffer Overflow Attack) با نرم افزار OMNET


مشاهده ویدئو در این باره

خوشحال خواهیم شد اگر نظر خودتون رو درباره این مطلب ثبت کنید

خطا!دکمه ریفریش را بزنید