Наиболее простым способом взлома оказался реверс-инжиниринг Android-приложения «Мой проездной», используемого для пополнения Тройки. Шевцову удалось получить исходный код программы, а потом изменить его таким образом, чтобы пополнение счёта осуществлялось без реальной оплаты.
Выбор данной цели обусловлен ещё и тем, что для исследования не требовалось иметь доступ к объектам общественного транспорта, и все операции по поиску уязвимостей можно было произвести, не выходя из дома.
В результате работы Шевцов создал приложение TroikaDumper, позволяющее эксплуатировать уязвимости системы электронного кошелька.
Больше всего времени заняло изучение структуры данных в памяти карты. Это оказалось возможным из-за того, что данные хранятся в незашифрованном виде.
В случае, если бы данные в памяти карты были зашифрованы, вероятнее всего, потребовалось бы физическое проникновение в системы работающие с картой, что делает атаку существенно сложнее.
По словам Шевцова, для исправления найденных уязвимостей «необходимо усовершенствование формата хранения данных в памяти карты и обновление программного обеспечения всех систем, работающих с картой».
Разработчик заявил, что взлом производился «исключительно в ознакомительных целях», так как подделка проездных билетов является уголовным преступлением.
Главный редактор «Хабрахабра» Александр Козлов обратился за комментарием в Департамент информационных технологий Москвы, где ему ответили, что Тройка разрабатывается без участия ДИТ — силами Департамента транспорта и развития дорожно-транспортной инфраструктуры. Козлов пообещал донести информацию об уязвимости до Дептранса, однако, как отреагировало ведомство, остаётся неизвестным.
Руководитель пресс-службы Департамента транспорта и развития дорожно-транспортной инфраструктуры Москвы Алёна Ерёмина в телефонном разговоре сообщила, что ей ещё ничего неизвестно об уязвимости.
via