11 января 2017

Дырявое бронирование, или Бесплатные авиабилеты

Безопасность Угрозы

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

Если все публикуют такие фото, то почему это плохо?

Украсть мили, авиабилеты и личные данные пассажиров удивительно легко. На 33-м Chaos Communication Congress показали несовершенство систем бронирования билетов.

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

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

Авиаперевозчикам, туристическим агентствам, сайтам-агрегаторам, позволяющим сравнить цены на билеты, и прочим причастным сервисам очень нужно, чтобы люди могли максимально легко бронировать билеты. Для этого индустрия использует так называемые глобальные дистрибьюторские системы (GDS). С их помощью авиакомпании проверяют расписание и наличие рейсов, не забронировано ли одно и то же место дважды на разных сайтах, и тому подобные вещи.

Работа GDS тесно связана с Интернетом, но, к сожалению, современные методы защиты веб-сервисов в GDS до сих пор не применяются. В результате с точки зрения безопасности эти системы сильно устарели, и накопившиеся за много лет уязвимости позволяют злоумышленникам натворить немало дел.

В настоящее время существует около 20 разных глобальных систем бронирования, но Карстен Нол и Неманя Никодиевиц ограничили свои исследования тремя самыми крупными: Sabre (основана в 1960 году), Amadeus (основана в 1987-м) и Galileo (сейчас является подразделением Travelport). Эти три системы обслуживают более 90% всех заказов бронирования билетов, а также отелей, автомобилей и турпоездок.

Например, авиакомпании Lufthansa и AirBerlin, а также крупный сайт Expedia работают с Amadeus. American Airlines и «Аэрофлот» предпочитают Sabre. Сложно наверняка сказать, в какую именно GDS попадут данные конкретного пассажира: так, если пользователь забронирует билет на рейс American Airlines с помощью Expedia, его заказ будет зарегистрирован и в Amadeus, и в Sabre.

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

Нол и Никодиевиц выяснили, что доступ к этим данным есть у огромного количества людей, работающих в авиаиндустрии: сотрудников авиакомпаний, туроператоров, представителей отелей и других посредников. Исследователи полагают, что некоторые правительственные организации также имеют доступ к этим записям. Но на самом деле это только часть проблемы.

Для доступа к данным пассажира GDS создает пару «логин-пароль». В качестве логина используется фамилия пассажира, а в качестве пароля — шестизначный код бронирования. Большинству путешественников он известен как PNR. Да, тот самый PNR, который открыто печатается на всех посадочных талонах и багажных бирках, и является вашим паролем.

«Если PNR должен быть секретным паролем, с ним и обращаться нужно соответствующим образом, — говорит Нол. — Но авиакомпании не хранят его в тайне: напротив, распечатка с PNR крепится к каждому чемодану. Раньше код PNR печатали на посадочных талонах, но со временем заменили его штрихкодом». Вот только эти штрихкоды по-прежнему содержат PNR — в закодированном виде.

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

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

Это несложно: во-первых, PNR — это код из шести символов верхнего регистра, который не содержит нулей, единиц или специальных символов. Во-вторых, многие компании используют несовершенные алгоритмы генерации кодов. Например, некоторые из них помещают одинаковые символы в начале PNR, сгенерированных в определенный день. Другие назначают специальные символы для конкретных авиалиний. Такая практика существенно сокращает количество символов, которые нужно угадать.

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

В результате преступники могут собирать в GDS конфиденциальные данные пассажиров и использовать их для сложных фишинговых кампаний. Представьте: некий Смирнов бронирует билеты на рейс в Берлин, а 10 минут спустя он получает письмо, в котором авиакомпания просит его подтвердить данные банковской карты. В письме упоминаются имя и фамилия пассажира, дата полета, аэропорт прилета и другие подробности брони. Выглядит ли оно правдоподобно? Еще как! Скорее всего, Смирнов без особых сомнений перейдет по ссылке и введет данные своей банковской карты, вот только сайт будет фальшивым.

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

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

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

Сейчас же мы рекомендуем всем путешественникам следовать двум простым правилам: сохранять бдительность и никогда, ни при каких обстоятельствах не публиковать свой посадочный талон в Интернете. Даже старый билет может выдать преступникам ваши финансовые и личные данные.