پرش به محتوا

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 ممکن است به دنبال شواهدی از [NOP] باشد که برای تضعیف حفاظت از [تصادفی فضای آدرس] استفاده می‌شوند.[۵]

مهاجمان می‌توانند از [چندشکلی] برای ایجاد الگوهای حمله منحصر به فرد استفاده کنند. این تکنیک معمولاً شامل کدگذاری محموله به روشی خاص (مثلاً XOR کردن هر بایت با 0x95) و سپس قرار دادن یک رمزگشا در جلوی محموله قبل از ارسال آن است. هنگامی که هدف کد را اجرا می‌کند، رمزگشا اجرا شده و محموله را به شکل اصلی خود بازنویسی می‌کند که سپس توسط هدف اجرا می‌شود.[۶][۷] حملات چندشکلی دارای یک امضای قابل تشخیص واحد نیستند، بنابراین تشخیص آنها برای IDSهای مبتنی بر امضا و حتی برخی IDSهای مبتنی بر ناهنجاری بسیار دشوار است.[۸][۹] [ga nai] ("چاره‌ای نیست") یک رمزگذار چندشکلی محبوب در چارچوب [[۱]] است که برای تبدیل [[۲]] مخرب به شِل‌کد چندشکلی که تشخیص آن دشوار است، از فیدبک افزودنی XOR استفاده می‌کند.[۱۰]

فرار

[ویرایش]

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

یک تکنیک پایه، تقسیم محموله حمله به چندین بسته کوچک است، به طوری که IDS مجبور به مونتاژ جریان بسته برای تشخیص حمله باشد. یک روش ساده برای تقسیم بسته‌ها، [[۳]] آنهاست، اما یک [[۴]] همچنین می‌تواند به سادگی بسته‌هایی با محموله‌های کوچک بسازد. ابزار فرار 'whisker' ساخت بسته‌ها با محموله‌های کوچک را 'اتصال جلسه' می‌نامد.

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

قطعات همپوشانی و بخش‌های TCP

[ویرایش]

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

ابهامات

[ویرایش]

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

حملات پهنای باند کم

[ویرایش]

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

محرومیت از سرویس

[ویرایش]

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

خستگی CPU

[ویرایش]

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

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

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

برای مطابقت با برخی امضاها، یک IDS ملزم به حفظ حالت مربوط به اتصالاتی است که تحت نظر دارد. به عنوان مثال، یک IDS باید "بلوک‌های کنترل TCP" (TCBها)، تکه‌هایی از حافظه که اطلاعاتی مانند شماره‌های توالی، اندازه پنجره‌ها و حالت‌های اتصال (ESTABLISHED, RELATED, CLOSED و غیره) را برای هر اتصال TCP تحت نظر ردیابی می‌کنند، حفظ کند. هنگامی که تمام [با دسترسی تصادفی] (RAM) IDS مصرف شود، مجبور به استفاده از حافظه مجازی روی هارد دیسک می‌شود که بسیار کندتر از RAM است و منجر به مشکلات عملکردی و حذف بسته‌ها مشابه اثرات خستگی CPU می‌شود.

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

خستگی اپراتور

[ویرایش]

هشدارهای تولید شده توسط یک IDS باید مورد توجه قرار گیرند تا ارزشی داشته باشند. یک مهاجم می‌تواند «در دسترس بودن» یک IDS را با بمباران اپراتور انسانی با تعداد نامتعارفی از هشدارها از طریق ارسال مقدار زیادی ترافیک «مخرب» که برای تولید هشدار روی IDS طراحی شده‌اند، کاهش دهد. مهاجم سپس می‌تواند حمله واقعی را با استفاده از سروصداهای هشدار به عنوان پوشش انجام دهد. ابزارهای 'stick' و 'snot' برای این منظور طراحی شده‌اند. آنها تعداد زیادی هشدار IDS با ارسال امضای حمله در شبکه تولید می‌کنند، اما در IDSهایی که زمینه پروتکل برنامه را حفظ می‌کنند، هشدار ایجاد نمی‌کنند. دور زدن سیستم تشخیص نفوذ[۶][۷]

منابع

[ویرایش]
  1. ۱٫۰ ۱٫۱ [1]Cheng, Tsung-Huan; Lin, Ying-Dar; Lai, Yuan-Cheng; Lin, Po-Ching (2012). "Evasion Techniques: Sneaking through Your Intrusion Detection/Prevention Systems". IEEE Communications Surveys & Tutorials. 14 (4): 1011–1020. CiteSeerX 10.1.1.299.5703. doi:10.1109/surv.2011.092311.00082. S2CID 1949199.
  2. [1]Cheng, Tsung-Huan; Lin, Ying-Dar; Lai, Yuan-Cheng; Lin, Po-Ching (2012). "Evasion Techniques: Sneaking through Your Intrusion Detection/Prevention Systems". IEEE Communications Surveys & Tutorials. 14 (4): 1011–1020. CiteSeerX 10.1.1.299.5703. doi:10.1109/surv.2011.092311.00082. S2CID 1949199.
  3. [2]Corona, Igino; Giacinto, Giorgio; Roli, Fabio (2013). "Adversarial attacks against intrusion detection systems: Taxonomy, solutions and open issues". Information Sciences. 239: 201–225. doi:10.1016/j.ins.2013.03.022.
  4. [3]Ptacek, Thomas H.; Newsham, Timothy N. (1998-01-01). "Insertion, evasion, and denial of service: Eluding network intrusion detection". CiteSeerX 10.1.1.119.399. {{cite journal}}: Empty citation (help): Cite journal requires |journal= (help)
  5. [4]Chaboya, D. J.; Raines, R. A.; Baldwin, R. O.; Mullins, B. E. (2006-11-01). "Network Intrusion Detection: Automated and Manual Methods Prone to Attack and Evasion". IEEE Security Privacy. 4 (6): 36–43. doi:10.1109/MSP.2006.159. ISSN 1540-7993. S2CID 11444752.
  6. [1]Cheng, Tsung-Huan; Lin, Ying-Dar; Lai, Yuan-Cheng; Lin, Po-Ching (2012). "Evasion Techniques: Sneaking through Your Intrusion Detection/Prevention Systems". IEEE Communications Surveys & Tutorials. 14 (4): 1011–1020. CiteSeerX 10.1.1.299.5703. doi:10.1109/surv.2011.092311.00082. S2CID 1949199.
  7. [4]Chaboya, D. J.; Raines, R. A.; Baldwin, R. O.; Mullins, B. E. (2006-11-01). "Network Intrusion Detection: Automated and Manual Methods Prone to Attack and Evasion". IEEE Security Privacy. 4 (6): 36–43. doi:10.1109/MSP.2006.159. ISSN 1540-7993. S2CID 11444752.
  8. Citation[1]Cheng, Tsung-Huan; Lin, Ying-Dar; Lai, Yuan-Cheng; Lin, Po-Ching (2012). "Evasion Techniques: Sneaking through Your Intrusion Detection/Prevention Systems". IEEE Communications Surveys & Tutorials. 14 (4): 1011–1020. CiteSeerX 10.1.1.299.5703. doi:10.1109/surv.2011.092311.00082. S2CID 1949199.
  9. [4]Chaboya, D. J.; Raines, R. A.; Baldwin, R. O.; Mullins, B. E. (2006-11-01). "Network Intrusion Detection: Automated and Manual Methods Prone to Attack and Evasion". IEEE Security Privacy. 4 (6): 36–43. doi:10.1109/MSP.2006.159. ISSN 1540-7993. S2CID 11444752.
  10. [5]"Polymorphic XOR Additive Feedback Encoder". rapid7.com.
  11. [3]Ptacek, Thomas H.; Newsham, Timothy N. (1998-01-01). "Insertion, evasion, and denial of service: Eluding network intrusion detection". CiteSeerX 10.1.1.119.399. {{cite journal}}: Empty citation (help): Cite journal requires |journal= (help)