Исследование безопасности транспортной системы Тбилиси — или как кататься на транспорте и зарабатывать

Сразу спешу предупредить, что в Грузии нет аналога 327 статье УК РФ, поэтому все действия, описанные здесь, являются законными, пока не будет нанесен ущерб на сумму >2000 лари(~50000 рублей).

Стоит отметить, что сама идея была навеяна тремя другими статьями: «Тройка», «Подорожник», «Ситикард».

image

Транспортная система в Тбилиси несколько отличается от привычной для жителей России. Здесь вы не увидите трамваев или троллейбусов. Есть только автобус, метро, маршрутное такси и канатная дорога. Первое и второе вам обойдется в 50 тетри(~12,5 рублей), маршрутное такси — 80 тетри, а канатная дорога — 2 или 3 лари. Весь этот транспорт можно оплатить картой Metromoney.

Для исследования карты использовался Proxmark3. Первым делом определим тип rfid-метки:

image

Как видим, это — mifare classic 1k с 4-байтным uid. Proxmark поддерживает три типа атак на mifare classic: darkside, nested и hard nested. Эта карта уязвима ко всем трём в отличие от известной нам «Тройки» и «Подорожника». Атака эта давно известна, описана она была ещё в далеком 2009.

Следующим шагом будет проверка карты набором стандартных ключей:

image

В результате мы находим стандартный ключ — FFFFFFFFFFFFF. Затем переходим к самой nested attack:

image

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

image

Здесь отсутствует шифрование, значит всё, что нам остается сделать — это прописать в блоке значений, где стоит сумма 5 лари, любую нужную нам сумму(стоит помнить, что >2000 лари). Если вы захотите клонировать такую карту, клонировать нужно и uid карты, т.к. его хэш хранится в отдельном блоке. Какой-либо системы онлайн проверки карт здесь не существует, турникеты в метро как и турникеты на фуникулёре работают оффлайн, автобусы тоже. Грузия интересная страна, здесь есть терминалы оплаты, которые работают с транспортными картами оффлайн.

image
На фото крайний справа. На нём снизу видно специальное место, куда следует прикладывать rfid-метку

Можем поднести карту с любым нашим балансом и, он без каких-либо проблем отобразит её и предложит пополнить.

Также здесь есть небольшой нюанс, такую карту можно сдать в кассу с возвращением всей суммы на ней (!) и залоговой стоимости в течение 30 дней с момента покупки при предъявлении чека и самой карты.

Статья была бы неполной, если бы я не упомянул местные дебетовые карты express bank. У меня на руках совершенно случайно оказалась социальная карта грузинского студента, выглядит она следующим образом:

image

Сама rfid-метка представляет из себя jcop41 с эмуляцией mifare classic 1k.

image

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

image

Как верно было подмечено пользователем 532CDCCC1022 все транспортные системы в той или иной степени небезопасны. Использование решений десятилетней давности делает их только более уязвимыми.

P.S. Все совпадения случайны, а указанные действия совершенны неким неназванным джедаем.
Метки:
Поделиться публикацией
Похожие публикации
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама
Комментарии 27
  • 0
    «Нету у вас методов на Костю Сапрыкина» Ц
    • +2
      Вся система проектировалась компанией AzRy, боюсь даже представить что у них с остальным софтом.

      Карты MetroMoney не именные, те можно купить в метро и сохранить чек для возвращения в кассу. Так что, делов можно наделать.
      • 0
        В Европе за дела сажают, а в Грузии взятку дать некому, если поймают. Я не рискнул дела делать, хотя «заработать» можно много.
        • +1
          Я более, чем уверен, что этой дырой пользуются уже давно. По утрам на каждой станции метро стоят мутные типы с пачками карт и предлагают провести за копейки.
          • +2
            Скорее всего они просто эксплуатируют бесплатные полтора часа, которые даются после платного проезда.
            • 0
              Льготы они эксплуатируют. 20 т. вместо стандартных 50 т.
      • +2
        В ближайшем будущем соберяются обновить всю систему и добавить оплату через любую банковскую карту (особенно удобно для туристов). И надеюсь заодно закроют и эту дыру :)
        • +2
          Ага, ага. Делали мы для них «обновленную» систему. Ну, конкретно, часть ее — ридер, на котором исполняется бизнес-логика (и как автономный, и как терминальный — универсальное решение такое). С блекждеком и шлюхами, разумеется (ну в смысле с ассиметричной криптографией и различными приемами, не позволяющими просто так вот «расправляться» с картами). В результате проект свернули в угоду «политически верным» поставщикам текущего оборудования. Не вдаваясь в политические нюансы, в общем-то обычный распил и откат случился. Просто выиграли «те», а не «эти». Еще и потом развалили подразделение, которое занималось непосредственно новым проектом и всех хороших людей поувольняли. С нами, правда, за разработку расплатились, надо отдать должное, никаких вопросов. Так что ничего нигде там никто не закроет, как были дырки, так и будут, все в среднем останется так же. Всем насрать :(
          • 0
            Ну это всеравно лучше чем ничего (имею ввиду жетоны, оплата наличными и т.д.)
        • 0
          Если система не сливает оплату по сети, то каким образом узнают про мою оплату в транспорте проверяющие с терминалами на конечных остановках?
          • +1
            Не совсем понял, проверяющим ж карту даёшь. По крайней мере тем, что я встречал этого было достаточно. Либо бумажный билет.
            • 0
              Я думаю на карте просто записывается время и идентификатор последнего использованного транспортного средства.
              • 0
                На Тройке именно так и есть.
                Свой последний проход можно посмотреть телефоном с NFC, например приложением «Просмотр билета».
          • +6
            Примечательно, что референсные статьи выпилены из хабра. Благо сохабр все помнит.
            • 0
              Скорее всего просто убраны в черновики самими авторами.
            • 0
              На самом деле возможно спроектировать безопасную систему на mifare plus в sl3 режиме. Во всяком случае на порядок более защищенную чем текущие.
              • 0
                Попросили запостить: forum.ixbt.com/topic.cgi?id=48:12007:6698#6698

                1. Соответствующие статьи в УК есть (№284-286), даже за неправомерный доступ, который ничего не испортил, просто за сам факт доступа, можно получить до 2х лет. (я лично входил в консультационную группу, когда их принимали, в середине 90х)

                2. Система пополнения и учёта баланса- псевдо оффлаин, считывание происходит раз в 24 часа, эмнис, в 2 часа ночи, когда все реисы прибыли в депо, и снимаются показания с ридеров в маршрутках и автобусах. Так что, помухлевав с карточкой, или сделав её клон, вы ей попользуйтесь только в течений 24 часов, потом карточка будет забанена.

                3. Тот самый пейбокс, которым можно пополнить баланс карточки, в момент пополнения баланса, также делает ваше фото, себе на память.

                4. И еще много нюансов. Короче, автор статьи мнит себя Кевином Митником, а Грузинов считает профанами в области присвоения того, что плохо лежит, что мягко говоря, не совсем правда, исходя хотя бы из количества воров, которых Грузия исправно поставляет на экспорт.
                • 0
                  1. Каким образом вы докадете факт доступа к доступа к такому носителю информации? Нашёл карту на улице.
                  2. Проверка осуществлялась в течение недели. Почему карту не забанили мне непонятно.
                  3. Камера в пейбоксе же направлена строго в одном направлении
                  4. Уточните пожалуйста, что вы имеете ввиду.
                  • 0
                    пришла в голову статья из 2013, тоже про БСК общественного транспорта, только в России
                    habrahabr.ru/post/175557
                  • 0
                    Тот анонимусавтор с ixbt мнит себя минимум Шивой в вопросах безопасности. Это непрофессионально.

                    А автор статьи пусть посоветует тому анонимному джедаю, хозяину руки на фото, кушать больше кальция. Иначе по рисунку белых пятен на ногтях легко может и деанон произойти ;)
                  • 0
                    Сама компания пишет, что примет меры, если использование этой уязвимости станет статистически существенной.
                    • 0
                      ТС, а этот джедай всё ещё в грузии, а то у моего знакомого(тоже джедай), совершенно случайно оказалась такая карточка. Ну в общем он на коленке приложение на дроид нарисовал, которое позволяет по этому методу балан править.
                      Только у него в 1м секторе 0й блок не совпадает с 1м… вот такая засада
                      • 0
                        Джедай в Грузии говорит, что совпадают эти блоки до первой поездки, далее меняются они различными образами.
                        • 0
                          Ну так и в какой же всётаки актуальный баланс? Не говорит?
                          • 0
                            Так что мешает посмотреть? Пробиваем карту, выдается чек, на котором указан оставшийся баланс, сравниваем и узнаем в каком он блоке. Автор статьи менял оба блока, что тоже допустимо.
                      • 0
                        >Также здесь есть небольшой нюанс, такую карту можно сдать в кассу с возвращением всей суммы на ней (!) и залоговой стоимости в течение 30 дней с момента покупки при предъявлении чека и самой карты.

                        То есть кассир не сможет отследить было ли реальное пополнение? -.-
                        • 0
                          Ну он проверяет балланс записанный на карте, оффлайн

                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.