کنترل نرمافزارهای مجاز و غیرمجاز؛ Inventory نرمافزار در امنیت شبکه

کنترل نرمافزارهای مجاز و غیرمجاز در ظاهر ساده است، اما در عمل یکی از پایههای مهم امنیت است. اگر ندانیم روی سیستمها چه نرمافزاری نصب شده، نمیتوانیم درباره ریسک، آسیبپذیری، لایسنس، دسترسیها یا حتی مصرف منابع درست تصمیم بگیریم. خیلی از نفوذها از جایی شروع میشوند که یک ابزار ناشناس، نسخه قدیمی، نرمافزار کرکشده یا برنامهای که برای یک تست کوتاه نصب شده، ماهها روی سیستم باقی مانده است.
هدف این کنترل این است که فقط نرمافزارهای مورد نیاز، تاییدشده و قابل پشتیبانی روی سیستمها اجرا شوند. این موضوع فقط برای کلاینتها نیست. سرورها، تجهیزات مدیریتی، ماشینهای ادمین، ابزارهای شبکه، پلاگینهای مرورگر، agentها و حتی scriptهایی که در مسیرهای حساس اجرا میشوند باید قابل شناسایی و کنترل باشند.
اول باید بدانید چه چیزی نصب شده است
قبل از هر سیاستی باید موجودی نرمافزارها مشخص باشد. بدون inventory، کنترل نرمافزار فقط حدس زدن است. باید بدانیم روی هر سیستم چه برنامهای نصب شده، نسخه آن چیست، چه کسی مالک آن است، برای چه کاری استفاده میشود، از کجا نصب شده و آیا هنوز پشتیبانی میشود یا نه.
در شبکههای کوچک شاید بتوان با ابزارهای ساده و گزارشگیری دورهای شروع کرد. در محیطهای بزرگتر بهتر است از EDR، ابزار مدیریت دارایی، SCCM، Intune، MDM، vulnerability scanner یا agentهای inventory استفاده شود. نکته مهم این است که گزارش فقط تولید نشود؛ کسی باید آن را بخواند، موارد ناشناس را بررسی کند و وضعیت را اصلاح کند.
لیست مجاز و لیست غیرمجاز
دو نگاه اصلی وجود دارد: allowlist و blocklist. در allowlist فقط نرمافزارهای تاییدشده اجازه نصب یا اجرا دارند. در blocklist نرمافزارهای خطرناک یا ممنوع بسته میشوند. برای سیستمهای حساس، allowlist امنتر است؛ اما اجرای آن سختتر است و نیاز به شناخت دقیق فرآیندها دارد. برای کلاینتهای عمومی، ترکیب allowlist برای بخشهای حساس و blocklist برای نرمافزارهای پرریسک معمولا عملیتر است.
- نرمافزارهای ضروری و مورد تایید را مشخص کنید.
- نرمافزارهای کرکشده، ناشناس، remote access غیرمجاز و ابزارهای دور زدن فیلتر را ممنوع کنید.
- برای ابزارهای ادمین مثل PuTTY، WinSCP، Nmap، Wireshark یا PowerShell سیاست مشخص داشته باشید.
- نسخههای قدیمی و بدون پشتیبانی را جداگانه پیگیری کنید.
نرمافزار غیرمجاز فقط بازی و ابزار اضافی نیست
گاهی وقتی صحبت از نرمافزار غیرمجاز میشود، ذهن به سمت برنامههای معمولی یا سرگرمی میرود. اما در امنیت شبکه، نرمافزار غیرمجاز میتواند خیلی جدیتر باشد: ابزار remote access بدون تایید، نسخه قدیمی Java یا Flash، پلاگین مرورگر ناشناس، ابزارهای packet capture روی سیستم غیرمرتبط، clientهای VPN متفرقه، ابزارهای sync فایل، نرمافزار کرکشده یا برنامهای که از یک سایت نامعتبر دانلود شده است.
این موارد ممکن است در ظاهر برای کار روزمره نصب شده باشند، اما هرکدام میتوانند مسیر نشت اطلاعات، اجرای کد مخرب یا دسترسی غیرقابل کنترل بسازند. مخصوصا روی سیستمهای ادمین، وجود ابزارهای اضافی خطر بیشتری دارد؛ چون اگر همان سیستم آلوده شود، دسترسیهای بالاتری در اختیار مهاجم قرار میگیرد.
کنترل نصب نرمافزار
اگر کاربران بتوانند آزادانه هر نرمافزاری نصب کنند، inventory همیشه عقبتر از واقعیت خواهد بود. باید مشخص باشد چه کسانی اجازه نصب دارند، درخواست نصب چطور ثبت میشود، چه کسی آن را تایید میکند و نصب از چه منبعی انجام میشود. بهترین حالت این است که نصب از repository یا portal داخلی انجام شود، نه از فایلهای پراکنده دانلودشده از اینترنت.
برای کلاینتها میتوان از Group Policy، Intune، AppLocker، Windows Defender Application Control، MDM یا ابزارهای مشابه استفاده کرد. برای سرورها باید نصب نرمافزار بخشی از change management باشد. روی سرور production نصب ابزار موقت برای عیبیابی باید ثبت شود و بعد از پایان کار پاک شود.
نسخه نرمافزار به اندازه نام آن مهم است
داشتن یک نرمافزار مجاز کافی نیست؛ نسخه آن هم باید امن و پشتیبانیشده باشد. مثلا یک مرورگر، Java runtime، VPN client یا نرمافزار بکاپ ممکن است در اصل مجاز باشد، اما نسخه قدیمی آن آسیبپذیری شناختهشده داشته باشد. بنابراین inventory باید نسخه را هم ثبت کند و با چرخه patch و vulnerability management وصل باشد.
برای نرمافزارهای پرکاربرد، بهتر است policy روشن وجود داشته باشد: حداقل نسخه قابل قبول چیست، آپدیت چقدر سریع انجام میشود، چه کسی مسئول تست است و اگر نسخه جدید با سیستم داخلی ناسازگار بود، کنترل جبرانی چیست.
ابزارهای مدیریتی را جداگانه ببینید
ابزارهای شبکه و امنیت مثل SSH client، RDP manager، VPN client، ابزار اسکن، ابزار backup، consoleهای مدیریتی و scriptهای automation باید با حساسیت بیشتری کنترل شوند. این ابزارها در دست آدم درست لازم و مفید هستند، اما روی سیستم اشتباه یا با تنظیمات بد میتوانند ریسک بسازند.
برای سیستمهای ادمین بهتر است لیست ابزارهای مجاز جداگانه تعریف شود. همچنین محل ذخیره credentialها، sessionهای ذخیرهشده، کلیدهای SSH و فایلهای config باید بررسی شود. گاهی مشکل از خود نرمافزار نیست؛ از این است که رمزها و sessionها کنار آن بدون محافظت مناسب ذخیره شدهاند.
مرورگر و افزونهها را فراموش نکنید
امروزه بخش زیادی از کارها از مرورگر انجام میشود. افزونههای مرورگر میتوانند به صفحهها، cookieها، فرمها و اطلاعات حساس دسترسی داشته باشند. بنابراین کنترل نرمافزار باید افزونهها را هم شامل شود. افزونه ناشناس یا قدیمی روی سیستم ادمین میتواند به اندازه یک نرمافزار نصبشده خطرناک باشد.
برای مرورگرها بهتر است افزونههای مجاز مشخص شوند، نصب افزونههای ناشناس محدود شود و آپدیت مرورگرها به صورت منظم انجام شود. این موضوع برای تیمهایی که با پنلهای مدیریتی، هاست، ایمیل، سیستمهای مالی یا ابزارهای ابری کار میکنند مهمتر است.
حذف نرمافزارهای بدون مالک
هر نرمافزار باید مالک داشته باشد. اگر کسی نمیداند یک برنامه چرا نصب شده، چه کسی از آن استفاده میکند و آیا هنوز لازم است یا نه، آن برنامه یک ریسک مدیریتی است. نرمافزارهای بدون مالک معمولا patch نمیشوند، لایسنسشان بررسی نمیشود و در زمان حادثه هم کسی مسئولیت آنها را نمیپذیرد.
در بازبینی دورهای، نرمافزارهای بدون استفاده، نسخههای قدیمی، ابزارهای تستی و برنامههای نصبشده توسط vendor باید بررسی شوند. اگر لازم نیستند، حذف شوند. اگر لازم هستند، owner و چرخه نگهداری مشخص شود.
ارتباط با کنترل بدافزار
کنترل نرمافزارهای مجاز و غیرمجاز مستقیما به مقابله با بدافزار کمک میکند. وقتی فقط برنامههای شناختهشده اجازه اجرا داشته باشند، اجرای فایلهای ناشناس، dropperها و ابزارهای مخرب سختتر میشود. البته این کنترل جای EDR یا آنتیویروس را نمیگیرد، اما سطح دفاع را قویتر میکند.
در سیستمهای خیلی حساس، application control میتواند جلوی اجرای فایل از مسیرهای موقت، پوشه download، profile کاربر یا مسیرهای ناشناس را بگیرد. این کار باید با تست انجام شود، چون اگر خام اجرا شود ممکن است کارهای عادی را مختل کند.
چکلیست سریع کنترل نرمافزار
- آیا inventory نرمافزارها بهروز و قابل گزارشگیری است؟
- آیا برای نرمافزارهای مجاز و غیرمجاز سیاست مشخص دارید؟
- آیا کاربران عادی امکان نصب آزادانه نرمافزار دارند؟
- آیا نسخه نرمافزارها و وضعیت patch آنها بررسی میشود؟
- آیا ابزارهای remote access و ابزارهای ادمین کنترل میشوند؟
- آیا افزونههای مرورگر در سیاست نرمافزار دیده شدهاند؟
- آیا نرمافزارهای بدون مالک و قدیمی حذف یا تعیین تکلیف میشوند؟
برداشت عملی از کنترل نرمافزارهای مجاز و غیرمجاز
کنترل نرمافزارهای مجاز و غیرمجاز یعنی بدانیم چه چیزی در شبکه اجرا میشود و اجازه ندهیم سیستمها به مرور پر از ابزارهای ناشناس، قدیمی و پرریسک شوند. این کنترل وقتی ارزش دارد که با inventory، patch management، مدیریت دسترسی، EDR و change management وصل باشد. نتیجه آن شبکهای است که کمتر غافلگیر میشود و در زمان بررسی حادثه، تصویر روشنتری از وضعیت واقعی دارد.

چرا به امنیت شبکه و فناوری اطلاعات نیاز داریم
امنسازی CentOS 7 با CIS؛ نکات مهم بعد از پایان عمر
کنترل امنیت شماره ۱۷: آموزش امنیتی؛ چیزی که ابزار جای آن را نمیگیرد
راهنمای خواندن دیتاشیت فایروال؛ چرا اعداد کارایی همیشه واقعی نیستند؟