19 мая 2017

Почему двухфакторной аутентификации недостаточно

Новости

Традиционный спор «нужен ли антивирус» довольно часто выглядит так:

— Да не нужен мне ваш антивирус, у меня красть нечего! Ну заразят, ну зашифруют компьютер — переставлю систему начисто, удалю все вирусы, а ничего ценного на компьютере у меня нет.

— Но банковская карточка-то у тебя есть? В интернет-магазинах ты что-то покупаешь?

— Ха, так у банка двухфакторная аутентификация, она меня защитит. Даже если украдут номер карточки, то деньги списать не смогут.

Как показывает практика, смогут. Во-первых, совсем не все интернет-магазины используют защиту 3D Secure, то есть совсем не любые транзакции требуют подтверждения кодом из SMS. Получается, можно что-то купить на вашу карту так, что вы об этом даже не узнаете, пока не посмотрите в историю покупок. Да и что уж там, даже CVC-код (три цифры с обратной стороны карты) нужен не везде — кое-где можно потратить денежки с вашей карты и без него.

Во-вторых, мошенники научились перехватывать SMS с кодами безопасности, которые отправляют банки, и выводить все деньги, которые есть на карте. Не так давно именно таким способом в Германии киберпреступники провернули крупную операцию по хищению средств с кредиток незадачливых пользователей. Давайте немного подробнее разберем, как это произошло.

Почему двухфакторной аутентификации недостаточно

ОКС-7: дырка в телефоне

Перехватывать SMS возможно из-за уязвимости в наборе сигнальных телефонных протоколов под общим названием ОКС-7 (они же SS7, они же Система сигнализации №7, они же Signaling System 7 или Common Channel Signaling System 7).

Эти сигнальные протоколы являются основой всей современной системы телефонной связи — они служат для передачи всей служебной информации в телефонных сетях. Их разрабатывали еще в в 1970-х, впервые использовали в 1980-х, и с тех пор они успели стать общепринятым стандартом.

Изначально протоколы ОКС-7 разрабатывались для стационарной связи. Идея состояла в том, чтобы разделить голосовой трафик и служебные сигналы физически, поместив их в разные каналы. Делалось это для борьбы с телефонными взломщиками — они использовали специальные коробочки для имитации тоновых сигналов, с помощью которых тогда передавалась служебная информация в телефонных сетях. Именно с таких коробочек в свое время начинали Стив Джобс и Стив Возняк — впрочем, это совсем другая история.

Позже тот же набор протоколов был использован и в мобильных сетях. Попутно телефонисты прикрутили к нему еще кучу функций — в частности, именно через ОКС-7 на самом деле передаются SMS.

Проблема в том, что полвека назад об информационной безопасности (по крайней мере, гражданской) думали мало, а основное внимание уделяли эффективности, поэтому Система сигнализации №7 получилась удобной, но дырявой.

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

В итоге уровень защищенности системы в целом определяется наименьшим уровнем защищенности среди ее участников. То есть если какого-то из входящих в нее операторов взломали, то всю систему можно считать скомпрометированной. Ну или если кто-то из администраторов сети какого-либо оператора решил несколько превысить служебные полномочия и использовать SS7 в своих целях — результат будет тот же.

А поскольку, имея к ней доступ, можно подслушивать разговоры, определять местоположение абонента и перехватывать текстовые сообщения, не очень санкционированным доступом к ОКС-7 активно пользуются как спецслужбы разных стран, так и злоумышленники.

Собственно атака

В случае недавней атаки в Германии последовательность действий злоумышленников выглядела так:

1. Компьютер жертвы заражали банковским троянцем. Троянцев довольно легко подцепить, если у вас нет защитного решения, а многие из них ведут себя так, что обнаружить их без антивируса невозможно, поэтому пользователи ничего не замечали.

С помощью такого троянца злоумышленники воровали у жертв логины и пароли для доступа в интернет-банк. Но украсть только платежную информацию в большинстве случаев недостаточно — надо еще получить тот самый код подтверждения транзакции, который банк присылает на телефон в виде смски.

2. Видимо, с помощью того же банковского троянца воровали и номера телефонов — его часто требуется указывать при покупке в интернет-магазине, как раз перед тем как вводить номер карты. На этом моменте у мошенников были и доступ к интернет-банку, где они могли видеть, сколько денег есть у жертвы на счетах, и ее номер мобильника. Оставалось вывести деньги.

3. Далее злоумышленники, используя украденные логин и пароль интернет-банка, инициировали перевод денег с карты на свой счет. После этого, получив доступ к SS7 от лица некого оператора связи из другой страны, они переадресовывали SMS, отправленные на номер абонента немецкого оператора, на свой номер. Таким образом они получали коды подтверждения транзакций, вводили их в интернет-банке и успешно переводили на свой счет все деньги — так, что у банка даже подозрение не закрадывалось о возможной нелегитимности операции.

Атаку подтвердил и немецкий оператор, абоненты которого оказались пострадавшими в этой истории. Иностранного мобильного оператора, чей доступ в систему был использован для атаки, заблокировали, а пострадавших уведомили об атаке. Правда, нам не известно, помогло ли им это вернуть деньги.

Вам все еще не нужен антивирус?

Двухфакторная аутентификация кажется надежной защитой: если доступ к телефону есть только у вас, то кто же еще может прочитать текстовое сообщение, которое на него придет?

Как видите, прочитать его может любой, кто получит доступ к системе ОКС-7 и заинтересуется именно вашими текстовыми сообщениями и деньгами на вашей банковской карте.

Как организовать двухфакторную аутентификацию правильно и как защититься от атак вроде той, о которой говорится в этом посте? У нас есть несколько советов.

  • Для двухфакторной аутентификации можно пользоваться не только SMS. Если есть возможность, стоит использовать другие варианты — например, приложение Google Authenticator или криптографические USB-ключи. К сожалению, банки альтернативных видов двухфакторной аутентификации не приемлют, отправляя для подтверждения исключительно SMS. Так что в случае несакционированной попытки доступа к интернет-банку спасти может только пункт 2.
  • Используйте надежное защитное решение на каждом устройстве. В случае описанной в этом посте атаки хороший антивирус не позволил бы банковскому троянцу заразить компьютер и украсть логин и пароль от интернет-банка. И было бы уже не так важно, могут злоумышленники получить доступ к вашим SMS, или нет — до этого этапа просто не дошло бы.