تالار گفتگوی کیش تک/ kishtech forum
پروتکل SMB - نسخه‌ی قابل چاپ

+- تالار گفتگوی کیش تک/ kishtech forum (http://forum.kishtech.ir)
+-- انجمن: پردیس فناوری کیش (http://forum.kishtech.ir/forumdisplay.php?fid=1)
+--- انجمن: فناوری اطلاعات و ارتباطات (http://forum.kishtech.ir/forumdisplay.php?fid=6)
+--- موضوع: پروتکل SMB (/showthread.php?tid=50480)



پروتکل SMB - Sadegh7 - 23-03-2021

پروتکل SMB در شبکه‌های رایانه‌ای امروزی رواج بسیار بالایی دارد. SMB protocol که بر اساس ساختار Server Message Block به وجود آمده است درواقع نسخه از پروتکل های ارتباط فایل‌ها با یکدیگر در شبکه یا همان CIFS (Common Internet File System) است. در سرویس SMB شما می‌توانید دسترسی به پرینترها و پورت‌ها و دیگر بخش‌ها در یک شبکه داشته باشید.
 پروتکل SMB چیست؟
امروزه بیشترین استفاده از پروتکل SMB در بین شبکه‌های مبتنی بر ساختار Microsoft Windows وجود دارد. در این سیستم از Active Directory به‌عنوان یکی از مهم‌ترین بخش‌ها در سیستم شبکه‌ای مبتنی بر Microsoft Windows Network یاد می‌شود. پروتکل SMB نیز بخشی از این ساختار به شمار می‌رود. در این ساختار شبکه خدمات متنوعی از قبیل اشتراک‌گذاری پرینتر، استفاده از سرورها و شبکه‌های LAN و پیام‌رسان‌های داخل شبکه‌ای و غیره به کاربران ارائه می‌شود.
[تصویر:  1015201.jpg]
پروتکل SMB چیست و چگونه کار می‌کند؟
پروتکل SMB در ساختار شبکه ویندوز به لایه‌های پایین تر برای انتقال اطلاعات نیازمند است. این پروتکل بیشتر از همه با NetBIOS و لایه TCP/IP فعالیت کرده و کمتر در لایه UDP کار کرد دارد. همچنین این پروتکل از پورت‌های TCP 137 و TCP 139 استفاده می‌کند.
نکته قابل توجه در خصوص این پروتکل این است که در ویندوز های سرور 2000 و 2003 از این پروتکل NetBIOS مورداستفاده است و در رایانه‌های مجهز به سیستم‌های 95-98-2000 و ایکس پی مورداستفاده است. به همین دلیلی در سرورهای نسخه ی 2008 به بعد از NetBIOS استفاده نمی‌شود. امروزه نسخه های مختلفی از پروتکل SMB وجود دارد. اولین نسخه آن به‌عنوان پروتکل SMB 1 وجود دارد و امروزه در آخرین نسخه از ویندوز با نام ویندوز 10 از آخرین نسخه موجود این پروتکل یعنی پروتکل SMB 3.1.1 استفاده می‌شود.
 تاریخچه پروتکل SMB
این پروتکل در سال 1983 و با هدف تبدیل داس به یک سیستم برای دسترسی به پرونده ها و فایل‌های موجود در سیستم استفاده شد. سال های بعد مایکروسافت این پروتکل را گسترش داد. در سال های 1990 یک نسخه جدید از آن را به صورت دائمی به نسخه های جدید ویندوز اضافه کرد.
این پروتکل به صورت جامع در ویندوز سرور 2000 مورداستفاده قرار داده شد. مشکل اصلی در آن زمان ناکارآمدی استفاده از این پروتکل در شبکه‌های بزرگ بود. آن زمان در شبکه‌های Wan این پروتکل در تخمین زده می‌شود که در حدود 10% از ترافیک شبکه را به خود اختصاص دهد ولی در عمل بیشتر از این مقدار بود. این مقدار در سیستم شبکه‌ای آن زمان مقدار بسیار بالایی بود و درصد بالایی از شبکه را تحت تصرف در می آورد.
در ویندوز سرور 2003 این معایب به صورت جامع برطرف شد و از روش ها و ابزار ها متنوعی برای بهبود ساختار آن استفاده شد. برای آنالیز شبکه نیز ابزارهای متنوعی در نسخه های بعدی ویندوز سرور اضافه شد. در آخرین نسخه مانند ویندوز 2016 نیز این ابزار برای بررسی بخش‌های مختلف SMB1 / CIFS استفاده‌شده است. درگذشته از این پروتکل برای استفاده در زیر شبکه‌های محلی استفاده می‌شده است؛ اما امروز به گسترش استفاده از این پروتکل از آن برای ایجاد دسترسی‌ها در شبکه‌های اینترنت استفاده می‌شود.
[تصویر:  1015202.jpg]
پروتکل SMB چیست و چگونه کار می‌کند؟
 سرویس SMB چیست؟
سرویس SMB درواقع مانند لوله‌ای است که رایانه‌های مختلف را به هم وصل کرده است و راه ارتباطی این بخش‌ها در طریق این لوله‌ها تأمین می‌شود. این روش درواقع اولین مکانیزم برای ایجاد دسترسی برای کاربران توسط برنامه نویسان بود. در این حالت مشتری برای اولین بار می‌تواند به‌راحتی به یک سرویس متصل شود و از آن استفاده کند.
سرویس‌های زیادی از سرویس SMB استفاده می‌کنند. برخی از سرویس‌های مهم مایکروسافت مانند DCE/RPC و MSRPC نیز از طریق SMB اجرا می‌شوند. در این حالت برنامه‌های خاصی را می‌توان از طریق این سرویس اجرا کرد. همچنین با استفاده از سرویس ها شما می‌توانید به‌راحتی فرایند احراز هویت را انجام دهید. مجوز های احراز هویت از طریق سرویس SMB عبور می‌کنند.
 پروتکل SMB چگونه فعالیت می‌کند؟
این پروتکل از یک سرویس دهنده یا همان سرور کار می‌کند. در این پروتکل مشتری درخواست های متعددی را به سمت سرور ارسال می‌کند و سرور بر اساس درخواست های دریافتی به آن‌ها پاسخ می دهد. در این بین بخشی از پروتکل SMB به دسترسی‌های مختلف به پرونده های مختلف در سرور مربوط است و اجازه دسترسی به آن‌ها طی مجوز های خاص صادر می‌شود. بخشی دیگر از آن نیز در ارتباط بین فرایندی است. این ارتباط معمولاً در شبکه‌های رایانه‌ای مبتنی بر ویندوز رخ می دهد و در آن ارتباط بین پردازش ها و رایانه ها از طریق پروتکل SMB برقرار می‌شود. در این حالت داده ها برای پردازش بین رایانه‌های مختلف جابه‌جا می‌شوند.
سرورهای مبتنی بر پروتکل SMB پرونده ها و دیگر منابع موجود خود را در شبکه در اختیار دیگر کاربران قرار می‌دهد. این امکانات از فایل‌ها تا چاپگر ها و پورت‌های به اشتراک گذاشته را شامل می‌شود. برای ایجاد دسترسی‌های مختلف به کاربران متنوع این پروتکل از روش های تایید اعتباری استفاده می‌کند. تقریباً در تمامی شبکه‌های سرور های  SMB  از اعتبار سنجی NT Domain برای ایجاد سطح دسترسی به کاربران استفاده می‌کنند.
[تصویر:  1015203.jpg]
پروتکل SMB چیست و چگونه کار می‌کند؟
 SMB protocol
همانطور که در توضیحات بالا نیز اعلام شد این پروتکل ممکن است ترافیک اضافه را روی روی شبکه تحمیل کند. برای جلوگیری از این ترافیک اضافه روی شبکه راهکار های مناسبی ایجاد شده است. بهترین و مناسب ترین راهکار برای استفاده از SMB protocol این است که از قابلیت نام‌گذاری سیستم ها در اینترنت یا همان domain Name System استفاده شود. استفاده از این قابلیت می‌تواند مشکلات مربوط به تحمیل ترافیک اضافه در SMB protocol را از بین ببرد. البته باید به این نکته توجه داشته باشید که ایجاد و استفاده از این راهکار نیز شرایط و سختی و پیچیدگی های خاص خود را دارد.
یکی دیگر از راهکاری کاهش ترافیک استفاده از SMB protocol استفاده از قابلیت Windows Internet Naming Service (WINS) است. البته تقریباً از زمان انتشار ویندوز 2000 استفاده از به بعد دیگر از این ویژگی در ویندوز استفاده نمی‌شود. امروزه تقریباً بهترین و کامل ترین راه حل برای حل مشکل ترافیک پروتکل SMB استفاده از قابلیت DNS است. نکته قابل توجه این است که از DNS در سیستم‌های رایانه‌ای قدیمی نیز می‌توان استفاده کرد و مشکلی در آن‌ها ایجاد نمی‌شود.
نسخه اولیه SMB protocol دارای مشکلاتی بود. محققان در نسخه شماره 1 SMB protocol به مشکلات آن و عدم چابکی این پروتکل پی بردند و به دنبال راه حلی برای آن بودند. یکی از مشکلاتی که باعث می‌شود SMB protocol سنگین باشد و ترافیک زیادی در شبکه ایجاد کند امضای دیجیتالی آن بود که یک سربار اضافی ایجاد می‌کرد و برای TCP این سربار اضافه بهینه نمی شد. در نسخه SMB protocol 2 این مشکل تا حد زیادی برطرف شد.
امنیت SMB protocol
مایکروسافت تا مدت‌ها برای بهبود پروتکل SMB و ساختار تایید هویت آن برنامه‌های جانبی زیادی به آن اضافه کرد. انواع افزودنی ها به این پروتکل اضافه شد. یکی از این برنامه ها ساختار تایید هویت Kerberos بود که یک نوع قابلیت رمز نگاری 40 بیتی را به پروتکل اضافه می‌کرد. در نتیجه ساختار رمزنگاری و تایید هویت این پروتکل دچار تغییر و تحول شد.
 با گذشت سال ها آسیب پذیری های زیادی در بخش پروتکل SMB مشاهده شد. از مهم‌ترین آسیب پذیری های این پروتکل بخش تایید هویت آن بود که در آن از ساختار های بروز تر مانند افزودنی های NTLMv2 و Kerberos استفاده‌شده است. امروزه بررسی ها نشان می دهد که پروتکل SMB یکی از مهم‌ترین بخش‌ها در زمان حملات سایبری به سیستم ها است. در سال 2014 حمله گسترده ای به سرورهای شرکت سونی پیکچرز انجام شده از طریق پروتکل SMB انجام شده و آسیب زیاد به شبکه این شرکت وارد کرد. در سال 2017 نیز باج افزار WannaCry از طریق حفره های این پروتکل توانست سیستم‌های زیادی را آلوده کند.
در سال 2020 نیز دو حفره امنیتی سطح بالا در پروتکل SMB به نام های SMBGhost (CVE-2020-0796) و SMBleed (CVE-2020-1206) کشف شد که می‌تواند امتیاز های زیادی برای دور زدن سیستم تایید هویت برای مهاجران فراهم کند. با این حال این پروتکل همچنان در شبکه‌های رایانه‌ای مبتنی بر ویندوز مورداستفاده است و هر ساله نیز امنیت آن بهبود پیدا می‌کند.





www.kishtech.ir