امنیت

باز نشدن سایت‌ها، یک هک واقعی

هفته گذشته یکی از دوستان توی صحبت هایی که داشتیم گفت وقتی از *****شکن استفاده نمی کنه، هیچ سایتی باز نمی شه به جز گوگل، اون هم بدون HTTPS. اولین حدسی که زدم این بود که سرویس DNS ای که استفاده می کنه دچار مشکل شده. یعنی هک شده؟
قدم به قدم با هم جلو رفتیم. اول پرسیدم که آیا از نرم افزارها یا سرویس های DNS امن و آزاد استفده می کنه؟ چون بعضی از این سرویس ها در اینترنت ایران دچار محدودیت می شن. استفاده نمی کرد. پیش از این در پست دیگه‌ای در مورد DNS نوشته بودم.
ازش خواستم که Trace Route به آدرس گوگل بدون HTTPS و گوگل رمزگذاری شده رو برام بفرسته. تریس‌روت به گوگل بدون HTTPS که بین راه به کلی مشکل برمی‌خورد و بعد از یکی دوبار timeout به مقصد می رسید. سایت دیگه که در مرحله اول نمی تونست IP رو پیدا کنه. باز هم شک اولیه به مشکل داشتن DNS تقویت شد.

tracert 1

می بینید که خطای unable to resolve target system name می‌ده.
ازش خواستم که با IPConfig و یا چک کردن تنظیمات شبکه، ببینه که چه سرویس DNS ست شده. دو IP وجود داشت:
۷۴.۸۲.۲۰۷.۲۶
۸.۸.۸.۸

آی‌پی دوم که مربوط به سرویس دی‌ان‌اس گوگله اما آی‌پی اول مشکوکه. با کمی جستجو متوجه شدیم که این IP نه تنها مربوط به سرویس های معتبر DNS نیست که در کنترل یک هکره.
نمونه های تغییر دی‌ان‌اس به این IP پیش از این در کشور تایلند دیده شده بود و بر اساس گزارش های موجود یا ناشی از بدافزاری بوده که اخیرا با شبیه سازی به‌روز رسانی Flash Player نصب می شده و یا در اثر استفاده از ضعف امنیتی مودم/روتر توسط هکر و نفوذ به سیستم و تغییر سرویس DNS. نکته اینجاست که قربانی‎های این روش در کشور تایلند پس از باز کردن سایت گوگل، به سایت دیگری منتقل می شدند و بهشون اعلام می‌شد که باید از نسخه Flash Player Pro استفاده کنند.

update-flash-player-1

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

تا اینجای کار می دونیم برای مدتی سایت های بازدید شده توسط دوست من احتمالا سایت های تقلبی بوده که در کنترل هکر بوده اند. پیش از این گفته بودم که در صورت کنترل DNS کلیه سایت های بازدید شده می تونن تقلبی باشند. البته کار هکر در مورد سایت هایی که HTTPS هستند کمی سخت‌تره، چرا که شبیه سازی سرتیفیکیت سایتی مثل گوگل، بدون اینکه مرورگر بفهمه و خطا بده، کار هر کسی نیست.
مشکل اصلی رو در سایت هایی داریم که SSL استفاده نمی‌کنند و همچنین اپلیکیشن‌های موبایل که معمولا بررسی‌های مناسبی روی برقراری ارتباط امن نمی‌کنن.
ما در موقعیتی قرار داریم که با احتمال لو رفتن بسیاری از پسوردها، اطلاعات شخصی منتقل شده و یا حتی تزریق بدافزار رو‌به‌رویم. پس باید در مرحله اول شروع به پاک سازی کنیم.

۱. اتصال اینترنت رو قطع می کنیم.
۲. IP ست شده در سرویس DNS رو به حالت عادی برمی‌گردونیم. می تونیم فعلا از سرویس‌های گوگل استفاده کنیم.
۳. مشخصات نگهداشته شده توی ویندوز برای سرویس DNS رو با این دستور پاک سازی می کنیم: ipconfig /flushdns
۴. با آنتی‌ویروس و ضد بدافزار، کل سیستم رو اسکن می‌کنیم.
۵. با اتصال به اینترنت، کلیه پسوردها (حداقل پسوردهای استفاده شده در زمان هک) رو تغییر می دیم.
۶. از گزینه های کمکی سایت ها برای کنترل لاگین از مکان‌های غیر عادی استفاده می کنیم. سرویس‌هایی مثل جیمیل و فیسبوک، این گزینه رو در اختیار کاربر می ذارن.
۷. دسترسی به صفحه لاگین مودم/روتر از طریق وایفای و یا اینترنت رو محدود می کنیم. (در این مورد پست دیگه ای خواهم گذاشت)
۸. آخرین نسخه firmware مودم/روتر رو از سایت رسمی اون دانلود کرده و به‌روز رسانی انجام می‌دیم.

همچنین برای جلوگیری از اتفاقات مشابه و یا سواستفاده های احتمالی از سرویس DNS، پیشنهاد می شه یا به صورت دستی از IP سرویس‌های معتبری مانند گوگل استفاده بشه و یا از سرویس‌های امنی مثل opennicproject و DNSCrypt که خود را ملزم به رعایت حریم خصوصی کاربران می دونند و تاریخچه‌ای از درخواست‌های کاربران (که نشون دهنده سایت‌هاییه که بازدید کردن) توی سرورهاشون نگه‌ نمی‌دارن.

برخی از *****شکن‌ها برای بالا بردند امنیت کاربر، درخواست‌های DNS رو هم از طریق ترافیک رمزشده خودشون منتقل می‌کنند اما نکته اینجاست که آیا این *****شکن‌ها خودشون قابل اعتمادن؟

 

پ.ن: اون علی که توی تصویر اول می‌بینید، همون علی پست قبل که دچار هک فرضی شد، نیست.

Standard
امنیت

امنیت در سامانه نام دامنه

در اینترنتی که می شناسیم با سایت ها و آدرس های url سر و کار داریم. پروتکل TCP/IP از IP برای آدرس دهی سرورها استفاده می کنه و ما برای ارسال و گرفتن اطلاعات به یک سرور، باید IP اون رو بدونیم. برای راحت کردن استفاده کاربرها و برای اینکه همه مجبور نباشن برای مثال IP موتور جستجوی گوگل رو وارد کنن باید فکری می شد. بنابراین هر سایت یک آدرس منحصر به فرد انتخاب کرد که در مورد مثالمون google.com بود و وظیفه تبدیل این آدرس به IP برعهده ماشین ها گذاشته شد. سامانه نام دامنه یا Domain Name System که خلاصه اش می شه DNS این کار رو انجام می ده. در این پست به بخشی از مباحث امنیت در سامانه نام دامنه خواهم پرداخت و یکی دو نرم افزار برای بالابردن امنیت معرفی خواهم کرد.

خب بذارید ببینیم قبل از دیدن صفحه گوگل چه اتفاقاتی می افته و نقطه های خطر رو پیدا کنیم.

ابتدا مرورگر رو باز می کنیم و google.com رو تایپ کرده و از مرورگر می خوایم که این آدرس رو برامون بیاره. مرورگر نگاه می کنه ببینه آیا در کامپیوترمون IP متناظر با google.com ذخیره شده یا خیر (کش DNS). اگر شده باشه، همون IP رو به عنوان مقصد انتخاب می کنه و اطلاعات دریافتی از اون IP رو به عنوان سایت گوگل به ما نشون می ده.

در صورتیکه IP متناظر در سیستم عامل ما وجود نداشته باشه، از یک سرویس دهنده می پرسه که IP متناظر با گوگل چیه. اون سرویس دهنده از پایگاه داده ای که داره استفاده می کنه و نتیجه رو برای مرورگر ما ارسال می کنه و سپس مرورگر اطلاعات اون IP رو به عنوان google.com به ما نشون می ده. در ضمن در کش DNS سیستممون هم این IP متناظر با سایت google.com ثبت می شه که در مراجعه بعدی، سریعتر IP پیدا بشه.

سرویس دهنده ای که در پاراگراف قبل گفتم می تونه در تنظیمات سخت افزار شبکه (کارت شبکه) مشخص بشه. معمولا ISP های ایران در انتخاب اول DNS خودشون رو برای کاربر تعیین می کنند و در انتخاب بعدی DNS گوگل رو. سرویس دهنده های مختلف و بیشماری وجود دارند که کار تبدیل نام دامنه به IP رو برای کاربرها انجام می دن.

مراحل بالا هر کدوم ریزه کاریهای خودش رو داره و استانداردهایی برای شیوه اجرا. وارد جزییات اونها نشدم و البته در پست های بعدی در موردشون بیشتر خواهم گفت. در این پست لایه اول خطرات امنیتی که می تونه کاربرهای عادی رو دچار مشکل کنه بررسی می کنم.

مهمترین خطر در بحث DNS، جایگزین کردن IP تقلبی با IP واقعی سایته که می تونه در سطح سیستم عامل و یا در سطح سرویس دهنده اتفاق بیافته. بسیاری از بدافزارها وقتی که سیستم ما رو آلوده می کنن، کش DNS یا در واقع IP های ذخیره شده رو تغییر می دن. یعنی اگر IP واقعی گوگل ۷۴.۱۲۵.۲۳۹.۱۰۱ باشه، بدافزار در ذخیره سیستم ما، اون رو به ۱۸۵.۱۸۵.۱۸۵.۱۸۵ (برای مثال) تغییر می ده. از این به بعد هروقت مرورگر خواست سایت گوگل رو باز کنه، اطلاعات ارسالی از یک سرور خطرناک رو برای ما میاره. موتور جستجوی گوگل حتی اگر تقلبی هم باشه ممکنه برای خیلی ها مهم نباشه ولی فرض کنیم سایت بانک ما هم تقلبی باشه، اون وقت تمام اطلاعاتی که وارد می کنیم مثل شماره حساب و پسورد، در اختیار هکرها قرار می گیره.

dns

با توجه به ارسال و دریافت اطلاعات به سرورهای ارائه دهنده سرویس نام دامنه، کسانی که در یک شبکه اند و یا کنترل نقطه های میانی اتصال را بر عهده دارند، می تونن این اطلاعات رو ببینند و حتی تغییر بدن.

از نمونه های واقعی این خطرها میشه به هک شدن سایت گوگل و یاهو در آذربایجان از طریق هک سرویس دهنده DNS منطقه ای اشاره کرد. در این حالت در واقع سایت ها هک نشدن بلکه کاربرها به سرورهای دیگری منتقل می شوند.

نکته بعدی در بحث امنیت DNS بیشتر به حریم خصوصی مربوط می شه. درواقع سرویس دهنده نام دامنه ما، کلیه سایت هایی که بازدید کردیم رو می دونه. شاید خواسته یا ناخواسته یک سایت بزرگسالان رو باز کنیم و نخوایم که ISP بدونه. ضمن اینکه در بسیاری از کشورها، ISP ها لیست وبسایت های بازدید شده کاربران رو برای مدت های طولانی نگه می دارن و در اختیار مراجع رسمی می ذارن. بازدید از سایت های به اشتراک گذاری فیلم و موزیک، می تونه نشون دهنده دانلود غیر قانونی باشه که در برخی کشورها تبعاتی برای کاربر داره. نمونه های مشابه بسیاره.

برای جلوگیری از خطرات گفته شده چند کار رو همزمان باید انجام بدیم.

  • اول اینکه با بالابردن سطح امنیت کامپیوتر و استفاده از آنتی ویروس و فایروال و غیره، مطمئن بشیم که سیستم ما آلوده به بدافزار نیست.
  • دوم اینکه کش DNS رو به صورت دوره ای پاک کنیم که در صورت تغییر این فایل، مشکلات در سیستم باقی نمونه.
  • سوم اینکه از سرویس های امن تری به جای سرویس ISP استفاده کنیم. یکی از مشهورترین سرویس ها  در این زمینه OpenDNS است.
  • و در آخر اینکه از رمزگذاری برای رد و بدل اطلاعات با سرویس دهنده نام دامنه استفاده کنیم تا احتمال تغییر اطلاعات در بین راه رو کم کنیم (چیزی شبیه استفاده از https به جای http).

سرویس دهنده OpenDNS ابزاری برای رمزگذاری ترافیک DNS ارائه کرده به اسم DNSCrypt. استفاده از DNSCrypt می تونه ردیف ۳ و ۴ لیست بالا رو همزمان انجام بده. درضمن این نرم افزار به صورت متن بار منتشر شده که می تونه در بحث امنیت یک قدم به جلو باشه.

با توجه به انتشار متن این نرم افزار، توسعه دهنده های دیگری با استفاده از این منبع، ابزارهای دیگری ساختند که دست کاربر رو بازتر می کنه. یک نمونه خوب از این نرم افزارها در سیستم عامل ویندوز DNSCrypt Windows Service Manager است.

DNSCrypt Windows Service Manager با اینکه ظاهر ساده ای داره اما این امکان رو به کاربر می ده که از سروری غیر از سرور OpenDNS استفاده کنه. همچنین می تونیم پروتکل UDP یا TCP رو انتخاب کنیم و یا از IP v6 به جای IP v4 استفاده کنیم.

قبل از انتخاب سرورهای لیست شده در این نرم افزار مطمئن بشید که اون سرویس دهنده تاریخچه وبگردی شما رو نگه نمی داره یا با سایت های تبلیغاتی و دولت ها به اشتراک نمیذاره.

این نرم افزار در مراحل اولیه است و توسعه دهنده اش گزینه های زیادی برای نسخه های بعدی در نظر گرفته.

هرچند استفاده از سرورهای امن DNS و رمزگذاری ترافیک راه خوبی برای بالا بهتر کردن امنیت و حریم خصوصیه اما در صورتیکه از شبکه های عمومی استفاده می کنید و یا از شبکه های که بهش مشکوکید و احتمال نفوذ و یا کنترل داره (مثل WiFi رستوران و هتل)، پیشنهاد می شه از شبکه خصوصی مجازی یا VPN کمک بگیرید.

Standard