پرش به مطلب اصلی

شناخت سیستم‌عامل‌ها

وقتی درباره اسکن و شمارش (Enumeration) بحث کنیم، بیشتر درباره سیستم‌عامل‌ها صحبت خواهیم کرد، اما فعلاً علاقه‌مندیم تا مبانی هر یک از سیستم‌عامل‌های رایج در بازار امروز را تشریح کنیم.

«آشیل» (Achilles) از اساطیر یونان را به خاطر دارید؟ قهرمانی که به پاشنه‌اش تیر خورد و به همین دلیل مُرد؟ قبول دارم که این ساده‌سازی بیش از حدِ کل داستان است، اما نکته اینجاست که هنگام حمله یا تست نفوذ شبکه مشتری، شما باید پاشنه آشیل را پیدا کنید. ما لزوماً قرار نیست دائماً به یک راهکار فایروال کلاس جهانی ضربه بزنیم یا تلاش کنیم مستقیماً به سرور پایگاه داده بک‌اند حمله کنیم. ما قرار است آن یک سیستم کلاینت پچ‌نشده (Unpatched) یا وب‌سروری را پیدا کنیم که یک نسخه قدیمی IIS را اجرا می‌کند.

این صحبت‌ها چه ربطی به سیستم‌عامل‌ها دارد؟ سیستم‌عامل‌ها اگر توسط مدیر سیستم به درستی پیکربندی نشوند، آسیب‌پذیری‌های رایجی را ارائه می‌دهند، و هرچقدر هم که عجیب به نظر برسد، سازمان‌های زیادی هستند که نسخه‌ای از سیستم‌عامل را دقیقاً همان‌طور که از جعبه بیرون آمده (بدون پیکربندی امنیتی) اجرا می‌کنند.

مایکروسافت ویندوز (Microsoft Windows)

اگرچه سیستم‌عامل‌های مختلفی وجود دارد، اما به احتمال زیاد سیستم‌عامل هدف شما نسخه‌ای از ویندوز مایکروسافت خواهد بود. سیستم‌عامل‌های دیگری نیز وجود دارند که سهم بازار سازمانی خاصی دارند، اما مایکروسافت همچنان جای پای بسیار محکمی در بازار سیستم‌عامل دارد. تا پایان سال ۲۰۱۳، ویندوز سیستم‌عامل منتخب برای بیش از ۹۰ درصد بازار بود. این هدف بسیار بزرگی است! با انتشار ویندوز ۱۰، مایکروسافت هدف خود را رساندن سیستم‌عاملش به بیش از یک میلیارد دسکتاپ قرار داده است.

یادداشت

ویندوز مدت‌هاست که با مسئله عملکرد حساب کاربری در مقابل حساب مدیریتی (Administrative) دست و پنجه نرم می‌کند. اکثر کاربران قبلاً ۹۰ درصد مواقع به عنوان مدیر محلی (Local Administrator) وارد سیستم می‌شدند، صرفاً به این دلیل که اقدامات حساب کاربری بسیار محدود بود. کنترل حساب کاربری (UAC)، که در ویندوز ویستا معرفی شد، پاسخ مایکروسافت به این مسئله است.

بیایید نگاهی به برخی آسیب‌پذیری‌های رایج این حاکم بازار بیندازیم:

  • پچ‌ها، پچ‌ها و باز هم پچ‌های بیشتر: مایکروسافت، به عنوان غول سیستم‌عامل، دائماً پچ‌ها و سرویس پک‌هایی را برای سیستم‌عامل‌های خود تدوین و توزیع می‌کند. اما آن پچ‌ها ممکن است روی سیستم‌هایی که بیشترین نیاز را به آن‌ها دارند، نصب نشوند. هرچقدر هم که عجیب به نظر برسد، به‌روزرسانی مداوم خود می‌تواند به یک مشکل تبدیل شود. غیرمعمول نیست که یک پچ یا به‌روزرسانی اعمال شود و مشکلات دیگری را ایجاد کند که ممکن است بدتر از مشکل اصلی باشند.
  • انتشار نسخه‌های اصلی و پایان پشتیبانی: بر محصولات ویندوز تأثیر می‌گذارد. بله، من دوستانی دارم که هنوز عاشق ماشین‌های ویندوز ۹۸ خود هستند. این به معنای سیستمی با آسیب‌پذیری‌های متعدد صرفاً به دلیل سن است، به خصوص اگر آن سیستم دیگر توسط سازنده پشتیبانی نشود.
  • تلاش برای کاربرپسند بودن: مسیری دشوار برای مایکروسافت بوده است. این بدان معناست که اکثر نصب‌ها تنظیمات پیش‌فرض را مستقر می‌کنند و مقاوم‌سازی (Hardened) نمی‌شوند. برای مثال، پورت‌هایی که کاربر ممکن است هرگز استفاده نکند، باز گذاشته می‌شوند فقط برای این احتمال که برنامه‌ای در آینده به آن‌ها نیاز داشته باشد.
  • حساب‌های مدیر (Administrator): همچنان یک هدف وسوسه‌انگیز باقی مانده‌اند. اگرچه مایکروسافت گام‌های مؤثری در محافظت از کاربران در برابر اجرای کدهای ناخواسته یا مشکوک برداشته است، اما سیستم‌های زیادی وجود دارند که دائماً حساب‌های ادمین را بدون هیچ نوع فیلترینگ اجرا یا کنترل حساب کاربری اجرا می‌کنند.
  • رمزهای عبور: نیز نقطه ضعفی باقی مانده و هدفی وسوسه‌انگیز در دنیای ویندوز هستند. رمزهای عبور ضعیف حساب ادمین در کامپیوترها و شبکه‌های ویندوزی رایج است؛ اگرچه این رمزها در محیط سازمانی توسط Group Policy کنترل می‌شوند، راه‌هایی برای دور زدن این الزامات وجود دارد و بسیاری از مدیران سیستم دقیقاً همین کار را می‌کنند.
  • غیرفعال کردن فایروال ویندوز و آنتی‌ویروس: مسئله‌ای مداوم برای سیستم‌عامل‌های ویندوز است. مرکز اعلانات (Notification Center) کاربر را از نبود محافظت ویروس یا فایروال غیرفعال مطلع می‌کند، اما کار به همین جا ختم می‌شود. قبول داریم که این چیزی نیست که بتوان به راحتی اجباری کرد، بنابراین محافظت صحیح ویروس همچنان یک آسیب‌پذیری در دسته ویندوز باقی می‌ماند.
نکته

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

مک او‌اس (Mac OS)

اپل و سیستم‌عامل اختصاصی‌اش با تقویت یک کمپین تبلیغاتی قوی و محصولات آسان‌برای‌استفاده، حضور بازار بزرگتر و بزرگتری پیدا کرده‌اند. محصولات اپل اکنون نه‌تنها به استارباکس‌های محلی، بلکه به محیط‌های سازمانی نیز راه پیدا می‌کنند. در یک شرکت که اخیراً برای آن کار می‌کردم، با آیفون شروع شد. سپس ناگهان دیدیم آیپدها در راهروها حرکت می‌کنند. بعد دسکتاپ‌های iMac ناگهان روی میزهای کاربران ظاهر شدند.

آیا می‌توان آن‌ها را به عنوان اسباب‌بازی طبقه‌بندی کرد؟ شاید، اما مهم‌ترین نکته هم برای مدیران سیستم و هم برای پنتسترها این است که این چیزها به شبکه متصل هستند.

یک سایت جالب که می‌تواند برای مقایسه کلی آسیب‌پذیری‌های سیستم استفاده شود www.cvedetails.com است. یک بررسی سریع در سایت برای آسیب‌پذیری‌های Mac OS لیست قابل توجهی را نشان می‌دهد. ما قصد کوبیدن اپل را نداریم، اما این یک نگرانی قطعی و فزاینده برای مدیران سازمانی و یک هدف در حال رشد برای هکرهایی مثل ماست.

  • ذهنیت مالکان مک: یک نگرانی اصلی در میان کاربران مک و مزیتی برای جامعه هک، این ذهنیت است که مک‌ها مستعد ویروس یا حمله نیستند. این موضع جالبی است با توجه به اینکه چیزی که ادعا می‌کنند به طور طبیعی در برابر حمله نفوذناپذیر است، خب، یک کامپیوتر است! حتی در سال‌های دردناک خودم به عنوان مدیر سیستم، فرهنگ مشابهی حتی در سطح سازمانی وجود دارد. به یاد دارم که برای راهنمایی در مورد سیاست‌های گروهی (Group Policies) برای دسکتاپ‌های اپلِ تازه خریداری شده‌مان با دفتر ملی تماس گرفتم. پاسخ: «اوم، خب، ما هیچ سیاستی برای اعمال یا روشی برای اعمال آن‌ها نداریم.»
  • عملکرد غنی از ویژگی‌ها: عملکرد پر از ویژگی (Feature-rich) به صورت پیش‌فرض برای بسیاری از محصولات اپل، سطح حمله (Attack Surface) بسیار جذابی برای کسانی که به دنبال نفوذ هستند، ایجاد می‌کند. ویژگی‌هایی مانند وای‌فای 802.11 و اتصال بلوتوث همگی در نصب پیش‌فرض استاندارد هستند و همه این ویژگی‌ها به عنوان یک درگاه بالقوه برای ورود روی میز هستند.
  • اپل و دامین ویندوز: دستگاه‌های اپل به سادگی در دامین ویندوز خوب عمل نمی‌کنند. بله، گفتم. مطمئنم برخی به شدت مخالفت خواهند کرد، اما اپل در دامین ویندوز مثل مالیدن کره روی نان تست در ماه دسامبر در فضای باز داکوتای شمالی است (کنایه از دشواری و ناهماهنگی). برخی ویژگی‌ها به خوبی کار می‌کنند، اما اکثر ویژگی‌های اصلی کمی عجیب و غریب خواهند بود. نکته اینجاست که وقتی اوضاع بیش از حد عجیب و غریب می‌شود، مدیران و کاربران به یک اندازه شروع به دور زدن فرآیندهای عادی (برای مثال، رویه‌های ورود مناسب) خواهند کرد.

اندروید (Android)

سیستم‌عامل اندروید که اولین بار در نوامبر ۲۰۰۷ منتشر شد، به سرعت رشد کرد و پایگاه نصب خود را به بیش از یک میلیارد دستگاه در سراسر جهان گسترش داد. با چنین سیستم‌عامل گسترده‌ای، واقعیت این است که اگر در حال حاضر صاحب آن نیستید یا با آن روبرو نشده‌اید، در مقطعی با این پلتفرم روبرو خواهید شد.

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

در حال حاضر تخمین زده می‌شود که اندروید بر روی حداقل ۸۰ درصد یا بیشتر از گوشی‌های هوشمند مورد استفاده امروزی باشد. آمار مشابهی در دستگاه‌های تبلت نیز دیده می‌شود.

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

یادداشت

اندروید، دقیقاً مانند سیستم‌عامل لینوکس که از آن مشتق شده است، در نسخه‌های بسیار متفاوتی عرضه می‌شود. علاوه بر نسخه‌های رسمی، نسخه‌های بسیار سفارشی‌شده‌ای از اندروید وجود دارد، از جمله SlimRoms ،Dirty Unicorns و CyanogenMod.

لینوکس (Linux)

وارد محبوب اپن سورس ما، لینوکس شویم، که یک سیستم‌عامل کاملاً بی‌خطا نیست، اما شهرت آن را دارد که بازیگر بسیار امن‌تری در دسته سیستم‌عامل‌ها نسبت به ویندوز یا اپل باشد. همان‌طور که با فایروال‌ها دیدیم، تجهیزات — یا در این مورد سیستم‌عامل — تنها به اندازه مدیری که آن را پیکربندی می‌کند، امن است. در مورد لینوکس، این موضوع به‌ویژه صادق است زیرا سیستم‌عامل انتظار دارد کاربران بدانند چه کاری انجام می‌دهند.

نکته

برای کسی که وارد حوزه تست نفوذ می‌شود، یک توزیع لینوکس بسیار محبوب است و آن کالی لینوکس (Kali Linux) است. کالی توزیعی از لینوکس است که شامل تعدادی ابزار از پیش بارگذاری شده در سیستم است که اجازه می‌دهد طیف گسترده‌ای از حملات و تست‌ها انجام شود.

این سیستم‌عامل کار خوبی در جدا کردن وظایف مدیریتی از حساب‌های کاربری انجام داده است. کاربران لینوکس معمولاً تحت حساب مدیریتی به عنوان کاربر ارشد (Superuser) یا روت (Root) اجرا نمی‌شوند. این امر با تفکیک این عملکردها، ریسک سیستم را به میزان قابل توجهی کاهش می‌دهد.

متن‌باز (Open Source) بودن یک شمشیر دو لبه است. جامعه متن‌باز به سختی کار می‌کند تا حتی کوچک‌ترین مشکل را در تکرارهای مختلف لینوکس پیدا کند، اما متن‌باز بودن همچنین به معنای باز بودن آن است. هر کسی و همه کس به کد منبع دسترسی دارند. به عنوان یک محصول متن‌باز، مسئولیت تضمین امنیت و مقاوم‌سازی سیستم‌عامل کم‌وبیش بر دوش مدیری است که آن را نصب و نگهداری می‌کند. با داشتن مجموعه مهارت‌های مناسب، یک مدیر لینوکس میزان کافی از جزئیات (Granularity) را برای قفل کردن سیستم در اختیار دارد؛ فقط مسئله انجام دادن آن و انجام صحیح آن است.