هارت‌بلید

**هارت‌بلید**   یک اشکال نرم‌افزاری در کتابخانه رمزنگاری متن باز اپن‌اس‌اس‌ال است که به مهاجم اجازه خواندن حافظه رایانه‌ای که در حال اجرای این نرم‌افزار است را می‌دهد. این باگ همچنین به مهاجم اجازه بازیابی کلیدهای شخصی اس‌اس‌ال را می‌دهد. این اشکال در پی یک اشتباه در کدنویسی اپن‌اس‌اس‌ال به وجود آمده‌است.

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

## تاریخچه
در روز هفتم آوریل ۲۰۱۴، Neel Mehta یکی از مهندسین تیم امنیتی گوگل اعلام کرد که اپن‌اس‌اس‌ال ویرایش 1.0.2-beta، و همچنین تمام ویرایش‌های سری ۱٫۰٫۱ این نرم‌افزار تا قبل از ویرایش 1.0.1g دارای اشکال امنیتی خطرناکی مرتبط با مدیریت حافظه در ماژول Heratbeats این برنامه هستند. این مشکل امنیتی می‌تواند در هر تپش اکستنشن Heartbeat اپن‌اس‌اس‌ال، تا ۶۴ کیلو بایت اطلاعات از حافظهٔ مربوط به همین نرم‌افزار در RAM رایانه را در اختیار مهاجم قرار دهد. این باگ درون ماژول Heartbeats از پکیج openssl قرار دارد که به همین دلیل این باگ را خونریزی قلبی (Heartbleed) نام‌گذاری کرده‌اند که می‌توانید گزارش آن را درون سایت openssl ببینید. کد cve mitro باگ CVE-2014-0160 است.

سازوکار این حفره امنیتی به این صورت است که شخص مهاجم یک در خواست هارت بیت (تپش قلب) دستکاری شده را به سروری که در حال اجرای اپن‌اس‌اس‌ال است می‌فرستد و منتظر پاسخ سرور می‌ماند. از آنجایی که مشکل کنترل طول متغیر در برنامه‌نویسی اپن‌اس‌اس‌ال ویرایش‌های اشاره شده در بالا وجود دارد، برنامه نمی‌تواند صحت درخواست مهاجم را ارزیابی نماید و این مسئله موجب می‌شود که برنامه به درخواست مهاجم پاسخ دهد و ۶۴ کیلوبایت از حافظه برنامه را به شکل تصادفی بخواند و برای مهاجم ارسال نماید. در حین حمله، هر تپش قلب 64KB از پکت‌هایی که با استفاده از پروتکل Transport Layer Security V1 با سرور رد و بدل می‌شوند و در حافظه سیستم ذخیره می‌شوند را آشکار می‌کند و به مهاجم ارسال می‌کند. حال اگر این عمل تکرار شود اطلاعاتی از جمله نام کاربری و پسورد سرور یا پسورد مدیران یا اطلاعات کاربران یا هر اطلاعات امنیتی دیگری مانند کوکی‌ها نیز به دست خواهند آمد.

این مشکل امنیتی از تاریخ ۳۱ دسامبر ۲۰۱۱ در کد برنامه وجود داشته‌است و بعد از انتشار نسخه پایدار برنامه (ویرایش ۱٫۰٫۱) در تاریخ ۱۴ مارس ۲۰۱۲ به شکل گسترده‌ای در وب سرورهای دنیا انتشار یافته‌است.

نامگذاری این حفره امنیتی توسط مهندس تیم شرکت امنیتی Codenomicon انجام گرفت. وی همچنین لوگوی مربوط به آن را طراحی نمود و وب سایت *Heartbleed.com*را برای اطلاع‌رسانی به عموم مردم به راه انداخت. طبق گزارش شرکت امنیتی Codenomicon، پیداکننده این مشکل امنیتی، Neel Mehta، ابتدا این حفره را به برنامه نویسان OpenSSL گزارش می‌دهد اما این گوگل و Codenomicon بودند که به شکل مستقل این حفره را شناسایی می‌کنند. Mehta همچنین در صفحه توییتر خود بدون اینکه وارد جزئیات و نقش گوگل در کشف این حفره امنیتی شود به شرکت Codenomicon تبریک گفته‌است.

## آسیب‌شناسی
خواندن بخشی تصادفی از حافظه سرور می‌تواند اطلاعات حساسی را در اختیار مهاجم قرار دهد و در پی آن امنیت سرور و کاربران در حال استفاده از آن را به خطر بیندازد. اطلاعات حساسی که از این طریق قابل دسترسی می‌باشند می‌تواند شامل کلیدهای شخصی باشد که نفوذگر را قادر می‌سازند تا با انجام یک حمله مرد میانی غیرفعال (passive) یا فعال (active) (انجام حمله مرد میانی فعال در صورتی توسط هکر انجام می‌شود که perfect forward secrecy بر روی سرور فعال باشد) به رمزگشایی داده‌های ذخیره شده بر روی سرور یا داده‌های در حال ارسال و دریافت آن بپردازد و به آن‌ها دستیابی داشته باشد. شخص مهاجم کنترلی بر روی اینکه چه داده‌هایی در این ۶۴ کیلوبایت توسط سرور به او تحویل داده می‌شود ندارد و سرور تنها در پاسخ به درخواست مهاجم به شکل تصادفی داده‌هایی را در اختیار وی می‌گذارد.

هرچند این باگ تهدید جدی برای ارتباط امن ایجاد شده توسط اپن‌اس‌اس‌ال محسوب می‌شود، اما همچنین می‌تواند درخواست‌ها و اطلاعات رمزگذاری نشده کاربر را نیز در اختیار نفوذگران قرار دهد، این اطلاعات می‌توانند شامل پست‌های کاربر، کوکی‌ها و پسوردهای کابران سرور باشد که درصورتی که مهاجم به آن‌ها دستیابی داشته باشد می‌تواند به انجام عملیات استراق نشست کاربر بپردازد و به اطلاعات حساب کاربران و شاید مدیران آن وب سرور دستیابی پیدا کند. در زمان شناسایی این حفره امنیتی (هفتم آوریل ۲۰۱۴)، چنین تخمین زده شد که می‌بایست حدود ۱۷ درصد، معادل نیم میلیون عدد، از وب سرورهایی که توسط مراجع صدور گواهی دیجیتال برای آن‌ها گواهی امنیتی SLL صادر شده‌است، در برابر این نوع از حمله آسیب‌پذیر باشند.بنیاد مرزهای الکترونیکی، ارز تکنیکا، و رمز نگار آمریکایی بروس شِنایر، همگی در توصیف این حفره امنیتی از واژه "catastrophic" به معنی "فاجعه آفرین" استفاده کردند. ستون نگار امنیت سایبری مجله فوربز، جوزف اشتاینبرگ، در توصیف این اشکال امنیتی می‌نویسد که "از زمانی که بانکداری الکترونیکی در اینترنت به راه افتاد، هیچ اشکال امنیتی مانند این باگ دارای چنین پتانسیل تخریبی نبوده‌است."

## ویرایش‌های آسیب‌پذیر OpenSSL
* OpenSSL 1.0.2-beta
* OpenSSL 1.0.1 تا ویرایش OpenSSL 1.0.1f

### سیستم عامل‌هایی که مورد خطر و دارای این باگ هستند
اگر پچ مربوط به اشکال امنیتی CVE-2014-0160 در این سیستم عامل‌ها نصب نشده باشد، این سیستم عامل‌ها می‌توانند در برابر این حمله آسیب‌پذیر باشند.
* دبیان و سیستم عامل‌هایی که بر اساس آن طراحی شده‌اند مانند اوبونتو و لینوکس مینت و همچنین تمام زیر خانواده‌های آنها
** Debian Wheezy (stable), OpenSSL 1.0.1e-2+deb7u4
** Ubuntu 12.04.4 LTS, OpenSSL 1.0.1-4ubuntu5.11
** CentOS 6.5, OpenSSL 1.0.1e-15
** Fedora 18, OpenSSL 1.0.1e-4
** (OpenBSD 5.3 (OpenSSL 1.0.1c 1۰ مه ۲۰۱۲) and 5.4 (OpenSSL 1.0.1c 1۰ مه ۲۰۱۲
** FreeBSD 10.0 - OpenSSL 1.0.1e 1۱ فوریه ۲۰۱۳
** (NetBSD 5.0.2 (OpenSSL 1.0.1e
** (OpenSUSE 12.2 (OpenSSL 1.0.1c
* تمامی سیستم عامل‌ها و نرم‌افزارهایی که برای ایجاد ارتباطات امن خود از ویرایش‌های آسیب‌پذیر اپن‌اس‌اس‌ال استفاده می‌کنند.

### ویرایش‌هایی که این اشکال امنیتی در آنها وجود ندارد
* (OpenSSL 1.0.2-beta2 (upcoming
* OpenSSL 1.0.1g
* (OpenSSL 1.0.0 (and 1.0.0 branch releases
* (OpenSSL 0.9.8 (and 0.9.8 branch releases

## برنامه‌های رایانه‌ای آسیب‌پذیر
* آی‌پی‌کوپ: ویرایش ۲٫۱٫۴ این نرم‌افزار به روز رسانی شده و فاقد این باگ است.
* لیبره‌آفیس: ویرایش ۴٫۲٫۳ این نرم‌افزار به روز رسانی شده و فاقد این باگ است.
* LogMeIn: مدیران این پروژه چنین اظهار کرده‌اند که بخش‌هایی که مبتنی بر OpenSSL بوده‌اند بروز رسانی شده‌اند و امن هستند.

## روش‌های جلوگیری و شناسایی
برای جلوگیری از نفوذهای ناخواسته به سرور، به مدیران وب سرورها توصیه می‌شود تا یا از نسخه‌هایی که بدون این اشکال امنیتی می‌باشند استفاده کنند، مانند ویرایش توصیه شدهٔ OpenSSL 1.0.1g، یا اگر امکان بروز رسانی برای ایشان فراهم نیست می‌توانند با کامپایل مجدد نسخه‌های قدیمی به شکل موقت، با استفاده از سوئیچ DOPENSSL_NO_HEARTBEATS- در زمان کامپایل، ماژول Heartbeats را غیرفعال کنند و در اولین زمان ممکن به بروزرسانی نرم‌افزار اقدام نمایند.
هرچند بروز رسانی یا برطرف کردن این اشکال امنیتی به روش‌های فوق این اشکال را برطرف می‌سازد، اما اگر برنامه OpenSSL و سرویس‌های مرتبط با آن یا نرم‌افزارهایی که از آن استفاده می‌کنند متوقف نشوند و دوباره راه‌اندازی نگردند(restart)، کد مخرب همچنان در حافظه سیستم باقی‌مانده و نفوذگران همچنان می‌توانند به اطلاعات حساس سرور دستیابی داشته باشند. علاوه بر این برای بازیابی امنیت سیستم می‌بایست تمامی اطلاعات حساس مانند کلیدها، رمزها، کوکی‌ها، و توکن‌ها (token) قدیمی پاک و تعویض شوند. اطلاعاتی که باید تعویض شوند شامل:
* کلیدهای امنیتی عمومی و خصوصی که احتمال به سرقت رفتن آن‌ها می‌رود.
* تمامی certificateهای در ارتباط با این کلیدها باید مجدداً ایجاد شوند.
* تمامی پسوردهای موجود بر روی سرورهایی که احتمال مورد حمله قرار گرفتن آن‌ها می‌رود باید تعویض شوند.

بعد از شناسایی این حفره امنیتی برنامه‌ها و اپلیکیشن‌هایی برای شناسایی این باگ ایجاد شدند که مدیران سرورها می‌توانند از آن‌ها برای تشخیص این حفره بر روی سرورهای خود استفاده نمایند و سپس به روش فوق اقدام به از بین بردن این باگ نمایند. لیست زیر شامل این ابزارها است.
* https://github.com/rapid7/metasploit-framework/blob/master/modules/auxiliary/scanner/ssl/openssl_heartbleed.rb
* https://web.archive.org/web/20191003131208/http://amn.bayan.ir/
* https://www.ssllabs.com/ssltest/
* http://filippo.io/Heartbleed/
* http://possible.lv/tools/hb/
* https://blog.lookout.com/blog/2014/04/09/heartbleed-detector/ 
* https://lastpass.com/heartbleed/

## عکس العمل‌ها
در روز شناسایی این حفره، کارشناسان امنیتی پروژه تور در وبلاگ خود به کاربران دنیای اینترنت توصیه کردند که «به تمامی افرادی که نگران امنیت سایبری خود هستند توصیه می‌شود تا در چند روز آینده از ورود به اینترنت خودداری کنند، تا زمانی که مشکل به شکل کامل شناسایی و برطرف شود».
260px|بندانگشتی|چپ|دستیابی به اطلاعات کاربران IFTTT از طریق این مشکل امنیتی
سازمان Canada Revenue Agency که مربوط به انجام امور مالیاتی کانادا است، به دنبال خبر این حفره امنیتی حساس اقدام به بستن سایت‌های اینترنتی خود نمود.

مدیران پلت فورم‌ها، مانند مدیران بنیاد ویکی‌مدیا، در پی شناسایی این باگ به کاربران خود توصیه نمودند تا رمزهای کاربری خود را عوض کنند.

یک آنالیز آماری انجام شده بر روی ۱۰۰۰ سایت پربیننده دنیا، که در GitHub منتشر شده‌است، چنین نشان داد که سایتهایی از قبیل یاهو، Imgur, Stack Overflow، مجله Slate، و DuckDuckGo در تاریخ ۸ آوریل ۲۰۱۴ در برابر این اشکال نرم‌افزاری آسیب‌پذیر بوده‌اند.

در کنار سایت‌های خارجی نام برده سایت‌های ایرانی بسیاری نیز دارای این باگ بوده‌اند و تلاش‌ها در زمینه از بین بردن این باگ ادامه دارد.

تئو درات، بنیان‌گذار و مدیر پروژه‌های اپن‌اس‌اس‌اچ و اوپن‌بی‌اس‌دی سازندگان اپن‌اس‌اس‌ال را برای مد نظر قرار ندادن استانداردهای امنیتی برنامه‌نویسی به زبان C و کتابخانه استاندارد سی مورد انتقاد قرار داد و خطاب به آن‌ها چنین گفت: «تولیدکنندگان اپن‌اس‌اس‌ال احساس مسئولیت کافی ندارند».

برنامه‌نویسی که این قسمت از اپن‌اس‌اس‌ال را برنامه‌نویسی کرده و این اشکال امنیتی در اپن‌اس‌اس‌ال به دنبال کدنویسی او ایجاد شده‌است، Robin Seggelmann, چنین ابراز داشت که او تنها در حین برنامه‌نویسی «کنترل و چک کردن متغییری که طول و تعدادی رکورد داشته‌است را یادش رفته‌است» و هرگونه سوء نیت و تعمدی را نسبت به ایجاد این اشکال امنیتی در برنامهٔ اپن‌اس‌اس‌ال رد کرده‌است.

## جستارهای وابسته
* لیبره‌اس‌اس‌ال

## منابع
مقاله ویکی‌پدیا انگلیسی: https://en.wikipedia.org/wiki/Heartbleed

رده:اشکال‌های برنامه‌نویسی
رده:امنیت اینترنت
رده:امنیت لایه انتقال
رده:سوءاستفاده امنیتی از رایانه
رده:علوم رایانه در ۲۰۱۴ (میلادی)
رده:هک کردن در دهه ۲۰۱۰ (میلادی)