Хакер взломал систему оплаты карты «Тройка»
Опытный программист выявил уязвимость приложения «Мой проездной», которое служит владельцам смартфонов для пополнения карты «Тройка». Баг позволяет ездить на всех видах московского транспорта, в том числе аэроэкспрессах и велосипедах, фактически бесплатно, посещать планетарий и делать многое другое.
Более того — программист разработал приложение под Android, которое позволяет пополнять электронный кошелек виртуальными деньгами.
UPD: Через несколько часов после выпуска статьи пресс-служба Московского метрополитена сообщила, что устранила уязвимость в системе. Для этого разработчики даже связались с программистом, который нашел баг.
Две недели и 10 рублей
Информация о приложении и дефекте системы оплаты появилась на одном из популярных сайтов, изучающих уязвимости программ. «Были найдены уязвимости, позволяющие выполнить подделку баланса, записанного на электронном кошельке карты Тройка, - сообщил пользователь под именем Игорь Шевцов. - В результате чего стало возможным использование систем, поддерживающих карту, без оплаты».
В ходе исследования, которое продолжалось всего 14 дней и выполнялось одним человеком в свободное время, Шевцов выяснил, что карта ни капельки не защищена от подделки баланса электронного кошелька. Системы проверки подлинности электронных подписей не соответствуют современным требованиям и легко обходятся одним-единственным вмешательством.
Для взлома системы Игорь Шевцов использовал приложение для смартфонов «Мой проездной», которое разработано «Банком Москвы» для гаджетов Android, и позволяет пополнять карту с помощью смартфона с функцией NFC. «Несмотря на применяемые системы защиты, такие как ключи доступа к карте и криптографическая подпись в секторе электронного кошелька, подделка баланса оказалась возможна», - мягко замечает программист.
Больше всего времени заняло изучение структуры данных в памяти карты. Доступ к ним оказался открыт: все данные, в том числе дата, время и место прохода через считывающие устройства, размер и место списания и многое другое хранятся в незашифрованном виде. Но просто шифровка этой информации, по мнению исследователя, не решает проблему.
«В случае, если бы данные в памяти карты были зашифрованы, вероятнее всего, потребовалось бы физическое проникновение в системы, работающие с картой, что делает атаку существенно сложнее», — уверен Шевцов.
Более того, затратив всего десять рублей, программист сумел найти ячейки, в которых хранятся данные о балансе: всего-то и надо было, что десять раз пополнить «Тройку» на рубль, внимательно изучая изменения кодов.
«Путём подбора возможных форматов хранения данных было выяснено, что значение баланса электронного кошелька хранится в области памяти от младших 4 бит 8 байта до старших 3 бит 10 байта и рассчитывается по формуле…», - пишет программист. Соответственно, изменение именно этих цифр в памяти карты «Тройка» позволило пополнить баланс карты, не потратив ни копейки.
Итогом исследования стало приложение TroykaDumper, которое позволяет легко пополнить баланс карты, фактически не потратив ни копейки. А поскольку приложение устанавливается на мобильный телефон с ОС Android, то электронный кошелёк наполняется вполне реальными деньгами в любом месте в любое время. Автор исследования также даёт вполне кликабельную ссылку на скачивание программы.
Что думает производитель
Редакция МОСЛЕНТЫ связалась с производителем карты «Тройка» и выяснила, что программа «Мой Проездной» разработана специалистами одного из крупных российских банков и сертификацию не проходила, так как «производители автомобилей не сертифицируют бензин». Информацией об экспертной оценке качества программ конкретного Банка фирма-производитель не обладает – кредитное учреждение защищено имиджем.
В настоящее время получить комментарий от банка редакции МОСЛЕНТЫ не удалось.
По мнению представителей столичной полиции, в действиях автора исследования не содержится состава преступления, так как никакого ущерба он не принёс. Но, если в полицию поступит заявление с данными о реальном ущербе, то по нему будет проведена проверка и принято процессуальное решение.
Опытный программист, специализирующийся на защите информации, рассказал МОСЛЕНТЕ, что система безопасности «Тройки» сделана на уровне прошлого века, и не отвечает современным требованиям. Информация о низком качестве специалистам поступала и раньше, однако до сегодняшнего дня достоверных данных о взломе не было. Сейчас многие криптографы, используя опубликованный материал, уже бросились проверять приведённые в нём данные.
Москвичи пользуются картой «Тройка» с 2013 года. Она является пополняемым электронным кошельком. Согласно сайту troika.mos.ru, горожане приобрели более 7 миллионов карт. «Тройка» принимается к оплате в метро, наземном пассажирском транспорте, в кассах «Аэроэкспресса», планетарии, московском зоопарке, катках ВДНХ и Парках Горького, в пунктах городского велопроката.