Мобильные сервисы банков - набирающая популярность услуга, которой пользуется все большее число клиентов банка. Мало кто подозревает, как опасна эта услуга

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

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

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

Стандартную схему вы можете видеть на приведенном ниже рисунке. Любой банк имеет базу данных собственных клиентов. Если клиент подписан на SMS-сервис, то его телефонный номер всегда присутствует в базе данных. Именно с этими номерами работает установленное на стороне банка приложение, отвечающее за SMS-рассылку. Такое приложение обменивается информацией по сети Интернет с уже хорошо знакомым нам SMS-шлюзом поставщика услуг мобильной связи. Как правило, обмен идет по защищенному протоколу HTTPS. Поставщик услуг в свою очередь связан с передающими станциями операторов, обмениваясь с ними данными по защищенному HTTPS-протоколу.

Архитектура банковской системы SMS-оповещения

 

А с сотовыми операторами обмениваются SMS-сообщениями уже пользователи услуг. Схема достаточно проста и с виду вполне надежна. Приведем теперь примеры запросов, которыми обмениваются участники данной схемы. Так как мы рассматриваем проблему уязвимости SMS-систем банков в целом, то приводимые запросы — это всего лишь обобщение запросов с указанием вымышленных имен банков и шлюзов. Поставщик услуг, получив от зарегистрированного пользователя с номером 89037548744 SMS-сообщение, формирует следующий запрос информационной системе банка о состоянии счета:

https://sms.plohoybank.ru?<xmlversion=?1.0?><sms>
<tel>89037548744</tel>
<request> check balance</request><sms></xml>

Как видно из приведенного примера, запрос представляет собой следующее сообщение в XML формате:

<xml version=?1.0?>
<sms>
<tel>89037548744</tel>
<request>check balance</request>
</sms>
</xml>

В теге tel записывается номер телефона, а в теге request — команда на проверку состояния счета.

При получении запроса банковское приложение ищет номер счета пользователя, связанного с номером мобильного телефона. Если счет существует, то приложение посылает в ответ SMS-сообщение с детальной информацией о состоянии счета.

Данные о состоянии банковского счета атакованного абонента

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

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

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

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

Если злоумышленник выполнит следующий запрос:

https://sms.plohoybank.ru?<xml version=?1.0?<sms></sms></xml>

то от банковского приложения он получит ответ, приведенный ниже.

Получение информации об архитектуре банковского приложения с помощью ложного запроса

 

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

Для предотвращения подобного рода атак банки должны более внимательно относиться к безопасности своего программного обеспечения. Во-первых, необходимо использовать защищенные протоколы. Во-вторых, приложения должны правильно обрабатывать ошибки таким образом, чтобы не снабжать мошенника данными, на основе которых он смог бы получить представление об архитектуре и уязвимостях системы.

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

Поясним, почему так может произойти и почему это является признаком атаки.

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

Одним из явных признаков атаки является получение незапрашиваемых SMS-сообщений с информацией о состоянии вашего банковского счета.

Таким образом, получение неожиданных SMS-сообщений о состоянии счета должно вас насторожить.

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