Крупнейшая авиакомпания Украины «делилась» списком пассажиров в сети – источник

Владимир Кондрашов
Крупнейшая авиакомпания Украины «делилась» списком пассажиров в сети – источник

Пользователь ресурса «Хабрахабр» под ником «dinikin» обнаружил уязвимость, которая позволяла получить список пассажиров рейсов Международных Авиалиний Украины — самого крупного авиаперевозчика страны.

Об этом сообщает InternetUA со ссылкой habrahabr.ru.

Как сообщил «dinikin», уязвимость была обнаружена случайно при подготовке к полету в отпуск: в процессе выбора мест в самолёте, страница, которая должна была отображать схему мест, никак не хотела загружаться.

nezagruzh.jpeg (86 KB)

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

Как сообщил dinikin, Запрос выглядел следующим образом:

https://bookapi.flyuia.com/ancillary/seatmap?pnr=XXXXXX&currency=USD&flyuiacountrycode=uk&flyuialanguagecode=ru&locale=RU

где XXXXXX — PNR или, так называемый код бронирования.

Ответ же сервера имел следующий вид во всех браузерах:

[ {
"
paxDetails" : {
"
uniqueId" : "2",
"
firstName" : "IVANOV",
"
title" : "Г-жа (Ms.)",
"
lastName" : "IVAN",
"
paxType" : "Adult",
"
cartPaxId" : "b1da2ebf-4525-35bd-afc1-b1f448132ad3"
  },
"
segmentDetails" : [ {
"
company" : "PS",
"
bookingClass" : "B",
"
flightNumber" : "1234",
"
departureAirport" : "KBP",
"
arrivalAirport" : "JFK",
"
departureDateTime" : "2018-02-01T00:05",
"
operatingAirline" : "PS"
} ],
"
segmentId" : "1",
"
isAvailableForCheckIn" : true,
"
seat_rows" : [ {
"
seats" : [ {
"
id" : "aab4ca38-2c28-1f13-359d-4ad264d53a0e_1e80aae3-a68b-44de-ae14-aff839563612",
"
occupation" : "AVAILABLE",
"
letter" : "A",
"
rowNumber" : 4,
"
seatCharacteristics" : [ "W", "CH", "EK", "H", "for_infant" ],
"
price" : {
"
amount" : "16.00",
"
currency" : "USD"
},
"
class" : "ECONOMY",
"
seat_type" : "SEAT",
"
ticket_value" : "FD3A"
},...]

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

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

Кроме этого,  при похожем запросе для заказа места багажа, сайт МАУ сообщал ещё больше информации о пассажирах – к общей информации включалась ещё и дата рождения, при чем не об одном пассажире, а обо всех, включенных в данное бронирование (например, о семье).

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

На странице оплаты, утверждается на «хабре», запрос также выполнялся во всех браузерах «без сессионных куков».

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

После обращения пользователя в службу поддержки МАУ, на протяжении месяца все вышеуказанные уязвимости были устранены разработчиками.