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



Пшемек Ярошевски демонстрирует QR-код, позволяющий ему получить доступ в VIP-зал аэропорта

Глава польского подразделения «Компьютерной группы реагирования на чрезвычайные ситуации» (computer emergency response team, CERT) Пшемек Ярошевски (Przemek Jaroszewski) очень часто отправляется в международные командировки. Обычно он летает самолетом, в среднем 50 — 80 раз в год. С такой частотой перелетов авиакомпании предоставляют клиенту множество бонусов, включая доступ в VIP-залы. Ярошевски по душе зал Turkish Airlines, где можно посмотреть кино, опробовать турецкую выпечку и даже получить сеанс бесплатного массажа.

В одном из полетов статус вип-клиента не был распознан системой при сканировании посадочного талона поляка. Ярошевски решил проблему, используя свои навыки специалиста по информационной безопасности. Он научился составлять для системы аэропорта QR-код, позволявший ему получить статус вип-клиента практически в любом из аэропортов Европы.

Поляк написал специальную программу, которая использовала фиктивные данные пассажира и реальные данные рейса, формируя QR-код для посадочного талона. Использовать можно любое имя, номер рейса, конечный аэропорт и класс билета. Как оказалось, системе нужен лишь реальный номер рейса. Все остальные данные можно брать «с потолка». Приложение для Android, созданное Ярошевски, позволяет любому человеку получить доступ к VIP-залу ряда авиакомпаний. Также при помощи этого приложения можно делать покупки в duty free магазинах.

Уязвимость систем, сканирующих посадочные талоны, далеко не новость. Впервые ею воспользовался специалист по криптографии Брюс Шнейер (Bruce Schneier). Он описал свой метод в 2003 году. Еще один специалист по информационной безопасности создал веб-сайт, автоматически генерировавший поддельные посадочные талоны. Сайт еще работает, но вот скрипт, формировавший фальшивые посадочные талоны — нет. Владельца сайта заставило убрать этот скрипт ФБР, еще в 2006 году.

Ярошевски своим приложением показал, что уязвимость существует и по сей день, десять лет спустя. «В самом деле, для создания поддельного посадочного талона нужно лишь 10 секунд», — говорит он.

Процесс создания QR-кода поляк записал на видео. Здесь он использует имя Бартоломью Симпсон и генерирует код. После с этим кодом он регистрируется на рейс и входит в VIP-зал Turkish Airlines в Стамбуле.



Пшемек Ярошевски говорит, что не проверял свое приложение в аэропортах вне Европы, поэтому он не может сказать, получится ли использовать его в США или других странах. Кроме того, он никогда не пробовал полететь под фальшивым именем. По его мнению это вряд ли возможно, поскольку при посадке на самолет приходится проходить повторную проверку уже с документами. Кроме того, этот метод могут использовать только те пользователи, которые уже находятся в аэропорте, пройдя все проверки, включая «рамки». Трюк может использоваться только лишь для получения привилегий для себя в качестве пассажира с VIP-статусом. Создав соответствующий QR-код, пассажир из эконом-класса может без проблем проходить в зал ожидания для пассажиров, которые купили гораздо более дорогой билет.

Журналисты Wired обратились в Управление транспортной безопасности США и Международную ассоциацию воздушного транспорта, попросив прокомментировать ситуацию. Представители этих организаций ответили, что не рассматривают текущую ситуацию как угрозу. Также журналистам сообщили, что ответственность за безопасность своих пассажиров лежит на самих авиакомпаниях. Похоже, проблема в том, что у сканирующих систем нет возможности проверить данные о пассажире, в их базе данных есть только номера авиарейсов. Подключиться к внешней сети для проверки всех данных, содержащихся в QR-коде такие сканеры не могут.

Пшемек Ярошевски, выступая на конференции Defcon, заявил, что он никогда не пробовал попасть в залы авиакомпаний, к которым у него не было бы доступа, как вип-пассажира под своим реальным именем. Также он не пробовал при помощи своего приложения покупать товары в duty free магазинах, когда он летел в пределах одной страны. Эксперт объяснил это тем, что не хотел нарушать закон. Правда, один раз он сгенерировал код для своего друга, который находился в аэропорту Стамбула, ожидая пересадки на рейс в течение 7 часов. Он сказал другу, чтобы тот использовал QR-код на свой страх и риск. И у того все получилось.

Ярошевски сказал, что не собирается выкладывать свое приложение в общий доступ. Он утверждает, что для любого более-менее опытного специалиста не будет проблемой создать точно-такое же приложение. Сама программа проста — в ней всего 500 строк кода. А намерения человека, который решит сделать нечто подобное, могут быть уже далеки от желания проверить идею о возможности обмана систем аэропорта.
Поделиться с друзьями
-->

Комментарии (33)


  1. DrPass
    09.08.2016 17:35
    +10

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


    1. RZimin
      10.08.2016 12:31

      По какому параметру идет допуск?
      Класс или FF?


    1. webzuweb
      10.08.2016 14:38

      Где можно скачать Ваше приложение?


  1. bougakov
    09.08.2016 17:36

    Нормально. TAV Passport на год стоит от 1700 турецких лир — это, грубо, 37 тысяч рублей. Можно сильно «сэкономить».

    Впрочем, прелесть системы не в халявной еде (хоть она в lounge Turkish Airlines в IST офигенна, да), а в fast track — отдельной линии паспортного контроля, благодаря которой можно оказаться в такси меньше чем через 10 минут после приземления. Только вот один QR-код там уже не проканает.


  1. psman
    09.08.2016 17:41

    Я так понимаю что нужно получить коды пары билетов и раздербанить алгоритм составления qr кода (надеюсь там хоть какой то алгоритм, а не все данные билета с разделителем в одну строку).


    1. Camel
      09.08.2016 18:06
      +1

      Вам мало QR'ов из тех что приведены в этой статье и ролике?


    1. docker1
      09.08.2016 18:46

      Алгоритм формирования у qr кода, конечно, существует. Только это не qr код, а aztec код. Впрочем, это ничего не меняет.


  1. HappyGroundhog
    09.08.2016 18:07
    +2

    В ряде аэропортов до сих пор у входа сидит симпатичная девушка, которая просто проверяет данные на физическом посадочном талоне… Так что этот фокус там не пройдет =(


    1. geisha
      09.08.2016 18:34

      Ну дык нету физического посадочного и всё. Эти ж авиалинии сами промывают мозги насчет mobile boarding pass, print at home, etc.


  1. Graf_Trahula
    09.08.2016 19:02
    +5

    вывод кода

    M1SIMPSON/BARTHOLOMEWMEXYZ123 ISTLGWTK 1965 099C005A0015 100


  1. bougakov
    09.08.2016 19:18
    +10

    M1SIMPSON/BARTHOLOMEWMEXYZ123 ISTLGWTK 1965 099C005A0015 100


    Вот эта вот «С» — это fare basis code, в данном случае — бизнес. Если бы была там литера «Y» — это был бы эконом.


    1. RZimin
      10.08.2016 09:39

      Кстати, вполне возможно что проверка идет и по номеру часто летающего, а не только по классу.
      Ну не верю я, что просто проставление класса C с левыми данными зажигает зеленую стрелочку…


    1. awarebeaver
      11.08.2016 16:21

      А что из этих данных является номером рейса? ;)
      P.S. Уже нашёл ответ ниже.


  1. 5oclock
    09.08.2016 19:25

    «Здесь он использует имя Бартоломью Симпсон и генерирует код. После с этим кодом он регистрируется на рейс и входит в VIP-зал Turkish Airlines в Стамбуле.»

    Система регистрации что-ли не проверяет имя и фамилию пассажира?


    1. malakhv
      09.08.2016 19:46

      Судя по тексту «Как оказалось, системе нужен лишь реальный номер рейса.» так и есть :)


      1. 5oclock
        09.08.2016 20:37
        +2

        Ну я понимаю — в VIP-зал не важно кто пришёл. Главное — обладатель VIP-билета.
        А то, что регистрируется именно тот, кто прописан в билете — можно было бы проверить.

        Хотя сейчас электронная регистрация — кто угодно, хоть Помощник Санта Клауса может зарегистрировать билет.

        Видимо главное, чтобы на досмотре и посадке был Барт Симпсон.


        1. ZliLO
          11.08.2016 12:54

          Маленький помощник Санта Клауса *


    1. marks
      09.08.2016 19:47

      Ну он же Пшемек Ярошевски, а не Барт Симпсон :)


  1. farcaller
    09.08.2016 19:27

    Последние раз когда летел (~месяц назад, лаунжи British Airways в ORD и Aer Lingus в DUB), девочка на ресепшене искала мое имя в распечатке списка пассажиров и вычеркивала из него, я думаю если бы имени в списке не было — в лаунж меня бы не пустили.


  1. Randl
    10.08.2016 04:03
    +12

    Итак, берем баркод из видео немножко редактируем чтобы считывался:


    код

    image


    1. Varkus
      10.08.2016 06:56

      Здорово расписали всё, спасибо. И меня тоже смутило такое количество кода на такие простые функции. Может он говнокодер, а «лазейку» ему подсказали и вообще скучает парень без лайков вот и решил так засветиться :)


      1. Randl
        10.08.2016 07:12
        +1

        Ну можно генерировать рандомное имя, получать аэропорт из геолокации и автоматом подходящий рейс из него в ближайшее время. Будет one-click. А вообще я имел ввиду что баркод огромный :)


    1. Visphord
      10.08.2016 08:22

      насколько я помню там можно заложить дополнительную «информацию для восстановления» — чем больше количество этой информации, тем больше код и соответственно возможность его считывания при повреждениях\ошибках считывания =)


      1. Randl
        10.08.2016 08:39

        У меня даже с Error correction level 95% (максимум) код гораздо мельче — тут 45х45, а у меня 31х31.


        1. walkman7
          10.08.2016 13:54

          Пропробуйте https://racoindustries.com/barcodegenerator/2d/aztec-code/


    1. SkyBB
      10.08.2016 09:50

      > P.S. Подозрительно, что исходный код такой огромный
      Исходный «полный» — три круга центральной мишени, Ваш «компактный» — два круга. На размер влияет не только количество значащей информации, но и заданный уровень избыточности при кодировании данных по Риду-Соломону.


      1. Randl
        10.08.2016 10:16

        Смотрите коммент выше, даже с максимальной избыточностью у меня 31х31 (хотя и полный) а не 45х45.


    1. GAS_85
      10.08.2016 10:39

      Попробуйте добавить коррекцию ошибок эдак 50% и код «раздует».
      … Надо было обновить комментарии…


      1. Randl
        10.08.2016 10:48

        У этого — 80%.


  1. c4boomb
    10.08.2016 15:43

    Приложение на Android?
    Что-то не увидел я его на видео


  1. tUUtiKKi13
    11.08.2016 10:16

    Очень напоминает бородатую историю про «Хакера и солонки»


    1. Varkus
      11.08.2016 14:33

      Поделитесь? А то моя борода видимо еще не такая длинная, но свитер я уже ношу.