چطور گرینچ کریسمس را دزدید؟
امسال گرینچ همه ی همت اش را برای ربودنِ کریسمس به کار برد، گرینچ که ۵۳ سال در غاری بالایِ شهر هوزها مخفی شده بود، امسال برایِ دزدیدن کریسمس از غارش بیرون آمد…
اگر در ماههایِ گذشته کمی پیگیر اخبارِ امنیتی در دنیایِ مجازی بودید حتماً تا کنون دریافتید که در این ماههایِ پایانیِ سالِ ۲۰۱۴، دنیایِ امنیت ماههایِ بسیار تیرهای را سپری کرد. از خونریزیِ قلبی در OpenSSL تا باگِ غیرقابلِ باور ShellShock در بش و بعد از آن رونمایی از عجیبترین بدافزارِ شناخته شده تا کنون با نامِ Regin و در آخرین روزهایِ سال نوبت رسید به گرینچ این ضدقهرمانِ داستانِ دکتر سوس که برایِ دزدیدنِ کریسمس آمده است.
در چند روزِ گذشته شرکت امنیتیِ Alert Logic گزارشی را منتشر کرد از وجودِ یک نفوذپذیریِ جدید در سیستم عاملهایِ مبتنی بر لینوکس/یونیکس که در تمامیِ نسخههایِ کلاینت، سرور و موبایل (اندروید) این مشکل وجود دارد و تا کنون هیچ وصلهیِ امنیتی برایِ آن ارائه نشده است. به دلیلِ اینکه بیش از ۶۵٪ وبسروهایِ جهان و نزدیک به ۴۵٪ گوشیهایِ هوشمند از سیستمعاملهای مبتنی لینوکس/یونیکس استفاده میکنند، وجود این باگ میتواند خطرِ بسیار بزرگی برایِ امنیتِ جهانِ مجازی در آستانهیِ سالِ ۲۰۱۵ تلقی شود، خطری که شاید بتواند کریسمس را از خیلیها بدزدد.
در این مقاله سعی شده به بیانِ مشکل پرداخته و راهِ حلِ موقتی که توسطِ شرکتِ Alert Logic ارائه شده، بیان شود تا بدین وسیله تا ارائهی وصلههایِ امنیتیِ موردِ نیاز بتوان از بروزِ مشکلاتِ جدی جلوگیری کرد.
گرینچ چطور از دودکش پایین میآید؟
شاید بتوان کلِ ماجرا را اینطور بیان کرد، به کمکِ این باگ، فردِ مهاجم میتواند بیشترین حدِ دسترسی را به سیستمعامل داشته باشد و از راه دور به نصبِ بدافزار، دزدیدنِ اطلاعات و یا انجام هر عملِ مخربِ دیگری اقدام کند.
این نفوذ پذیری که حجمِ عمدهای از سرورهایِ جهان، ابررایانهها، گوشیهایِ تلفنِ همراه و دستگاههایِ مبتنی بر اندروید (و یا هر گونه سیستم مبتنی بر هستهیِ لینوکس/یونیکس)، ارائه دهندههایِ خدماتِ ابری نظیرِ وب سرویسِ آمازون (AWS) و تقریباً هر سیستمی که لینوکس بر آن سوار شده را تهدید میکند، در آخرین روزهایِ سالِ میلادیِ ۲۰۱۴ به یکی از بزرگترین چالشهایِ امنیتی جهان مبدل شده.
Alert Logic در گزارشِ خود عنوان میکند که این مشکل از ماهِ اوت و در سیستمِ جدیدِ اعتبارسنجیِ لینوکس کشف شده که در آن اجازه میدهد کاربران با استفاده از مکانیزمِ wheel بتوانند سطحِ دسترسیِ خود را افزایش دهند.
Wheel یا چرخ که اصلاحی است که از کلمهیِ big wheel به معنیِ «کله گنده» گرفته شده، به گروهِ کاربریِ خاصی در لینوکس/یونیکس اطلاق میشوند که دسترسیِ بسیار بیشتری از دیگرِ کاربران دارند و از این امتیاز برخوردار هستند تا دستوراتی را بر رویِ سیستمعامل اجرا کنند که کاربرانِ عادی اجازهیِ اجرایِ آن را ندارند. کاربرانِ عضوِ این گروه میتوانند با اجرایِ دستورات با کمکِ su آن را با دسترسیهایِ کاربرِ ریشه اجرا کنند و در حقیقت در لباسِ کاربرِ ریشه ظاهر شوند.
لینوکس به محض ایجادِ یک کاربرِ جدید به صورتِ پیشفرض آن را در گروهِ کاربری wheel قرار میدهد.
شرکتِ امنیتیِ Alert Logic در ادامهیِ گزارشِ خود بیان میکند که اکوسیستمهایِ جدیدِ لینوکس/یونیکس سعی کردهاند با پیادهسازیِ روشهایِ جدید احرازِ هویت و تعینِ دسترسی، تا حد بسیار زیادی از آسیبپذیریهایی که به وسیلهیِ بیتِ تصادفیِ setuid به وجود آمده بود را از بین ببرند و این همانجایی است که مشکل بروز میکند. درواقع در قلبِ درمانِ ارائه شده راهکارهایی است برایِ نفوذ به سیستم. اگر به راهنمایِ polkit نگاهی بیندازید به سادگی متوجه خواهید شد که با استفاده از آن هر کاربری قادر خواهد بود تا با استفاده API مربوط به اعتبارسنجی، بیشترین سطحِ دسترسی در سیستم را دریافت کند.
در نتیجه این نفوذپذیری تا مهاجم بتواند از راهِ دور سیستم را کنترل کند، هر نوع اطلاعاتی را هدف قرار داده و به سرقت ببرد و یا هرگونه بدافزاری را به راحتی در سیستمِ قربانی نصب کند.
گرینچ چطور سگاش را شبیه به گوزنِ قطبی درست میکند؟
تا اینجا بیان شد که کاربری که در گروهِ کاربریِ wheel قرار دارد میتواند بیشترین دسترسی به سیستم را داشته باشد. این کاربر میتواند به سادگی هر گونه بسته ای را از مخازن دریافت و نصب کند بدونِ اینکه نیاز به اعتبارسنجی داشته باشد. این عمل به کمک ابزاری به نامِ (PKCon (PackageKit Console Client انجام میشود.
با استفاده از Pkcon ما این اجازه را داریم که عملِ نصبِ بسته ها را که نیاز به اجازهیِ دسترسیِ root را دارند بدونِ داشتنِ مجوزهایِ لازم انجام دهیم.
توضیح: در سیستمهایِ مبتنی بر دبیان گروهِ کاربری wheel وجود ندارد (تصویر نمایشی است!).
چطور از ورودِ گرینچ جلوگیری کنیم؟
تا کنون هیچ بستهیِ امنیتی برایِ رفع این مشکل ارائه نشده. Alert Logic به عنوان راهکارِ موقت پیشنهاد میکند کاربرانِ غیرِمجاز از دسترسیِ wheel خارج شوند.
برخی از سیاستهای PolKit توسطِ مسئولین امنیتِ سازمان بازنگری شود.
از آنجایی که مدیرِ سیستم معمولاً با سیستمِ مدیریتِ بستهیِ استاندارد کار میکند پس میتوان بستهیِ PKCon را از رویِ سیستم حذف کرد.
گرینچ یک افسانه است و کریسمس شادی داشته باشید.
در روزِ پنجشنبه کمپانیِ Red Hat و SANS به این گزارش واکنش نشان دادند، SANS در پستِ جالبی تحتِ عنوانِ «آیا گرینچِ polkit برایِ دزدیدنِ کریسمس میآید» که در وبلاگِ خود قرار داده مینویسد:
اخیراً شرکتِ Alert Logic متنی را منتشر کرده که در آن مشکلِ پیکربندیِ درستِ polkit را به عنوانِ یک نفوذپذیریِ خطرناک عنوان کرده.
[…]
چه کاری باید انجام بدهیم؟
اول از همه اینکه از کریسمس در آرامش و در کنارِ خانوادهیِ خود لذت ببرید. سپس در شبکه به دنبالِ افرادی بگردید که عضوِ گروهِ کاربریِ wheel هستند. شما باید تنها به مدیران اجازه بدهید که چنین دسترسی را داشته باشند. اگر شما روز اول ژانویه کمی زمانِ خالی دارید، کمی در موردِ PolKit مطالعه کنید و دانشِ خود را در موردِ تواناییهایِ آن بالا ببرید.
از آنجایی که polkit هنوز بسیار جوان است، تعداد زیادی از ادمینهایِ سرور شاید حتی نامِ آنرا نشنیده باشند پس نیازی نیست به این هشدارها زیاد توجه کنید.
[…]
من فکر نمیکنم که گرینچ بتواند به اندازهیِ ShellShock خطرآفرین باشد. ابتدا به رفع ShellShock اقدام کنید و بعد از آن فکری به حال این مشکل بکنید.
رد هت نیز در پست بسیار کوچکی در وبلاگ خود مینویسد:
گزارشهایی که در موردِ گرینچ منتشر شده نادرست است و ما نمیتوانیم گرینچ را به عنوانِ یک مشکلِ امنیتی طبقهبندی کنیم.
PKCon ابزاری است که به کاربرانِ عضوِ گروهِ کاربریِ wheel اجازه میدهد تا بدون نیاز به رمزِ عبور، مانندِ مدیران بتوانند به نصبِ نرمافزارها و بستهها بپردازند. برایِ این کار قبل از همه نیاز است تا کاربر دسترسی محلی به سیستم داشته باشد و به وسیلهیِ صفحهکلید و سیم به صورت فیزیکی به سیستم متصل باشد. یعنی اینکه اگر شما یک کاربر راه دور باشید و یا از طریق SSH بخواهید به سیستم متصل شوید میبایست برایِ نصبِ بسته ابتدا احرازِ هویت صورت بگیرد.
این قوانین در ردهت اینترپرایز ۷ قابل تنظیم است و برایِ کاربرِ راهِ دور، نصب بستهها نیاز به احرازِ هویت دارد. در ردهت اینترپرایز ۶ حتی کاربرانِ محلی نیز برایِ نصبِ بسته نیاز به احرازِ هویت دارند و برایِ نسخههایِ قدیمیترِ ردهت PackageKit ارائه نشده.
رد هت نمیتواند این مورد را به عنوان یک مشکل امنیتی و یا حتی باگ در نظر بگیرد. این رفتار دقیقاً همان چیزی است که از PackageKit console client انتظار میرود.
نتیجه گیری:
پس از همهیِ این جنجالها توصیه میکنم اول از همه ۲۶ دقیقه وقت بگذارید و انیمیشنِ جالبِ «گرینچ چگونه کریسمس را دزدید» را ببینید.
اینکه ما گرینچ را یک اشکالِ امنیتی فرض کنیم یا نه چندان تأثیری در اصلِ موضوع ندارد. PolKit میتواند امکاناتِ زیادی در اختیارِ ما قرار دهد که هنوز از آن بی خبریم. ابتدا کاربرانِ غیرِ ضروری را از گروهِ کاربریِ wheel خارج کنید و سپس به مطالعه و بررسیِ Polkit بپردازند.
۴۶ دقیقه وقت بگذارید و وبینارِ جالب و هیجان انگیزِ شرکتِ Alert Logic رو تماشا کنید.
در نهایت اینکه در هفتهیِ جاری سعی کنید از تعطیلات استفاده کنید، یاد بگیرید و دانش خود را به دیگران منتقل کنید.
پ ن ۱:این متن یک گزارش فنی نیست در نتیجه ممکن است مشکلاتی از نظر علمی و نگارشی در آن مشاهده شود. لطفا آنها را گزارش کنید.
پ ن ۲: یکی از اتفاقات جالب در هفته ی گذشته هک شدنِ سونی پیکچرز توسط ارتش سایبری کرهیِ شمالی بود که digitaltrends چندین پست را به آن اختصاص داده.
سلام
آیا همه سیستم عامل ها به تمام کاربران دسترسی wheel میدهند؟
و اطلا چراباید به هر کاربر این دسترسی داده شود؟؟
(لینوکس به محض ایجادِ یک کاربرِ جدید به صورتِ پیشفرض آن را در گروهِ کاربری wheel قرار میدهد.)
نه اصلا دبیان بیس ها wheel ندارن و تا جایی که می دونم بقیه سیستم ها به کاربر پیش فرض این دسترسی رو میدن