افزایش حجم حملات BRUTE FORCE به سرویس‌دهنده‌های SSH در سطح کشور

مشاهدات میدانی نشان دهنده افزایش تعداد حمالت Force Brute علیه سرویسدهندههای SSH در سطح کشور است. از اینرو در گزارش ذیل تعدادی از مهمترین روشهای مقاومسازی این سرویس دهنده در برابر اینگونه از حمالت بیان شده است.

با توجه به تعدد نسخه های SSH پیاده سازی شده، در این مستند تنها به نحوه مقاوم سازی سرویس دهنده OpenSSH به کار گرفته شده در LTS 04.16 Ubuntu پرداخته شده است،بدیهی است که رئوس مطالب بیان شده برای تجهیزات مختلف صادق بوده ولی نحوه اجرای آن در هر تجهیز متفاوت است.

1 .غیرفعالسازی دسترسي کاربر ریشه
بایستی دسترسی کاربر root به ssh را غیرفعال نمود. برای این منظور باید خط دستور yes PermitRootLogin را در فایل پیکربندی پیدا کرده و آن را به no PermitRootLogin تغییر داد. سپس بایستی کاربری به جز root تعریف نمود و وی را مجاز به استفاده از ssh نمود.

2 .تغییر شماره پورت پیشفرض
یکی از راههای افزایش امنیت SSH ، تغییر شماره پورت پیشفرض آن است. پروتکل SSH بهطور پیش فرض از پروتکل TCP و شماره پورت ۲۲ استفاده میکند. با تغییر شماره پورت پیشفرض میتوان از انجام بعضی حمالت کور و سطح پایین در امان ماند. در فایل پیکربندی میتوان در خط دستور 22 Port شماره پورت را به شماره پورت دلخواه تغییر داد.

3 .استفاده از روش الگین مبتني بر کلید عمومي SSH
بهتر است بهجای استفاده از روش مرسوم احراز اصالت توسط نام و کلمه عبور )که مستعد حمله جستجوی کامل است(، از روش احراز اصالت مبتنی بر کلید عمومی استفاده نمود. برای تولید زوج کلید برای رمزنگاری ماشین روی بر )میشود استفاده ssh-keygen -t key_type -b bits -C “comment” دستور از غیرمتقارن کالینت(. پس از اجرای این دستور یک سوال برای حفاظت از کلید پرسیده میشود که میتواند خالی گذاشته شود؛ ولی توصیه میشود که به آن پاسخ داده شود )کلید خصوصی SSH که برای آن عبارتی برای محافظت قرار داده نشده میتواند توسط هر کسی که مالکیت آن را ندارد نیز مورد استفاده قرار گیرد(. سپس کاربر میتواند با استفاده از دستور id-copy-ssh کلید عمومی خود را به سرور منتقل نماید )برای مثال برای ارسال کلید عمومی استفاده ssh-copy-id APA@192.168.1.1 دستور از 192.168.1.1 آدرس با سروری به APA کاربری نام میشوداز این پس کاربری که کلید خصوصی مناسبی در اختیار دارد، برای ورود به سرور دستور ssh 1.1.168.192@APA را وارد نموده و به سوال مربوط به کلید پاسخ میدهد و دیگر نیازی به وارد نمودن کلمه عبور نخواهد داشت.

4 .غیر فعال نمودن روش احراز اصالت توسط کلمه عبور
پس از پیکربندی روش احراز اصالت مبتنی بر کلید عمومی SSH و تست عملکرد صحیح آن، بایستی روش احراز اصالت توسط کلمه عبور را غیرفعال نمود. برای این منظور کافی است تا در سطر فایل پیکربندی yes PasswordAuthentication مقدار Yes را به no تغییر داد.

5 .تغییر پروتکلها و الگوریتمهای رمزنگاری پیشفرض
بر اساس آخرین توصیه نامه ها، بایستی حداقل از پروتکل ها و الگوریتم های رمزنگاری زیر با طول کلید مشخص شده (یا قویتر)استفاده شود:

Ciphers:                  chacha20-poly1305, aes256-gcm, aes128-gcm, aes256-ctr, aes192-ctr, aes128-ctr
MACs:                    hmac-sha2-512-etm, hmac-sha2-256-etm, umac-128-etm

6 .تعریف لیست سفید کاربران
توصیه میشود تا لیست کاربرانی که امکان ورود به سیستم از طریق SSH دارند را محدود نمود )با استفاده از سطر AllowUsers در فایل پیکربندی(. لیست سفید مجموعه کاربرانی هستند که اجازه ورود به سیستم از طریق پروتکل SSH را دارند. هر کاربر دیگری که در این لیست نباشد اجازه ورود از طریق SSH را ندارد.

7 .تعریف لیست سفید آدرسها
توصیه میشود تا لیست آدرسهای IP که امکان ورود به سیستم از طریق SSH دارند را مشخص نمود (با استفاده از سطر ListenAddress در فایل پیکربندی)

8 .قطع نمودن جلسات بیکار
جلسات بیکار میتوانند خطرناک باشند. برای جلوگیری از تهدیدات احتمالی مرتبط با این امر میتوان افراد را پس از آنکه مدتی با سیستم کار نکردند، از سیستم خارج نمود. متغیر ClientAliveInterval میزان زمان برحسب ثانیه را مشخص مینماید و اگر در طول این مدت پیامی از سمت کاربر دریافت نشد، یک پیام در دسترس بودن به کاربر ارسال میشود. همچنین متغیر ClientAliveCountMax بیشترین تعداد دفعاتی را مشخص میکند که این پیام به کاربر فرستاده میشود. پس از این تعداد اگر پاسخی دریافت نشد، ارتباط کاربر ملغی میشود. در مثال زیر سرور هر 5 دقیقه )300 ثانیه( پیام در دسترس بودن برای کاربر ارسال مینماید. اگر بعد از دو بار پاسخی دریافت ننمود، کاربر را از سیستم خارج میکند:

ClientAliveInterval 300
ClientAliveCountMax 2

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

 

منبع مرکز ماهر