20 декабря 2013
Как узнают состояние вашего банковского счета, зная только ваш телефонный номер
Опубликовано на сайте компании ООО “Грин Хэд”
Мобильная связь и сфера банковских услуг тесно связаны друг с другом. SMS-сервисы – одна из первых услуг, к которой обратились банковские системы. Самым популярным из них является, пожалуй, сервис оповещения о количестве средств на собственном счете. Такая услуга предоставляется большинством банков. Ведь весьма удобно получать SMS-сообщение каждый раз, когда ваш счет уменьшается, и уж тем более, если у вас пополняется баланс. Кроме того, по запросу можно узнать состояние своего баланса. Для этого необходимо послать SMS-сообщение на заранее выданный вам банком телефонный номер. В ответ вы получите информацию о состоянии вашего банковского счета.
К сожалению, подобные системы уязвимы. Данные о вашем балансе можете узнать не только вы, но и злоумышленник. Причем ему не надо будет знать ни вашего имени, ни номера счета, а только номер вашего телефона.
Что использует злоумышленник для атаки?
Для того чтобы понять, каким образом злоумышленник получает доступ к информации о состоянии банковского счета, необходимо уделить внимание рассмотрению архитектуры наиболее распространенной системы SMS-оповещения, которой пользуются банки.
Стандартную схему вы можете видеть на приведенном ниже рисунке. Любой банк имеет базу данных собственных клиентов. Если клиент подписан на SMS-сервис, то его телефонный номер всегда присутствует в базе данных. Именно с этими номерами работает установленное на стороне банка приложение, отвечающее за SMS-рассылку.
Такое приложение обменивается информацией по сети Интернет с уже хорошо знакомым нам SMS-шлюзом поставщика услуг мобильной связи. Как правило, обмен идет по защищенному протоколу HTTPS.
Поставщик услуг в свою очередь связан с передающими станциями операторов, обмениваясь с ними данными по защищенному HTTPS-протоколу. А с сотовыми операторами обмениваются SMS-сообщениями уже пользователи услуг. Схема достаточно проста и с виду вполне надежна.
Приведем теперь примеры запросов, которыми обмениваются участники данной схемы. Так как мы рассматриваем проблему уязвимости SMS-систем банков в целом, то приводимые запросы – это всего лишь обобщение запросов с указанием вымышленных имен банков и шлюзов. Поставщик услуг, получив от зарегистрированного пользователя с номером 89037548744 SMS-сообщение, формирует запрос информационной системе банка о состоянии счета.
При получении запроса банковское приложение ищет номер счета пользователя, связанного с номером мобильного телефона. Если счет существует, то приложение посылает в ответ SMS-сообщение с детальной информацией о состоянии счета. К сожалению, данная схема уязвима. Во-первых, не все банковские приложения выполняют проверку на подлинность таких запросов.
То есть не все приложения используют защищенные протоколы передачи данных с поддержкой аутентификации клиентов. А это значит,что злоумышленник может выполнить поддельный запрос к банковскому приложению. Для этого ему необходимо знать Интернет-адрес банковского приложения и номер мобильного телефона интересующего его абонента.
Во-вторых, даже защищенные протоколы передачи данных, такие как SSL, все же являются уязвимыми. Интересно то, что для подобной атаки злоумышленнику необходим всего лишь компьютер с выходом в Интернет и Интернет-браузер.
С помощью описанного механизма злоумышленник может не только получить информацию о состоянии баланса абонента, но и собрать информацию о банковском приложении для осуществления последующих атак. Целью атак является не само приложение, а получение полного доступа к банковским программным комплексам обработки данных. В результате злоумышленник будет обладать информацией о счетах всех клиентов банка.
Защита от атаки
Для предотвращения подобного рода атак банки должны более внимательно относиться к безопасности своего программного обеспечения.
Во-первых, необходимо использовать защищенные протоколы.
Во-вторых, приложения должны правильно обрабатывать ошибки таким образом, чтобы не снабжать мошенника данными, на основе которых он смог бы получить представление об архитектуре и уязвимостях системы.
Для пользователя подобных услуг дополнительной информацией о том, что злоумышленник ведет охоту за сведениями о его банковском балансе, может быть получение сообщения о состоянии счета, которое он не запрашивал.
Поясним, почему так может произойти и почему это является признаком атаки.
Дело в том, что не все банковские системы отвечают на HTTP-запрос HTTP-ответом, сообщая состояние баланса в течение установленного соединения. Иногда приложения отвечают лишь сообщением о том, что запрос получен. После того, как в базе данных найдены сведения о состоянии счета, информационная система банка посылает запрос SMS-шлюзу на передачу SMS-сообщения с данными о балансе. При этом, если злоумышленник не может перехватить или прервать его передачу, то на телефон пользователя придет не запрошенное им сообщение.
Таким образом, получение неожиданных SMS-сообщений о состоянии счета должно вас насторожить.
Кроме того, необходимо быть аккуратнее с незнакомцами, которые пытаются подключиться к вашему телефону. Если вы предполагаете, что ваше мобильное устройство уязвимо, то необходимо сменить прошивку на более безопасную или поменять модель аппарата.