SMB چیست؟

پروتکل SMB یا Server Message Block Protocol، یک پروتکل به اشتراک گذاری فایل ها در اینترنت است که با تعامل بین کاربر و سرور صورت می گیرد؛ به این صورت که  در آن کاربر درخواستی برای دریافت یک فایل به سرور ارسال می کند و سرور پس از احراز هویت درخواست دهنده و تایید او، آن فایل را به کاربر ارائه می دهد؛ احراز هویت فرایندی است که یک کامپیوتر یا سرور برای تشخیص دیگری از آن استفاده می کند.

SMB یک پروتکل لایه ای کاربردی است که برای برقراری ارتباط TCP از پورت 445 استفاده می کند. دستوراتی که این پورت ارسال میکند SMB COMMAND نام دارند؛ دستور SMB مجموعه ای از پیام ها با کد دستوری منحصر به فرد است که برای انجام یک عملکرد خاص اجرا می شود.

این پروتکل اساسا یک شبکه مبتنی بر ویندوز است که به کاربران این امکان را میدهد تا فایل ها، پوشه ها و پرینتر ها را در اینترنت ایجاد، اصلاح و حذف  کنند.  با استفاده از پروتکل SMB، کاربر یک برنامه کاربردی می تواند به فایل های یک سرور یا منابع دیگر آن از راه دور دسترسی داشته باشد. 

پروتکل SMB

نسخه های پروتکل SMB

اولین بار که این پروتکل به کار افتاد، با نام SMB شناخته نشد، با نام سیستم فایل مشترک اینترنت  Common Internet File System  یا CIFS شناخته میشد. پس از آن اولین نسخه SMB وارد شد. پروتکل CIFS در سازمان های بزرگ که منابع اشتراکی شان زیاد می باشد مورد استفاده قرار می گرفت.

پروتکل CIFS اساسا در سیستم عامل ویندوز برای File Sharing مورد استفاده قرار می گیرد. البته پروتکل CIFS تنها در سیستم عامل ویندوز مورد استفاده قرار نمی گیرد و در سیستم عامل های یونیکس نیز می توان از آن استفاده نمود .

پروتکل CIFS بر اساس درخواست و پاسخ عمل می کند یعنی کلاینت با استفاده از پروتکل CIFS دسترسی به منابع به اشتراک گذاشته شده در شبکه را از سیستم سرور درخواست می کند و در مقابل، کامپیوتر یا سرور به وسیله پروتکل CIFS این منابع را در اختیار کلاینت قرار می دهد.

  • SMB 1.0: اولین نسخه این پروتکل با نام SMB با ویندوز 2000 وارد شد و توسط ویندوز XP، ویندوز سرور 2003 و ویندوز سرور 2003 R2 استفاده شد.
  • SMB 2.0: این نسخه  در ویندوز ویستا یعنی SP1 و بالاتر و معادل سرور آن یعنی ویندوز سرور 2008 مورد استفاده قرار میگرفت.
  • SMB 2.1: نسخه مورد استفاده در ویندوز 7 و ویندوز سرور 2008 R2 می باشد.
  • SMB 3.0: با راه اندازی ویندوز 8 و ویندوز سرور 2012، پروتکل SMB 3 هم وارد شد.
  • SMB 3.02: این نسخه برای ویندوز 8.1 و ویندوز سرور 2012 R2 معرفی شده است.
  • SMB 3.1.1: این نسخه با ویندوز 10 و ویندوز سرور 2016 منتشر شده است.

جدول نسخه های SMB

پروتکل SMB در لینوکس

تا اینجا میدانیم که برای به اشتراک گذاری فایل ها در سیستم عامل های ویندوز از پروتکل SMB استفاده میشود اما در لینوکس برای بهره بردن از این پروتکل باید از نسخه نرم افزاری آن یعنی SAMBA استفاده کرد. با این برنامه، کاربران لینوکسی میتوانند فایل ها را با کاربران ویندوزی به اشتراک بگذارند بدون این که تفاوت سیستم عاملی آن ها اختلالی در کارشان ایجاد کند.

samba موقع اجرا فایل  smb.conf را که در /etc/samba قرار دارد میخواند . این فایل متنی حاوی اطلاعاتی است درباره فایلهای به اشتراک گذاشته شده و پرینترها و سایر تنظیمات شبکه.

راه اندازی پروتکل SMB در لینوکس

برای راه اندازی پروتکل SMB در لینوکس و توانایی به اشتراک گذاری فایل بین لینوکس و ویندوز، باید از یک نسخه نرم افزاری آن را که SAMBA نام دارد استفاده کنید وآن را روی سرور اوبونتو خود نصب کنید. در ادامه مراحل راه اندازی SAMBA را برای شما بیان کرده ایم:

  • SAMBA server را نصب کنید
  • کاربر جدید را به گروه SAMBA اضافه کنید.
  •  تنظیمات سامبا را به کار با ویندوز 10 تغییر دهید.
  • سرویس samba را ری استارت کنید.
  • پوشه اوبونتو samba را در ویندوز باز کنید.

برای آشنایی کامل با نحوه راه اندازی پروتکل SMB در لینوکس به صفحه راه اندازی SAMBA در لینوکس مراجعه کنید. 

پروتکل SMB در مک

اگرچه برنامه هایی مانند Sharity و Dave به کاربران مک اجازه داده اند برای مدتی به SMB دسترسی پیدا کنند ، اما پس از مدتی قابلیت های SMB در سیستم عامل آن ساخته شدند. دو روش برای نصب SMB در OS X وجود دارد. یکی روش استفاده از Finder است و روش دیگر از راه دستور mount داخل یک پنجره Terminal می باشد.

راه اندازی پروتکل SMB در مک

در این بخش مراحل راه اندازی پروتکل SMB در مک را برای شما بیان کرده ایم.

  • در تنظیمات سیستم macOS، به Sharing رفته و File Sharing را فعال کنید.
  • به پوشه 7 بروید و به ترتیب وارد این پنجره ها بروید، تنظیمات> اتصالات> افزودن اتصال> سرور Windows SMB.
  • از IP address یا نام local hostname خود در قسمت URL استفاده کنید.
  • اطلاعات لاگین خود را که در اکانت مک استفاده می کنید، وارد کنید. 
  • Done را بزنید تا یک اتصال ایجاد کنید.
  • اتصال به شرط روشن بودن Mac در منطقه Wi-Fi لوکال شما کار خواهد کرد.

برای اطلاع کامل از نحوه راه اندازی پروتکل SMB به صفحه راه اندازی SMB در مک مراجعه کنید.

ویژگی های پروتکل SMB

با بالا رفتن نسخه های SMB ، سطح عملکرد آن نیز افزایش می یابد. در ادامه چند ویژگی مهم SMB آورده شده است:

  1. پروتکل SMB یک مکانیزم فرآیند ارتباط متقابل تأیید شده برای به اشتراک گذاشتن فایل ها یا منابع دیگر مثل  پوشه ها یا پرینتر ها  در سرور فراهم می کند.
  2. پروتکل SMB به مشتریان امکان ویرایش فایل ها، حذف آنها، اشتراک گذاری فایل ها، مرور شبکه، خدمات چاپ و غیره را از طریق شبکه فراهم می کند.
  3. نسخه 2 پروتکل SMB میزان استفاده از دستورات و زیرمجموعه های آن برای انتقال فایل به سراسر اینترنت را کم کرده. 
  4. SMB2 ازسیلینک یا سافت لینک که یک نوع لینک است که در آن به لینک یا دایرکتوری دیگر ارجاع داده شده است هم پشتیبانی میکند.

 

مقایسه پروتکل SMB با پروتکل CIFS

CIFS و SMB هر دو از لحاظ عملکردی در نسخه های اولیه خود یکسان هستند. همچنین گفته می شود که 1. CIFS نوعی پروتکل SMB است که به معمولا  در شرکت های بزرگتری نسبت به شرکت هایی که از SMB  استفاده میکنند، استفاده می شود، در غیر این صورت اگر قصد ایجاد یک شبکه رایانه ای را برای تجارت کوچک خود داشته باشید و از سیستم های ویندوز استفاده کنید، شبکه شما به پروتکل SMB متکی خواهد بود.

به طور کلی گفته می شود که CIFS نسخه dialect  از SMB است. برای تعیین نسخه ای از پروتکل که به آن گویش یا dialect گفته می شود، نیاز به مجموعه ای از پکت ها داریم. پروتکل CIFS ابتدا توسط مایکروسافت ایجاد شد و سپس توسط IBM ارتقاء داده شد.

در جهان امروز و دنیای ویندوز سرور با تمام فناوری های به روز شده، اکنون CIFS بسیار کمتر از SMB استفاده می شود. با وجود سطح بالایی از بررسی های احراز هویت موجود در CIFS هنگام انتقال فایل در سرور، پروتکل SMB از CIFS  پیشی گرفته است.

در CIFS، تعداد دستورات استفاده شده برای انقال فایل بیش از صد مورد بود، اما در پروتکل SMB تعداد دستورات تا حدود 19 عدد، کاهش کاهش یافته است که روشی بسیار مؤثر برای انتقال فایل از طریق سیستم است.

مقایسه SMBبا CIFS

حملات مبتنی بر پروتکل SMB

در حملات مبتنی بر پروتکل SMB، فرد مهاجم خود را وارد مسیر یک تبادل اطلاعات میکند، به این صورت که فرد سرور هدف که قصد تأیید اعتبار آن را دارد را انتخاب می کند و سپس منتظر می ماند تا شخصی در شبکه سیستم او را تأیید اعتبار کند.

حملات SMB از مهم ترین حملات شناخته شده برای اجرای کد در سیستم های ویندوز است و از آنجا که این یک حمله کد از راه دور است، مهاجمان می توانند در هر مکانی باشند. آنها فقط باید آسیب پذیری های یک سیستم را شناسایی کنند، از این امر سوء استفاده کنند، دستوراتی را روی سیستم اجرا کنند، بدافزارها را در محل مورد نظر قرار دهند و در مرحله بعد حمله انجام میشود.

از مزیت های حملات مبتنی بر پروتکل SMB این است که مهاجمان میتوانند دسترسی خود را در سیستم یه صورت جانبی گسترش دهند. 

سیستم های ویندوز بدون پچ می توانند هنگام اتصال به یک سیستمی که  آلوده  شده است، آلوده شوند و این حمله به نسبت نتیجه بالایی که میگیرد نیاز به تلاش کمتری دارد ، به همین دلیل حملات مبتنی بر پروتکل SMB بسیار رایج است.

معروف ترین حمله ای که روی پروتکل SMB انجام میشود حمله  WannaCry  است. این حمله از آسیب پذیری زیاد پروتکل  SMB با سوء استفاده از  EternalBlue صورت گرفت و در سراسر جهان برای یک سال و نیم ادامه داشت.

نمونه دیگر سوء استفاده از EternalBlue ، حمله Emotet است که بانک ها را مورد هدف قرار می دهد. از سوء استفاه های دیگر از ضعف پروتکل SMB میتوان به EternalRomance و Bad Rabbit و EternalEnergy اشاره کرد.  

محققان امنیتی یک آسیب پذیری حساس جدید را تحت عنوان “SMBleed” در پروتکل  SMB کشف کرده اند که می تواند به مهاجمان اجازه دهد به حافظه داخلی از راه دور نفوذ کنند و هنگامی که با یک  SMBGhost ترکیب شود ، به مهاجمان اجازه می دهد تا کنترل RCE روی سرور یا  SMB client را بدست آورند. SMBGhost  تهدیدی است که در سال 2020 گزارش داده شده و روی ویندوز 10 در صورتی که پچ نداشته باشد اثر میگذارد. 

حملات مبتنی بر پروتکل SMB

رفع آسیب پذیری پروتکل SMB

یکی از ساده ترین راه ها برای رفع این مشکل این است که پچ هایی که ویندوز برای ایرادات خود منتشر کرده را روی سیستم خود نصب کنید. البته این حمله ها بیشتر روی ویندوز پایین تر از 10 صورت می گیرد، پس در صورتی که سیستم شما ویندوز 10 است، این پچ ها روی سیستم شما به صورت پیش فرض قرار دارد.

یکی از راه های دیگر این است که شما ورودی و خروجی شبکه خود را به صورت انتخابی قرار دهید. مثلا فقط اجازه تبادل فایل های SMB و backup ها و ترافیک های کنترل کننده های دامنه را بدهید و بقیه ترافیک ها محدود شود. 

البته درصورتی که ویندوز شما پچ ندارد، بهترین راه امن بودن در مقابل حملات مربوط به SMB، استفاده نکردن از این پروتکل می‌باشد. در واقع از سال 2018 این پروتکل به صورت پیش فرض در ویندوز نصب نشده است. از آن پس برای به اشتراک گذاری فایل‌ها از یک سرور فایل اختصاصی یا یک راهکار مبتنی بر Cloud بایداستفاده کرد؛ برای استفاده از  پرینترهای شبکه‌ ای هم از پروتکل های دیگر استفاده می شود. 

در صورتی که نمیخواهید یا نمیتوانید پروتکل SMB خود را خاموش کنید، حداقل SMB1 را غیر فعال کنید. 

سوالات متداول SMB

 

پروتکل SMB یا Server Message Block Protocol، یک پروتکل به اشتراک گذاری فایل ها در اینترنت است که با تعامل بین کاربر و سرور صورت می گیرد؛ به این صورت که  در آن کاربر درخواستی برای دریافت یک فایل به سرور ارسال می کند و سرور پس از احراز هویت درخواست دهنده و تایید او، آن فایل را به کاربر ارائه می دهد.
Block Message Block (SMB) یک پروتکل شبکه است که کاربران را قادر می سازد تا با رایانه ها و سرورها از راه دور ارتباط برقرار کنند یعنی از منابع آنها استفاده کنند یا فایل ها را به اشتراک بگذارند و ویرایش کنند.
Block Message Block (SMB) یک پروتکل اشتراک مایکروسافت است که از پورت 445 برای به اشتراک گذاری فایل ها استفاده می کند. پورت 445 از نوع TCP می باشد.
جدیدترین مشکل امنیتی پروتکل SMB در ورژن 3 آن است که روی فشرده سازی PACKET ها تاثیر می گذارد، این مشکل به این صورت است که به مهاجمان اجازه می دهد تا بدافزار های قابل تکثیر ایجاد کند تا پس از آلوده کردن یک سیستم، سیستم دیگر را هم آلوده کند. البته مایکروسافت یک بسته امنیتی برای حل این مشکل تهیه کرده است.