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