Руслан Рахметов, Security Vision
В текущем обзоре мы рассмотрим метод атаки на систему аутентификации, или шифрование путём полного перебора всех возможных комбинаций. Брутфорс (brute force) основан на грубой вычислительной силе и получил от этого своё название. Этот метод подбора паролей или шифров (без использования логических или криптографических уязвимостей) основан на том, что атакующий пробует все возможные варианты, пока не найдёт правильный (последовательно перебирая комбинации).
Брутфорс – это метод проб и ошибок, который можно встретить в повседневной жизни. Представьте, что у вас есть связка с 1000 ключами, но вы уже не помните точно, какой подходит к двери. Можно начать пробовать их один за другим. В цифровом мире замок – это система авторизации, а ключи – возможные пароли.
Чтобы перебрать простой пароль, не нужно слишком много времени. Например, если вы забыли четырёхзначный PIN-код от банковской карты, можно начать перебирать все варианты: 0000, 0001, 0002… Если бы PIN состоял из пяти или двадцати цифр, это бы повысило надёжность, но банки обычно ограничивают число попыток (обычно 3 в день) – если ошибся трижды, карта блокируется. Таким образом, для защиты можно установить более мощный замок (сложный пароль), использовать электронный замок с отпечатком пальца (2FA) или попросту ограничить количество попыток ввода, растянув процесс атаки как можно сильнее.
Идея метода достаточно проста: если пароль или ключ достаточно короткий, атакующий может просто попробовать все возможные варианты, пока не введёт верный. Но способы перебора и возможные варианты ускорения могут отличаться, поэтому предлагаем выделить несколько видов брутфорс-атак:
Классический (Brute Force) – полный перебор всех возможных комбинаций символов без учёта контекста. Короткие и слабые пароли такой метод способен покорить легко, пароль из шести символов (букв и цифр) потребует от двух до шести миллиардов вариантов (36⁶ = 2 176 782 336 с использованием латиницы и цифр и 43⁶ = 6 321 363 049 с русскими буквами взамен). Более сложные пароли подобрать таким методом будет гораздо сложнее и поэтому дольше.
Словарная атака (Dictionary Attack), когда злоумышленник использует готовый список паролей вместо полного перебора (например, базы данных утёкших паролей rockyou.txt и weakpass). Такой метод хоть и работает статистически быстрее классического, но неэффективен против уникальных паролей.
Гибридный брутфорс (Hybrid Attack) – самый изощренный вариант, который использует пароли из словаря и добавляет к ним цифры, спецсимволы, заглавные буквы (как бы заставляет пароль password мутировать в P@ssword1 или Pa$$w0rd!).
Атака с предрассчитанными хэшами (Rainbow Tables) использует готовые таблицы хэшей для мгновенного подбора паролей. Такой метод позволяет перебрать варианты гораздо быстрее за счёт использования хешей (например, MD5-хэш 5f4dcc3b5aa765d61d8327deb882cf99 – это password), но требует большого хранилища для работы и подходит для устаревших хэшей (MD5, SHA1). О том, что такое хэши и шифрование, мы уже рассказывали ранее.
В самом начале обзора мы упомянули, что атаки типа брутфорс обычно не используют для взлома уязвимости напрямую (во взламываемых системах), но могут эксплуатировать уязвимости у других устройств, чтобы заразить их и заставить «работать» на себя. В традиционном варианте атака идёт с одного устройства (его вычислительные мощности ограничены), а в распределенном брутфорсе (Distributed Brute Force) – используются сотни или тысячи компьютеров (например, ботнет-сети), чтобы:
- параллельно проверять множество паролей;
- избегать блокировок по IP;
- распределять нагрузку между разными машинами.
Тогда атака может выглядеть более сложно. Все начинается с создания сети атакующих машин с единым центром управления (как SOAR оркеструет задачами и системами SOC-центров, так и злоумышленник управляет cетью заражённых ПК и IoT-устройств). Также подойдут мощные GPU-фермы или облачные серверы. Все задачи атакующего разделяются на части: одна группа компьютеров тестирует пароли от aaaaaa до fffffff, другая – от gggggg до mmmmmm и т. д. Так атака идёт параллельно (не последовательно), а значит быстрее. Если одна из машин находит верный пароль, она сообщает об этом оператору ботнета. Такой способ позволяет избежать блокировок, поскольку атаки проходят из разных мест (с разных IP-адресов).
Современные видеокарты (NVIDIA RTX 4090 и 50) могут проверять миллионы паролей в секунду, а ниже небольшая оценка классического перебора для разных вариантов:
Подбор пароля 123456 (10⁶, миллион вариантов) происходит мгновенно, пароль password123 (10¹²) займёт пару секунд 2 секунды, p@ssW0rD!2024 (10²⁰) порядка 5 лет (хотя выглядит так, будто мог попасть в базу готовых словарей), а вот по-настоящему уникальный пароль вроде u6$F1g!rL$93*k (10³²) будет взламываться миллионы или миллиарды лет (трудно сказать точно, поскольку за это время прогресс может позволить ускорить процессы перебора).
В 2016 году ботнет Mirai заразил миллионы устройств (IP-камеры, роутеры) и использовал их для подбора SSH-паролей к серверам. В течение последних пяти лет зафиксированы случаи аренды злоумышленниками мощностей в AWS, Google Cloud, Azure и других облачных инфраструктурах, чтобы запускать атаки оттуда. Любые, даже самые сложные пароли можно подобрать, но, если это стоит слишком дорого или занимает огромное количество времени – злоумышленнику это может быть неинтересно (Например, подобрать закрытый ключ Bitcoin практически невозможно на практике, но атака возможна теоретически).
Иногда вместо подбора пароля для одного логина использует один пароль для множества логинов (т.е. обратный брутфорс): если у злоумышленника есть пароль password123, он проверяет его на миллионах e-mail-аккаунтов. Вообще вариантов применения много, например:
· Взлом учётных записей (подбор паролей для соцсетей, почты, интернет-банкинга);
· Кража криптовалют (перебор приватных ключей Bitcoin, Ethereum), защищённых паролями;
· Взлом серверов (подбор паролей к SSH, RDP, FTP, VPN);
· Взлом Wi-Fi (перебор пароля WPA2/WPA3);
· Взлом зашифрованных файлов (перебор паролей для ZIP, RAR, PDF);
· Расшифровка хэшей (поиск исходного пароля по хэшу).
Брутфорс используется как атакующими, так и специалистами по кибербезопасности для тестирования устойчивости систем, поэтому мы и рассмотрели сегодня данную атаку. В завершение статьи рассмотрим самые эффективные способы защиты от брутфорса:
1) Используйте длинные и сложные пароли (лучше 14+ символов);
2) Используйте менеджеры паролей для генерации и хранения вместо сохранения в браузере (если браузер не поддерживает мастер-пароль);
3) Придумывайте уникальные пароли (так один «утекший» аккаунт не повлияет на десятки или даже сотни других);
4) Включите базовую двухфакторную аутентификацию (2FA), даже если пароль взломан, для входа нужен будет второй фактор;
5) Доступ к самым критичным данным можно обеспечить с аутентификацией по аппаратным ключам (FIDO2, YubiKey в качестве второго или третьего фактора), исключив возможность взлома через сеть;
6) Включите ограничение попыток входа, если это возможно (временная блокировка после 3-5 ошибок);
7) Активируйте блокировку IP после нескольких попыток (fail2ban, CSF), так можно будет защититься от злоумышленника-одиночки на какое-то время и выиграть время на смену пароля;
8) Обеспечьте мониторинг логов (отслеживание неудачных попыток входа, например, при помощи SIEM -решений);
9) Веб-формы и сайты можно защищать при помощи CAPTCHA и reCAPTCHA;
10) А выход в сеть из незащищённых Wi-Fi сетей можно обезопасить при помощи VPN.