تا حالا فکر کردی چطور مدیران شبکه می‌تونن بدون اینکه پای تک تک دستگاه‌ها برن، از وضعیت روترها، سوئیچ‌ها، سرورها و حتی پرینترهای یه سازمان با صدها دستگاه مطلع بشن؟ جواب این سوال یه پروتکل ساده ولی قدرتمنده به اسم SNMP.

SNMP مخفف Simple Network Management Protocol (پروتکل ساده مدیریت شبکه) هست. این پروتکل از اواخر دهه ۸۰ میلادی وارد دنیای شبکه شد و هنوز هم بعد از چندین دهه، یکی از اصلی‌ترین ابزارهای مدیران شبکه برای مانیتورینگ، عیب‌یابی و حتی اعمال تنظیمات روی تجهیزات شبکه محسوب می‌شه.

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

پروتکل SNMP چگونه کار می‌کنه؟

به صورت سه رکن اصلی SNMP کار می‌کند .

۱ـ مدیر شبکه (NMS – Network Management Station): به سیستمی می‌گن که نقش کنترل مرکزی رو داره. مثل Zabbix، Nagios، PRTG یا SolarWinds. این نرم‌افزارها دائماً از تجهیزات سوال می‌کنن و اطلاعات جمع می‌کنن.

۲- عامل (Agent): یه نرم‌افزاره که روی دستگاه مدیریت‌شده (مثل روتر، سوئیچ، سرور لینوکسی) اجرا می‌شه. وظیفه‌ش اینه که به سوال‌های مدیر شبکه جواب بده و اگه اتفاق خاصی بیفته، خبر کنه.

۳ـ MIB (Management Information Base): می‌تونیم بهش بگیم «کتابخانه اطلاعاتی» دستگاه. MIB یه ساختار درختی داره که هر برگ اون (که بهش OID می‌گن) نمایانگر یه مشخصه خاص از دستگاه هست. 

نسخه‌های مختلف پروتکل SNMP (از v1 تا v3) :

۱. SNMPv1 (۱۹۸۸) :

این ورژن از پروتکل قدیمی‌ترین نسخه است که به صورت زیر عمل می‌کند .
· احراز هویت: فقط با «جامعه» (Community String) که مثل یه رمز عبور ساده عمل می‌کرد. دو تا community معروف داریم:
· public (دسترسی فقط خواندنی – Read-Only)
· private (دسترسی خواندن و نوشتن – Read-Write)
· مشکل امنیتی: اطلاعات به صورت متن ساده (Plain Text) تو شبکه رد و بدل می‌شه. یعنی هر کسی با یه sniffer می‌تونه community string رو ببینه.
· وضعیت امروز: به هیچ وجه نباید استفاده بشه، مگر تو شبکه‌های داخلی و ایزوله که تجهیزات قدیمی دارن.

۲. SNMPv2c (۱۹۹۳ – ۱۹۹۶) :

نسخه بهبودیافته: قابلیت GetBulk بهش اضافه شد که برای دریافت اطلاعات حجیم خیلی کاربردیه.
· امنیت: متأسفانه هنوز از همون community string و متن ساده استفاده می‌کنه. (حرف c توی اسمش اشاره به community داره)
· وضعیت امروز: رایج‌ترین نسخه‌ایه که روی خیلی از تجهیزات still استفاده می‌شه، چون راحت راه‌اندازی می‌شه. اما امن نیست!

۳. SNMPv3 (۲۰۰۲ – به بعد) :

این نسخه تحول عظیمی تو امنیت SNMP ایجاد کرد. سه تا ویژگی مهم داره:

· احراز هویت (Authentication): تضمین می‌کنه پیام از طرف یه منبع معتبر اومده (با الگوریتم‌های MD5 یا SHA).
· رمزنگاری (Encryption): با پروتکل DES یا AES کل پیام رو رمزنگاری می‌کنه تا کسی نتونه تو مسیر استراق سمع کنه.
· کنترل دسترسی (View-based Access Control Model): می‌تونیم تعیین کنیم هر کاربر چه بخشی از MIB رو ببینه یا تغییر بده.

حملات و آسیب‌پذیری‌های SNMP (با نگاهی به CVE-2025-20352) :

حالا می‌رسیم به بخش حساس ماجرا. SNMP یه پروتکل قدیمیه و کلی سوراخ امنیتی داره، مخصوصاً وقتی درست پیکربندی نشده باشه.

 

۱ـ حملات کلاسیک :

· شنود (Sniffing): تو نسخه ۱ و ۲، هر کس تو شبکه باشه می‌تونه community string رو با Wireshark ببینه.

· Brute Force: اگه community string ضعیف باشه (مثل public یا 1234)، هکر با ابزارهایی مثل onesixtyone می‌تونه تو چند ثانیه پیدا کنه.

· اطلاعات حساس: با یه SNMPwalk ساده (دستوری که کل MIB رو می‌خونه) می‌شه اطلاعات خیلی حساسی مثل پیکربندی، route table و … رو درآورد.

۲ـ جدیدترین تهدید: CVE-2025-20352 :

در سال ۲۰۲۵، یک آسیب‌پذیری خطرناک در پیاده‌سازی SNMP سیسکو کشف شد که خیلی سر و صدا کرد.

عنوان: Cisco SNMP Subsystem Arbitrary Code Execution

· شدت: بحرانی (Critical)

· جزئیات: این باگ به مهاجم اجازه می‌داد با فرستادن یه درخواست SNMP مخصوص، از راه دور روی دستگاه کد دلخواه خودش اجرا کنه (Remote Code Execution – RCE). بدترین بخش ماجرا این بود که حتی اگه SNMP فعال بود ولی community string رو نمی‌دونستی، بازم می‌تونستی حمله کنی!

· تجهیزات تحت تأثیر: مدل‌های خاصی از روترها و سوئیچ‌های سیسکو.

· راه حل: آپدیت firmware به نسخه‌های patched شده.

 

امن سازی پروتکل SNMP :

برای امن سازی این پروتکل در شبکه و استفاده به صورت ایمن میتوان موارد زیر را بر اساس سیاست های سازمانی خود پیاده سازی کرد.

۱- از SNMPv3 استفاده کن: این تنها راه مطمئنه. رمزنگاری و احراز هویت قوی رو فعال کن.

۲ـ پورت 161 رو از بیرون ببند: در فایروال، UDP port 161 و 162 (برای Trap) رو به روی اینترنت باز نذار. فقط از شبکه داخلی قابل دسترس باشه.

۳ـ به‌روزرسانی کن: همیشه فرمور تجهیزات رو به آخرین نسخه برسون تا آسیب‌پذیری‌های شناخته شده (مثل CVE-2025-20352) patch بشن.

4- مانیتورینگ لاگ: لاگ‌های مربوط به SNMP (مخصوصاً failed requests) رو چک کن تا حملات Brute Force رو زود تشخیص بدی.

5- استفاده از الگوریتم های رمز نگاری مانند MD5