{"id":5802,"date":"2017-01-10T04:55:36","date_gmt":"2017-01-10T09:55:36","guid":{"rendered":"https:\/\/me-en.kaspersky.com\/blog\/?p=5802"},"modified":"2019-11-15T15:23:59","modified_gmt":"2019-11-15T11:23:59","slug":"33c3-insecure-flight-booking-systems","status":"publish","type":"post","link":"https:\/\/me-en.kaspersky.com\/blog\/33c3-insecure-flight-booking-systems\/5802\/","title":{"rendered":"Booking systems&#8217; insecurity allows free flights and more"},"content":{"rendered":"<p>People post photos of their tickets online. Why shouldn\u2019t they? Instagram alone contains thousands of images showing concert, airplane, and even lottery tickets.<\/p>\n<p>If everyone does it, why shouldn\u2019t you?<\/p>\n<p>In fact, the last thing you should ever do with a ticket or boarding pass is post it online. This piece of paper contains data that allows\u00a0<em>anybody<\/em>\u00a0to steal your ticket (we\u2019re not exaggerating!), rack up air miles, or even play a low-down trick on you. More than a year ago\u00a0<a href=\"https:\/\/www.kaspersky.com\/blog\/dont-post-boarding-pass-online\/10495\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">we discussed<\/a>\u00a0just what kind of bad jokes people can make with ticket information. Recently, security researchers Karsten Nohl and Nemanja Nikodijevic\u00a0<a href=\"https:\/\/media.ccc.de\/v\/33c3-7964-where_in_the_world_is_carmen_sandiego\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">raised the topic again<\/a>, at the Chaos Communication Congress (33\u04213).<\/p>\n<p>Airlines, travel agents, price comparison websites, and many other services work together to provide easy booking opportunities to passengers. The industry uses\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Global_Distribution_System\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Global Distribution Systems<\/a>\u00a0(GDS) to check flight availability, ensure that seats are not double-booked, and so forth. GDSs are tightly interwoven with Web services \u2014 but not with best Web protection practices. As the result, today\u2019s GDS technology remains outdated in terms of protection and provides criminals with a huge attack surface.<\/p>\n<p>Although about 20 GDS vendors exist at the moment, the security duo Nohl and Nikodijevic focused on the three main systems: Sabre (founded in 1960), Amadeus (founded in 1987), and Galileo (now a unit of Travelport). These systems\u00a0<a href=\"http:\/\/www.theregister.co.uk\/2017\/01\/04\/travel_booking_system_security_fail\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">administer<\/a>\u00a0more than 90% of flight reservations, as well as hotel, car, and other travel bookings.<\/p>\n<p>For example, Lufthansa and AirBerlin work with Amadeus, and with the tour operator Expedia. American Airlines and Russian airline \u0410eroflot stick to Sabre. Anyway, it\u2019s hard to say for sure which GDS stores the private data of a particular passenger: For instance, if you book a ticket for American Airlines flight on Expedia, both Amadeus and Sabre record the transaction.<\/p>\n<p>Depends on the booking system\u2019s rules, GDS records usually contain a passenger\u2019s name, phone number, date of birth, and passport data, as well as their ticket number, departure and destination ports, and flight date and time. It also includes payment information (such as a credit card number). Quite sensitive information, in other words.<\/p>\n<p>Nohl and Nikodijevic pointed out that a lot of people have access to this data, including airlines workers, tour operators, hotels representatives, and other agents. Researchers suppose that governmental agencies can read this data as well. But it\u2019s only the tip of the iceberg.<\/p>\n<p>To access and change this information, GDSs use a traveler\u2019s name as login and a 6-digit booking code (most travelers know it as a\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Passenger_name_record\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">PNR<\/a>) as\u00a0<b>password<\/b>. Yes, that\u2019s the PNR that is openly printed on boarding passes and luggage tags. As a password.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5806\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/37\/2017\/01\/05112903\/airplanetickets-on-instagram.jpg\" alt=\"\" width=\"1080\" height=\"1861\"><\/p>\n<p>\u201cIf the PNR is supposed to be a secure password, then it should be treated like one,\u201d Nohl said at the conference. \u201cBut they don\u2019t keep it a secret: It is printed on every piece of luggage. It used to be printed on boarding passes, until it disappeared and they replaced it with a bar code.\u201d That bar code, by the way, still contains the PNR.<\/p>\n<p>The majority of travelers don\u2019t understand the inner workings of the flight industry, so they eagerly publish their tickets online together with PNR, encrypted into a bar code. However, a\u00a0<a href=\"https:\/\/www.kaspersky.com\/blog\/never-post-barcodes-online\/12842\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">bar code is not a mystery<\/a>; special software can read it. So\u00a0<i>anybody<\/i>\u00a0who takes a photo of your luggage tag at an airport or found your ticket online can access your private data. You don\u2019t need to be a hacker to exploit PNR vulnerabilities \u2014 you just have to know where to look. In the video below you can see how Nohl and Nikodijevic decoded the bar code from an Instagram photo of an airline ticket.<\/p>\n<p><span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe class=\"youtube-player\" type=\"text\/html\" width=\"640\" height=\"390\" src=\"https:\/\/www.youtube.com\/embed\/n8WVo-YLyAg?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent\" frameborder=\"0\" allowfullscreen=\"true\"><\/iframe><\/span><\/p>\n<p>In addition, many airlines and trip-checking websites don\u2019t block users who enter wrong codes numerous times. As the result, malefactors can choose popular last names like Smith and simply brute-force PNRs of these passengers. It\u2019s not hard: The code consists of six digits, and code generation algorithms often suffer from certain weaknesses. For example, some of them iterate the first two characters sequentially, and all PNRs generated on a particular date begin with the same characters. Other providers use specific codes for certain airlines. These practices narrow the range of digits an attacker has to guess.<\/p>\n<p>At the Chaos Communication Congress, Nohl and Nikodijevic demonstrated that hacking a PNR takes just minutes. About 30 to 45 minutes into the\u00a0<a href=\"https:\/\/media.ccc.de\/v\/33c3-7964-where_in_the_world_is_carmen_sandiego#video&amp;t=1036\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">same video<\/a>, you\u2019ll find a detailed explanation of how this works as well as real-time demonstration of the whole process.<\/p>\n<p>The upshot is, criminals can farm GDSs for sensitive passenger data and use it for advanced phishing. Consider this scenario: Mr. Smith books a flight to Berlin and 10 minutes later receives an e-mail from his airline asking him to confirm his credit card information. The letter includes his first and last name, port of destination and other precise booking details. Does it seem believable? For sure! Mr. Smith is very likely to click the link in the e-mail and provide his credit card information \u2014 but to a fake website.<\/p>\n<p>Also, using a PNR and having searched for some other personal data, hackers might be able to change the ticket data. They might cancel the ticket and have the money refunded to their own account. Or they could change the ticket holder\u2019s name, surname, and passport number so that another person could take the trip (surprisingly, but certain services allow this). A more cautious or generous criminal might simply change the frequent flyer data and get the miles that the original ticket owner would\u2019ve earned. Ultimately, by using PNRs as passwords, GDSs basically offer hackers free flights, unlimited miles, and even money.<\/p>\n<p>One more extremely disappointing fact: Despite experts and media raising this question numerous times in recent years, GDS companies still refuse to log PNR accesses. That\u2019s why nobody can trace the vast majority of abuse cases. Few incidents even become known \u2014 for example, when criminals outright stole tickets from travelers and victims complained. As for the more intelligent fraud and data theft, specialists are unable to evaluate the scope of the problem.<\/p>\n<p>Nohl and Nikodijevic feel certain that customers cannot expect substantial changes anytime soon. The entire booking system needs to be rewritten, and unfortunately, the only thing that can make airlines do this is the rise of PNR fraud.<\/p>\n<p>For now, we recommend two simple courses of action: stay vigilant and never, ever post your boarding passes online. Even an old ticket gives away a lot of your personal information.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>People post photos of their tickets online. Why shouldn\u2019t they? Instagram alone contains thousands of images showing concert, airplane, and even lottery tickets. If everyone does it, why shouldn\u2019t you?<\/p>\n","protected":false},"author":522,"featured_media":5805,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5,1486],"tags":[1261,1262,43,97,98,521,1221,633],"class_list":{"0":"post-5802","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-news","8":"category-threats","9":"tag-airlines","10":"tag-bar-codes","11":"tag-privacy","12":"tag-security-2","13":"tag-social-networks","14":"tag-threats","15":"tag-tickets","16":"tag-travel"},"hreflang":[{"hreflang":"en-ae","url":"https:\/\/me-en.kaspersky.com\/blog\/33c3-insecure-flight-booking-systems\/5802\/"},{"hreflang":"ar","url":"https:\/\/me.kaspersky.com\/blog\/33c3-insecure-flight-booking-systems\/4053\/"},{"hreflang":"en-us","url":"https:\/\/usa.kaspersky.com\/blog\/33c3-insecure-flight-booking-systems\/10650\/"},{"hreflang":"en-gb","url":"https:\/\/www.kaspersky.co.uk\/blog\/33c3-insecure-flight-booking-systems\/8228\/"},{"hreflang":"es-mx","url":"https:\/\/latam.kaspersky.com\/blog\/33c3-insecure-flight-booking-systems\/8773\/"},{"hreflang":"es","url":"https:\/\/www.kaspersky.es\/blog\/33c3-insecure-flight-booking-systems\/9835\/"},{"hreflang":"it","url":"https:\/\/www.kaspersky.it\/blog\/33c3-insecure-flight-booking-systems\/9563\/"},{"hreflang":"ru","url":"https:\/\/www.kaspersky.ru\/blog\/33c3-insecure-flight-booking-systems\/13931\/"},{"hreflang":"x-default","url":"https:\/\/www.kaspersky.com\/blog\/33c3-insecure-flight-booking-systems\/13802\/"},{"hreflang":"fr","url":"https:\/\/www.kaspersky.fr\/blog\/33c3-insecure-flight-booking-systems\/6491\/"},{"hreflang":"pt-br","url":"https:\/\/www.kaspersky.com.br\/blog\/33c3-insecure-flight-booking-systems\/6830\/"},{"hreflang":"pl","url":"https:\/\/plblog.kaspersky.com\/33c3-insecure-flight-booking-systems\/5918\/"},{"hreflang":"de","url":"https:\/\/www.kaspersky.de\/blog\/33c3-insecure-flight-booking-systems\/9471\/"},{"hreflang":"ja","url":"https:\/\/blog.kaspersky.co.jp\/33c3-insecure-flight-booking-systems\/13581\/"},{"hreflang":"ru-kz","url":"https:\/\/blog.kaspersky.kz\/33c3-insecure-flight-booking-systems\/13931\/"},{"hreflang":"en-au","url":"https:\/\/www.kaspersky.com.au\/blog\/33c3-insecure-flight-booking-systems\/13802\/"},{"hreflang":"en-za","url":"https:\/\/www.kaspersky.co.za\/blog\/33c3-insecure-flight-booking-systems\/13802\/"}],"acf":[],"banners":"","maintag":{"url":"https:\/\/me-en.kaspersky.com\/blog\/tag\/airlines\/","name":"airlines"},"_links":{"self":[{"href":"https:\/\/me-en.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/5802","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/me-en.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/me-en.kaspersky.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/me-en.kaspersky.com\/blog\/wp-json\/wp\/v2\/users\/522"}],"replies":[{"embeddable":true,"href":"https:\/\/me-en.kaspersky.com\/blog\/wp-json\/wp\/v2\/comments?post=5802"}],"version-history":[{"count":2,"href":"https:\/\/me-en.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/5802\/revisions"}],"predecessor-version":[{"id":14840,"href":"https:\/\/me-en.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/5802\/revisions\/14840"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/me-en.kaspersky.com\/blog\/wp-json\/wp\/v2\/media\/5805"}],"wp:attachment":[{"href":"https:\/\/me-en.kaspersky.com\/blog\/wp-json\/wp\/v2\/media?parent=5802"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/me-en.kaspersky.com\/blog\/wp-json\/wp\/v2\/categories?post=5802"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/me-en.kaspersky.com\/blog\/wp-json\/wp\/v2\/tags?post=5802"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}