Меня зовут Василий Огнев, я руковожу направлением многофакторной аутентификации (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% атак на учетные записи. Однако дьявол всегда в деталях, в данном случае — в деталях реализации многофакторной аутентификации. Поэтому выбирая решение, всегда стоит обращать внимание на то, где генерируется код второго фактора, как он доставляется пользователю и как защищен от существующих векторов атак.

Комментарии (5)


  1. dmitry777z
    12.07.2024 18:33

    100% защиты от вирусов нет.

    Новые угрозы: Вирусы постоянно эволюционируют, появляются новые виды и модификации, которые могут обойти существующие антивирусные системы.

    • Сложность программ: Даже самые сложные антивирусные программы не могут предусмотреть все возможные сценарии атак и защититься от всех видов вредоносных программ.

    • Человеческий фактор: Пользователи часто совершают ошибки, которые могут привести к заражению, например, открывая вредоносные вложения, переходя по подозрительным ссылкам или устанавливая приложения из ненадежных источников.

    • Проблемы с обновлением: Некоторые пользователи забывают обновлять свои антивирусные программы, что делает их уязвимыми для новых угроз.


    1. Kil1J0y
      12.07.2024 18:33
      +1

      MFA хорошо работает пока с ним работает обученный человек который знает как проходит авторизация, а если пошла атака понижения не продолжит авторизацию менее защищенным методом.

      От 0-day защиты нет, какая бы у вас система безопасности не была, вспоминаем eternalblue, ни ids/ips их не фиксировали пока не выскрылась уязвимость.

      Есть 100% защита от вирусов, если соблюсти некоторую подготовку

      1. Получит образ ОС 100% чистый

      2. Ставить в оффлайн

      3. Ни в коем случае не подключать интернет

        Вы великолепны у вас рабочая система без возможности заражения через интернет, остаётся следить кто что подключает к ней.


  1. Ileots
    12.07.2024 18:33

    Скажите, а есть ли планы внедрить защиту от обхода MFA в ЛК МТС?...

    Формально она есть, но, специально ещё раз проверил - отключается одной смс-кой...

    Это не говоря о том, что при 2фа, включенной в ЛК МТС, в него все равно можно попасть без пароля, только по смс - через логин в МТС банк, где 2фа нет в принципе ...


  1. SagePtr
    12.07.2024 18:33

    либо используя как основной алгоритм скомпрометированный SHA-1

    А можно с этого момента подробнее: в чём именно этот алгоритм скомпрометирован? Пока что знаю только одну уязвимость - это теоретическую возможность генерации двух различных документов с одинаковым хэшем - но не понимаю, как это может быть применимо в случае TOTP? Неужели злоумышленник, зная несколько сгенерированных одноразовых кодов и время их генерации, может восстановить общий секрет или сгенерировать коды для другого времени? Или сгенерировать другой секрет, который будет давать те же самые коды?


    1. dupidu Автор
      12.07.2024 18:33

      Как раз по эту коллизию и идет упоминание в статье и объяснено почему это не очень хорошо для систем где важна уникальность. Да сейчас нет активной атаки для применения её для OTP, но вероятность, в связи с данной коллизией есть и когда её применят или разовьют, то мы об этом узнаем скорее всего с неким опозданием и возможно получим "уязвимость нулевого дня (0-day)". Это не означает, что от SHA-1 надо отказаться уже сейчас и больше его не использовать, просто если есть возможность выбора более защищенного криптоалгоритма и это никак не влияет на какие-то другие параметры, то лучше использовать уже его...