MySQL

در حدود ۳ ماه پیش، ۲ آسیب‌پذیری حیاتی روز صفر(۱) در نرم‌افزار مدیریت پایگاه داده(۲) مشهور و پرطرفدار MySQL که در دنیا در جایگاه دوم رتبه‌بندی پایگاه‌های داده قرار گرفته است، گزارش شد:

  • MySQL Remote Root Code Execution (CVE-2016-6662)
  • Privilege Escalation (CVE-2016-6663)

در آن موقع، محقق امنیتی لهستانی به نام Dawid Golunski از شرکت Legal Hackers که این آسیب‌پذیری‌ها را کشف کرده بود، جزئیات فنی و کد بهره‌بردار را جهت اثبات ادعای(۳) مربوط به آسیب‌پذیری اول منتشر کرد و متعهد شد که جزئیات فنی مربوط به آسیب‌پذیری دوم (CVE-2016-6663) را در آینده نه چندان دور منتشر خواهد کرد.

Golunski در روز سه‌شنبه (۱ نوامبر ۲۰۱۶)، بهره‌بردار‌های مربوط به اثبات ادعای ۲ آسیب‌پذیری را منتشر کرد. یکی از این آسیب‌پذیری‌ها (CVE-2016-6663) همان آسیب‌پذیری حیاتی افزایش سطح دسترسی(۴) بود که از قبل متعهد شده بود جزئیات فنی آن را منتشر می‌کند[۱] و دیگری (CVE-2016-6664) یک اشکال افزایش سطح دسترسی مربوط به ریشه بود که می‌تواند به مهاجمان اجازه دهد تا کنترل کامل پایگاه داده را در دست گیرند[۲].

هر دوی این آسیب‌پذیری‌ها بر روی MySQL نسخه‌های ۵٫۵٫۵۱ و قبل از آن، نسخه ۵٫۶٫۳۲ و قبل از آن و نسخه ۵٫۷٫۱۴ و قبل از آن و همچنین شاخه‌های MySQL شامل Percona Server و MariaDB تأثیرگذار است.

آسیب‌پذیری افزایش سطح دسترسی/شرایط مسابقه (CVE-2016-6663

آسیب‌پذیری جدی‌تر در بین آسیب‌پذیری‌های کشف شده، اشکال شرایط مسابقه(۵) است که می‌تواند به یک حساب کاربری دارای سطح دسترسی پایین (با امتیازات CREATE/INSERT/SELECT) که به پایگاه داده آسیب‌دیده دسترسی دارد، اجازه دهد تا سطح دسترسی خود را افزایش داده و کد دلخواه خود را به عنوان یک کاربر سیستمی پایگاه داده اجرا کند (برای مثال ‘mysql’).

در هنگام بهره‌برداری، یک مهاجم می‌تواند به صورت موفقیت‌آمیزی به تمامی پایگاه داده از طریق سرور پایگاه داده آسیب‌دیده، دسترسی پیدا کند.

آسیب‌پذیری افزایش سطح دسترسی در سطح ریشه (CVE-2016-6664)

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

این اشکال در حقیقت، ریشه در کنترل ناامن فایل‌های error log و دیگر فایل‌ها دارد، که در سطح دسترسی کاربران سیستم قرار دارد و اجازه داده می‌شود که با یک فایل سیستمی دلخواه جایگزین شود که در نهایت منجر به سطح دسترسی‌های در حد ریشه می‌شود.

یک مهاجم با یک حساب کاربری با سطح دسترسی کم نیز می‌تواند از طریق بهره‌برداری اولیه از اشکال افزایش سطح دسترسی (CVE-2016-6663)، سطح دسترسی خود را افزایش داده و به یک کاربر سیستمی MySQL تبدیل شود و در نتیجه تمامی سرور مورد هدف را در معرض خطر قرار دهد.

تمامی این آسیب‌پذیری‌ها می‌تواند در محیط‌های میزبانی مشترک(۶) مورد بهره‌برداری قرار گیرد که در این محیط‌ها به کاربران دسترسی به پایگاه‌های داده جداگانه اختصاص داده شده است. در نتیجه با بهره‌برداری از این آسیب‌پذیری‌ها، مهاجمان می‌توانند به تمامی پایگاه‌های داده دسترسی پیدا کنند.

Golunski  برای هر دو آسیب‌پذیری کد بهره‌بردار را جهت اثبات ادعا منتشر کرده است و به زودی ویدیوهای مربوطه را بارگذاری خواهد کرد.

MySQL این آسیب‌پذیری‌ها را برطرف کرده است و تمامی وصله‌های مربوطه در به روز رسانی سه ماهه شرکت اوراکل در ماه اکتبر ۲۰۱۶ قرار گرفته است.

به مدیران سیستم قویاً پیشنهاد می‌شود تا این وصله‌ها[۳] را هر چه زودتر اعمال کرده تا از بهره‌برداری این آسیب‌پذیری‌ها توسط مهاجمان جلوگیری کنند.

اگر شما در حال حاضر قادر به اعمال این وصله‌ها نیستید، به عنوان یک روش جلوگیری موقتی می‌توانید پشتیبانی پیوند سیمبلیک(۷) در تنظیمات سرور پایگاه داده خود را غیرفعال کرده (my.cnf to symbolic-links = 0) و خود را نسبت به حملات مهاجمان محافظت کنید.

 

منابع

[۱] https://legalhackers.com/advisories/MySQL-Maria-Percona-PrivEscRace-CVE-2016-6663-5616-Exploit.html

[۲] https://legalhackers.com/advisories/MySQL-Maria-Percona-RootPrivEsc-CVE-2016-6664-5617-Exploit.html

[۳] http://www.mysql.com/downloads

[۴] http://thehackernews.com/2016/11/mysql-zero-day-exploits.html


(۱) zero-day
(۲) database management software
(۳) proof-of-concept
(۴) privilege escalation
(۵) race condition
(۶) shared hosting environments
(۷) symbolic link support