Покупать билет бизнес-класса не нужно, необходимо лишь составить корректный для сканера посадочных талонов 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)
bougakov
09.08.2016 17:36Нормально. TAV Passport на год стоит от 1700 турецких лир — это, грубо, 37 тысяч рублей. Можно сильно «сэкономить».
Впрочем, прелесть системы не в халявной еде (хоть она в lounge Turkish Airlines в IST офигенна, да), а в fast track — отдельной линии паспортного контроля, благодаря которой можно оказаться в такси меньше чем через 10 минут после приземления. Только вот один QR-код там уже не проканает.
psman
09.08.2016 17:41Я так понимаю что нужно получить коды пары билетов и раздербанить алгоритм составления qr кода (надеюсь там хоть какой то алгоритм, а не все данные билета с разделителем в одну строку).
HappyGroundhog
09.08.2016 18:07+2В ряде аэропортов до сих пор у входа сидит симпатичная девушка, которая просто проверяет данные на физическом посадочном талоне… Так что этот фокус там не пройдет =(
geisha
09.08.2016 18:34Ну дык нету физического посадочного и всё. Эти ж авиалинии сами промывают мозги насчет mobile boarding pass, print at home, etc.
Graf_Trahula
09.08.2016 19:02+5вывод кода
M1SIMPSON/BARTHOLOMEWMEXYZ123 ISTLGWTK 1965 099C005A0015 100
bougakov
09.08.2016 19:18+10M1SIMPSON/BARTHOLOMEWMEXYZ123 ISTLGWTK 1965 099C005A0015 100
Вот эта вот «С» — это fare basis code, в данном случае — бизнес. Если бы была там литера «Y» — это был бы эконом.RZimin
10.08.2016 09:39Кстати, вполне возможно что проверка идет и по номеру часто летающего, а не только по классу.
Ну не верю я, что просто проставление класса C с левыми данными зажигает зеленую стрелочку…
awarebeaver
11.08.2016 16:21А что из этих данных является номером рейса? ;)
P.S. Уже нашёл ответ ниже.
5oclock
09.08.2016 19:25«Здесь он использует имя Бартоломью Симпсон и генерирует код. После с этим кодом он регистрируется на рейс и входит в VIP-зал Turkish Airlines в Стамбуле.»
Система регистрации что-ли не проверяет имя и фамилию пассажира?malakhv
09.08.2016 19:46Судя по тексту «Как оказалось, системе нужен лишь реальный номер рейса.» так и есть :)
5oclock
09.08.2016 20:37+2Ну я понимаю — в VIP-зал не важно кто пришёл. Главное — обладатель VIP-билета.
А то, что регистрируется именно тот, кто прописан в билете — можно было бы проверить.
Хотя сейчас электронная регистрация — кто угодно, хоть Помощник Санта Клауса может зарегистрировать билет.
Видимо главное, чтобы на досмотре и посадке был Барт Симпсон.
farcaller
09.08.2016 19:27Последние раз когда летел (~месяц назад, лаунжи British Airways в ORD и Aer Lingus в DUB), девочка на ресепшене искала мое имя в распечатке списка пассажиров и вычеркивала из него, я думаю если бы имени в списке не было — в лаунж меня бы не пустили.
Randl
10.08.2016 04:03+12Итак, берем баркод из видео немножко редактируем чтобы считывался:
кодVarkus
10.08.2016 06:56Здорово расписали всё, спасибо. И меня тоже смутило такое количество кода на такие простые функции. Может он говнокодер, а «лазейку» ему подсказали и вообще скучает парень без лайков вот и решил так засветиться :)
Randl
10.08.2016 07:12+1Ну можно генерировать рандомное имя, получать аэропорт из геолокации и автоматом подходящий рейс из него в ближайшее время. Будет one-click. А вообще я имел ввиду что баркод огромный :)
Visphord
10.08.2016 08:22насколько я помню там можно заложить дополнительную «информацию для восстановления» — чем больше количество этой информации, тем больше код и соответственно возможность его считывания при повреждениях\ошибках считывания =)
SkyBB
10.08.2016 09:50> P.S. Подозрительно, что исходный код такой огромный
Исходный «полный» — три круга центральной мишени, Ваш «компактный» — два круга. На размер влияет не только количество значащей информации, но и заданный уровень избыточности при кодировании данных по Риду-Соломону.
tUUtiKKi13
11.08.2016 10:16Очень напоминает бородатую историю про «Хакера и солонки»
Varkus
11.08.2016 14:33Поделитесь? А то моя борода видимо еще не такая длинная, но свитер я уже ношу.
DrPass
Как разработчик одного из приложений для генерации пассов для регистрации, проблему подтверждаю.
На QR-коде нет никакой цифровой подписи для валидации или данных проверки подлинности пользователя. Собственно, это особо и не требуется. В самолёт не в свой класс без документов все равно не сядешь. А хакеры в вип-зонах аэропортов не приносят так много ущерба, чтобы усложнение авторизации было как-то оправдано.
RZimin
По какому параметру идет допуск?
Класс или FF?
webzuweb
Где можно скачать Ваше приложение?