قبل از مطالعه مبحث بهتر است به ساختار کلی پروتکل IPSec که در برخی تونل های VPN استفاده می شود نگاهی بندازیم
قبل از مطالعه مبحث بهتر است به ساختار کلی پروتکل IPSec که در برخی تونل های VPN استفاده می شود نگاهی بندازیم
تشخیص ترافیک های رمز شده در جریان بسته ها
همان طور که میدانیم پروتکل های متعددی برای رمزگذاری بسته ها در جریان شبکه استفاده می شوند مانند IPsec یا SSL . این پروتکل ها در قالب RFC های مختلف ، استاندارد شده اند . در این پست قصد داریم تا این ترافیک ها را بر اساس استاندارهای تعریف شده در RFC ، در جریان شبکه شناسایی کنیم . شاید سوال کنید که این شناسایی کجا به کار می آید ؟ این شناسایی میتواند در نوشتن ابزارهایی که مسئول دریافت جریان داده ها و تحلیل آن هستند ( مثلا IDPS ها ) بسیار کارا باشد . همچنین ابزارهایی مانند Wireshark دقیقا بر اساس همین نوع شناسایی نوشته شده اند . ما در این پست تنها پروتکل های امنیتی را بررسی میکنیم حال آنکه ابزاری مانند Wireshark ، تمامی پروتکل ها را به همین شکل بررسی میکند و به در نهایت به صورت گرافیکی نمایش میدهند. در این پست قصد بررسی مروری ترافیک های IPsec ، SSL و SSH را به صورت کاملا خلاصه داریم
DPI به تکنولوژی گفته می شود که در آن بسته های شبکه یا جریانی از آنها به دقت بررسی می شوند و محتوای آنها استخراج می شود . سپس از این محتوا در جهت مقاصد گوناگون استفاده میشود.DPI معمولا در یکی از عناصر شبکه مانند روتر ، سوئیچ و ... انجام می شود. هر چند که میتوان یک سخت افزار مستقل برای ان در نظر گرفت تا سرعت پردازش بیشتر شود. به عنوان مثال Advantech پلتفرمی با نام NCP-7560 را فراهم کرده است که عملیات DPI را در یک سخت افزار مستقل انجام میدهد و برای انجام عملیات DPI نیز از موتور Qosmos استفاده میکند که در ادامه روش کار این موتور تشریح می شود. از رایج ترین موارد استفاده از محتوای استخراج شده از DPI میتوان به موارد زیر اشاره کرد.
اصولا بایپس کردن سندباکس به این معنی هست که خارج از محدوده تعریف شده قادر به انجام عملیات و یا اجرای دستور نباشیم . زمانی که صحبت از بایپس سندباکس های پایتون میکنیم به این معناست که تعدادی از توابع و روال ها و دستورات غیرفعال شده اند و استفاده از آنها عملا غیرقابل استفاده می شود اما اگر موفق به اجرای کامندها به نحو دیگری شویم آنگاه سندباکس تعریف شده را بایپس کرده ایم. یک نمونه ساده از سندباکس های مبتنی بر پایتون به این صورت است که ورودی ها را برای توابع و دستورات خطرناک مانند eval چک کنیم و در صورت وجود آنها را نادیده بگیریم . این روش توسط encode کردن دستورات قابل bypass است. برای کسب اطلاعات بیشتر به این لینک مراجعه کنید. اصولا در تمام سیستم هایی که به دنبال رشته های خاص برای بلک لیست میگردند این مشکل وجود دارد. به عنوان مثال در IDS ها نیز زمانی که به دنبال رشته ای خاصی میگردند اگر به صورت Encode شده باشد آنگاه قابل شناسایی نخواهد بود که البته این مشکل با وجود decoder های تعبیه شده در IDS ها برطرف شده است.( در Snort این عمل به عهده preprocessor ها است )
با توجه به توضیحات بالا نیاز به راه حل بهتری داریم.2 تابع مهم که در فهم بهتر اشیای پایتون به ما کمک میکنند توابع dir() و type() در پایتون هستند. حال بیاید آنها را اجرا و نتیجه را ببینیم.
در این پست ، تولید پکت با مقادیر تصادفی در Scapy را بررسی می کنیم. این مقادیر تصادفی در نهایت میتواند منجر به ایجاد یک fuzzer خیلی ساده شوند. اصولا fuzzer در ساده ترین حالت خود ، تنها اقدام به ارسال مقادیر تصادفی میکند اما یک fuzzer خوب باید امکاناتی برای اتصال به debugger ها داشته باشد تا بعدا بتوان داده ارسالی که منجر به کرش یا خرابی شده است را شناسایی کرد .در Scapy چندین تابع برای تولید مقادیر تصادفی در رنج های مختلف وجود دارند که مهمترین این توابع عبارتند از :
RandNum()
RandShort()
RandInt()
RandLong()
RandString()
RandIP()
RandMAC()
در این چلنج هدف این بود تا اطلاعات مخفی داخل فایل بیرون کشیده شود .این چلنج در دسته چلنه های stegano و forensics قرار میگرفت و 100 امتیاز داشت . توی این چلنج یک فایل قرار داده شده بود که بعد از Extract کردن با تصویر زیر مواجه می شدید.
طبق مستندات و آمار های شرکت سیسکو ، بیشترین آسیب پذیری های موجود در IOS های سیسکو مربوط به عدم مدیریت درست بر روی حافظه و تخریب حافظه (memory corruption) می باشد. به عنوان مثال حملاتی که منجر به پر شدن buffer می شوند و به اصطلاح buffer overflow پیش می آید و این امر موجب تخریب حافظه و ممکن است منجر به reload شدن دستگاه می شود. علت اصلی reload شدن دستگاه ها در IOS های سیسکو به دلیل ساختار سیستم عامل آن می باشد. ساختار IOS سیسکو به صورت یکپارچه (monolithic) طراحی شده است و مشکل در یک قسمت منجر به crash کردن کل دستگاه می شود ولی در سیستم عامل های ماژولار چنین مشکلی وجود ندارد و مشکل در یک قسمت تنها منجر به عدم سرویس دهی همان ماژول خواهد شد . در تصویر زیر ، ساختار کلی سیستم عامل های روتر های مختلف را مشاهده میکنید.