В системах бронирования билетов не соблюдаются базовые правила безопасности. Из-за этого находчивые хакеры могут присвоить бонусные мили, которые авиакомпании предоставляют часто летающим пассажирам. Как это сделать — подробно рассказано в презентации известного специалиста Карстена Ноля (Karsten Nohl) и его коллеги Наманьи Никодиевича (Nemanja Nikodijevic), которую ребята представили на 33-й ежегодной конференции Chaos Communication Congress (33С3).

Речь идёт о глобальных системах бронирования (GDS), в которых собирается информация от туристических агентств и сайтов бронирования билетов с заявками на билеты, а также от авиакомпаний, гостиниц и компаний по прокату автомобилей.

Вся информация концентрируется в GDS с определением доступности путёвок/авиабилетов, их ценой и бронью. В этой базе хранится не только общая информация о ценах и доступности, но и персональная информация о клиентах, которые забронировали билеты.

Вот как выглядит типичный электронный билет, который выдаёт система GDS конкретному пользователю после регистрации брони. Документ хранится в базе данных GDS.


Код бронирования (PNR) замазан

Сейчас на мировом рынке доминируют три основные GDS: это Amadeus (основана в 1987 году), Sabre (основана в 1960 году) и Galileo (сейчас подразделение Travelport). Например, с первой сотрудничают авиакомпании Lufthabsa и AirBerlin, а также туристический агент Expedia. Со второй — авиакомпании American Airlines и «Аэрофлот». Например, если забронировать через Expedia авиабилет на рейс American Airlines, то он будет храниться в обеих GDS: и в Amadeus, и в Sabre. Заранее вообще трудно предсказать, в каких конкретно GDS можно найти персональную информацию по конкретному пользователю, поскольку есть ещё бронь отелей, посредники турагентств и т.д.

Карстен Ноль и Наманья Никодиевич исследовали защиту информационной безопасности в системах GDS и выяснили, что она близка к нулю. Речь идёт об уровне безопасности свойственном для электронных систем 70-х и 80-х годов. Эти компании начали использовать «облачное хранение» данных ещё до того, как появился такой термин. Обеспечить надёжную криптозащиту в то время они не могли в принципе. Более того, в системе обеспечен очень слабый уровень защиты доступа. Это объясняется тем, что слишком большому количеству агентов позволен доступ в систему: это и авиакомпании, и турагентства, и отели, и т.д.

Таким образом, по факту все сотрудники GDS, а также сотрудники всех агентов имеют доступ ко всем PNR. Исследователи предполагают, что доступ к PNR имеют также различные государственные агентства.

Для доступа у GDS на базовом уровне даже не требуется устанавливать произвольный логин и пароль. Они назначаются автоматически, где в качестве логина устанавливается фамилия пользователя, а в качестве пароля — код бронирования (PNR). Именно тот код, который печатается на электронных билетах и который замазан на первом скриншоте.

И что же мы видим на многочисленных фотографиях в Instagram и других социальных сетях? Пользователи безалаберно фотографируют свои электронные билеты и публикуют их в открытом доступе. Более того, эти коды можно собирать даже в офлайне, просто фотографируя бирки на пассажирском багаже. Секретная информация (фактически, пароль в систему) просто печатается на принтере, приклеивается к чемодану и выставляется на всеобщее обозрение.



Иногда она закодирована в графическом коде для сканера, но легко распознаётся.



В открытом доступе вы можете найти тысячи таких фотографий с кодами, из которых извлекаются PNR.

Что мы можем получить, зная идентификатор PNR (шесть символов) и фамилию? Мы можем получить информацию о личности пользователя, возможно, ещё информацию о гостинице, в которой у него забронирован номер, и об аренде автомобиля. Плюс информацию о бонусных милях и других поощрениях авиакомпании для постоянных клиентов (frequent flyer). Контактную информацию: телефон, адрес электронной почты, часто почтовый адрес. Часто в GDS доступны паспортные данные, в том числе дата рождения.

Хакеры с доступом к GDS также видят платёжную информацию — номер банковской карточки и срок окончания действия (exp.date), а также IP-адрес пользователя. Эта информация может пригодиться в дальнейшем процессе подделки личности.

Автора доклада обращают внимание, что шестизначный код PNR можно даже подобрать брутфорсом. Энтропия 29,2?28,9 бит.

Авиакомпании тоже многое позволяют сделать, если обратиться с известным PNR. Например, они иногда позволяют изменить дату вылета и поменять билет (это будет сюрпризом для жертвы). Некоторые позволяют даже поменять имя в билете (вот это уже приятный бонус). Большинство компаний выдают по PNR различные бонусы.

Таким образом, вырисовывается общий сценарий. Выбираем стандартные фамилии, брутфорсим PNR, находим подходящие билеты. Если авиакомпания допускает пассажиров по билетам без проверки паспорта, то меняем дату и адрес электронной почты — и летим куда надо. Если документы проверяются, то возвращаем билет, получаем бонусы, с их помощью покупает новый билет на своё имя — и летим бесплатно.

Бесплатные мили можно использовать не только для полётов, но и для бесплатного размещения в гостиницах и получения подарочных сертификатов. С помощью последних можно осуществлять «обналичку» бесплатных миль, обменивая сертификаты на товары и продавая их или сдавая обратно в магазин в обмен на наличные. Так что древние системы бронирования способны обеспечить безбедную жизнь не одного хакера.

В докладе Карстена Ноля и Наманьи Никодиевича указаны подробности PNR различных GDS, допустимые символы и другая информация для брутфорса.

Презентация Карстена Ноля и Наманьи Никодиевича на 33C3 (pdf)
Поделиться с друзьями
-->

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


  1. Ugrum
    30.12.2016 13:05

    Если это действительно работает, то где пострадавшие и вой в прессе?


    1. mammuthus
      30.12.2016 16:01
      +1

      Многомиллионные сливы Linkedin, Twitter и т.п. тоже как-то обошлись без особого воя в прессе.


      1. Barabek
        05.01.2017 00:38

        И тем не менее — вам о них известно откуда-то. Пусть и не из газеты Известия...


      1. Barabek
        05.01.2017 01:20
        -1

        И тем не менее — вам о них известно откуда-то. Пусть и не из газеты Известия...


  1. gregst
    30.12.2016 13:16

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


    1. Aingis
      30.12.2016 15:52

      Да, там по правилам мили начисляются только тем, чьё имя в билете совпадает с именем участника бонусной программы. И переводить другим давно запретили. Это всё не для российских реалий.


  1. MaxALebedev
    30.12.2016 13:56
    -1

    Таким образом, вырисовывается общий сценарий. Выбираем стандартные фамилии, брутфорсим PNR, находим подходящие билеты. Если авиакомпания допускает пассажиров по билетам без проверки паспорта, то меняем дату и адрес электронной почты — и летим куда надо. Если документы проверяются, то возвращаем билет, получаем бонусы, с их помощью покупает новый билет на своё имя — и летим бесплатно.


    Что за бред?!
    Какие бонусы за возврат?!
    Улететь без паспорта можно, ну в очень немногих аэропортах в Европе, но делать это по ворованному билету верх идиотизма.

    А еще как все этой успеть сделать, когда видишь фотку в инстаграмме человека, который уже прошел досмотр и сидит в чистой зоне за 40 минут до посадки?


    1. trapwalker
      30.12.2016 14:10
      +1

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


      1. MaxALebedev
        30.12.2016 16:15

        Единственно что я вижу в этом, отменить билет (деньги вернутся покупателю на карту), и испортить ему поездку.


        1. andreykotomin
          30.12.2016 21:43

          Только вернутся не все деньги, а процентов 10 от стоимости. Однажды купил билеты у Delta, но выбрал по-ошибке не тот месяц. Сразу же им позвонил, сказали, что поменять дату бесплатно нельзя. На вопрос об отмене билета сказали, что вернут ничножно малую часть от цены билета. Пришлось менять дату, заплатил дополнительно $200 за это. Так что отменив билет можно нехило испортить отпуск кому-то.


          1. goricvet
            31.12.2016 22:36

            Зависит от авиакомпании, у узбекских авиалиний ЕМНИП штраф за возврат билета загодя что-то около 40 евро


    1. boingo-00
      30.12.2016 15:48

      Можно узнать, куда летит жертва, с точностью до гостиницы.
      Можно узнать личность пользователя.
      Можно узнать, на какой машине он едет.
      Можно узнать номер карты и срок действия.

      Что делать с такой информацией — решать вам.


      1. MaxALebedev
        30.12.2016 16:15

        Что-то я не уловил, как по номеру бронирования и фамилии узнать:

        Можно узнать, куда летит жертва, с точностью до гостиницы.

        Можно узнать, на какой машине он едет.
        Можно узнать номер карты и срок действия.


        Уточните, будьте любезны.


        1. boingo-00
          30.12.2016 17:43
          +1

          Что мы можем получить, зная идентификатор PNR (шесть символов) и фамилию? Мы можем получить информацию о личности пользователя, возможно, ещё информацию о гостинице, в которой у него забронирован номер, и об аренде автомобиля. Плюс информацию о бонусных милях и других поощрениях авиакомпании для постоянных клиентов (frequent flyer). Контактную информацию: телефон, адрес электронной почты, часто почтовый адрес. Часто в GDS доступны паспортные данные, в том числе дата рождения.

          Хакеры с доступом к GDS также видят платёжную информацию — номер банковской карточки и срок окончания действия (exp.date), а также IP-адрес пользователя. Эта информация может пригодиться в дальнейшем процессе подделки личности.


    1. mirsev
      30.12.2016 21:43

      А еще как все этой успеть сделать, когда видишь фотку в инстаграмме человека, который уже прошел досмотр и сидит в чистой зоне за 40 минут до посадки?

      Остаётся ещё обратный рейс с тем же PNR… Так что времени на «шуточки» вполне хватит.


  1. FedyaShlyapkin
    30.12.2016 16:42

    ну как. взломать бд перевозчика и вуаля.


  1. alexanderbekrenev
    30.12.2016 18:24
    +2

    Ну, нет истерии потому, что немножко всё не так.
    1) Права доступа не предполагают доступа всех ко всем PNR. Если вы агент, то вам доступны только брони вашего агентства, если вы перевозчик, то только те, которых повезёте. Да, работники GDS, возможно, подчеркну. возможно увидят все бронирования. Права доступа более-менее правильно нарисованы в презентации.
    2) Аутентификация. Ну, тут как-бы и да, и нет. Получить доступ к GDS можно зная имя, пароль, и ещё одно-два значения, в зависимости от GDS. Доступ по имени пассажира и PNR — это доступ предоставляемый не GDS, а агентством или авиакомпанией, поэтому вопросы к ним. Ну, да, дальше то, что вы можете сделать с бронированием — зависит от того, что они вам там предоставят. Но это не доступ к GDS напрямую.
    3) Данные. Не всё доступно и не всем в плане данных. Например, номер карты может быть частично закрыт звёздочками. Может — зависит от GDS, настроек, сохранения данных.
    4) Мошенничество. Ну, опять же, как и в PDF сказано, Airlines typically only authenticate passengers with the PNR locator. Ключевое слово тут — Airlines. А вовсе не GDS. Но и тут, максимум, что удастся сделать — это нагадить пассажиру: отменить билет или перенести поездку. Деньги вернут на карту, с которой платили. Пассажир их получит себе обратно, только если купил билет напрямую у авиакомпании, иначе ему нужно «трясти» агентство. Вернут в бонусах? Может быть, но бонусы запишутся только если у этого пассажира есть бонусная карта и она была в брони. Даст ли система вписать чужой номер? Не знаю. Что там ещё? Изменить имя? Сильно сомневаюсь, что вам понадобится лететь такой авиакомпанией. Практически никто не разрешает замену имени. Перебронируйте заново.

    А уж требования в докладе совершенно странные:
    1)Limitations on which agents (and governments!) can access what information
    Кто что видит я уже написал, а от правительства спрятать всю GDS? Даже не смешно. Думаю, что там, наоборот, ещё и фильтры правильные стоят, чтобы нужные фамилии вылавливать.
    2)Passwords for booking — Ха-ха-ха. И пароль должны знать все, начиная от агентства и заканчивая авиакомпанией. Можно и самому пассажиру, так и быть.
    3) Minimum web service security for all exposed interfaces.
    Ну, да, вот тут есть над чем работать. Но, в основном — это не проблема GDS.
    4) Strict logging of any access to personal information — Это запрос настоящего гика. Никто не будет читать эти логи. А, вообще, логи, конечно, есть. Но на изменения, а не на чтение. Если логировать чтение, то это сродни хранению всего траффика абонентов.
    Вот и нет истерии. А у GDS-ок есть куча своих других проблем. Вой может быть относительно каких-то авиакомпаний или агентств, когда их хакнут.
    Что-то много получилось.


    1. boingo-00
      30.12.2016 19:32

      Ну а теперь посмотри на автора поста, и пойми, что тут просто у заголовка другой оттенок желтого


  1. alix_ginger
    30.12.2016 20:45

    Если документы проверяются, то возвращаем билет, получаем бонусы, с их помощью покупает новый билет на своё имя — и летим бесплатно.

    … ведь человек с аннулированным билетом не станет обращаться в авиакомпанию с претензиями, а даже если и обратится, авиакомпания не скажет ему, на чье имя купили билет.[/sarcasm]

    Если уж совершать такое преступление, лучше найти постороннего клиента и оформить новый билет на него за биткоины.


  1. vKreker
    31.12.2016 00:44

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


    1. nikitos_2002
      31.12.2016 21:47

      Боюсь, что в большинстве случаев при покупке билетов на концерт паспорт не спрашивают.


      1. vKreker
        01.01.2017 00:57

        Да, паспорт не спрашивают, но при заказе электронного билета нужно указать фамилию и имя.


        1. nikitos_2002
          01.01.2017 06:17

          Это да. Но т.к. сотрудниники на входе привыкли, что у большинства «обычные» билеты, купленные в кассе, про паспорт они забывают.


          1. Nagh42
            01.01.2017 13:49

            По моему опыту покупок электронных билетов, везде большими красными буквами пишут, не показывайте ваш билет никому — могут воспользоваться мошениики (и вариации на тему).
            Помимо этого столкнулся с неприятной попыткой «исправить» ситуацию. Электронный билет именной, и выдается на имя покупателя. Для прохода паспорт обязателен и если билетов несколько, то пройти можно только с человеком, купившим билет. А если билет покупается в подарок, то необходима доверенность для того человека, кто пойдет от покупателя билета.