بایگانی برچسب: s

آسیب پذیری در پردازنده های x86

سه تیم مختلف به طور مستقل، آسیب پذیری Meltdown را روی کامپیوترهای مبتنی بر معماری  x86 اینتل گزارش کرده اند. این آسیب پذیری از سال ۱۹۹۵ تا به حال در این کامپیوترها وجود داشته است. با توجه به اینکه آسیب پذیری در سطح سخت افزار است، سیستم عامل های ویندوز، لینوکس و دیگر سیستم عامل های قابل نصب در کامپیوترهای x86 آسیب پذیر هستند. به طور خلاصه، Meltdown می تواند مکانیزم ایزوله سازی حافظه کرنل از حافظه یوزر را در معماری x86 دور بزند. در نتیجه، یک برنامه در سطح کاربر عادی می تواند با اکسپلویت کردن این آسیب پذیری، بخش های دلخوای از حافظه کرنل و حافظه برنامه های دیگر را بخواند. این دسترسی غیرمجاز، یک حمله کانال جانبی (Side Channel) است که نمونه ای از حملات نقض کننده ویژگی امنیتی عدم تداخل (Noninterference) است. عدم تداخل، یک ویژگی امنیتی در سیستم هایی است که داده هایی در سطوح مختلف امنیتی در آنها وجود دارد و انتظار می رود که داده های دارای محرمانگی بالاتر، به سطوح با محرمانگی پایین تر نشت نکنند.

ترکیب سه زیر سیستم بنیادین معماری x86 یعنی Virtual Memory،   Memory Cache و Speculative Execution منجر به این آسیب پذیری شده است، در حالی که هیچ کدام از این زیر سیستم ها به تنهایی مسئول این نشت داده نیست. این موضوع که ترکیب چند زیر سیستم امن، لزوما امن نخواهد بود، یکی از اصول مهندسی سیستم های امن و یکی از موضوعات بسیار مورد توجه در حوزه مطالعات Noninterference است.

چکیده مقاله مربوطه:

“The security of computer systems fundamentally relies on memory isolation, e.g., kernel address ranges are marked as non-accessible and are protected from user access. In this paper, we present Meltdown. Meltdown exploits side effects of out-of-order execution on modern processors to read arbitrary kernel-memory locations including personal data and passwords. Out-of-order execution is an indispensable performance feature and present in a wide range of modern processors. The attack is independent of the operating system, and it does not rely on any software vulnerabilities. Meltdown breaks all security assumptions given by address space isolation as well as paravirtualized environments and, thus, every security mechanism building upon this foundation. On affected systems, Meltdown enables an adversary to read memory of other processes or virtual machines in the cloud without any permissions or privileges, affecting millions of customers and virtually every user of a personal computer. We show that the KAISER defense mechanism for KASLR  has the important (but inadvertent) side effect of impeding Meltdown. We stress that KAISER must be deployed immediately to preventlarge-scale exploitation of this severe information leakage.”

اشتراک گذاری

نکاتی درباره آسیب پذیری WPA2

همانطور که قبلاً گفتم امروز جزئیات حمله ای موسوم به KRACK که مخفف Key Reinstallation Attack هست، علیه پر استفاده ترین و (تا امروز) امن ترین پروتکل امنیتی شبکه بی سیم یعنی WPA2 توسط گروهی از پژوهشگران دانشگاه Leuven بلژیک و Alabama ایالات متحده (از جمله یکی از فارغ التحصیلان مهندسی کامپیوتر دانشگاه تهران) و چند پژوهشگر دیگر منتشر شد که در کنفرانس Balckhat 2017 اروپا ارائه خواهد شد و بازتاب های بسیار گسترده ای داشت. (لینک مقاله)

KRACK شامل ده آسیب پذیری کشف شده در WPA2 است. WPA2 بهترین و توصیه شده ترین پروتکل در دسترس جهت ایمن سازی شبکه بی سیم در کاربردهای خانگی، سازمانی و غیره است. نفوذگر با سوء استفاده از این آسیب پذیری‌ها، می تواند بدون در اختیار داشتن پسورد یا کلید اتصال به شبکه بی سیم، ترافیک شبکه را شنود و ارسال مجدد (Replay) کند و در حالت های خاصی امکان جعل بسته ها را هم خواهد داشت.
مبنای آسیب پذیری، در نوع طراحی و پیاده سازی Handshake اجرا شده بین کلاینت و Access Point در WPA2 (هنگام اتصال کلاینت به شبکه) و همچنین پارامترهای جانبی استفاده شده در WPA2 تحت حمله، نهفته است. به همین خاطر، این آسیب پذیری ربطی به محصول یا برند خاصی ندارد و تمام پیاده سازی های WPA2 را شامل می شود. لیست برندهای آسیب پذیر، که اکثر آنها الان اصلاحیه (Patch) مورد نیاز را منتشر کرده اند، در اینجا موجود است. برخی برندها مثل ویندوز و iOS به دلیل اینکه در پیاده سازی این Handshake به طور کامل از استاندارد IEEE 802.11i تبعیت نکرده اند، نسبت به برخی از این چند آسیب پذیری (نه همه آنها) مصون هستند!
ویدئویی از نحوه انجام حمله در اینجا ارائه شده است. حمله نیازمند ایجاد یک Access Point جعلی، با همان SSID و آدرس MAC متعلق به Access Point واقعی است. این یکی از نکاتی است که می تواند از نظر عملی، اجرای حمله را مشکل کند، اگر چه در مقاله ارائه شده، تمام این نکات جانبی به خوبی بررسی و حل شده است.

یکی از جذاب ترین بخش های این پژوهش از دید من آنجایی است که نویسندگان، وارد بحث اثبات ریاضی امنیت پروتکل (روش های فرمال یا صوری) شده اند. در واقع، ویژگی های امنیتی متنوعی برای WPA2 در پژوهش های قبلی اثبات شده است. نکته کلیدی آن است که حمله KRACK هیچ کدام از ویژگی های امنیتی اثبات شده به روش فرمال در پژوهش های قبلی را نقض نمی کند. مثلاً، ویژگی Key Secrecy کماکان در WPA2 آسیب پذیر نیز برقرار است، زیرا این حمله، کلید خصوصی نشست را برای نفوذگر افشا نمی کند:

“However, the proofs do not model key installation. Put differently, they do not state when the key is installed for use by the data confidentiality protocol. In practice, this means the same key can be installed multiple times, thereby resetting associated nonces and/or replay counters used by the data-confidentiality protocol.”
این پژوهش بر ضرورت عدم ابهام و توصیف صریح پروتکل هایی مثل IEEE 802.11i برای پیشگیری از تفسیرهای متفاوت در زمان پیاده سازی تأکید می کند. در اینجا، از ابهامی که در مقادیر مجاز شمارنده بسته Replay شده در زمان Handshake  سوء استفاده شده است. همچنین، همانطور که همیشه در روش های صوری توصیف و اثبات تأکید می شود، باید به تفاوت بین اثبات امنیت پروتکل، با پیاده سازی امن آن توجه کرد. در اینجا، اثبات فرمال امنیت Handshake پروتکل، در نظر نمی گیرد که طرفین چه زمانی مجاز به نصب کلید توافق شده نشست هستند. در نتیجه، یک کلید می تواند چندین بار نصب شود. این نقیصه فقط با بررسی کد پیاده سازی شده قابل کشف است، نه با خواندن اثبات ارائه شده برای توصیف سطح بالای پروتکل. در حالی که اثبات مورد بحث مربوط به سال ۲۰۰۵ است، آسیب پذیری ها در پیاده سازی پروتکل، از آن زمان تا کنون کشف نشده بودند.

به روز رسانی در ۹۶/۸/۱۲: اسلایدهای ارائه شده در کنفرانس ACM CCS 2017

به روز رسانی در ۹۶/۸/۲۲: مجموعه اسکریپت های تست آسیب پذیری

اشتراک گذاری