امیرحسین تنگسیری نژاد
مهندس و مدرس شبکه و امنیت سایبری و مدیر کل جزیره هک و امنیت اطلاعات توسینسو

معرفی تکنیک های حمله به پروتکل IPSec و IKE

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
امروزه به منظور ایجاد ارتباط در نقاط متنوع که دسترسی و ارتباطی بین آنها وجود ندارد و نیاز به یک ارتباط امن میباشد از پروتکل های Tunneling و یا VPN استفاده میکنند که انواع متنوعی را دارند اما از این بابت یک پروتکل بسیار امن که تشکیل شده از پروتکل های متنوعی میباشد وجود دارد تحت عنوان IPSec
پروتکل IPSec درواقع مجموعه ایی از پروتکل ها میباشد که به واسطه آن میتوانیم یک ارتباط را امن سازی و یا یک ارتباط کاملا امن سازی شده را پیاده سازی کنیم و به واسطه تکنیک ها و پروتکل های مختلف موجود در آن بحث های متنوعی از جمله Data Integrity و AntiReplay و Data Encryption را در ارتباط خود داشته باشیم.
حملات DDOS و یا DoS(هردو یک‌مفهوم میباشند اما درصورتی که مبدا حملات چند سیستم باشد به آن DDoS میگویم‌ و درصورتی که مبدا حمله یک سیستم واحد باشد DoS میگویم) درواقع حملاتی هستند که با ارسال تعداد زیادی بسته به سمت یک مقصد خاص موجب قطع شدن دسترسی آن سیستم از خدمات دهی میشوند.
معرفی تکنیک های حمله به پروتکل IPSec و IKE

حمله DoS به IPSec

درصورتی که یک حمله DoS به صورت موفقیت آمیز بر روی بستر IPSec رخ بدهد موجب این میشود که سیستم مورد نظر منابعش را از دست بدهد و بیش از حد اشغال شود و این اشغال شدن بسته به راهای متنوعی میباشد و اغلب با ارسال بسته های مخرب انجام میشود و همه این بسته ها نیز معمولا متعلق به پروتکل IKE انجام نیز هستند.

پروتکل IKE چیست

درواقع پروتکل IKE یکی از پروتکل های بکار رفته در پروتکل IPSec میباشد و به واسطه آن میتوانیم Security Association(SA) هایمان را برای یک ارتباط امن ایجاد کنیم همچنین این پرتتکل براساس Isakmp و Oakley طراحی و ساخته شده است که به سبب آن بتوانیم ارتباطات Site To Site VPN را پیاده سازی و برقرار کنیم اما توجه داشته باشید که IKE صرفا فقط یک وظیفه را برعهده ندارد و به عنوان یک Framework که وظایف متنوع را برعهده دارد آن را میشناسیم.

تفاوت IKEv1 و IKEv2

درواقع تفاوت های این دو پروتکل RFC 4306 تعریف شده است اما در این بخش از مقاله به آن تاحدودی میپردازیم، همچنین شما با دیدن تصویر زیر نیز میتوانید به تفاوتی های که در ایجاد Session و پیغام های درحال ردوبدل این پروتکل وجود دارد پی ببرید.
معرفی تکنیک های حمله به پروتکل IPSec و IKE
درواقع پروتکل IKEv1 در تبادل فاز 1 خود فقط 6 بسته را تبادل میکند که از این بابت IKEv2 تعداد 3 بسته را تبادل میکند که این عدد متغیر است و در بهرین حالت تعداد 4 بسته را تبادل میکند و در بدترین حالت با توجه به پیچیدگی احراز هویت و پارامتر های Security Association(SA) این تعداد به 40 بسته نیز افزایش پیدا میکند. پروتکل IKEv2 به جای استفاده از فاز 2 در IKEv1 آن را با یک پیغام تحت عنوان IKE_Auth ترکیب سازی کرده است و پس از تبادل این پیغام ها هر دو طرف از داشتن Security Association(SA) های یکسان اطمینان حاصل میکنند و آماده تبادل اطلاعات و رمزنگاری آنها هستند.

ابتدایی ترین فاز ها در IKEv2

درواقع ابتدایی فاز های در IKEv2 عبارتند از:
  • IKE_SA_INIT
  • IKE_Auth

مرحله IKE_SA_INIT

در این مرحله به واسطه این پیغام ها بین دو طرف یک ارتباط و کانال امن ایجاد میشود و پس از اتمام این فرآیند کلی پیغام های بعدی به صورت کاملا امن و رمزگذاری شده میباشند. کلی تبادلات اطلاعات به دو حالت تبدیل شده‌اند و دیگر خبری از MM1-4 در IKEv1 نیست و با حالت های جدید IKEv2 ترکیب شده اند.
نکته: درصورتی که بیش از حد مجاز از پیغام های IKE_SA_INIT استفاده شود قسمت Responder جوابی به پیغام ها نمیدهد و برای ادامه Session یک Cookie را در بسته ها قرار میدهد و به سمت مقابل ارسال میکند و از او میخواد در پیغام بعدی خود این Cookie را نیز ارسال کند.
معرفی تکنیک های حمله به پروتکل IPSec و IKE

مرحله IKE_Auth

درواقع در این مرحله فرآیند IKE_SA _INIT به پایان رسیده است و ارتباط مورد نظر ما به واسطه Security Association(SA) های دو طرف امن سازی شده است و پس از آن اگر اطلاعاتی ردوبدل شود به صورت رمزنگاری شده میباشد. اما این پایان کار نیست چون که دوطرف هنوز احراز هویت نشده اند به واسطه IKE_Auth دو طرف اعتبار یک ‌دیگر را تایید میکنند و احراز هویت میشوند و علاوه بر این یک IPSec SA جدید و واحد میسازند و پارامتر های ISAKMP و پارامتر های احراز هویت خود را در بین یک ‌دیگر ردوبدل میکنند. محتوای که در احراز هویت استفاده میشود بستگی به نوع احراز هویت ما دارد برای مثال زمانی که از Key برای احراز هویت استفاده میکنیم به اصطلاح مکانیزم PSK را بکارگیری کردیم و علاوه بر این میتوانیم از RSA Certificate ها نیز استفاده کنیم که به اصطلاح به آن RSA-SIG گفته میشود و راه های متنوعی که در احراز هویت ما استفاده میشود.
معرفی تکنیک های حمله به پروتکل IPSec و IKE

حملات بستر IKE

در فرآیند ارتباطی IKE پیغام های متنوعی ردوبدل میشود و پروتکل IKE نیز در دو ورژن متنوع ارائه شده است که این دو ورژن هر کدام دارای ویژگی ها و روش های متعددی در خود میباشند که آنهارا

باهم بررسی کردیم. حالا بیاید ببینیم چه اشکالاتی در این تبادل اطلاعات وجود دارد:
  1.  ارسال بیش از حد IKE_SA_INIT های متنوع بدون ارسال IKE_Auth: اینکار شبیه به حمله Syn Flooding میباشد و به این دلیل که در این حمله با ارسال تعداد زیادی پیغام Syn به سمت مقصد و ارسال نکردن پیغام Ack تعداد بسیار زیادی Session درحالت Half-Open Session و یا نیمه باز قرار میگیرند که موجب از دست رفتن منابع متنوع سیستم ما میشود، در IKE نیز به همین شکل میباشد و با ارسال تعداد زیادی بسته IKE_SA_INIT بدون ارسال IKE_Auth آن Session ها به صورت Half Open Session قرار میگیرند و موجب این میشوند که منابع زیادی مانند حافظه سیستم را اشغال کنند.
  2. ارسال تعداد زیادی بسته IKE_Auth با SPI_i و SPI_r های صحیح: اینکار نیز به سبب اینکار موجب از دست رفتن و پر شدن حافظه سیستم میشود زیرا سعی در رمزگشایی بسته ها دارد.
  3. ارسال تعداد زیادی بسته Rekey
  4. ارسال بیش از حد SA_INIT: با این اینکار حافظه سیستم درصورتی که سیستم قصد در ایجاد Key برای رمزنگاری داده ها دارد پر میشود.
  5. ارسال Certificate های بزرگ از طریق Url های نامعلوم و متنوع

نحوه جلوگیری از حملات IKE

درواقع حملات IKE علاوه بر اینکه بر روی این پروتکل تاثیر میگذارند بر روی پروتکل IPSec نیز تاثیر گذار میباشد و در ارتباطات سازمانی که از IPSec استفاده میشود حتما باید دسترسی ها و ترافیک های IKE را محدود به ادرس های IP خاصی کنید و همچنین میتوانید از راه های زیر نیز استفاده کنید:
  1. ایجاد IKE_SA_INIT Timer: با دریافت پیغام های IKE_SA_INIT میتوانید یک بازه زمانی در نظر بگیرید و درصورت ارسال نشده IKE_Auth در آن بازه زمانی Session مورد نظر که در حالت Half-Open میباشد بسته شود.
  2. جلوگیری از دریافت Certificate های بزرگ از Url های ناشناخته.
  3. تعیین حد مجاز برای پیغام ها: تعیین حد مجاز برای پیغام های همچون IKE_SA و IKE_CHILD SA Rekey میتواند کمک بسیار زیادی کند و درصورت ارسال بیش از حد پیغام میبایست ارتباط حذف شود.

امیرحسین تنگسیری نژاد
امیرحسین تنگسیری نژاد

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

متخصص امنیت اطلاعات و کارشناس شکار تهدیدات بانک ملی ایران ، دارای مدارک مختلف از Splunk و AWS و Fortinet و Huawei حوزه اصلی فعالیت بنده در زمینه شبکه مباحث R&S و Service Provider می‌باشد و در زمینه امنیت نیز در موقعیت های مختلفی مانند PenTest و SoC فعالیت داشته و دارم. سابقه همکاری با بعضی سازمان های در قالب پروژه و... را داشته ام الان به عنوان تحلیلگر امنیت سایبری در زیرساخت بانک ملی مشغول به کار هستم. لینکداین: https://www.linkedin.com/in/amirhoseintangsirinezhad/

نظرات