باگ خطرناک OpenSSL موسوم به HeartBleed چیست؟
نوشته : حسین داود
ایجاد در : سه شنبه ۲۰ آذر ۹۷ ۰۸:۴۴ مجموعه : مقالات امتیاز : 2 بازدید : 1282

باگ Heart Bleed (خونریزی قلبی) چیست؟
هنگامی که شما از یک وب سایت استفاده می کنید در حقیقت داده هایی را به آن وب سایت می فرستید و داده هایی را دریافت می کنید. اگر یک هکر بین ارتباط شما قرار گیرد می تواند شنود کند که شما چه اطلاعاتی فرستاده یا دریافت کرده اید. فرض کنید قصد دارید به حساب بانکی تان وارد شوید. یک نام کاربری و کلمه عبور را وارد می کنید و هکر نام کاربری و کلمه عبور شما را می دزدد.
برای برطرف کردن این مشکل، متخصصان سرویسی به نام Open SSL را ابداع کردند. به طور کلی هر سایت را که دیدید که در ابتدای آدرس آن به جای http از https استفاده شده است، در حقیقت از سرویس Open SSL استفاده می کند. این سرویس باعث می شود داده ها به صورت عادی ارسال نشوند بلکه به صورت بسیار قدرتمند رمز گذاری شوند. بنابراین اگر هکر بین این ارتباط قرار گیرد جز مقداری کد رمزگذاری شده هیچ چیز به دست نخواهد آورد. باز کردن رمز این داده ها اصولا غیر ممکن است مگر در صورت داشتن کلید.
روز دوشنبه 18 فروردین 93، یکی از متخصصان گوگل، باگی را در این سرویس کشف کرد که تمام دنیای IT را تحت تاثیر قرار داد. آخرین نسخه آپدیت شده این سرویس مربوط به دو سال پیش است بنابراین حدود دو سال است که این باگ وجود داشته و احتمالا افرادی از آن اطلاع داشته و مشغول دزدی اطلاعات بوده اند. همین حالا نیز تمام وب سایت هایی که از Open SSL استفاده می کنند تحت خطر هستند. اما خبر خوش اینکه بلافاصله پس از کشف این باگ، متخصصان نسبت به رفع آن اقدام کردند و مدیران سرور ها با بروز رسانی سرور می توانند از خطر خونریزی قلبی سرور در امان باشند.
علت اینکه این باگ به نام Heart Bleed (خونریزی قلبی) شناخته می شود نیز جالب است. همانطور که در بالا ذکر شد برای ارتباط کامپیوتر شما به یک سرور امن از سرویس Open SSL استفاده می شود. در هر اتصال داده های زیادی با سرور رد و بدل می شود. ممکن است برای لحظه ای سرور در حالت پاسخدهی قرار نداشته باشد. بنابراین مرورگر شما یک بسته ای را مانند یک ضربان قلب به سمت سرور می فرستد و منتظر پاسخ از سمت آن است. باگ خونریزی قلبی که یک خطا در پیاده سازی این سرویس است این اجازه را به هکر می دهد که بسته ای را به سمت سرور ارسال کند و به جای پاسخ از سرور، اطلاعات موجود در 64 کیلوبایت از حافظه سرور را به صورت کاملا تصادفی دریافت کند. اما این اطلاعات ممکن است مقداری اطلاعات کاملا بی ارزش باشد. ولی وقتی که بارها و بارها در میزان بسیار زیاد دریافت شود حاوی اطلاعات بسیار مفیدی خواهد بود.
باگ Heart Bleed (خونریزی قلبی) چقدر خطرناک است؟
باید گفت این باگ یکی از خطرناک ترین باگ های دنیای اینترنت است. چرا که هکر می تواند به وسیله این باگ سیل عظیمی از اطلاعات موجود در حافظه سرور را به دست بیاورد و آنچه در بین این اطلاعات بسیار مهم است، کلید باز کردن رمز داده هاست. همان داده هایی که با روشی بسیار قدرتمند رمزگذاری شده اند. سرور برای اینکه اطلاعات رمزگذاری شده را باز کند از این کلید استفاده می کند و برای استفاده از کلید، آن را در حافظه نگهداری می کند بنابراین اگر هکر بسته های زیادی را حاوی کدهای مورد نیاز برای استفاده از این باگ به سمت سرور بفرستد، اطلاعاتی را به دست می آورد و در بین این اطلاعات به کلید بازگشایی رمز دسترسی پیدا می کند. پس از آن به راحتی می تواند تمام اطلاعات در حال تبادل را که رمزگذاری هستند، باز کرده و از آن استفاده کند.
طبق گزارشات رسمی از هر سه سرور، دو تای آن ها از ssl استفاده می کنند. بنابراین تصور کنید چقدر سایت در معرض خطر هستند.
آیا من تحت خطر باگ Heart Bleed (خونریزی قلبی) هستم؟
اگر از سایت هایی نظیر فیسبوک، یاهو، گوگل، سایت های بانکی و به طور کلی هر سایتی که گواهینامه های SSL دارد، استفاده می کنید تا زمانی که این سایت ها به روزرسانی نشوند در معرض خطر هستید.
چارهی کار چیست؟
از آنجایی که این ویژگی کمی خاص است و در مورد تمامی ارتباطات ایجاد شده از آن استفاده نمیشود، میزان تاثیرگذاری آن کمتر از حدی است که در برآوردهای اولیه به آن اشاره شده است. در حقیقت، اولین پیشبینیها حکایت از آسیبپذیری 60 درصدی سرورهای اینترنتی در اثر وجود باگ خونریزی قلبی داشت، در حالی که Netcraft مدعی شده است که این میزان بسیار کمتر بوده و در حدود 17.5 درصد از کل سرورهای اینترنتی را تشکیل داده است.
پس از کشف این باگ، دستاندرکاران سریعاً پچی را برای رفع این مشکل منتشر کردند که نسخهی 1.0.1.g نام گرفته و مشکل موجود را کاملاً حل کرد. پیش از آن نیز در صورتی که کاربران در زمان نصب نرمافزار OpenSSL افزونهی Heartbeat را نصب نکرده بودند، مشکلی از جانب این باگ آنها را تهدید نمیکرد.
حال سوال اصلی در مورد نگرانی یک کاربر معمولی اینترنت مطرح است. آیا کاربران اینترنت باید از وجود چنین مشکلی نگران باشند؟ متاسفانه پاسخ این پرسش بلی است. کاربران باید با استفاده از سرویسهایی چون Heartbleed Test ،LastPass Heartbleed Checker یا Qualys SSL Labs Test وبسایتهای حساسی را که به آنها مراجعه میکنند چک کرده و در صورت وجود مشکل، رمز عبور خود را تغییر دهند. این کار باید برای تمامی وبسایتهایی که دربردارندهی این باگ بوده و پس از کشف آن رفع ایراد شدهاند، انجام شود. از جملهی چنین سرویسهایی میتوان به یاهو و گوگل اشاره کرد. اما بصورت کلی باید کاربران از قانون تغییر رمز عبور بصورت متوالی و در فاصلههای زمانی تبعیت کنند.
اقدام برای تغییر رمز عبور یک پیشنهاد احتیاطی است، چراکه اگر هکری از وجود این باگ مطلع بوده و درصدد دستیابی به اطلاعات حساب کاربری شما بود، تا حال این اطلاعات را کسب کرده و به مقصود خود رسیده است. براساس برخی شایعات، احتمالا گواهی رمزگذاری برخی از سرورها نیز به سرقت رفته، اما CloudFlare امکان چنین مسالهای را بسیار پایین عنوان کرده و اعلام کرده است که درصد رخداد چنین موردی بسیار پایین است.
این موسسه مسابقهای را با این مضمون یعنی دستیابی به گواهی رمزگذاری سرور برگزار کرده بود که فردی موفق به انجام این کار شد. وی در فاصلهی ریبوت شدن سرور به گواهی مورد نظر دست یافت. فارغ از امکان به سرقت رفتن کلید رمزنگاری دادهها، کمپانیها علاوه بر اعمال پچ مورد نظر، کلید رمزگذاری خود را نیز تغییر دادهاند تا هکرها قادر به سرقت اطلاعات و دستیابی به اطلاعات رمزنگاری شده نباشند.
در صورتی که از سرنوشت اطلاعات خود نگران هستید، میتوانید رمزهای عبور حسابهای کاربری خود را تغییر دهید. یکی از اصلیترین نکات برای انتخاب رمزعبور، عدم استفاده از الگویی مشابه برای تمامی حسابهای کاربری است. همچنین باید در طول و کارکترهای مورد استفاده در رمزعبور نیز دقت کرده و از ترکیب حروف با اعداد استفاده کرد. ضمنا طول رمزعبور بهتر است بیش از 10 کارکتر باشد.