Intrusion detection system evasion techniques

**تکنیک‌های دور زدن سیستم تشخیص نفوذ**
**تکنیک‌های دور زدن سیستم تشخیص نفوذ** (IDS) تغییراتی هستند که به حملات اعمال می‌شوند تا از تشخیص توسط سیستم تشخیص نفوذ جلوگیری کنند. تقریباً تمام تکنیک‌های منتشر شده به حملات شبکه‌ای مربوط می‌شوند. مقاله سال ۱۹۹۸ با عنوان "درج، دور زدن و محرومیت از سرویس: فرار از تشخیص نفوذ شبکه" موضوع دور زدن IDS را رواج داد و هم تکنیک‌های دور زدن و هم مناطقی که تفسیر صحیح بستگی به سیستم کامپیوتری هدف داشت را بررسی کرد. برنامه‌های 'fragroute' و 'fragrouter' تکنیک‌های دور زدن مطرح شده در مقاله را پیاده‌سازی می‌کنند. بسیاری از اسکنرهای آسیب‌پذیری وب مانند 'Nikto'، 'whisker' و 'Sandcat' نیز تکنیک‌های دور زدن IDS را شامل می‌شوند.

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

## '''پنهان‌سازی'''
یک سیستم تشخیص نفوذ (IDS) را می‌توان با پنهان‌سازی یا کدگذاری محموله حمله به گونه‌ای دور زد که سیستم هدف آن را تفسیر کند اما IDS قادر به تشخیص آن نباشد. به این ترتیب، مهاجم می‌تواند میزبان هدف را مورد سوءاستفاده قرار دهد بدون اینکه IDS هشدار دهد.

### کدگذاری
پروتکل‌های لایه کاربردی مانند HTTP امکان کدگذاری‌های متعددی از داده‌ها را فراهم می‌کنند که به عنوان مقدار یکسان تفسیر می‌شوند. برای مثال، رشته "cgi-bin" در یک URL می‌تواند به صورت "%63%67%69%2d%62%69%6e" (یعنی به صورت هگزادسیمال) کدگذاری شود. یک سرور وب این موارد را به عنوان رشته یکسان در نظر گرفته و بر همین اساس عمل می‌کند. یک IDS باید از تمام کدگذاری‌های ممکن که میزبان‌های هدف می‌پذیرند آگاه باشد تا بتواند ترافیک شبکه را با امضاهای مخرب شناخته شده مطابقت دهد.

حملات روی پروتکل‌های رمزنگاری شده مانند HTTPS توسط IDS قابل خواندن نیستند مگر اینکه IDS یک کپی از کلید خصوصی مورد استفاده سرور برای رمزنگاری ارتباط را داشته باشد.

### چندشکلی
سیستم‌های تشخیص نفوذ مبتنی بر امضا اغلب به دنبال الگوهای حمله رایج هستند تا ترافیک مخرب را با امضاها مطابقت دهند. برای تشخیص حملات ، یک IDS ممکن است به دنبال شواهدی از  باشد که برای تضعیف حفاظت از  استفاده می‌شوند.

مهاجمان می‌توانند از  برای ایجاد الگوهای حمله منحصر به فرد استفاده کنند. این تکنیک معمولاً شامل کدگذاری محموله به روشی خاص (مثلاً XOR کردن هر بایت با 0x95) و سپس قرار دادن یک رمزگشا در جلوی محموله قبل از ارسال آن است. هنگامی که هدف کد را اجرا می‌کند، رمزگشا اجرا شده و محموله را به شکل اصلی خود بازنویسی می‌کند که سپس توسط هدف اجرا می‌شود.
حملات چندشکلی دارای یک امضای قابل تشخیص واحد نیستند، بنابراین تشخیص آنها برای IDSهای مبتنی بر امضا و حتی برخی IDSهای مبتنی بر ناهنجاری بسیار دشوار است.  ("چاره‌ای نیست") یک رمزگذار چندشکلی محبوب در چارچوب  است که برای تبدیل  مخرب به شِل‌کد چندشکلی که تشخیص آن دشوار است، از فیدبک افزودنی XOR استفاده می‌کند.

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

### [https://en.m.wikipedia.org/w/index.php?title=Intrusion_detection_system_evasion_techniques&wprov=rarw1 تکه‌تکه‌سازی و بسته‌های کوچک]
یک تکنیک پایه، تقسیم محموله حمله به چندین بسته کوچک است، به طوری که IDS مجبور به مونتاژ جریان بسته برای تشخیص حمله باشد. یک روش ساده برای تقسیم بسته‌ها،  آنهاست، اما یک  همچنین می‌تواند به سادگی بسته‌هایی با محموله‌های کوچک بسازد. ابزار فرار 'whisker' ساخت بسته‌ها با محموله‌های کوچک را 'اتصال جلسه' می‌نامد.

به خودی خود، بسته‌های کوچک نمی‌توانند از هیچ IDS که جریان بسته را مونتاژ می‌کند فرار کنند. با این حال، بسته‌های کوچک را می‌توان بیشتر تغییر داد تا مونتاژ و تشخیص پیچیده شود. یک تکنیک فرار، مکث بین ارسال بخش‌های حمله است، به این امید که IDS قبل از میزبان هدف زمانش به پایان برسد. تکنیک دوم فرار، ارسال بسته‌ها به ترتیب نادرست است.

### قطعات همپوشانی و بخش‌های TCP
تکنیک دیگر فرار، ساخت یک سری بسته با  پیکربندی شده برای همپوشانی است. به عنوان مثال، بسته اول شامل 80 بایت محموله خواهد بود، اما شماره توالی بسته دوم 76 بایت پس از شروع بسته اول خواهد بود. هنگامی که میزبان هدف جریان TCP را مونتاژ می‌کند، باید تصمیم بگیرد که چگونه با 4 بایت همپوشانی برخورد کند. برخی سیستم‌های عامل داده قدیمی‌تر و برخی داده جدیدتر را می‌گیرند. اگر IDS جریان TCP را به همان روش میزبان هدف مونتاژ نکند، می‌توان آن را فریب داد تا بخشی از محموله حمله را از دست بدهد یا داده بی‌خطر وارد شده در محموله مخرب را ببیند، که امضای حمله را می‌شکند. این تکنیک را می‌توان به روشی مشابه با تکه‌تکه‌سازی IP نیز استفاده کرد.

### ابهامات
برخی تکنیک‌های فرار از IDS شامل دستکاری عمدی پروتکل‌های  یا IP به گونه‌ای است که میزبان هدف به شکلی متفاوت از IDS با آن برخورد کند. به عنوان مثال، اشاره‌گر فوری TCP در سیستم‌های عامل مختلف به صورت متفاوتی مدیریت می‌شود. اگر IDS این نقض پروتکل‌ها را به روشی سازگار با میزبان‌های هدف خود مدیریت نکند، در برابر تکنیک‌های درج و فرار مشابه موارد ذکر شده آسیب‌پذیر است.

### حملات پهنای باند کم
حملاتی که در یک دوره زمانی طولانی یا تعداد زیادی از آدرس‌های IP منبع پخش می‌شوند، مانند اسکن آهسته nmap، می‌توانند از میان ترافیک عادی به سختی قابل تشخیص باشند. یک  آنلاین که هر روز یک رمز عبور برای هر کاربر آزمایش می‌کند، تقریباً شبیه به یک کاربر عادی که رمز عبور خود را اشتباه تایپ کرده است به نظر می‌رسد.

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

### خستگی [https://en.m.wikipedia.org/w/index.php?title=Intrusion_detection_system_evasion_techniques&wprov=rarw1|خستگی CPU]
بسته‌های گرفته شده توسط یک IDS در یک بافر هسته ذخیره می‌شوند تا CPU آماده پردازش آنها شود. اگر CPU تحت بار زیاد باشد، نمی‌تواند بسته‌ها را به اندازه کافی سریع پردازش کند و این بافر پر می‌شود. سپس بسته‌های جدید (و احتمالاً مخرب) به دلیل پر بودن بافر حذف می‌شوند.

یک مهاجم می‌تواند منابع CPU یک IDS را به روش‌های مختلف تخلیه کند. به عنوان مثال، سیستم‌های تشخیص نفوذ مبتنی بر امضا از الگوریتم‌های تطبیق الگو برای مطابقت بسته‌های ورودی با امضاهای حملات شناخته شده استفاده می‌کنند. طبیعتاً، تطبیق برخی امضاها از نظر محاسباتی پرهزینه‌تر از سایرین است. یک مهاجم می‌تواند با استفاده از این واقعیت، ترافیک شبکه‌ای را به گونه‌ای طراحی کند که IDS مجبور شود حداکثر زمان CPU ممکن را برای اجرای الگوریتم تطبیق الگوی خود روی ترافیک صرف کند. این  می‌تواند IDS را با مقدار نسبتاً کمی از پهنای باند تحت فشار قرار دهد.

یک IDS که ترافیک رمزگذاری شده را نیز نظارت می‌کند، می‌تواند بخش بزرگی از منابع CPU خود را صرف رمزگشایی داده‌های ورودی کند.

### خستگی [https://en.m.wikipedia.org/w/index.php?title=Intrusion_detection_system_evasion_techniques&wprov=rarw1|خستگی حافظه]
برای مطابقت با برخی امضاها، یک IDS ملزم به حفظ حالت مربوط به اتصالاتی است که تحت نظر دارد. به عنوان مثال، یک IDS باید "بلوک‌های کنترل TCP" (TCBها)، تکه‌هایی از حافظه که اطلاعاتی مانند شماره‌های توالی، اندازه پنجره‌ها و حالت‌های اتصال (ESTABLISHED, RELATED, CLOSED و غیره) را برای هر اتصال TCP تحت نظر ردیابی می‌کنند، حفظ کند. هنگامی که تمام  (RAM) IDS مصرف شود، مجبور به استفاده از حافظه مجازی روی هارد دیسک می‌شود که بسیار کندتر از RAM است و منجر به مشکلات عملکردی و حذف بسته‌ها مشابه اثرات خستگی CPU می‌شود.

اگر IDS به درستی و به طور کارآمد TCBها را جمع‌آوری نکند، یک مهاجم می‌تواند با شروع تعداد زیادی اتصال TCP به سرعت، حافظه IDS را تخلیه کند. حملات مشابهی را می‌توان با تکه‌تکه‌سازی تعداد زیادی بسته به تعداد بیشتری بسته کوچک، یا ارسال تعداد زیادی بخش TCP خارج از ترتیب انجام داد.

### خستگی اپراتور
هشدارهای تولید شده توسط یک IDS باید مورد توجه قرار گیرند تا ارزشی داشته باشند. یک مهاجم می‌تواند «در دسترس بودن» یک IDS را با بمباران اپراتور انسانی با تعداد نامتعارفی از هشدارها از طریق ارسال مقدار زیادی ترافیک «مخرب» که برای تولید هشدار روی IDS طراحی شده‌اند، کاهش دهد. مهاجم سپس می‌تواند حمله واقعی را با استفاده از سروصداهای هشدار به عنوان پوشش انجام دهد. ابزارهای 'stick' و 'snot' برای این منظور طراحی شده‌اند. آنها تعداد زیادی هشدار IDS با ارسال امضای حمله در شبکه تولید می‌کنند، اما در IDSهایی که زمینه پروتکل برنامه را حفظ می‌کنند، هشدار ایجاد نمی‌کنند. [//en.m.wikipedia.org/wiki/Intrusion_detection_system|تکنیک‌های دور زدن سیستم تشخیص نفوذ][//en.m.wikipedia.org/wiki/Hypertext_Transfer_Protocol|HTTP][//en.m.wikipedia.org/wiki/Uniform_Resource_Locator|URL]
رده:سوءاستفاده امنیتی از رایانه

## منابع