Privilege Escalation چیست ؟
Privilege Escalation (ارتقاء دسترسی) به معنای دستیابی غیرمجاز به سطح بالاتری از دسترسیها یا امتیازات در یک سیستم است. این عمل زمانی اتفاق میافتد که یک کاربر (معمولاً یک مهاجم) بتواند دسترسیهای خود را از سطح کاربری محدود به سطح مدیریتی یا دسترسیهای بالاتر ارتقاء دهد.
دو نوع اصلی از Privilege Escalation وجود دارد:
- ارتقاء دسترسی افقی (Horizontal Privilege Escalation):
در این نوع، مهاجم دسترسی یک حساب کاربری دیگر با همان سطح دسترسی را به دست میآورد. به عنوان مثال، کاربری با دسترسی عادی به حساب کاربری دیگری با دسترسی مشابه دسترسی پیدا میکند. - ارتقاء دسترسی عمودی (Vertical Privilege Escalation):
در این نوع، مهاجم از سطح دسترسی پایینتر (مثلاً کاربر عادی) به سطح دسترسی بالاتری (مثل مدیر سیستم) دسترسی پیدا میکند. این نوع ارتقاء دسترسی بسیار خطرناکتر است، زیرا به مهاجم امکان اجرای دستورات مدیریتی و تغییرات کلان در سیستم را میدهد.
تکنیک های مورد استفاده هکرها در Privilege Escalation
هکرها از تکنیکهای مختلفی برای اجرای Privilege Escalation (ارتقاء دسترسی) استفاده میکنند که بسته به هدف، پلتفرم و شرایط سیستم متفاوت هستند. در زیر، برخی از رایجترین تکنیکهای مورد استفاده برای این کار آورده شده است:
- Exploiting Vulnerabilities (استفاده از آسیبپذیریها)
- CVEها و آسیبپذیریهای روز صفر (Zero-day Vulnerabilities): هکرها از آسیبپذیریهای شناختهشده (مثل CVEها) یا روز صفر در سیستمعاملها یا نرمافزارها استفاده میکنند. این آسیبپذیریها ممکن است منجر به اجرای کد در سطح دسترسی بالاتر شوند.
- Buffer Overflow (سرریز بافر): تکنیکی است که در آن مهاجم با ارسال دادههایی فراتر از ظرفیت بافر، کد مخربی را در حافظه قرار میدهد که میتواند منجر به اجرای دستورات در سطح دسترسی بالاتر شود.
- Exploiting Misconfigurations (سوءاستفاده از پیکربندیهای نادرست)
- Wrong File Permissions (دسترسیهای نادرست به فایلها): اگر فایلهای سیستمی مهم یا اجرایی بهطور نادرست پیکربندی شده باشند، مهاجم میتواند از آنها برای اجرای دستورات با سطح دسترسی بالاتر استفاده کند.
- Sudo Misconfigurations: استفاده نادرست از فرمان sudo میتواند به کاربران اجازه دهد دستورات با دسترسیهای root اجرا کنند. هکرها از این سوءاستفاده میکنند تا به دسترسیهای مدیریتی برسند.
- SUID/SGID Executables (باینریهای SUID/SGID): این فایلها در سیستمعاملهای یونیکس و لینوکس دارای امتیازات خاصی هستند. اگر باینریهای حساس با بیتهای SUID/SGID به درستی پیکربندی نشوند، مهاجم میتواند با استفاده از این فایلها دسترسیهای بالاتری بگیرد.
- Password Harvesting (دریافت رمز عبور)
- Credential Dumping (دریافت اطلاعات احراز هویت): هکرها ابزارهایی را برای استخراج اطلاعات احراز هویت از حافظه، فایلهای تنظیمات یا سیستمهای مدیریت کلید استفاده میکنند. مثلاً ابزارهایی مانند Mimikatz میتوانند رمزهای عبور یا هشهای رمز عبور را استخراج کنند.
- Keylogger (ضبطکننده کلیدهای فشردهشده): نصب نرمافزارهای keylogger به مهاجم اجازه میدهد که تمام کلیدهای فشردهشده، از جمله رمزهای عبور را جمعآوری کند.
- Pass-the-Hash Attack: در این تکنیک، مهاجم به جای رمز عبور، از هش رمز عبور برای احراز هویت استفاده میکند.
- Social Engineering (مهندسی اجتماعی)
- Phishing (فیشینگ): هکرها با فریب کاربران، آنها را ترغیب به ارائه اطلاعات حساس مثل رمزهای عبور میکنند.
- Spear Phishing: حمله هدفمند به یک فرد یا گروه خاص با استفاده از ایمیلها یا پیامهای بهظاهر معتبر برای به دست آوردن اطلاعات حساس یا دسترسیهای بالاتر.
- DLL Injection (تزریق DLL)
- در سیستمهای ویندوز، هکرها میتوانند با تزریق یک فایل DLL مخرب به یک برنامه معتبر، کد خود را با دسترسیهای آن برنامه اجرا کنند و به این طریق به دسترسیهای بالاتری برسند.
- Token Impersonation (تقلید از توکنهای احراز هویت)
- در سیستمهای ویندوز، توکنهای امنیتی برای تعیین سطح دسترسی کاربر استفاده میشوند. مهاجم میتواند با سرقت یا تقلید از این توکنها، به دسترسیهای مدیر سیستم برسد.
- Escalating Through Kernel Vulnerabilities (استفاده از آسیبپذیریهای هسته سیستمعامل)
- هکرها از آسیبپذیریهای هسته (kernel) سیستمعامل سوءاستفاده میکنند تا دسترسی root یا سیستم را به دست بیاورند. آسیبپذیریهای kernel به دلیل تأثیر بالایی که دارند، یکی از ابزارهای اصلی برای ارتقاء دسترسی هستند.
- Scheduled Tasks/Jobs (وظایف زمانبندیشده)
- اگر وظایف زمانبندیشده (مثلاً cron jobs در لینوکس یا scheduled tasks در ویندوز) به درستی پیکربندی نشده باشند، مهاجم میتواند آنها را برای اجرای دستورات مخرب با سطح دسترسی بالا تغییر دهد.
- Abusing Group Policy Preferences (استفاده از تنظیمات گروهی)
- در ویندوز، تنظیمات Group Policy Preferences (GPP) گاهی به صورت نادرست پیکربندی میشوند و شامل اطلاعات احراز هویت رمزگذاری نشده یا ضعیف هستند که هکرها میتوانند به راحتی آنها را استخراج کرده و برای ارتقاء دسترسی استفاده کنند.
- Path Hijacking (ربودن مسیر اجرای برنامه)
- هکرها میتوانند با تغییر مسیر فایلهای اجرایی معتبر (مانند فایلهای باینری یا اسکریپتهای اجراشده توسط سیستم)، کدهای مخرب خود را با دسترسیهای بالا اجرا کنند.
- Bypassing User Account Control (UAC) در ویندوز
- User Account Control (UAC) یک مکانیسم امنیتی است که مانع از اجرای دستورات مدیریتی بدون تأیید کاربر میشود. با این حال، هکرها میتوانند از آسیبپذیریهای UAC برای اجرای کد بدون نیاز به تأیید استفاده کنند.
- Abusing Weak Service Configurations (سوءاستفاده از پیکربندیهای ضعیف سرویسها)
- اگر یک سرویس به درستی پیکربندی نشده باشد یا به عنوان کاربری با سطح دسترسی بالا اجرا شود، هکرها میتوانند از این موضوع برای اجرای کد مخرب در سطح دسترسی بالا استفاده کنند.
این تکنیکها تنها بخشی از ابزارهایی هستند که مهاجمان برای ارتقاء دسترسی استفاده میکنند. آگاهی از این تکنیکها برای متخصصان امنیت سایبری اهمیت دارد تا بتوانند سیستمهای خود را در برابر چنین حملاتی مقاوم کنند.
روش های جلوگیری از Privilege Escalation
برای جلوگیری از Privilege Escalation (ارتقاء دسترسی) در سیستمها و شبکهها، میتوان از روشها و بهترین شیوههای زیر استفاده کرد:
- مدیریت دقیق دسترسیها
- Principle of Least Privilege (اصل حداقل دسترسی): به کاربران تنها دسترسیهایی اعطا شود که برای انجام وظایفشان ضروری است. این کار به کاهش احتمال سوءاستفاده کمک میکند.
- Review and Revoke Access (بررسی و لغو دسترسیها): بهطور منظم دسترسیهای کاربران را بررسی کنید و دسترسیهای غیرضروری را لغو کنید.
- پیکربندی صحیح سیستم
- Secure Configuration (پیکربندی امن): سیستمها و نرمافزارها باید بهگونهای پیکربندی شوند که حداقل آسیبپذیریها را داشته باشند.
- Disable Unused Services (غیرفعال کردن خدمات غیرضروری): خدماتی که استفاده نمیشوند، باید غیرفعال شوند تا از نقطهضعفهای احتمالی جلوگیری شود.
- نظارت و ثبت فعالیتها
- Audit Logging (ثبت فعالیتها): تمامی فعالیتهای کاربری و تغییرات در سیستم باید ثبت شوند. این کار به شناسایی فعالیتهای مشکوک کمک میکند.
- Regular Audits (بازرسیهای منظم): بهطور دورهای سیستمها را بررسی کنید تا اطمینان حاصل شود که دسترسیها و پیکربندیها بهدرستی تنظیم شدهاند.
- بروزرسانی و وصلهگذاری
- Patch Management (مدیریت وصلهها): بهطور مرتب نرمافزارها و سیستمعاملها را بروزرسانی کنید تا از آسیبپذیریهای شناختهشده جلوگیری شود.
- استفاده از نرمافزارهای امنیتی
- Antivirus/Anti-malware (نرمافزارهای ضد ویروس و ضد بدافزار): از نرمافزارهای امنیتی معتبر برای شناسایی و حذف بدافزارها استفاده کنید.
- Intrusion Detection/Prevention Systems (سیستمهای تشخیص/جلوگیری از نفوذ): این سیستمها میتوانند فعالیتهای مشکوک را شناسایی و مانع از آنها شوند.
- آموزش کاربران
- Security Awareness Training (آموزش آگاهی از امنیت): به کاربران در مورد خطرات مهندسی اجتماعی و حملات فیشینگ آموزش دهید و آنها را به رعایت نکات امنیتی ترغیب کنید.
- استفاده از Multi-Factor Authentication (احراز هویت چندعاملی)
- استفاده از احراز هویت چندعاملی برای تأیید هویت کاربران، به ویژه برای دسترسیهای حساس، میتواند از دسترسیهای غیرمجاز جلوگیری کند.
- محدود کردن استفاده از حسابهای مدیریتی
- Use Dedicated Admin Accounts (استفاده از حسابهای مدیر اختصاصی): از حسابهای مدیریتی فقط برای کارهای ضروری استفاده کنید و از حسابهای عادی برای انجام وظایف روزمره استفاده کنید.
- امنیت نرمافزارها و باینریها
- Code Signing (امضای کد): از امضای دیجیتال برای تأیید صحت نرمافزارها و جلوگیری از اجرای نرمافزارهای مخرب استفاده کنید.
- Secure File Permissions (دسترسیهای امن فایل): اطمینان حاصل کنید که فایلها و باینریهای حساس با دسترسیهای مناسب پیکربندی شدهاند.
- تنظیمات امنیتی در ویندوز
- User Account Control (UAC): از قابلیت UAC در ویندوز استفاده کنید تا از کاربران بخواهید تا برای انجام تغییرات با دسترسیهای بالا تأیید کنند.
- Windows Defender: از Windows Defender یا سایر ابزارهای امنیتی ویندوز برای شناسایی و حذف تهدیدات استفاده کنید.
با اتخاذ این روشها و بهترین شیوهها، میتوان احتمال وقوع Privilege Escalation و سایر حملات سایبری را بهطور قابلتوجهی کاهش داد.