Как не отдать хакеру свой аккаунт: методы обхода MFA и способы защиты от таких кибератак
Меня зовут Василий Огнев, я руковожу направлением многофакторной аутентификации (MFA) в компании МТС RED, создающей продукты и сервисы кибербезопасности. В прошлой статье мы обсудили недостатки традиционных паролей: от любви пользователей к слишком простым комбинациям до подбора паролей брутфорсом.
Эффективное решение проблемы — использование технологии MFA, предусматривающей после ввода пароля (его называют фактором знания) дополнительный ввод кода, получаемого на личное устройство (второго фактора или фактора владения). В этой статье мы рассмотрим, как хакеры обходят защиту MFA и что надо сделать, чтобы отразить такие атаки.
Атака на самое слабое звено
Часто самое слабое звено в защите от киберугроз — это человек. По данным МТС RED и Phishman, около 80% всех инцидентов вызваны человеческим фактором. Иногда пользователя можно обучить, чтобы он не попался на уловки злоумышленников, иногда лучше настроить систему, чтобы минимизировать саму возможность этих ошибок.
В 2022 году хакер проник во внутреннюю ИТ-систему компании Uber и оставил сообщение в корпоративном чате Slack. Компания рассказала, как злоумышленнику удалось пройти многофакторную аутентификацию. Предположительно, хакер купил в dark web логин и пароль внештатного сотрудника, а потом забросал его запросами на одобрение второго фактора, пока тот не одобрил аутентификацию. Такой метод называется MFA fatigue attack (можно перевести как атака «взятия на измор») или MFA bombing. Он сработает только в MFA-системах, в которых пользователю достаточно одного нажатия кнопки для того, чтобы разрешить доступ к защищаемому ресурсу. Этот вектор атаки возник с появлением PUSH, поскольку пользователь мог случайно нажать на кнопку подтверждения во всплывающем окне или приложении.
Чтобы снизить этот риск, MFA-решение должно предусматривать «шаговость» аутентификации. В частности, запрашивать дополнительное подтверждение помимо PUSH — короткий ПИН-код или другие варианты, которые не позволяют аутентифицироваться, просто нажав на кнопку. Очень эффективным методом противодействия этой атаке является использование в качестве второго фактора цифрового OTP (One-Time Password), что исключает случайное подтверждение. И кроме того, хорошим тоном считается наличие в MFA-решении ограничения на количество запросов на ввод второго фактора (блокировки на время).
Еще один способ получить доступ к учетной записи, минуя защиту MFA, — убедить человека выдать код второго фактора с помощью социальной инженерии. Чаще всего злоумышленник просто представляется сотрудником службы технической поддержки, но иногда хакеры выстраивают несколько более сложную схему. Например, при атаках на аккаунты пользователей Госуслуг злоумышленники присылали сообщение о блокировке доступа к сервису в связи с подозрительной активностью. В сообщении указывались номера телефонов «технической поддержки», с которых поступит звонок для восстановления доступа и на которые можно позвонить самостоятельно. В ходе такого телефонного разговора мошенники просили пользователя сообщить код для прохождения двухфакторной аутентификации, заявляя, что он необходим «для проверки и восстановления» доступа.
Для описания всех схем социальной инженерии для получения кода второго фактора не хватит ни одной статьи. Единственный способ избежать взлома учетной записи в результате таких атак — постоянно напоминать пользователям, будь то сотрудники компании или родственники, о правилах кибербезопасности.
Эксплуатация несовершенств сервиса
Иногда злоумышленники используют несовершенство сервисов многофакторной аутентификации. Например, отсутствие ограничения на количество попыток ввода второго фактора может привести к тому, что злоумышленник подберет код брутфорсом. Такая уязвимость существовала, например, в Facebook. Исследователь Джитм Маноц (Gtm Mänôz) сообщил о том, что он взял телефон условной жертвы, указал его как свой в аккаунте и подобрал брутфорсом код, присылаемый «жертве» в коротких сообщениях (Facebook хотел убедиться, что телефон переключается на другой аккаунт). Чтобы избежать таких ситуаций, и число попыток, и время ввода второго фактора должны быть ограничены.
Также некоторые ранние версии систем 2FA и MFA генерировали одноразовые коды, либо применяя для этого простые генераторы случайных чисел, даже без криптографии, либо используя как основной алгоритм скомпрометированный SHA-1 (а некоторые решения продолжают эту практику и сегодня). При генерации OTP очень важно, чтобы коды были истинно случайными и, как следствие, непредсказуемыми. Использование устаревших алгоритмов, таких как SHA-1, может поставить под угрозу эту непредсказуемость, потенциально позволяя злоумышленникам вычислять или предсказывать OTP. Коллизии в SHA-1 тоже делают его ненадежным для использования в системах, где требуется высокая степень уникальности и непредсказуемости. Надежный сервис MFA должен как минимум предоставлять выбор в использовании надежных криптоалгоритмов и избегать простых реализаций при генерации OTP.
Отдельная проблема — использование SMS как канала для доставки кодов аутентификации. Во-первых, нет уверенности, что злоумышленник не добьется выдачи новой сим-карты с вашим номером на свое имя. Возможно, именно это произошло в истории, когда после восстановления доступа к аккаунту на Госуслугах человек обнаружил, что через его учетку в его квартире успели прописаться восемь посторонних человек.
Во-вторых, используемый для SMS протокол SS7 создавался 50 лет назад — он не был рассчитан на современные кибератаки. В результате для перехвата SMS требуются относительно небольшие ресурсы, а дальше уже дело техники, как ввести их быстрее пользователя, лишив его доступа. По возможности стоит избегать использования SMS и генерировать код второго фактора непосредственно на устройстве, как это происходит при использовании OTP-приложения или аппаратного ключа.
Другой потенциальный риск, связанный с использованием SMS в качестве второго фактора, — недекларированные возможности мобильных приложений. На устройство пользователя они могут попасть как из различных сомнительных источников, так и из вполне официальных AppStore и Google Play — там тоже периодически обнаруживается вредоносное ПО. Глобально очень многие приложения запрашивают доступ на чтение SMS, пользователи привыкли к этому и часто автоматически дают разрешение на все. Поэтому есть риск и того, что пользователь установит вредоносное приложение, которое будет перехватывать SMS и отправлять их на сервер злоумышленника.
В заключение хочется сказать, что по данным Microsoft, MFA позволяет многократно повысить надежность системы и отразить 99,9% атак на учетные записи. Однако дьявол всегда в деталях, в данном случае — в деталях реализации многофакторной аутентификации. Поэтому выбирая решение, всегда стоит обращать внимание на то, где генерируется код второго фактора, как он доставляется пользователю и как защищен от существующих векторов атак.