Geek

روز نوشت هایی در مورد امنیت

Geek

روز نوشت هایی در مورد امنیت

پیوندهای روزانه

مشکلات امنیتی رایج در VPN ها

شنبه, ۲۹ آذر ۱۳۹۳، ۰۹:۲۷ ب.ظ

قبل از مطالعه مبحث بهتر است به ساختار کلی پروتکل IPSec که در برخی تونل های VPN استفاده می شود نگاهی بندازیم




مشکلات امنیتی رایج در VPN  ها


1.    VPN Finterprinting


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

2.    ذخیره ناامن اطلاعات Authentication در VPN client ها

کاربرانی که از نرم افزارهای VPN Client برای اتصال به سرورهای VPN استفاده میکنند، این نرم افزارها گاهی اطلاعات authentication را به صورت ناامنی ذخیره میکنند که یک مهاجم ممکن است به آن دسترسی پیدا کند.

3.    آسیب پذیری های مرتبط با username

بسیاری از VPN ها به صورت پیش فرض از VPN و پروتکل IKE در مد Aggressive با pre-shared key استفاده می کنند. در authentication معمولا مفاهیمی به نام username و password داریم اما در روش PSK (pre-shared Key) این مفاهیم کمی تغییر میکند و username به عنوان id یا groupname شناخته می شود و از پسورد هم با عنوان pre-shard key یا secret یاد می شود.
اگر در هنگام لاگین ، سیستم به کاربر پیغامی مبنی بر اشتباه بودن نام کاربری یا پسورد بدهد ، آنگاه مهاجم درمیابد که نام کاربری که انتخاب کرده صحیح نیست و این میتواند برای حملات بعدی مفید باشد.
شکل زیر عملیات Exchange در پروتکل IKE در مد aggressive را نشان  می دهد.



در این عملیات exchange ، ابتدا client یک پکت IKE به سمت سرور VPN ارسال می کند و سرور با یک پکت IKE پاسخ میدهد. هر 2 پکت شامل چندین فیلد اطلاعاتISAKMP  هستند. اما فیلد مهمی که دراینجا بررسی خواهیم کرد  فیلد Identity  است که توسط کاربر ارسال می شود که حاوی username است. و فیلد Hash که توسط سرور ارسال می شود شامل مقدار هش شده مقادیر مختلفی از اطلاعات است که یکی از مقادیر آن password یا همان pre-shared key است.
اشتباهات رایجی که توسط VPN سرورها در پاسخ به بسته ارسالی اول که توسط Client انجام می شود به صورت زیر است.


1-    بعضی از VPN سرورها تنها به client هایی پاسخ میدهند که username معتبر داشته باشند و به همه username های نامعتبر پاسخ نمی دهند.
2-    بعضی از VPN سرورها  اطلاعات جانبی منتشر می کنند از جمله no-proposal-chosen یا username is incorrect
3-    بعضی از VPN سرورها به هردوی username های معتبر و نامعتبر پاسخ میدهند اما فیلد hash ارسالی از طرف سرور ، برای نام های کاربری نامعتبر یک null password است که به راحتی قابل تشخیص است.


در هر 3 حالت بالا ، پاسخ به username های نامعتبر ، متفاوت از پاسخ به یک username معتبر است که مهاجم میتواند تشخیص دهد که آیا نام کاربری معتبر است یا خیر . در واقع بهترین حالت برای VPN سرورها این است که به همه username های نامعتبر پاسخ دهد ولی فیلد Hash را با یک پسورد تصادفی پر کند. به این ترتیب مهاجم نمیتواند تشخیص دهد که آیا نام کاربری معتبری دارد یا خیر چرا که یک Hash برگشت داده شده که نمیداند آیا معتبر است یا خیر .
در مثال زیر با استفاده از ابزار ike-scan نشان می دهیم که پاسخ سرور چگونه خواهد بود . در ابتدا یک username معتبر که همان id است ارسال می شود و پاسخ سرور را مشاهده میکنید.



همان طور که مشاهده میکنید چون نام کاربری معتبر بوده است فیلد Hash  هم برگشت داده شده است که شامل pre-shared key هش شده است. اما به مثال زیر دقت کنید وقتی که نام کاربری معتبر نیست.



همان طور که مشاهده میکنید پیغام NO-proposal-chosen برگشت داده شده است که نشان دهنده username نامعتبر است. به این ترتیب اسکنرها و ابزارهای تست brute-force میتوانند از این ا طلاعات در جهت پیدا کردن username استفاده کنند.


4.  کرک کردن آفلاین پسورد


بعد از اینکه توانستیم با یک username معتبر ، فیلد Hash را بدست آوریم آنگاه میتوان به صورت آفلاین و با استفاده از تکنیک های کرک هش ، pre-shared key داخل فیلد Hash را بدست آوریم . البته یاد آور می شویم که این روال در پروتکل IKE و مد Aggressive در حال انجام است. به دلیل اینکه این فیلد طبق استاندارد RFC 2409 است ، پس میتوان محدوده PSK را تعیین کرد.البته نیاز به محاسبه دستی نیست و ابزاری با نام psk-crack این کار را انجام میدهد. هر چند که میتوانید برای مطالعه قالب فیلد Hash به RFC مراجعه کنید. به یک نمونه عملی از این حمله در شکل زیر توجه کنید.



همان طور که ملاحظه میکنید با یک username معتبر ، فیلد Hash برگشت داده شده است . سپس به صورت آفلاین با ابزار psk-crack مقدار آن کرک شده است و مقدار Liverpool برای هش برگشت داده شده که از نوع SHA1 است ، به دست آمده است. در ابزار ike-scan به مد aggressive دقت کنید.
حال بعد از اینکه username و password معتبر داشتیم ، میتوانیم فاز 1 IKE را تکمیل کنیم و عملیات لاگین را انجام دهیم . اما در بعضی VPN سرورها عملیات اضافی تری به منظور authentication انجام می شود که بعد از تکمیل فاز 1 IKE انجام می پذیرد و آن authentication دیگری از نوع XAUTH است .که منجر به امنیت بیشتری می شود.


5. حملات Man in the middle

همان طور که نشان داده شد اگر سرور VPN از پروتکل IKE در مد Aggressive استفاده کند آنگاه ممکن است بتوان username و password معتبری از سرور بدست آورد اما به authentication دوم یعنی XAUTH خواهیم رسید. اما اثبات شده است که این مکانیزم در شرایط خاص در مقابل حملات MItM آسیب پذیر است. به دلیل اینکه باید شرایط خاصی فراهم شود و حمله بسیار مشکل است از ذکر جزییات این بخش خودداری میکنیم.


6. عدم غیرفعال شدن اکانت

بسیاری از سیستم هایی که عملیات Authentication را انجام می دهند ، اجازه غیرفعال شدن اکانت را در شرایط خاص می دهند. حال اگر عملیات لاگین اشتباه، از حد مجاز بیشتر شود آنگاه باید اکانت قفل شود . اما مشکلی که راجع به VPN ها وجود دارد این است که این مکانیزم را در خود ندارد و اجازه میدهند تا به عملیات تست لاگین به تعداد نامحدودی انجام شود.


7. پیکربندی ضعیف تنظیمات

تنظیمات پیش فرض یک VPN سرور ممکن است به حد کافی امن نباشد که باید مورد بازبینی قرار گیرد. به عنوان مثال اگر عملیات authenctication از نوع IKE aggressive mode با pre-shared key باشد آنگاه خطر حمله افزایش می یابد . در حالی که authentication  امن تری مانند Main mode با certificate وجود دارد.



نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی