با رشد و توسعه پیام رسان های ارتباطی و شبکه های اجتماعی، امروزه ایمیل ها از کارکرد سنتی خویش که فقط برای ارسال پیام های شخصی مورد استفاده قرار می گرفتند فاصله زیادی گرفته و از آنها بیشتر برای انجام مکاتبات اداری و رسمی استفاده می شود. همزمان با استفاده از این سرویس، قاعدتاً مثل هر خدمت فناورانه دیگر، موضوع امنیت آن نیز از اهمیت بسیار ویژه ای برخوردار است.
در این مطلب از فراست، به بررسی امنیت سرورهای ایمیل و روش های حفاظت از آنها میپردازیم. راهکارهای امنیتی که در این مطلب به آنها اشاره شده به شما امکان میدهد امنیت سرورهای ایمیل تان را تا حد زیادی افزایش داده و از وقوع حملات موفق بر ضد آن جلوگیری کنید.
چالشهای امنیت نرمافزاری سرور
با توسعه مداوم فناوری اطلاعات، نقش امنیت سایبری بیشتر و پررنگتر از گذشته شده است. هر چند تصور دنیای مدرن بدون وجود ارتباطات دائم از طریق شبکه غیرممکن است اما تقریباً تمام دادههای ارزشمندی که هدفی برای حملات سایبری هستند به شکلهای مختلف بر روی سرورها ذخیره شده اند. نیازی به گفتن نیست که ثبات و پایداری کل سیستم، بستگی به سرورها دارد. به همین دلیل است که سرورها هدف بسیار محبوب و جذابی برای حملات مخرب هکرها و نفوذگران سایبری محسوب می شوند.
امنیت سرورهای ایمیل
امنیت سرورهای ایمیل از جمله موارد بسیار مهم و ضروری است که می بایست به آن توجه جدی شود؛ چرا که ایمیل هنوز هم یکی از ابزارهای پراستفاده برای برقراری ارتباطات و انجام مکاتبات است. به طور خاص برای کسب و کارها از دست رفتن دادههای محرمانه میتواند منجر به آسیب های اقتصادی فاجعه باری شود. همچنین مهم است که سرور به صورت پایدار و بی وقفه فعالیت کرده تا کاربران بتوانند در هر زمانی به آن دسترسی داشته باشند. اگر به هر دلیلی در عملکرد سرور اختلال ایجاد شود، ممکن است این امر منجر به از دست رفتن مشتریان یا ایجاد مشکلات جدی برای آن کسب و کار شود.
روشهای استاندارد محافظت از نرمافزارها
به منظور پیشگیری از ایجاد مشکل در ثبات و پایداری، از دست رفتن دادهها و سایر اتفاق های ناگوار باید به توصیههای امنیتی درباره نحوه پیکربندی سرور ایمیل و نظارت بر اصول امنیتی آن پایبند بوده تا بتوانیم به سرعت آسیبپذیریها را شناسایی و آنها را برطرف نماییم. موضوع اصلی این مطلب نیز همین موضوع است.
در این مطلب، مثالهایی را بیان میکنیم که نشان میدهند در صورت پایبند نبودن به توصیههای امنیتی و عدم رعایت صحیح آنها ممکن است با چه مشکلاتی روبرو شوید. همچنین بعضی ویژگیهای تعدادی از سرورهای ایمیل را به همراه آسیبپذیریهای آنها مورد بررسی قرار داده و توصیههایی برای آزمون امنیت شان مطرح میکنیم.
آسیبپذیریهای بالقوه
وقتی راجع به نفوذ امنیتی صحبت میکنیم یعنی یک یا چند آسیبپذیری برطرف نشده وجود دارد که می تواند توسط مهاجمان مورد سوءاستفاده قرار گیرد. اگرچه مقابله با تمام آسیبپذیریها امری غیرممکن است اما میتوانیم تعداد آنها را به شدت کاهش دهیم. برای انجام این کار باید در هنگام پیکربندی سرورهای ایمیل به توصیههای امنیتی پایبند بوده و الزامات مربوطه را رعایت کنیم. این توصیههای امنیتی و مشکلات ناشی از رعایت نکردن آنها موضوع مورد بحث بخش های بعدی این مطلب است.
دسترسی غیرمجاز به دادهها
یکی از حملات بسیار گسترده و بزرگ، مربوط به زمانی است که یک شخص خرابکار و بدخواه سعی میکند سازوکارهای احراز هویت را دور زده تا به دادههای کاربران دسترسی پیدا کند.
اولین کاری که برای مقابله با این موضوع باید انجام دهید این است که الزامات قوی برای کلمات عبوری که جهت دسترسی به سرور از آنها استفاده میشود، مقرر کنید. این کار از کرک شدن کلمات عبور از طریق حملات جستجوی فراگیر (Brute Force) که از روشهای متداول دور زدن سازوکار احراز هویت است، جلوگیری میکند. سایر موارد بستگی به نوع سرور دارد. سرورهای مختلف از سیستم عاملهای متفاوت، رابط های کاربری متنوع و غیره استفاده میکنند.
یکی دیگر از راههای محافظت از سرورها در برابر مخاطره کرک شدن کلمه عبور کاربران، احراز هویت از طریق SMTP است. این موضوع را بعداً در بخش مربوط به مشکلات تأثیرگذار بر کارایی و پایداری سرور به صورت دقیقتر بررسی میکنیم.
مخاطره نشت داده
یکی از اهداف کلیدی و مهم هکرها به دست آوردن اطلاعات شخصی کاربران است. وقتی ایمیلی از طریق اینترنت ارسال میشود، از یکسری کانال ارتباطی ناامن عبور میکند. بنابراین میتوان کلمات عبور، نام های کاربری و پیامها را تفسیر کرد. برای جلوگیری از وقوع این شرایط باید ایمیل های دریافتی و ارسالی رمزنگاری شوند. برای انجام این کار می بایست پروتکلهای SMTP، POP3 و IMAP را با استفاده از گواهینامه های SSL/TLS رمزنگاری کرد.
هرزنامه ها
یکی از چالش های متداول در بحث ایمیل، مشکل هرزنامه ها (ایمیل های اسپم) است. از دید امنیت سرورهای ایمیل، مخاطرات ناشی از هرزنامه ها به دو دسته زیر تقسیم میشود:
- ارسال هرزنامه به کلاینت ایمیل کاربر
- ارسال هرزنامه به سایر کلاینتها که در این حالت سرور اصطلاحاً به صورت “Open Reply” عمل میکند.
به منظور جلوگیری از بروز این مخاطرات باید از فیلترهای محتوا استفاده کنید. این فیلترها روی سرور ایمیل یا یک برنامه کاربردی پروکسی برای محافظت از دسترسی به سرور نصب میشوند (مثل فایروال، پروکسی سرور و غیره). علاوه بر فیلترهای محتوا میتوانید از لیست سیاه (بلک لیست) سرورهای هرزنامه شناخته شده و مشهور هم استفاده نمایید؛ مثلاً لیست های سیاه مبتنی بر DNS (NDSBL)، Spam URI RBL SURBL یا سایر لیست های محلی که حاوی آدرس آی پی ارسال کنندگان هرزنامه ها هستند.
برای جلوگیری از Open Relay باید پارامترهای Mail Relay سرور را به نحو درست تنظیم کنید. در هنگام آزمون مقاومت در برابر هرزنامه، تأثیر فیلترهای محتوای استفاده شده را تحلیل خواهیم کرد.
مخاطرات بدافزارها
سرور و کلاینتهای ایمیل در معرض مخاطرات ناشی از بدافزارها قرار دارند. وقتی سرور ایمیل به بدافزاری آلوده شود، پایداری کل سیستم در معرض مخاطره قرار میگیرد. جامعیت و حریم خصوصی دادههای شخصی نیز دچار مخاطره شده و امکان انتشار بدافزار از طریق کلاینتهای ایمیل وجود دارد. این کار عمدتاً با استفاده از فایل های پیوست های آلوده موجود در ایمیل ها صورت می پذیرد.
به منظور رفع این مخاطره می توان از سازوکارهای محافظت در برابر بدافزارها همچون نرم افزار آنتیویروس استفاده کرد.
حمله محروم سازی از سرویس (DoS)
مخاطره ای که حملات محرومسازی از سرویس یا DoS برای سرورهای ایمیل ایجاد میکنند، بسیار مخرب است و منجر به مشکلاتی از جمله ارسال یا دریافت نشدن ایمیلها، صرف زمان برای بازیابی سرویس و در نهایت آسیب به اعتبار شرکت میشود.
برای جلوگیری از بروز چنین مخاطره ای باید حداقل سعی کنید میزان اتصالات به سرور SMTP را کم کنید. همچنین می بایست اقدام به محدود کردن تعداد اتصالات به سرور در بازه های زمانی مشخص و همچنین تعداد اتصالات همزمان نمایید.
پایداری و کارایی کلی سرور
وقتی کلمه های «سرور» و «کارایی» را مشاهده میکنیم، فوراً به یاد Load Balancing یا تعدیل بار می افتیم. باید یک نقشه دوم هم داشته باشید تا در صورتی که به سرورهای شما حمله و در عملکرد آنها اختلال ایجاد شد، از آن استفاده نمایید. در چنین مواردی اغلب از یک سرور رزرو یا ذخیره استفاده میکنیم. برای سرورهای ایمیل این کار از طریق دو رکورد MX برای هر دامنه انجام میشود.
سرورهای ایمیل یک گزینه برای استفاده از احراز هویت SMTP هم دارند. اگر این گزینه فعال شود، در این صورت برای ارسال ایمیل به سرور باید یک نام کاربری و کلمه عبور دیگر نیز داشته باشید. فعال کردن این گزینه بسیار مهم است. این ویژگی کمک میکند بتوانید سرور را در برابر حمله از طریق ارسال درخواستهای مکرر محافظت کنید. بنابراین در این صورت، عملکرد بی وقفه آن تضمین خواهد شد.
تنظیم و پیکربندی Mail Relay بسیار مهم است. میتوانید مشخص کنید که سرور از طریق چه آی پیهایی امکان ارسال ایمیل را داشته باشد. انجام این کار به جلوگیری از ارسال تعداد زیادی پیام که برای بیثبات کردن سرور فرستاده میشوند، کمک میکند. یکی دیگر از فیلترها برای ایمیلهای ارسالی از طرف کلاینتها، DNS معکوس یا “Reverse DNS” است. از این فیلتر برای مقایسه آی پیها با نام میزبان و دامنه استفاده میشود. همچنین برای محافظت از سرور در برابر ایمیلهای مخرب هم می توان از آن بهره برد.
نادیده گرفتن توصیهها و الزامات امنیتی
یکی از مهمترین توصیههای امنیتی این است که هیچ مورد غیرضروری را بر روی سرور ایمیل نصب یا فعال نکنید. باید به دقت بررسی کنید که آیا نرمافزارهای اضافهای که روی سرور نصب شدهاند ممکن است توسط مجرمان سایبری مورد سوءاستفاده قرار گیرند یا خیر؟ پورتهای باز شبکه را بررسی نموده تا مطمئن شوید باز بودن آنها ضرورت داشته (اگر چنین نبود بلافاصله این پورتها را ببندید) و به خوبی از آنها محافظت می شود (مثلاً بررسی کنید آیا برای ارسال داده از طریق این پورت، احراز هویت انجام میشود یا خیر؟).
همچنین باید تمام اجزای سرور را بهروزرسانی کنید. با وجود تمام تلاشهای صورت گرفته از سوی توسعهدهندگان و آزمون کنندگان نرمافزارها با این حال هیچ نرمافزاری صددرصد بدون عیب نیست. آسیبپذیریهای نرمافزاری انواع و تعداد زیادی دارند که دسترسی مجرمان سایبری به آنها به سادگی امکان پذیر است. وقتی آسیبپذیریها یا اکسپلویتهای جدید شناسایی میشوند، فروشندگان نرمافزار معمولاً ظرف چند روز یک نسخه اصلاحی ارایه میدهند. اگر این به روز رسانی ها را به موقع بر روی سرور نصب نکنید، نفوذگران میتوانند از آنها به نفع خودشان سوءاستفاده کنند.
البته نباید به هیچ عنوان عامل انسانی را نادیده بگیرید. توصیه می شود پشتیبانی و نگهداری از سرور فقط متکی به یک نفر نباشد. باید سرور را به دست افرادی بسپارید که مسئولیتی در این زمینه دارند.
شناسایی و تحلیل آسیبپذیریها
در شروع بحث باید گفت بسیار مهم است از یک رویکرد مناسب برای نظارت بر امنیت سرورهای ایمیل استفاده نمایید. در بسیاری موارد استفاده از راهکارهای موجود به راحتی امکان پذیر است. شرکت های زیادی هستند که خدماتی برای بررسی و تحلیل امنیت سایبری ارایه میدهند. در بعضی موارد ممکن است لازم باشد مشکل را خودتان حل کنید. میزان سختی و رسمی بودن این فرایند باید متناسب با کارهای در دست انجام باشد.
در ادامه، نگاهی به ویژگیهای رویکرد رسمی اما انعطافپذیر خواهیم داشت.
آماده کردن مستندات لازم
اول از همه باید مشخص کنید چه چیزی، چرا و چگونه قرار است بررسی شود. این سه پرسش به این دلیل مهم هستند که باید طی فرایند بررسی و ممیزی، بیشترین موارد ممکن را پوشش داده و در عین حال نیز وقت خودتان را برای جزئیات غیرضروری هدر ندهید.
- چه مواردی؟ یک لیست از تمام دادهها (نام کاربری، لیست تماس ها، پیوست ها و غیره) و سایر مواردی که فکر میکنید برای ردیابی و بررسی آسیبپذیریها ضروری هستند (کارایی، آپ تایم و غیره)، تهیه کنید. این لیست را می توان به چند چک لیست با حوزههای مسئولیتپذیری مختلف (سرور، شبکه و سیستم عامل) تقسیم کرد. به آیتمهای داخل این لیست باید وزنی متناسب با میزان تأثیرپذیری آنها از مشکلات مربوط به خودشان اختصاص داد.
- چطور؟ باید دو رویکرد زیر را در این خصوص دنبال کنید:
- با استفاده از لیست اجزا که قبلاً تدوین کرده اید، ابزارها و برنامههای کاربردی که میتوان برای عملیات کنترل و بررسی از آنها استفاده کرد را لیست میکنیم؛ چه این اجزا آسیبپذیر باشند و چه نباشند. سپس باید روشی را برای بررسی و کنترل هر یک از آیتمهای این لیست انتخاب کرد. در نتیجه این آیتمها مشخص کننده آزمون ها یا مؤلفههایی خواهند بود که بایستی مورد نظارت قرار گیرند.
- با استفاده از فهرست آسیبپذیریهای بالقوه، لیست نظارتی خود را گسترش داده و در آن کنترلهای مورد نظر را برای بررسی وجود این آسیبپذیریها درج میکنیم. اگر بعضی از آیتمهای لیست تکراری بودند آنها را نشانهگذاری نموده اما نباید حذف کنیم.
- چرا؟ باید هدف، وزن و میزان پوشش هر عملیات کنترلی را مشخص کرده تا بتوانیم اولویت آنها را تعیین کنیم. در این مرحله میتوانیم موارد تکراری لیست اجزا را حذف کنیم، البته تنها در صورتی که این مورد توسط یک مورد دیگر تحت پوشش قرار گرفته باشد. در غیر این صورت آن را حفظ نکرده ولی اولویت کمتری به آن میدهیم.
بعد از این کار باید تصمیم بگیریم آیا آیتمهای لیستها ارزش تخصیص منابع برای اجرا را دارند یا خیر؟ باید زمان و هزینه مورد نیاز برای خرید نرمافزار، آموزش کارمندان و اجرای بررسی ها را مشخص کنیم. میتوانید بعضی از آیتمهایی که اولویت متوسط یا پایینی دارند را در صورتی که قادر به توجیه هزینه های آنها نیستید، از این لیست خارج نمایید. تأکید می کنیم که این آیتم ها را نباید کاملاً حذف کنید چون ممکن است هر لحظه اولویتها تغییر کنند.
در هنگام تهیه لیست کنترلها می توانید از چک لیستهای NIST SP 800-45 استفاده کنید. بعد از تدوین این لیست، حوزه کاری و منابع ضروری را مشخص نمایید. هنگامی که گزارشی از وضعیت فعلی امنیت سرور تهیه میکنید، بسته به نوع تفکیک موارد میتوانید یک سطح دقیق تهیه نموده که کل رویهها را از ابتدا تا انتها پوشش دهد.
آزمون (کشف آسیبپذیریها)
پس از تهیه چک لیست، به اجرای بررسیها میرسیم که در قسمت «محصولات و ابزارهای کاربردی» این مطلب به آن پرداخته شده است. ترتیب لیست، بستگی به اولویت کارها دارد. اگر زمان تان محدود است باید ابتدا اجزای با اولویت بالا را کنترل کنید. چنانچه محدودیت زمانی ندارید، در این صورت سازماندهی کنترل ها به نحوی که انجام کار راحتتر شود میتواند به صرفهجویی در زمان و هزینهها کمک نماید.
ممکن است بعضی کنترل ها بیشتر از آنچه که برنامهریزی شده زمان ببرند. در این صورت باید از آنها صرف نظر کرده و به یک ابزار دیگر منتقل کنید. توصیه می شود در چنین مواقعی راهی برای بهینهسازی آن فرایند پیدا نمایید. همچنین باید تمام رویدادهای که در آنها دادهها و تنظیمات سرور دچار مخاطره شدهاند، ثبت شوند. بعضی از این موارد را میتوان بعداً نادیده گرفت ولی در مرحله فعلی نباید زمان را صرف بررسی جزئیات کرد بلکه مهم این است که آن کنترل در زمان مربوط به خودش تا بیشترین میزان ممکن تحت پوشش قرار گرفته باشد.
تحلیل مشکلات شناسایی شده
در فرایند تجزیه و تحلیل باید مخاطرات را بر اساس معادله زیر ارزیابی کرد:
تأثیر × احتمال × قرار داشتن در معرض خطر
به هر یک از این موارد میتوان امتیازی بین 1 تا 5 اختصاص داد. عدد 5 نشان دهنده این است که نمیتوان از آن مشکل چشمپوشی کرد. عدد 1 نیز بیانگر این است که به احتمال زیاد نیازی به حل موضوع نیست.
- تأثیر حادثه یا مشکل بستگی به اجزایی دارد که در معرض مخاطره قرار گرفتهاند. در بعضی موارد ممکن است این تأثیر بسیار کوچک باشد (مثلاً عملکرد سرور برای 100 میلی ثانیه مختل شده) و گاهی ممکن است به شدت بزرگ باشد (از دست رفتن کل محتویات پایگاه داده). در صورتی که چک لیستها درست تدوین شده باشند میتوان بر اساس آنها تأثیرات را بهتر مشخص کرد.
- احتمال، بستگی به این دارد که مشکل چقدر قابل تکرار بوده و تکرار آن نیز چقدر آسان است که از خیلی نادر (مثلاً پر شدن حافظه، یکبار در سال) تا پایدار (مثلاً در صورت دریافت بسته UDP از طریق یک پورت TCP باز) ارزش گذاری می شود.
- قرار داشتن در معرض خطر بستگی به این دارد که تشخیص مشکل چقدر سخت بوده و اینکه آیا ممکن است مشکل حین زمان عملکرد معمولی سرور رخ دهد. قرار داشتن در معرض خطر میتواند از غیرممکن (وقوع همزمان چند مشکل غیرمحتمل) تا غیرقابل اجتناب (استفاده از کلمه Password به عنوان کلمه عبور مدیر سیستم یا از کار افتادن سرور به دلیل دریافت همزمان 1000 ایمیل) باشد.
بعد از ارزیابی، تمام مشکلات شناسایی شده بر اساس میزان مخاطره شان به ترتیب نزولی مرتب میشوند (تأثیر × احتمال × قرار داشتن در معرض خطر). سپس هر رخدادی که میزان مخاطره آن (حداقل) بیشتر از عدد 8 باشد باید مورد رسیدگی قرار گیرد. این بحث و بررسی باید کمک کند که رخدادها را به آسیبپذیری (تهدیدات امنیت سایبری، مثلاً از دست رفتن دادهها)، نقص (تهدیدی برای از دست دادن وفاداری مشتریان به دلیل ارسال هرزنامه) و مشکلات چشمپوشی شده تقسیمبندی کنید. آنگاه بایستی آسیبپذیریها و نقایص را به منظور برطرف سازی آنها اولویت بندی نمایید.
اصلاح آسیبپذیریها
معمولاً سه راه برای اصلاح آسیبپذیریها وجود دارد که شامل موارد زیر هستند:
- استفاده از یک محصول دیگر یا نسخهای از محصول فعلی که بدون مشکل باشد.
- نصب نرمافزارهای دیگری که امکان برطرف کردن مشکل را فراهم کنند.
- غیرفعال نمودن قابلیتهایی که مشکل ایجاد میکنند.
موارد مهمی که باید مورد توجه قرار داد، سطح مخاطرات مربوطه و هزینه، بودجه فعلی و منابع لازم برای انجام اصلاحات است. تمام این موارد میتوانند تأثیرات زیادی بر زمانبندی فعالیت های اصلاحی و تعیین اولویت کارها داشته باشند. بهترین کار این است که فوراً مشکلاتی را رفع کنید که می توان آنها را راحتتر و سریعتر برطرف کرد؛ بدون اینکه آنها را برای بعد کنار بگذارید. ممکن است اصلاح آسیبپذیریهای پیچیده چند روزی زمان ببرد. بهتر است مشکلات کوچک اما خطرناک را منتظر رفع موارد پیچیده نگذارید.
در بعضی موارد میتوانید آسیبپذیریهایی که با یک اصلاح، قابل رفع هستند را گروهبندی کنید. اگر این روش برای شما قابل اطمینانتر بود (یعنی با این روش نیازی به تغییر در آینده نبود) با استفاده از آن می توانید در زمان و هزینهها صرفهجویی نمایید. با این حال بهتر است به دنبال راهحلی ساده و ظاهراً جادویی نباشید چون ممکن است نسبت به استفاده از چند راهکار ساده، پیچیدگی و هزینه بیشتری دربر داشته باشد.
نمونهای از بررسی امنیت سایبری MS Exchange Server برای سیستم عامل ویندوز
نرمافزار و ویژگیهای سیستم عامل
MS Exchange Server یک سرور ایمیل محبوب است که توسط شرکت مایکروسافت ارایه شده و فقط بر روی سیستم عامل ویندوز سرور نصب می شود. این نرم افزار علاوه بر پروتکلهای استاندارد (SMTP, POP3, IMAP)، توانایی پشتیبانی از پروتکل های اختصاصی (MAPI, EAS) را نیز دارد.
در ادامه، نگاهی به Exchange Server از جنبه امنیت سایبری خواهیم داشت. بررسی ما مربوط به نسخههای بعد از Exchange 2010 است (پشتیبانی رسمی از Exchange 2007 در 22 فروردین 1396 متوقف شد):
- Edge Transport Server: سروری برای ایمیلهای دریافتی و ارسالی است. این سرور برای شرکت هایی که زیرساخت شبکه آنها به شبکه داخلی محافظت شده و محیط حفاظت شده یا منطقه اصطلاحاً غیرنظامی (DMZ) تقسیم شده است، خوب کار میکند. معمولاً Edge Transport Serve در داخل DMZ و Mailbox در شبکه خصوصی راه اندازی می شود. Edge Transport Serve یک لایه دفاعی اضافه را برای پیامها فراهم میکند. به این ترتیب سرور با حملات بیرونی کمتری مواجه خواهد شد. Edge Transport یک نقش اختیاری است که در هنگام نصب Exhcnage Server 2010 و 2016 میتوانید آن را انتخاب کنید. در Exchange 2013 چنین قابلیتی وجود ندارد.
- گروه دسترسپذیری پایگاه داده (DAG): بخشی است که دسترسپذیری بالا و امکان بازیابی دادهها را بر روی سرور فراهم میکند. این قابلیت ابتدا در Exchange 2010 معرفی شد. DAG یکی از مؤلفههای اصلی Mailbox است که دسترسپذیری و بازیابی دادهها بعد از رخدادهای مختلف را تضمین میکند.
- محافظت در برابر هرزنامه از طریق یکسری عوامل ضدهرزنامه داخلی محقق میشود که به صورت پیشفرض از نسخه 2010 Edge Transport server به بعد در آن وجود دارند و میتوان آن را به طور مستقیم روی سرور Mailbox فعال کرد (در Exchnage 2016).
- محافظت در برابر بدافزار هم از طریق عاملی به نام “Malware” در سرور Mailbox محقق میشود که اولین بار در Exchange 2013 معرفی شد. این ویژگی در Exchange 2016 به صورت پیشفرض فعال است.
- Outlook Web Access (OWA): یک کلاینت ایمیل تحت وب است و نیازی به نصب کامل نسخه کلاینتی ایمیل دسکتاپ ندارد.
- سرویسها و پروتکلهای اختصاصی عبارتند از:
- Exchange ActiveSync: پروتکلی برای تطابق ایمیل با دستگاههای سیار است.
- Exchange Web Services (EWS) : API بین پلتفرمی است که دسترسی به ایمیل ها، تماس ها و سایر اطلاعات را برای برنامه های کاربردی کلاینت فراهم میکند.
- RPC over HTTP، MAPI over HTTP: پروتکلهای اختصاصی هستند که به کلاینتهای ایمیل امکان برقراری ارتباط با Exchange Server را میدهند.
از آنجا که Exchange Server فقط در سیستم عاملهای ویندوز سرور مایکروسافت پشتیبانی میشود بنابراین باید بررسیهای امنیتی برای مقابله با تهدیدات بدافزاری مثل ویروسها و تروجانها انجام شوند. در این حالت، مخاطره آلودگی به بدافزار نه فقط برای کلاینت بلکه برای سرور هم وجود دارد.
سناریوهایی برای آزمون و نرمافزارهای مورد استفاده
آزمون امنیتی MS Exchange Server بهتر است با ملاحظاتی نسبت به تنظیمات زیرساخت و محیط فعلی انجام شود. در ادامه، نگاهی به دو نمونه زیرساخت خواهیم داشت:
مثال 1: شرکت، یک شبکه داخلی با دسترسی به اینترنت دارد. MS Exchange Server با تنظیمات اولیه و بدون Edge Transport Server نصب شده است.
مثال 2: شرکت، یک شبکه سازمانی داخلی دارد. دسترسی به اینترنت از طریق DMZ پیادهسازی شده است. دو سرور Exchange به همراه DAG نصب شدهاند و Edge Transport Server هم در DMZ مستقر شده است.
مثال اول در برابر حملات شبکه آسیبپذیرتر است اما باید توجه داشت شرکت های زیادی هستند که از چنین زیرساختی استفاده میکنند. پیش از شروع آزمون، زیرساخت را با توجه به کاربرد تعیین شده برای آن پیکربندی کرده و آزمون را به نحوی انجام میدهیم که مخاطرات مربوطه مورد توجه قرار گیرند.
آزمون محافظت در برابر نشت دادهها
در این آزمون، ارتباطات بین Exchange Server و کلاینتهای ایمیل تفسیر میشود. عملیات آزمون بر اساس سناریوی زیر صورت می پذیرد:
- پروتکلهای ایمیل EAS، MAPI، SMTP و IMAP روی یک سرور ایمیل تنظیم می شوند.
- کلاینت ایمیل نصب میشود. کلاینت تحت وب OWA، تلفن همراه و دسکتاپ (Outlook, Thunderbird) هم مدنظر قرار میگیرند.
- پیکربندی سختافزاری حمله مرد میانی (MITM) انجام شده و بین سرور و کلاینت قرار میگیرد. این سختافزار، مفسر خودش را دارد؛ مثلاً Wireshark، tcpdump یا Fiddler.
- دادهها بین کلاینت و سرور از طریق یکی از پروتکلها (MAPi, SMTP, IMAP, EAS) منتقل میشوند. مجوزها و اختیارات پروتکل و ارتباطات بعدی بررسی میشوند.
- بستههای شبکه از طریق MITM تفسیر شده و سعی میشود دادههای رمزنگاری نشده پیدا شوند.
آزمون محافظت در برابر هرزنامه
سناریوی زیر یک نمونه آزمون محافظت Exchange Server در برابر هرزنامه ها است:
- چندین سرور ایمیل محلی را تنظیم و پیکربندی کنید که بتوانند به Exchange Server مورد بررسی هرزنامه ارسال کنند.
- تعدادی هرزنامه به Exchange Server ارسال کنید. از اسکریپتهای موجود می توانید برای تولید هرزنامه استفاده نمایید.
- صندوق های ورودی ایمیل که مورد هدف قرار گرفتهاند را بررسی کرده و ببینید آیا هرزنامه ها به آنها ارسال شدهاند یا خیر؟
این آزمون را برای حالتهایی که فیلترهای ضدهرزنامه برای Mailbox و Edge Transport Server فعال و غیرفعال باشند نیز انجام دهید. این کار کمک میکند تا بتوانید اثربخشی سازوکار ضدهرزنامه را ارزیابی نمایید.
آزمون محافظت در برابر ایمیلهای آلوده به بدافزار
برای انجام آزمون محافظت در برابر ایمیلهای آلوده به بدافزار از چند پیوست آلوده به بدافزار استفاده میکنیم. اولین آزمون با استفاده از یک فایل EICAR به نام “Eicar” انجام میشود که به آن «فایل آزمون ویروس استاندارد (Standard Anti-Virus Test File)» گفته میشود. این فایل در حقیقت ویروس نبوده و شامل کدهای هیچ ویروسی هم نیست ولی با این حال بیشتر نرم افزارهای آنتیویروس آن را به عنوان فایل مخرب شناسایی میکنند.
در این آزمون همچنین از فایلهایی که برای اهداف خاص تولید شدهاند، استفاده میکنیم. مثلاً فایلهایی حاوی کد بارگذاری dll که این کد در اصل مخرب و آسیبزا نیست اما بیشتر آنتیویروسها نیز آن را شناسایی میکنند.
نمونهای از سناریوی آزمون:
- عامل محافظتی Malware را برای Exchange Server غیرفعال کنید.
- چندین ایمیل آلوده به بدافزار به کلاینتهای مختلف ارسال نمایید.
- در کلاینتهای گیرنده، ایمیلها را جستجو کرده تا بدافزارهای آنها پیدا شوند.
- همین سناریو را برای حالتی که عامل محافظتی Malware برای سرور فعال شده باشد، امتحان کنید. همچنین برای حالتی که این عامل برای Edge Transport Server فعال شده باشد.
- نتایج را با یکدیگر مقایسه کنید.
آزمون کلمات عبور کاربران
برای آزمون قابلیت اطمینان کلمات عبور کاربران میتوانیم از نرمافزاری به نام Hydra که در Kali Linux وجود دارد، استفاده کنیم. این نرمافزار اجازه میدهد تا کلمات عبور ضعیف از طریق تلاش برای کرک آنها با حمله جستجوی فراگیر (Brute Force) شناسایی شوند. حملات از طریق پروتکلهای SMTP، IMAP و POP3 انجام میشوند.
آزمون محافظت در برابر حمله محرومسازی از سرویس (DoS)
برای آزمون محافظت در برابر حملات DoS باید یک نوع ترافیک خاص شبکه را شبیهسازی کنیم که هدف آن بیثبات کردن سرویسهای Exchange Server مورد بررسی است. همچنین شکستهای مختلف در شبکه را نیز شبیهسازی نماییم. میتوانیم از نرمافزارهای اضافه دیگری مثل WANem هم برای این کار استفاده کنیم.
در این آزمون بررسی میکنیم که Exchange Server در برابر این نوع حملات چقدر مقاومت دارد و اینکه سرویس با چه سرعتی بازیابی میشود. هنگام انجام آزمون، دسترس پذیری بالا را در نظر گرفته و بررسی می کنیم که آیا مؤلفه “Database Availability Group” (گروه دسترسپذیری پایگاه داده) برای Exchange Server فعال شده است یا خیر؟ و اینکه آیا یک سرور دیگری برای پشتیبان گیری وجود دارد یا خیر؟
نمونه نتایج
گزارش نتایج تست Exchange Server |
پیکربندی: |
Exchange Server 2010 SP3 در حالتی که Edge Transport Server فعال شده باشد.
سیستم عامل Windows Server 2008 R2 |
زیرساخت: |
Exchange Server در شبکه محلی قرار گرفته است.
شبکه محلی از طریق DMZ به اینترنت وصل شده است. |
چشمانداز کلی: |
امنیت Exchange Server در حوزههای زیر مورد بررسی قرار گرفت:
در طول عملیات آزمون، یک حساب کاربری با کلمه عبور ضعیف کشف شد. در آزمون های محلی محافظت در برابر هرزنامه، فعالسازی عامل حفاظت در برابر هرزنامه، از دریافت ایمیلهای هرزنامه جلوگیری کرد. در آزمون های محافظت از دادههای شخصی، هیچ آسیبپذیری پیدا نشد. ارتباطات از طریق پروتکلهای MAPI، SMTP، IMAP و EAS مورد بررسی قرار گرفتند. |
توصیهها: |
سیاست امنیتی باید با در نظر گرفتن کلمه عبور کاربران بهبود یابد چون ممکن است به خطر افتادن حتی یک کلمه عبور به مجرمان امکان دسترسی به دادههای خصوصی افراد را از طریق سایر حساب های کاربری ایمیل بدهد.
لازم است عامل ضدهرزنامه همیشه فعال بوده و لیستهای سیاه سرور هرزنامه همواره بهروزرسانی شوند. |
مثال نظارت بر امنیت Zimbra Server در سیستم عامل لینوکس
مشخصات نرمافزار و سیستم عامل
Zimbra Collaboration Server محصول مشهوری است که توسط شرکت Sinacor ارایه شده و نه تنها سرویسهای ایمیل سازمانی بلکه تقویم و ابزارهای دیگری ارایه میدهد که توسط شرکت های بزرگ و کوچک مورد استفاده قرار میگیرند. این محصول رایگان است و در سیستم عامل لینوکس پشتیبانی میشود. همچنین یک نسخه غیررایگان با امکانات ویژه هم دارد که میتوانید از آدرس زیر آن را دانلود کنید:
https://www.zimbra.com/email-server-software/product-edition-comparison/
سرور ایمیل Zimbra را می توان از طریق رابط کاربری تحت وب، مدیریت و پیکربندی کرد. این محصول چندین ویژگی امنیتی دارد که عبارتند از:
- وقتی سیستم عامل را به روز رسانی میکنید، Zimba Server به روز رسانی نمیشود اما پاک شده و از اول نصب میشود. به همین علت باید بعد از انجام به روز رسانی، تمام تنظیمات را مجدداً بررسی کنید. البته این مشکل در نسخه جدید 8.7 رفع شده است.
- Zimbra کدمنبع باز است که به همگان امکان استفاده از آن را میدهد. این موضوع البته احتمال کشف آسیبپذیریها را در آن افزایش می دهد.
- احراز هویت دومرحلهای: اولین بخش این سازوکار احراز هویت شامل نام کاربری و کلمات عبور متعارف است. بخش دوم آن نیز با یک دستگاه فیزیکی مثل توکن USB یا یک تلفن همراه هوشمند انجام میشود.
- SSL SNI: سرور برای یک آدرس آی پی و پورت TSP چندین گواهینامه (Certificate) دارد. به همین دلیل قابلیت کار با چندین دامنه را بدون نیاز به چند آدرس آی پی برای هر دامنه دارد.
- امنیت سرور با Postscreen: یک آزمون امنیتی است که در برابر باتهای ارسال هرزنامه ها محافظت لازم را از سرور به عمل آورده و میزان بار ایجاد شده بر روی آن را کاهش می دهد.
- رمزنگاری و امضای دیجیتال S/MIME: قبل از ارسال پیامها می توانید آنها را امضا کرده و رمزنگاری کنید.
- HSM: Zimbra امکان ذخیره پیامهای قدیمی را در رسانههای ذخیرهسازی موقت یعنی ارزانتر و امنتر فراهم می کند.
سناریوهای آزمون و نرمافزارهای مورد استفاده
برای سناریوهای مختلف آزمون سرور Zimbra ابزارهایی مثل Kali Linux میتوانند بسیار کارآمد باشند.
- Kali Linux Metasploit حتی ماژولهایی مخصوص برای Zimbra هم دارد؛ مثل zimbra_lfi که میتوانید از آن برای جاسازی فایلهای مخرب بر روی سرور استفاده کنید.
- مرد میانی: میتوانید اطلاعات منتقل شده از طریق اینترنت بین کلاینت و سرور را تفسیر کنید. برای انجام این کار میتوانید مثلاً از برنامه arpspoof که در Kali Linux نصب است و پیش از این بدان اشاره شد، استفاده نمایید.
- با توجه به اینکه سرور از طریق رابط کاربری تحت وب کنترل میشود باید به موارد زیر هم توجه کنید:
- اول این که میتوانید آسیبپذیریها را جستجو کنید. برای انجام این کار از w3af و Sqlmap استفاده کنید. با استفاده از این ابزارها میتوانید نام کاربری و کلمه عبور بعضی از حساب های کاربری ایمیل را پیدا نمایید.
- میتوانید برای به دست آوردن نام کاربری و کلمه عبور مدیر سرور از تزریق XSS استفاده کنید.
- حتماً میزان آسیبپذیری کلمه عبور مدیر سرور را در برابر حملات جستجوی فراگیر بررسی نمایید.
- نرم افزارهای آنتیویروس و ضدهرزنامه را کنترل کنید. برای انجام این کار یکسری ایمیل مخرب یا هرزنامه به سرور ارسال نمایید. Zimbra یکسری تنظیمات خاص برای این موارد امنیتی هم داشته و میتوانید انواع ترکیبات مختلف را امتحان کنید.
- Zimbra امکان کار با MS Exchnage Server را نیز فراهم میکند. این ویژگی فقط در نسخه تجاری آن وجود دارد. در هنگام آزمون باید سعی کنید هم اطلاعات را تفسیر کرده و هم دادههای Zimbra را که در MS Exchange Server ذخیره شده اند به دست آورید.
- و در نهایت اینکه نباید حملات DoS را فراموش کنید. ترافیک شبکه را طوری شبیهسازی کنید که سعی کند سرور را از دسترس پذیری خارج نماید.
نمونهای از نتایج
گزارش باگ: | CVE-2013-70-91 |
مرجع: | https://www.cvedetails.com/cve/CVE-2013-7091/ |
آسیبپذیری Directory Traversal Vulnerability در /res/I18nMsg,AjxMsg,ZMsg,ZmMsg,AjxKeys,ZmKeys,ZdMsg,Ajx%20TemplateMsg.js.zgz در Zimbra 7.2.2 و 8.0.2 به هکرها امکان خواندن فایلهای دلخواهشان را از راه دور، با استفاده از .. (نقطه نقطه) در پارامتر skin میدهد.
توجه: از این ویژگی می توان برای اجرای کدهای دلخواه از طریق به دست آوردن اطلاعات ورودی LDAP و دسترسی به APIی service/admin/soap استفاده کرد. |
|
گزارش عمومی: | |
خیلی از عملیات های مربوط به فایل، برای اجرا در یک دایرکتوری محدود در نظر گرفته شدهاند. با استفاده از المانهای خاصی مثل / و .. مهاجمان میتوانند پا را از این دایرکتوری فراتر گذاشته و به فایلها یا دایرکتوریهای دیگر سیستم دسترسی پیدا کنند. یکی از متداولترین روشها استفاده از دنباله کاراکتر “../” است که در سیستم عاملهای امروزی به عنوان دایرکتوری والد لوکیشن فعلی تفسیر میشود. به این حالت، حرکت به مسیر نسبی (Relative Path Traversal) نیز گفته میشود. Path Traversal استفاده از مسیرهای مطلق مثل /usr/local/bin را هم شامل میشود که این مسیرها ممکن است باعث ایجاد دسترسی به فایلهای دیگر شوند. این حالت، حرکت به مسیر مطلق (Absolute Path Traversal) نامیده می شود.
در خیلی از زبانهای برنامهنویسی، تزریق یک بایت null (یعنی 0 یا NULL) ممکن است به مهاجم امکان دستکاری نام فایلها را برای گستردهتر کردن حوزه حمله خود بدهد. مثلاً ممکن است نرمافزار به همه مسیرها .txt را اضافه کند تا مهاجم را محدود به دسترسی به فایلهای متنی کند. تزریق null ممکن است باعث حذف چنین محدودیت هایی شود. |
|
توصیهها: | |
از راهبرد «پذیرش آیتمهایی که قبلاً خوب تشخیص داده شدهاند» برای اعتبارسنجی ورودی استفاده کنید. یعنی یک لیست سفید از ورودیهای قابل قبول تهیه کنید که کاملاً با ویژگیهای مدنظر مطابقت داشته باشند. هر ورودی که با این ویژگیها تطبیق نداشت را رد کرده یا تغییر دهید.
بررسی کنید تمام کنترل های امنیتی که در سمت کلاینت انجام میشوند، در سمت سرور هم تکرار شوند. از فایروالهایی استفاده کنید که توانایی شناسایی حملاتی که بر ضد این نقطه ضعف انجام میشوند را داشته باشند. |
نتیجهگیری
در این مطلب از فراست به موضوع امنیت سرورهای ایمیل پرداخته و رویکردهای مختلف برای آزمون امنیتی آن را بررسی کردیم. همچنین حملات متداولی که به سرورهای ایمیل صورت میگیرند را تحلیل کرده و توضیح دادیم چطور میتوان آسیبپذیریها را شناسایی و برطرف نمود. به عنوان نمونهای از سرورهای ایمیل، نگاهی به Exchange Server و Zimbra داشتیم. به این ترتیب سرورهای محبوب ویندوز و لینوکسی را تحت پوشش قرار دادیم.
فناوری های امنیت سایبری برای سرورهای ایمیل مدام در حال رشد و تکامل هستند. دائماً نسخههای جدیدی از سرورهای محبوب با امنیت بیشتر و خطای کمتر منتشر میشوند. یکسری توصیه کلی و پایه وجود دارد که اگر قصد دارید سرور ایمیلتان را امن نگهدارید باید از آنها پیروی کنید.
توصیههای پایانی برای امنیت سرورهای ایمیل
امنیت سرورهای ایمیل باید در مراحل اولیه برنامهریزی برای نصب سرور مورد توجه قرار گیرد؛ چون برنامهریزی از قبل و پیشگیری از آسیبهای بالقوه، مقرون به صرفهتر است.
زمانی که قصد برنامهریزی برای نصب سرور ایمیل را دارید باید موارد زیر را مورد توجه قرار دهید:
- هدف سرور ایمیل: قرار است سرور از چه سرویسهایی پشتیبانی کرده و چه نوع دادهای با سرور تبادل شود.
- الزامات امنیتی سرور
- تصمیمگیری درباره نوع کاربران، سطح امتیازات آنها و روشهای احراز هویتی که قرار است در این سرور از آنها استفاده شود.
- سرور قرار است در کدام بخش از زیرساخت شبکه مستقر شود.
- به غیر از خود سرور چه نرمافزارهای دیگری باید نصب شوند.
- سرور ایمیل چطور مدیریت خواهد شد.
برای پاسخ به این سؤالات باید سطح مورد انتظار امنیت سایبری سرور و همچنین روش های بالقوه حمله را مشخص کنید. امنیت سیستم عاملی که روی سرور نصب میشود هم تأثیر به سزایی در امنیت آن سرور دارد.
در ادامه، توصیههای کلی برای امنیت سرورهای ایمیل را مطرح میکنیم:
- زیرساخت شبکه را طوری طراحی کنید که سطح حمله به سرور به حداقل میزان ممکن برسد. مثلاً یک محیط شبکه ایجاد کنید که شبکه سازمانی خصوصی شما را از اینترنت محافظت کند. برنامه های کاربردی پروکسی در محیط شبکه نصب کنید که به ایمیلهای بیرونی سرویسدهی کرده و به سرور ایمیل شما که در شبکه خصوصی نصب شده است، دسترسی داشته باشد. Edge Transport Server یک نمونه از چنین برنامه های کاربردی برای Exchange Server است.
- همیشه در صورت امکان، از گزینه رمزنگاری دادههای انتقالی برای تمام اجزای سرور استفاده کنید. مجوزهای SSL برای همه اجزا را با دقت انتخاب کرده و از مجوزهای پیش فرض استفاده نکنید.
- از آنتیویروسهای قابل اطمینان و سایر راهکارهای ضدبدافزار برای تأمین امنیت سرورهای ایمیل استفاده کنید. این راهکارها از تمام راهکارهای ضدبدافزار داخلی سرور هم پشتیبانی میکنند.
- به صورت منظم به روز رسانی های منتشر شده را در سرور ایمیل اعمال کنید. مثلاً مایکروسافت یکسری بولتن امنیتی با وصله هایی برای جدیدترین آسیبپذیریها منتشر میکند.
- سرور پشتیبان را کنترل کرده و حداقل دو رکورد MX DNS برای اطمینان از عملکرد پایدار سرور داشته باشید.