< Return to Video

Where in the World Is Carmen Sandiego? (33c3)

  • 0:00 - 0:17
    33C3 preroll music
  • 0:17 - 0:22
    Herald: So many of us
    traveled to this Congress.
  • 0:22 - 0:25
    Probably most of us. And we all took
  • 0:25 - 0:30
    trains, or planes, or… maybe somebody
  • 0:30 - 0:33
    drove by car. But most
    took trains and planes.
  • 0:33 - 0:37
    And have you guys ever wondered
    about the infrastructure
  • 0:37 - 0:41
    of those travel booking systems?
  • 0:41 - 0:45
    Even more interesting, have you ever
  • 0:45 - 0:49
    thought how secure those systems are?
  • 0:49 - 0:57
    Karsten Nohl and Nemanja Nikodijevic…
  • 0:57 - 1:02
    Karsten has a really nice record
    of security researches.
  • 1:02 - 1:07
    He had talks about GSM protocols
  • 1:07 - 1:11
    and last year he had his talk
    about payment system abuse
  • 1:11 - 1:13
    which was really interesting.
  • 1:13 - 1:21
    Together with Nemanja, he will show us
    his research on travel booking systems.
  • 1:21 - 1:25
    And probably we will find out
    how we can get home free.
  • 1:25 - 1:32
    Please give a really, really warm
    welcome to Karsten and Nemanja!
  • 1:32 - 1:41
    applause
  • 1:41 - 1:45
    Karsten Nohl: Thank you very much!
    Always feels great to be back!
  • 1:45 - 1:50
    I just today noticed that the first time
    I was speaking at this conference
  • 1:50 - 1:54
    is 10 years ago. So 10 years of…
  • 1:54 - 2:00
    applause
    .. thanks you.
  • 2:00 - 2:05
    10 years of looking at 10 different legacy
    systems and finding vulnerabilities
  • 2:05 - 2:11
    in all of them, so far. A lot of them were
    around RFIDs, or mobile protocols.
  • 2:11 - 2:15
    This time we’re looking at something
    completely different, travel booking
  • 2:15 - 2:19
    systems. And vulnerabilities in there.
  • 2:19 - 2:23
    Relative to some of the other talks we’ve
    been giving, this will have less ‘hacking’
  • 2:23 - 2:29
    in it. Not because we lost our interest in
    hacking but because much less hacking
  • 2:29 - 2:32
    was actually needed to exploit
    vulnerabilities here. laughter
  • 2:32 - 2:37
    So, sorry for that if you expected a lot
    of hacking. There’ll be a little bit,
  • 2:37 - 2:42
    that’s why Nemanja is here, but
    a little bit less than usual. So we’re
  • 2:42 - 2:48
    talking about travel systems. And there
    are 3 main players, or actors
  • 2:48 - 2:53
    in the commercial travel world. There are
    those people who provide travelling,
  • 2:53 - 2:59
    airlines and hotels. There’s those people
    who help you book them, Expedia,
  • 2:59 - 3:04
    websites like that or traditional travel
    agencies. And then there’s brokers
  • 3:04 - 3:10
    who make sure that whatever is available
    can be booked through those agents.
  • 3:10 - 3:15
    So those are really the backbone of travel
    systems but you don’t really think
  • 3:15 - 3:19
    about them much, or at least I didn’t
    before looking into this research.
  • 3:19 - 3:26
    The systems are very useful, as global
    systems. In fact, they’re called “global
  • 3:26 - 3:30
    distribution systems”. And that tells you
    how old they are. This is before
  • 3:30 - 3:34
    the internet was there. They go back to
    the 80ies and 70ies. So there was only
  • 3:34 - 3:38
    one system that deserved the name
    of a global distribution system of,
  • 3:38 - 3:43
    in this case, data. And this was
    travel system. So it makes sense
  • 3:43 - 3:48
    to have these systems because, of cause,
    one seat on an airplane shouldn’t be sold
  • 3:48 - 3:51
    multiple times, so there needs to be
    a global inventory somewhere.
  • 3:51 - 3:56
    Also all airlines should be using just
    a few systems so that they can do
  • 3:56 - 4:00
    'codeshare agreements', e.g. so that,
    again, the same seats on a flight
  • 4:00 - 4:05
    aren’t booked multiple times. And,
    consequently, these booking systems,
  • 4:05 - 4:13
    they maintain three types of information.
    The first one, you are probably most
  • 4:13 - 4:19
    aware of, are the prices. Airlines will
    put their price lists into these systems
  • 4:19 - 4:24
    for booking sites to fetch. They’re
    called ‘fares’ in the travel world.
  • 4:24 - 4:29
    The next important data item in there is
    ‘availability’. So not everything can be
  • 4:29 - 4:33
    booked that has a price. There needs to be
    a seat available at a certain booking class.
  • 4:33 - 4:38
    And, finally, when somebody does find an
    available seat to a fare that they want
  • 4:38 - 4:42
    to purchase that is then converted into
    a ‘reservation’. So this is after the seat
  • 4:42 - 4:49
    is taken. You may have seen some of this
    information before on travel web sites.
  • 4:49 - 4:55
    Let me just show you the one that I like
    to use the most. The ‘ita matrix’, has
  • 4:55 - 4:58
    been bought by Google a few years ago.
    So you can’t actually book through
  • 4:58 - 5:03
    here any more. But they maintain the
    interface for whatever reason. And so,
  • 5:03 - 5:07
    let’s say you search for a flight to
    San Francisco from here, at the end
  • 5:07 - 5:14
    of the year. This, like any other web
    site will give you plenty of options
  • 5:14 - 5:20
    from the different airlines. What’s
    different for this web site is that
  • 5:20 - 5:25
    they give you a lot more details,
    if you know where to click.
  • 5:25 - 5:31
    So the cheapest flight, really cheap
    actually, 325 bucks to go to San Francisco
  • 5:31 - 5:37
    for New Year’s, a one-way trip, and
    what I like on this web site is the rules.
  • 5:37 - 5:43
    So this is real data, that is kept in one
    of these GDS systems. And this already
  • 5:43 - 5:50
    looks like the 70ies, right? laughter
    This would usually be shown on a terminal,
  • 5:50 - 5:55
    maybe green font on black background, and
    somebody would read through here,
  • 5:55 - 5:59
    and I would say, okay, so you wanna book
    for a certain day, it’s okay, the dates
  • 5:59 - 6:06
    match, you wanna go on TAP (TP)
    – Portugal Airlines – so okay, that matches,
  • 6:06 - 6:10
    and you could also take a few other
    airlines, and then you have to meet
  • 6:10 - 6:17
    certain other restrictions, e.g. you can
    stop over here. So this flight goes
  • 6:17 - 6:20
    through Lisbon, you can stay in Lisbon
    for up to 84 hours before flying on
  • 6:20 - 6:26
    to the U.S. That’d be nice. And then
    it has all these other rules in here,
  • 6:26 - 6:30
    e.g. you can not cancel this ticket,
    right? It’s non-refundable. But you
  • 6:30 - 6:36
    can change it for a fee. And this goes on
    and on and on. For just a single fare,
  • 6:36 - 6:42
    and there’s, of course, tens of thousands
    of fares available. Now this, you may be
  • 6:42 - 6:45
    surprised to hear, is the only form in
    which these fares are available. There
  • 6:45 - 6:49
    isn’t an XML, there isn’t a web service,
    this is how the airlines publish them.
  • 6:49 - 6:53
    And then a web site like Expedia, they
    have to write a parser for it to be able
  • 6:53 - 6:59
    to present flight options to you. You
    may have noticed if you tried to change
  • 6:59 - 7:04
    or cancel flights they don’t allow that
    to web sites often. Expedia e.g. doesn’t,
  • 7:04 - 7:06
    you have to call them. And if you call
    them they say: “Give me a moment,
  • 7:06 - 7:11
    I have to read through the fare rules.”
    So in that case that just didn’t parse
  • 7:11 - 7:19
    all this information. That’s the first
    thing that’s kept in these… or maintained
  • 7:19 - 7:25
    in these large GDS, the booking systems:
    the fares. The other thing is
  • 7:25 - 7:29
    the availability. That’s a little bit
    harder to access through public web sites.
  • 7:29 - 7:37
    Expert Flyer is probably the best one
    to use. And availability is important.
  • 7:37 - 7:41
    If you actually wanted to fly to San
    Francisco now for New Year’s
  • 7:41 - 7:46
    we looked at the fare, well,
    this is Booking Class 'O', this is
  • 7:46 - 7:50
    always the first letter. And then, if you
    look at the availability for Booking Class
  • 7:50 - 7:55
    'O', unfortunately it says ‘C’ for ‘closed’.
    So they don’t accept any more bookings.
  • 7:55 - 7:58
    So just because there’s a price available
    doesn’t mean that anybody can actually
  • 7:58 - 8:03
    book this flight. And, again, somebody
    like Expedia would have to now combine all
  • 8:03 - 8:08
    of these different pieces of information
    to present a list of flight options for you.
  • 8:08 - 8:13
    So let’s assume they did that and you did
    book something. Then, the third data item
  • 8:13 - 8:18
    is created in one of these GDS. And that’s
    the 'passenger name record', PNR.
  • 8:18 - 8:25
    And that looks something like this. Again,
    you’ll notice the same 70..80ies style.
  • 8:25 - 8:31
    With lots of private information.
    Ed Hasbrouck - he is a
  • 8:31 - 8:36
    privacy advocate in the U.S., probably
    the loudest voice to ask for more
  • 8:36 - 8:39
    privacy around travel booking
    and he was kind enough to make
  • 8:39 - 8:44
    this available on his web site, for all
    to see what information is kept. So,
  • 8:44 - 8:48
    contact information, of course, things
    like e-mail. This one shows you again
  • 8:48 - 8:53
    how old these systems are. So they
    don’t have the ‘@’ character! This is
  • 8:53 - 8:58
    using a character set from punch cards!
    And in punch card you had 6 possible
  • 8:58 - 9:02
    punches per character. So everything here
    needs to be encoded with a 6-bit character
  • 9:02 - 9:08
    And there’s no space for ‘@’. So all
    ancient stuff. But still, a possible
  • 9:08 - 9:13
    privacy hazard, right? You wouldn’t want
    anybody to access this kind of information
  • 9:13 - 9:21
    about yourself. The three main players who
    run GDS’s – Amadeus, mostly in Europe,
  • 9:21 - 9:25
    Sabre, mostly in the US, and then there’s
    Galileo that merged with a few other
  • 9:25 - 9:30
    things into ‘Travelport’. And Galileo
    isn’t really so much used by airlines
  • 9:30 - 9:36
    but it’s more used by travel agencies.
    And then, often, multiple of these systems
  • 9:36 - 9:40
    they’re involved in the booking. So let’s
    say you go through Expedia and you book
  • 9:40 - 9:47
    an American Airlines flight, the PNR has
    to be kept in Amadeus as well as Sabre.
  • 9:47 - 9:51
    So there’s two copies here. Or let’s say
    you go through a travel agency that’s
  • 9:51 - 9:55
    connected to Galileo, and you book
    a flight that has both Lufthansa and
  • 9:55 - 9:59
    Aeroflot segments it would be kept
    in all three of them. So this is lots of
  • 9:59 - 10:06
    redundancy depending on where your flight
    segments and booking agents come from.
  • 10:06 - 10:11
    But sufficient to say there are three big
    companies, who apparently hold on to the
  • 10:11 - 10:15
    private information of all travelers.
    Hundreds of millions of records
  • 10:15 - 10:21
    for each of those systems. And we wanted
    to find out whether they can sufficiently
  • 10:21 - 10:26
    protect this information. And there’s, of
    course, reasons to believe that they can’t.
  • 10:26 - 10:31
    This is very old technology and it’s
    unclear whether they ever did any major
  • 10:31 - 10:36
    security upgrades. But at the same time
    there’s reasons to believe that they
  • 10:36 - 10:43
    are very well secured because this PNR
    data, this very information about travelers
  • 10:43 - 10:47
    that has been disputed between different
    governments for a long time, in particular
  • 10:47 - 10:52
    the U.S. Government, and asking for more
    and more information since 9/11 in
  • 10:52 - 10:56
    multiple waves, and the E.U. governments
    that say: “No, you can’t have more
  • 10:56 - 11:02
    information than you absolutely need. So
    they agree politically that, yes, the U.S.
  • 11:02 - 11:06
    can get information on those travelers
    going to the U.S. but only certain data
  • 11:06 - 11:09
    fields, and have to delete them after
    a few years. So this was years
  • 11:09 - 11:15
    of negotiation. And you’d imagine that the
    systems at the forefront of this dispute
  • 11:15 - 11:21
    they’d be secure enough that, let’s say,
    we couldn’t access those same information
  • 11:21 - 11:26
    that even the U.S. Government is supposed
    to not access. So we set out to answer
  • 11:26 - 11:34
    this simple question: do these GDS’s,
    do they have normal, basic security.
  • 11:34 - 11:40
    Do they constrain access, do they
    authenticate users well, do they protect
  • 11:40 - 11:46
    through rate limiting from web attacks,
    and do they log to be able to detect any
  • 11:46 - 11:52
    possible type of abuse. We’ll go through
    each of them to see where those systems
  • 11:52 - 11:57
    stand. Let’s start with access control.
    And this is just drawing
  • 11:57 - 12:02
    from public sources, so, again, Ed
    Hasbrouck, this privacy advocate
  • 12:02 - 12:09
    in California, he has been the loudest
    voice here, saying, there’s overreach by a
  • 12:09 - 12:16
    lot of players already accessing PNR
    information. So e.g. if you have a booking,
  • 12:16 - 12:21
    let’s say a flight booking, anybody who
    works at this airline can access
  • 12:21 - 12:25
    your information. But then, if you add,
    let’s say, a car reservation to the same
  • 12:25 - 12:29
    booking, anybody who works at the car
    rental company can also access
  • 12:29 - 12:36
    let’s say the flight information. And
    any agent at the booking agency
  • 12:36 - 12:40
    that you use can access all of this
    information. And if you keep adding
  • 12:40 - 12:44
    information all of these people still have
    access to it. That’s just how these
  • 12:44 - 12:49
    systems grew over time, but that’s a first
    indication to me that this certainly
  • 12:49 - 12:55
    wasn’t built with modern security
    in mind. Most concerningly
  • 12:55 - 13:01
    the people working at or for the GDS
    companies, they have access to everything,
  • 13:01 - 13:05
    absolutely everything. Including their
    support stuff, as far as I understand.
  • 13:05 - 13:09
    So these are external companies that
    help debug the system, and they
  • 13:09 - 13:15
    have access to hundreds of millions
    of people’s private information.
  • 13:15 - 13:20
    So way too many people have access
    to way too much information, e.g. if you
  • 13:20 - 13:24
    did an online booking your IP address
    is stored there, basically forever,
  • 13:24 - 13:29
    well, until the flight is over. But any of
    these people can now access your
  • 13:29 - 13:33
    IP address, your e-mail address,
    phone number and all of this.
  • 13:33 - 13:38
    So definitely that doesn’t seem to be
    fine-grained access control. But,
  • 13:38 - 13:43
    as I said earlier, this has been known
    for a long time and criticized a lot.
  • 13:43 - 13:49
    Not acted on, though, yet! How about
    authentication? The picture is actually
  • 13:49 - 13:54
    even worse for authentication. And I want
    to distinguish two different cases here.
  • 13:54 - 13:58
    I wanna distinguish professionals
    accessing records, so people working
  • 13:58 - 14:02
    at travel agencies and airlines. And,
    as a second case I wanna distinguish
  • 14:02 - 14:06
    travelers accessing their own records,
    like when you check-in online e.g.,
  • 14:06 - 14:12
    you access your own record. Professionals,
    the way they access it, typically, is that
  • 14:12 - 14:17
    their agency is connected to one of these
    GDS’s through basically one account.
  • 14:17 - 14:21
    So an entire agency system, or at least
    an entire location uses one account.
  • 14:21 - 14:25
    So years ago somebody typed in some user
    name and password, and then it’s long been
  • 14:25 - 14:30
    forgotten because locally they use
    a different access management.
  • 14:30 - 14:35
    A few travel agencies were kind enough to
    help us in this research, and their access
  • 14:35 - 14:39
    credentials, we saw them using, they’re
    just terrible. E.g. for one of the big
  • 14:39 - 14:44
    systems that I won’t name you need the
    agent ID, so that you can get pretty
  • 14:44 - 14:49
    easily. And then a password for the web
    service, so of the modern way of accessing,
  • 14:49 - 14:55
    this is WS for web service and the date
    on which the password was created.
  • 14:55 - 14:59
    So even if you have to brute-force
    20 years, how many possible dates
  • 14:59 - 15:05
    does a single year have? Times 20. This is
    ridiculously low entropy for an account
  • 15:05 - 15:13
    that is supposed to protect information
    of millions of people, if not more.
  • 15:13 - 15:16
    This is the best authenticator
    that we found in these systems!
  • 15:16 - 15:19
    laughter
  • 15:19 - 15:24
    It gets worse with travelers accessing
    their own information. Because there
  • 15:24 - 15:28
    they just simply forgot to give you
    a password, not even a terrible password
  • 15:28 - 15:33
    like this; there just isn’t one. And what
    they use instead is the booking code,
  • 15:33 - 15:37
    ‘PNR locator’ it is sometimes called.
    I call it booking code.
  • 15:37 - 15:42
    It’s a six-digit code. When you
    check-in online you need that code.
  • 15:42 - 15:47
    And you only need that code and your
    last name. So you’d imagine that,
  • 15:47 - 15:52
    if they treat it as a password equivalent
    then they would keep it secret
  • 15:52 - 15:57
    like a password. Only – they don’t,
    but rather print it on every piece
  • 15:57 - 16:01
    that you get from the airline, e.g. on
    every piece of luggage you have
  • 16:01 - 16:07
    your last name and a six-digit code.
    On your boarding pass –
  • 16:07 - 16:11
    it used to be there, and then it
    disappeared and then these barcodes
  • 16:11 - 16:15
    showed up. So it’s inside the barcode.
    If you decode the barcode there is
  • 16:15 - 16:20
    your PNR in there. I erased it here,
    this is still for a valid booking.
  • 16:20 - 16:24
    laughter
  • 16:24 - 16:31
    So, you have this six-digit codes printed
    everywhere and you can just find them
  • 16:31 - 16:36
    on pieces of scrap at the airport.
    Certainly these tags you find all over,
  • 16:36 - 16:40
    but also people throwing away their
    boarding passes when they’re done.
  • 16:40 - 16:45
    And this is supposed to be the only way
    of authenticating users. And we’ll
  • 16:45 - 16:51
    show you in a minute what kind
    of abuse is possible through that.
  • 16:51 - 16:56
    But let’s first think about where else you
    could be able to find these PNR codes.
  • 16:56 - 17:01
    Could it get any worse than somebody
    printing your password on a piece of paper
  • 17:01 - 17:05
    that you throw away at the end of your
    journey. Of course the internet can make
  • 17:05 - 17:11
    it worse! And what better technology to
    worsen the security problem than
  • 17:11 - 17:28
    Instagram? So on Instagram…
    laughter and applause
  • 17:28 - 17:34
    So you got all these bookings. And, in
    fact, there was one guy here, you see, he
  • 17:34 - 17:39
    actually erased the information. But for
    one who knows what’s up, everywhere,
  • 17:39 - 17:43
    there’s a hundred who don’t. And this
    is really all information you need.
  • 17:43 - 17:48
    I saw a Lufthansa one just now,
    where was that? – Here.
  • 17:48 - 17:59
    So here is a Lufthansa one. This is from
    today, posted by markycz at Frankfurt.
  • 17:59 - 18:04
    This is really all you need to get
    somebody’s…
  • 18:04 - 18:15
    laughter and applause
  • 18:15 - 18:17
    Let’s see if this works.
    Yeah, sure enough. So.
  • 18:17 - 18:19
    laughter
  • 18:19 - 18:25
    'Marky M.' on Instagram is apparently
    Marketa Mottlova
  • 18:25 - 18:28
    and this is her booking reference.
  • 18:28 - 18:33
    laughter
  • 18:33 - 18:37
    I was debating whether or not to show this
    but you guys are gonna do it anyway
  • 18:37 - 18:41
    when I’m done with this talk.
    laughter
  • 18:49 - 19:02
    cheers and applause
  • 19:02 - 19:07
    So a flight today from Munich
    to Frankfurt and then, on to Seattle.
  • 19:07 - 19:12
    Let me point out one thing here.
  • 19:12 - 19:15
    Where did I see the ticket number?
  • 19:15 - 19:23
    off camera mumbling on stage
  • 19:23 - 19:33
    Just use mine!
  • 19:33 - 19:39
    It’s AndroidAPKN
    Oops.
  • 19:39 - 19:50
    And then let me write down the password.
  • 19:50 - 19:57
    Okay. Alright.
  • 19:57 - 20:02
    So what I wanted to point out is that
    this isn’t even a Lufthansa ticket.
  • 20:02 - 20:09
    So she checked in with Lufthansa
    in Frankfurt. But if you look at the
  • 20:09 - 20:15
    ticket number, 016, that’s a United
    [Airlines] ticket. And it also includes
  • 20:15 - 20:20
    flights on Alaska Airlines e.g.
    So any of these airlines have
  • 20:20 - 20:27
    full access to this PNR. And many of them
    will just grant people access to it
  • 20:27 - 20:33
    if they know the PNR and the last name.
    As Nemanja will show in a minute,
  • 20:33 - 20:39
    even if they don’t know that yet. So...
  • 20:39 - 20:43
    To recap for the moment: airlines give you
    a six-digit password that they print
  • 20:43 - 20:50
    on all kinds of pieces of paper and
    that you will post on Instagram.
  • 20:50 - 20:55
    Why shouldn’t you, everybody else does,
    too, apparently. 75,000 people at least
  • 20:55 - 21:00
    over the last couple of weeks. So
    the authentication model here is
  • 21:00 - 21:05
    severely broken, too. And what
    kind of abuse arises from this?
  • 21:05 - 21:10
    Of course, you can now use this PNR,
    log in on Lufthansa as I have just done
  • 21:10 - 21:16
    or a more generic web site, like
    Checkmytrip and look up peoples’
  • 21:16 - 21:19
    contact information at the very least.
    So there’s always an email address
  • 21:19 - 21:24
    in there. There’s usually a phone number
    in there. If in Lufthansa you click on
  • 21:24 - 21:29
    “I wanna change my booking” probably
    they’ll ask you for your payment information
  • 21:29 - 21:33
    and pre-fill the postal address for that.
    So you get somebody’s postal address
  • 21:33 - 21:38
    that they used for the booking, passport
    information, visa information. If you
  • 21:38 - 21:42
    travel to the U.S. as she does there’s
    definitely passport information
  • 21:42 - 21:49
    in the PNR. All of this information is now
    readily accessible. Now so far
  • 21:49 - 21:53
    there was zero hacking involved. That’s
    why we have Nemanja here who will
  • 21:53 - 22:00
    show you some actual hacking to get even
    deeper into these systems.
  • 22:00 - 22:03
    Can we switch the screen?
  • 22:03 - 22:10
    Nemanja Nikodijevic: So when…
    laughter
  • 22:10 - 22:19
    When we started this research we needed
    to find lots of these boking numbers
  • 22:19 - 22:25
    to see if there is some relation between
    them. So luckily we didn’t have to
  • 22:25 - 22:29
    make any bookings that we had to pay
    because there are web sites like this one
  • 22:29 - 22:33
    where you can just make a booking
    and pay it later but you get
  • 22:33 - 22:39
    the booking reference number at the time.
    So let’s make some very normal
  • 22:39 - 22:46
    German name… laughter
    ..looking for someone from Germany.
  • 22:46 - 22:53
    Actually they check the phone number, so
    it has to follow the certain form.
  • 22:53 - 23:00
    Let’s find Germany… from Berlin,
  • 23:00 - 23:04
    1234567.
    laughter
  • 23:04 - 23:09
    And then ‘hans@sandiego.com’.
  • 23:09 - 23:15
    As you can see I tried quite some…
    laughter
  • 23:15 - 23:20
    So for this one we already got
    our booking reference number
  • 23:20 - 23:29
    which is Y56HOY.
    And this one, in a minute.
  • 23:29 - 23:33
    Okay, we have to wait a bit. Y5LCF4.
    So if you notice
  • 23:33 - 23:39
    they are very close to each other, so
    they both start with Y5 which means
  • 23:39 - 23:44
    that they were booked on the same day.
    Probably because one is on Lufthansa,
  • 23:44 - 23:50
    the other one is on Air Berlin, there is
    slight difference. They are not exactly
  • 23:50 - 23:53
    sequential. But we can say that they are
    concentrated in a certain range
  • 23:53 - 23:58
    for a certain day. What we can do now is
  • 23:58 - 24:04
    we can go to one of our servers. At first
  • 24:04 - 24:08
    we have to check if checkmytrip works
  • 24:08 - 24:13
    because I had some issues
    with the network.
  • 24:13 - 24:18
    That’s… ooh!
    laughter
  • 24:18 - 24:22
    This is a bit unexpected.
    We will have to skip this part
  • 24:22 - 24:28
    where we actually look for Carmen
    Sandiego in one of our bookings.
  • 24:28 - 24:29
    But…
  • 24:29 - 24:33
    Karsten: Well, this is a side effect of
    responsible disclosure. So you tell
  • 24:33 - 24:38
    a company that on this day you’ll do that
    thing to that web site, and they just
  • 24:38 - 24:42
    either block the IP ranges here or just
    took down the web site which they
  • 24:42 - 24:48
    have done a few times before.
    What you can do is… – say it again!!
  • 24:48 - 24:53
    From audience: Can you test the hot spot?
  • 24:53 - 24:57
    Karsten: Actually, I think the whole
    web site is turned off.
  • 24:57 - 25:04
    Nemanja: What we can demonstrate, I think,
    is that if we go with this booking number,
  • 25:04 - 25:10
    to Air Berlin web site, and then
    type last name, “Mueller”.
  • 25:10 - 25:17
    And actually, because it’s six-bit
    encoding it has to be “UE”, no Umlauts
  • 25:17 - 25:27
    allowed. So, “Select all the food!”
    laughter and applause
  • 25:27 - 25:29
    Let’s see if we can find this flight.
  • 25:29 - 25:32
    Karsten: The part of the demo that you
    didn’t show is just brute-forcing
  • 25:32 - 25:37
    these ranges. If you know which ranges
    are used in a day you can try them all.
  • 25:37 - 25:45
    Or at least we did many times. That
    would then, in theory, give you access
  • 25:45 - 25:48
    to all of this. And not just in theory, in
    practice, unless they take down their
  • 25:48 - 25:53
    entire web site which they knew we were
    gonna use for this demo.
  • 25:53 - 25:58
    Nemanja: But on this, for example, if we caught
    that flight that we wanted to catch…
  • 25:58 - 26:06
    Karsten: We’ll show it later. But at least
    the first win for privacy: no information
  • 26:06 - 26:10
    is leaked through this web site
    for the rest of this talk, at least!
  • 26:10 - 26:12
    laughter and applause
  • 26:12 - 26:21
    Can we switch back to the other screen?
    ongoing applause
  • 26:21 - 26:25
    One thing that you would have noticed had
    this not just been a flight reservation
  • 26:25 - 26:29
    but an actual ticket: it would have
    given you options to rebook it,
  • 26:29 - 26:34
    to add a frequent flyer number, all of that
    good stuff. So what’s the abuse potential
  • 26:34 - 26:39
    here? So far we’ve only talked about
    privacy intrusion. And privacy intrusion
  • 26:39 - 26:43
    is bad enough. Imagine somebody is
    snapping a picture of your luggage,
  • 26:43 - 26:48
    that person has your email address and
    your phone number, right there, right then.
  • 26:48 - 26:56
    But the abuse potential goes much
    beyond that. For instance, you can fly for free!
  • 26:56 - 27:00
    You can fly for free using different
    methods. You can find somebody else’s
  • 27:00 - 27:04
    booking and just change the date.
    The ticket… in fact, we can show it
  • 27:04 - 27:10
    a little bit later. We had prepared for
    this demo that we are going to find
  • 27:10 - 27:13
    through a little bit of brute-force that’s
    a flexible ticket. So you can just change
  • 27:13 - 27:17
    the date, and change the email address.
    You just take that flight yourself.
  • 27:17 - 27:23
    And as the airline checks… compares the
    ticket and your passport – oftentimes
  • 27:23 - 27:26
    they do it visually. What they’ll do is
    they’ll send you a PDF, you change
  • 27:26 - 27:32
    the name, you take it anyway. But at least
    in Schengen, in the EU, people don’t even
  • 27:32 - 27:38
    do that. Let’s say you wanted
    to take it in your name. You can,
  • 27:38 - 27:43
    depending on the airline, call them up
    or even use their web sites to cancel
  • 27:43 - 27:49
    the ticket, and the issue a refund to you
    inside the PNR, and then use the money
  • 27:49 - 27:55
    that’s freed up there to book a new
    ticket. Some airlines also give you
  • 27:55 - 28:01
    MCOs – miscellaneous charges orders.
    Americans will know this very well,
  • 28:01 - 28:06
    every time you get bumped from a flight
    they give you an MCO, “sorry, we can’t
  • 28:06 - 28:09
    fly you home today, you’ll have to go
    tomorrow, but here is $1,000 towards
  • 28:09 - 28:17
    a new ticket”. It’s real airline cash.
    And those same MCOs you can issue
  • 28:17 - 28:21
    based on flight cancellation. So you
    cancel somebody else’s ticket and you get
  • 28:21 - 28:26
    airline money to book your own ticket.
    And, again, there are no passwords
  • 28:26 - 28:31
    involved. The only authenticator is this
    six-digit sequence that people post
  • 28:31 - 28:36
    on Instagram, print on their boarding
    passes and that Nemanja should be able
  • 28:36 - 28:42
    to brute-force on their web sites. What
    else can you do, once you have somebody’s
  • 28:42 - 28:48
    PNR? You can change or add a mile number.
    And some tickets are really attractive
  • 28:48 - 28:55
    for mile collection. Take a round trip to
    Australia in 1st class, get 60,000 miles
  • 28:55 - 29:02
    right there, for one round trip, for one
    PNR. And that will get you a sweet, free
  • 29:02 - 29:11
    flight to somewhere nice, or even some
    voucher for online and offline shopping.
  • 29:11 - 29:18
    One website that I wish was still
    working is, of course, this one.
  • 29:18 - 29:20
    laughter
  • 29:20 - 29:27
    But they shut down business, apparently.
    Unrelated to this talk.
  • 29:27 - 29:30
    laughter and single claps
  • 29:30 - 29:37
    So you have access to somebody’s PNR,
    you can not just stalk them but change
  • 29:37 - 29:44
    their flights or – which may trigger some
    curiosity – that flight can be taken twice.
  • 29:44 - 29:49
    But you can very stealthily add your mile
    number everywhere, well, a new mile number
  • 29:49 - 29:57
    matching that name to collect those sweet
    miles. Now, are all airlines affected
  • 29:57 - 30:03
    by that? The demo that we didn’t get to
    show brute-forced for one last name,
  • 30:03 - 30:10
    Sandiego, all the PNRs for a day. And it
    quickly found, in fact, a bunch of records.
  • 30:10 - 30:15
    There’s not just one Sandiego flying that
    day. But in some airlines they’re
  • 30:15 - 30:19
    a little bit smarter. For instance American
    Airlines, the largest airline in the world,
  • 30:19 - 30:25
    they don’t just want the last name
    but also the first name. And if you’re
  • 30:25 - 30:28
    interested in one specific person, let’s
    say ‘Carmen Sandiego’, you would still
  • 30:28 - 30:33
    find that person. But if you want to
    conduct fraud that becomes a little bit
  • 30:33 - 30:40
    more tricky. A fraudster would just pick
    a random, very popular last name and
  • 30:40 - 30:46
    brute-force PNRs there. And that becomes
    more difficult if also you have to guess
  • 30:46 - 30:52
    a first name. However, even American
    Airlines, those records can be accessed
  • 30:52 - 30:57
    through other web sites. For istance Viewtrip,
    this is another generic web site like this
  • 30:57 - 31:02
    infamous Checkmytrip that just went
    offline. And Viewtrip allows you
  • 31:02 - 31:09
    to brute-force by just last name and PNR,
    again. So there’s multiple ways to access
  • 31:09 - 31:14
    the same information. Some of which are
    more secured than others. And, of course,
  • 31:14 - 31:19
    only the weakest link mattered. So
    Viewtrip, what they would say is
  • 31:19 - 31:25
    they found the record and they can’t give
    you access to the information but then
  • 31:25 - 31:29
    TripCase will which, again, takes only
    last name and reservation number.
  • 31:29 - 31:33
    And they will tell you the first name
    also that then you can type in to
  • 31:33 - 31:35
    the American Airlines web site again
    laughter
  • 31:35 - 31:43
    to change the booking, let’s say. So
    there’s all these different ways to access
  • 31:43 - 31:48
    a person’s information here. And everybody
    is slightly different. So let’s look at the
  • 31:48 - 31:56
    entire universe of travel web sites,
    starting with just three big travel providers.
  • 31:56 - 32:03
    Each of them uses six-digit booking codes.
    But they use these six-digits rather
  • 32:03 - 32:08
    differently. Sabre e.g. they don’t use any
    numbers which of course severely impacts
  • 32:08 - 32:17
    the entropy. But then others, e.g. Amadeus,
    they don’t use 1 and 0, because that could
  • 32:17 - 32:24
    be confused with i and o, and then
    Galileo drops a few other characters. So
  • 32:24 - 32:28
    at the end of the day none of them really
    used the entropy of even a six-digit
  • 32:28 - 32:34
    pass code. All of them are in entropy
    lower than a randomly chosen 5-digit
  • 32:34 - 32:38
    password. And we will never recommend
    anybody to use a 5-digit password, right?
  • 32:38 - 32:44
    So this is strictly worse. And what
    makes it even worse, at least for
  • 32:44 - 32:48
    privacy-intruding attacks, is the
    sequential nature of these bookings.
  • 32:48 - 32:53
    You saw the two that Nemanja just now
    generated. Both of them were from
  • 32:53 - 32:58
    the same, very small sub set. So if you
    just wanted to know all the bookings
  • 32:58 - 33:02
    that a person did today, you can
    brute-force this in 10 minutes
  • 33:02 - 33:07
    with a few computers running in parallel.
    It’s not so easy on Sabre because
  • 33:07 - 33:12
    they seem to be chosen more randomly.
    However, Sabre has the lowest entropy,
  • 33:12 - 33:18
    so if you just randomly want to find
    bookings for popular last names Sabre is
  • 33:18 - 33:27
    your system of choice. They’re all weak,
    but the weaknesses differ in shades of grey
  • 33:27 - 33:32
    for this privacy intruding and for the
    financial fraud-type attacks.
  • 33:32 - 33:37
    As one example, though, of how easy it is
    to find these booking codes, if you
  • 33:37 - 33:45
    look up 1,000 just randomly chosen booking
    codes in Sabre for the last name ‘Smith’
  • 33:45 - 33:51
    five will come back with current bookings.
    So half a percent of the entire name space
  • 33:51 - 33:56
    is filled with current bookings for people
    called ‘Smith’! Now, add in all the other
  • 33:56 - 34:02
    last names, their name space must be
    pretty damn full. And it’s only 300 mio.
  • 34:02 - 34:06
    records if you calculate the entropy.
    So it looks like almost every record
  • 34:06 - 34:10
    is used up and they’re running out of
    space. So they’ll have to fix this anyway
  • 34:10 - 34:15
    at some point. But that, of course, makes
    it all the easier to randomly find and
  • 34:15 - 34:22
    abuse other people’s bookings.
    Each of those providers runs a website
  • 34:22 - 34:26
    that allows you to access all the PNRs in
    their system if you know the PNR and
  • 34:26 - 34:32
    the last name. And one German reporter
    writing about this, he calls the
  • 34:32 - 34:38
    websites that you didn’t know existed,
    that you have no use for but that, anyway,
  • 34:38 - 34:44
    put your privacy at risk. So there doesn’t
    seem to be any up side to these web sites.
  • 34:44 - 34:48
    I certainly don’t need to use them
    but they’re there, and they’re bad.
  • 34:48 - 34:52
    Because when we did the research none of
    them had any protection from brute-forcing
  • 34:52 - 34:57
    meaning we could try 100,000, even
    millions of different combinations
  • 34:57 - 35:02
    – PNR and last name – and those
    websites wouldn’t complain even a bit.
  • 35:02 - 35:09
    We did expose Amadeus to way more
    queries that the others and at some point
  • 35:09 - 35:13
    they did notice, maybe also because some
    reporters just asked them for comments
  • 35:13 - 35:19
    on the research. They have tried to
    improve. So the classic checkmytrip.com
  • 35:19 - 35:24
    website that was just killed a few days
    ago – R.I.P., thank you, it’s gone,
  • 35:24 - 35:30
    50% of the problem solved. But the other
    website, that was still around up until
  • 35:30 - 35:36
    literally half an hour ago. What they
    did over the last couple of days was,
  • 35:36 - 35:41
    they added a captcha. But the captcha gave
    you a cookie. And the cookie you could
  • 35:41 - 35:46
    again use for indefinite number of queries.
    laughter
  • 35:46 - 35:52
    It’s a company that just hasn’t done web
    security before. But then they also
  • 35:52 - 35:57
    limited the number of requests per IP
    address. Now, we do this from Amazon,
  • 35:57 - 36:02
    so it’s not so difficult to spawn new
    IP addresses, but still… it severely
  • 36:02 - 36:11
    slows us down. About 1.000 requests per
    IP address. Even if they now took down
  • 36:11 - 36:16
    checkmytrip for good, of course, this is
    not the only pass to a reservation.
  • 36:16 - 36:21
    As we’ve seen before you can just use
    the provider’s web site directly. And the
  • 36:21 - 36:26
    popular ones in Germany, they differed in
    security quite a bit when we checked
  • 36:26 - 36:30
    a few weeks ago. So Lufthansa itself
    differed on their different properties.
  • 36:30 - 36:35
    The standard website asked for a captcha,
    not the first time, but I think starting
  • 36:35 - 36:40
    from three requests, so a really good
    compromise. They make it comfortable
  • 36:40 - 36:45
    to use for really anybody who just wants
    to look up their own records. But then
  • 36:45 - 36:48
    they make it a little bit more painful
    for somebody who tries to look up
  • 36:48 - 36:53
    too many. But then the mobile version e.g.
    didn’t have that captcha. And again,
  • 36:53 - 36:59
    weakest link principle applies. Air
    Berlin, they had some rough IP filter,
  • 36:59 - 37:02
    again, 1.000 requests per IP, that’s
    a little bit too much, they introduced
  • 37:02 - 37:09
    a captcha today! So, again, in response
    to this. This is already showing
  • 37:09 - 37:14
    some effect. Thank you to checkmytrip
    and Air Berlin for working on this
  • 37:14 - 37:20
    over the holidays, much appreciated.
    Maybe, if you know anybody, thank you!
  • 37:20 - 37:28
    applause
  • 37:28 - 37:35
    On the other GDS’s the situation is much
    worse still. They’re still as bruteforceable
  • 37:35 - 37:42
    as they ever were, as are the web sites.
    Except for the little bit of first-name
  • 37:42 - 37:49
    extra complication on American Airlines,
    every web site we have tried is not protected
  • 37:49 - 37:56
    from brute-forcing. And this is surprising
    to me. In my consulting work I have
  • 37:56 - 38:00
    never seen a web site where not the first
    pentester ever looking at it would say:
  • 38:00 - 38:04
    “Oh, you didn’t have rate limiting in it,
    please add it!” and then, two days later
  • 38:04 - 38:10
    they had. So for most of this industry
    that is yet to happen. So no cookie here,
  • 38:10 - 38:19
    either. Let’s talk about one more abuse
    scenario that’s… I can say they’re very
  • 38:19 - 38:22
    relevant but that’s maybe because in my
    consulting life I’ve been dealing with
  • 38:22 - 38:28
    human security for the last couple of
    years, appreciating that technology
  • 38:28 - 38:33
    is mostly not the weakest link but the
    the gullibility of people working
  • 38:33 - 38:38
    in the company. And the same probably goes
    for travelers. Imagine the scenario where
  • 38:38 - 38:42
    you made a booking, just a few minutes
    ago. And now that airline, or at least
  • 38:42 - 38:47
    it looks like that airline, sends you an
    e-mail saying “Thank you for making
  • 38:47 - 38:53
    this reservation, here is all your booking
    stuff, summarized for you, please update
  • 38:53 - 38:57
    your credit card information, though.
    The booking didn’t go through.
  • 38:57 - 39:03
    I would click on that. I expect them to
    e-mail me, I know that sometimes
  • 39:03 - 39:08
    credit cards are fuzzy, I would click on
    it and enter my credit card information
  • 39:08 - 39:14
    again. And how is this possible? Of course
    we can stay ahead of the current pointer
  • 39:14 - 39:18
    in this sequences and find bookings
    that were made in the last, let’s say,
  • 39:18 - 39:24
    half an hour, for popular last names
    again. And each of those bookings will
  • 39:24 - 39:28
    point us to an e-mail address, and give us
    all the context we need to include in this
  • 39:28 - 39:34
    very, very targeted phishing. If nothing
    else, I think this should convince
  • 39:34 - 39:38
    the airline industry to close these loop
    holes because the evilness of the internet
  • 39:38 - 39:43
    will not ignore this forever. Phishers are
    always looking for new targets, and
  • 39:43 - 39:52
    this will be a very juicy one. So we
    looked at the three big GDS’s now.
  • 39:52 - 39:59
    There’s a few other players, e.g. SITA.
    It looks like on the way out but these two
  • 39:59 - 40:04
    very big airlines, they still use it. So
    they’re certainly still relevant. They are
  • 40:04 - 40:08
    even worse. They use, instead of a
    six-digit booking code they use five digits.
  • 40:08 - 40:13
    And one digit is fixed per airline. So if
    you know you’re looking for Air India
  • 40:13 - 40:19
    you don’t even have to brute-force that
    leaving just four digits to go through,
  • 40:19 - 40:24
    and to brute-force. Now we don’t have
    a demo for this because we found three
  • 40:24 - 40:29
    other more fun ones to demo. So…
    laughter
  • 40:29 - 40:36
    Nemanja will now show you RyanAir, Oman
    Air and Pakistan International Airlines.
  • 40:36 - 40:43
    Note that all of these are connected to
    big GDS systems. So it’s now the web sites
  • 40:43 - 40:48
    that make it even worse than we already
    discussed before. And can we switch over
  • 40:48 - 40:52
    to the other computer again? Thanks.
  • 40:52 - 40:58
    Nemanja: Yeah, I guess, many people
    fly with Ryan Air here.
  • 40:58 - 41:02
    They use Navitaire which is now owned by
    Amadeus.
  • 41:02 - 41:07
    So they don’t share the same address space.
    But on the Ryanair web site you can
  • 41:07 - 41:11
    either search for the reservation with the
    e-mail address and the reservation number
  • 41:11 - 41:15
    or the last four digits of the credit card
    that you used for booking.
  • 41:15 - 41:16
    laughter
  • 41:16 - 41:21
    Karsten: Again, great authenticator,
    right? Ten thousand options.
  • 41:21 - 41:30
    Nemanja: As they don’t have captcha
    we can have a look for…
  • 41:30 - 41:34
    So we know that the last four digits of
  • 41:34 - 41:36
    Carmen Sandiego’s card are these.
  • 41:36 - 41:39
    Karsten: And if not we can just try all
    ten thousand.
  • 41:39 - 41:42
    Nemanja: We can just try, yeah. We can
    do the other way around. So this way
  • 41:42 - 41:48
    we know that… and that it starts
    with these characters. And let’s try
  • 41:48 - 41:54
    to brute-force it. In the meantime
    let’s have a look at the Oman Air.
  • 41:54 - 41:58
    They ask for the booking reference
    and for the departure airport. But
  • 41:58 - 42:02
    departure airport doesn’t have to be just
    the departure airport but it can also be
  • 42:02 - 42:07
    any airport that is within the reservation.
    So for Oman Air we think that it’s
  • 42:07 - 42:13
    Muscat which is the capital.
    So usually… most of these slides
  • 42:13 - 42:18
    go through there. Let’s see
    if we can find someone who is…
  • 42:18 - 42:24
    Karsten: And he’s now just trying random
    booking codes that are valid within
  • 42:24 - 42:29
    that name space. So, again, they don’t
    really use the full entropy. So that makes
  • 42:29 - 42:33
    the search a little bit quicker but other
    than that it’s just a pure brute-force.
  • 42:33 - 42:38
    Nemanja: And as there is no captcha as you
    can see we can go on to the next one.
  • 42:38 - 42:40
    So this one is the winner!
  • 42:40 - 42:44
    laughter
  • 42:44 - 42:54
    They trust you that it’s yours!
    strong applause
  • 42:54 - 43:01
    And let’s see … so we already have one
    for the Oman Air. Okay. This is the one…
  • 43:01 - 43:02
    this is where…
  • 43:02 - 43:05
    Karsten: That was RyanAir, huh?
  • 43:05 - 43:07
    Nemanja: This is the RyanAir, yeah.
  • 43:07 - 43:11
    So we didn’t bring these two characters.
  • 43:11 - 43:15
    But… because we wanted to hide it. If we
    accidentally hit some booking with that
  • 43:15 - 43:19
    card number we don’t want to show the
    booking reference number of someone else.
  • 43:19 - 43:28
    So it might be even some
    of the people here. We can try…
  • 43:28 - 43:34
    Even got one from the Pakistan. Carmen
    Sandiego is flying from SXF to TSR.
  • 43:34 - 43:46
    And here we can just enter the…
    what was the, I think… if I’m right…
  • 43:46 - 43:54
    Let’s see if this will work. Yeah, okay.
  • 43:54 - 43:55
    Hello Carmen Sandiego.
  • 43:55 - 44:01
    Karsten: So now we know where Carmen
    Sandiego is, finally. The point is,
  • 44:01 - 44:05
    we made, you can brute-force these web
    sites rather easily and you don’t really
  • 44:05 - 44:10
    trigger any alerts there, apparently.
    Which, again, coming from
  • 44:10 - 44:15
    an IT security background I find pretty
    shocking. Can we switch back to
  • 44:15 - 44:25
    the other screen? Let’s look at the last
    security feature that we would expect
  • 44:25 - 44:30
    any IT system to have, these days.
    Especially knowing that it has been
  • 44:30 - 44:34
    criticized for lack of IT security for
    a long time. And that, of course,
  • 44:34 - 44:40
    is accountability, logging. At least track
    who’s legitimately or illegitimately
  • 44:40 - 44:45
    accessing these records. It turns out
    that it has been asked for a long time
  • 44:45 - 44:50
    by different people, again most notably
    Ed Hasbrouck, this privacy advocate,
  • 44:50 - 44:55
    but also other reporters and other
    advocates have come across this
  • 44:55 - 45:00
    for years, saying “there’s rumors that,
    let’s say, the Department of Homeland
  • 45:00 - 45:05
    Security in the U.S., they have root access
    in these GDS’s. Where are the records,
  • 45:05 - 45:10
    whether they are accessing it or not.
    Where are the records for abuse by
  • 45:10 - 45:15
    support stuff in these GDS companies.
    Where are any records?
  • 45:15 - 45:19
    The GDS companies have always said,
    “oh, we can’t keep any records, it’s
  • 45:19 - 45:26
    not technologically possible.” I call BS
    on that. They are logging… in the tiniest
  • 45:26 - 45:31
    minutia, any change to a reservation
    there’s a log for. And then access log
  • 45:31 - 45:35
    does not exist? And it’s not
    technologically possible? I think there’s
  • 45:35 - 45:40
    a completely different reason behind here.
    If, in fact, these companies gave access,
  • 45:40 - 45:45
    unlawful access, or at least in violation
    of privacy laws in, let’s say,
  • 45:45 - 45:50
    the E.U. or Canada, if, in fact, they gave
    that access to other governments
  • 45:50 - 45:55
    the last thing you want is a trail of
    evidence showing that people have
  • 45:55 - 46:01
    access to records. So this has nothing to
    do with technological restrictions, this is
  • 46:01 - 46:06
    purely – those companies don’t wanna be
    in the middle of a debate where probably
  • 46:06 - 46:11
    some sealed order in the U.S. makes them
    disclose all this information but laws
  • 46:11 - 46:15
    in Europe make them not disclose the
    information. They just don’t wanna have
  • 46:15 - 46:21
    evidence either way. But that leaves us
    in a very peculiar position where now
  • 46:21 - 46:26
    we know that these systems are insecure,
    use very bad authenticators, expose this
  • 46:26 - 46:31
    over web sites that can be brute-forced
    and don’t keep any record of if that
  • 46:31 - 46:37
    actually happens. So it’s completely
    unknown how much abuse may be
  • 46:37 - 46:42
    happening here. I think we can be pretty
    certain that the flight changes for people
  • 46:42 - 46:45
    to fly for free, that they are not
    happening very frequently because that’s
  • 46:45 - 46:51
    the only one of these attack methods that
    would leave very clear evidence, somebody
  • 46:51 - 46:55
    actually complaining, saying “I wanted to
    take my flight but apparently somebody
  • 46:55 - 47:01
    else already took it before me, or
    canceled it and took off with the money.
  • 47:01 - 47:05
    But the other cases we have no idea
    whether or not they’re happening.
  • 47:05 - 47:08
    They’re technologically possible, and
    nobody seems to be looking for these
  • 47:08 - 47:17
    abuse patterns. In summary, there’s just
    three big global databases, two in the U.S.,
  • 47:17 - 47:24
    one in Europe. They keep all the
    information on all the travelers.
  • 47:24 - 47:29
    This information includes your personal
    contact information, payment information,
  • 47:29 - 47:34
    your IP address. So lots of stuff that in
    a lot of other systems we consider
  • 47:34 - 47:40
    sensitive, private even. And it should be
    protected with a good password. We would
  • 47:40 - 47:44
    advise people to use an 8-character or
    longer password, with special character.
  • 47:44 - 47:49
    None of that exists here. The passwords
    here are six-digits. They are less than
  • 47:49 - 47:54
    five digits at worth of entropy. They’re
    printed on scraps of paper that you
  • 47:54 - 47:59
    throw away. They are found on Instagram
    an they’re brute-forcable through numerous
  • 47:59 - 48:04
    web sites by the GDS companies and through
    the travel providers. So this is very,
  • 48:04 - 48:11
    very far away from even weak internet
    security. This really predates the internet
  • 48:11 - 48:18
    in stupidity and insecurity. And while
    there’s multiple scenarios in which
  • 48:18 - 48:24
    either privacy of users is at risk or even
    fraud could happen none of this is even
  • 48:24 - 48:29
    logged, and nobody knows or has any way
    of knowing the magnitude to which
  • 48:29 - 48:33
    these systems are already abused.
    So what do we need here?
  • 48:33 - 48:38
    We clearly need more limitations on who
    can access what. This is not just my ask.
  • 48:38 - 48:43
    This has been asked for 10 .. 20 years.
    But more on the technical level,
  • 48:43 - 48:49
    in a long term, we need passwords for
    every traveler. You should be able
  • 48:49 - 48:53
    to post a picture of your boarding pass
    on Instagram without having to worry
  • 48:53 - 48:57
    about somebody abusing it. This is a piece
    of paper that you will throw away.
  • 48:57 - 49:03
    There should be nothing secret about it.
    If you wanna share it – feel free to.
  • 49:03 - 49:08
    Somebody else needs to add a password
    to make that safe again.
  • 49:08 - 49:13
    But that’s a very long-term goal. These
    travel companies, they’re so interwoven,
  • 49:13 - 49:18
    as we saw today, that all of them really
    have to move at the same time.
  • 49:18 - 49:25
    The GDS’s have to do their share. But then
    each of interconnected airlines has to do
  • 49:25 - 49:29
    their share. We saw this one random ticket
    from Instagram, so this was a Lufthansa
  • 49:29 - 49:36
    ticket with some Alaska Air components
    issued by United. So at least those three
  • 49:36 - 49:40
    companies have to work together. And how
    many more different airlines today have
  • 49:40 - 49:45
    code-share agreements. So we’re talking
    about hundreds of companies who have
  • 49:45 - 49:50
    to come together and decide “we wanna
    introduce pass codes, passwords”,
  • 49:50 - 49:55
    whatever you wanna call them, “for each
    booking”. So that is a long-term goal.
  • 49:55 - 49:59
    In the short term, though, at the very
    least we can expect, is for all these
  • 49:59 - 50:05
    web sites that do give access to travelers’
    private information to do the bare minimum
  • 50:05 - 50:09
    of web security. At the very least
    some rate limiting. Don’t allow us
  • 50:09 - 50:16
    to throw millions of requests at your
    properties, and give us back honest
  • 50:16 - 50:22
    answers. That is unheard of anywhere else
    in the “cloud”. But for travel systems
  • 50:22 - 50:28
    who claim for themselves to be the first
    cloud ever this seems to be very standard.
  • 50:28 - 50:32
    And then, finally, until all of this can
    be guaranteed, until there’s passwords
  • 50:32 - 50:36
    and until there is good rate limiting
    I think we have a right to know
  • 50:36 - 50:41
    who accesses our records, and there must
    be some accountability. Especially,
  • 50:41 - 50:46
    knowing how insecure these systems are
    today. This is a long way, and I can only
  • 50:46 - 50:53
    hope that we are starting a journey by
    annoying large companies like Amadeus.
  • 50:53 - 50:58
    They have done their little bit of fixing
    over the weekend now, so hopefully
  • 50:58 - 51:02
    some others will follow suit and we
    will have better systems. Until then,
  • 51:02 - 51:07
    of course, I can only encourage all of you
    to look at more of these travel systems
  • 51:07 - 51:11
    because there’s plenty more to find.
    We’re only scratching the surface here.
  • 51:11 - 51:15
    And, more generally, to look at more
    legacy systems. I think we’re spending
  • 51:15 - 51:20
    way too much time making some already
    really good crypto just a tiny bit better
  • 51:20 - 51:25
    or finding a really good mobile operating
    system the next little jailbreak
  • 51:25 - 51:32
    that will be fixed two days later anyhow
    ignoring all these huge security issues
  • 51:32 - 51:36
    that have been there for many, many years
    in systems that are a little bit less sexy
  • 51:36 - 51:40
    and riddled with bug bounties than
    something else that we do spend a lot
  • 51:40 - 51:47
    of time on. So I hope I could encourage
    you to do that. I wanna just hand out
  • 51:47 - 51:53
    a few thankyous to members of our team
    without whom this research wouldn’t
  • 51:53 - 51:58
    have been possible, and to a few industry
    experts who were kind enough to
  • 51:58 - 52:03
    read over these slides and provide
    feedback, and help us hopefully
  • 52:03 - 52:08
    not have any major gaps on our
    information. And then, to you for
  • 52:08 - 52:12
    showing up in such great numbers,
    thank you very much!
  • 52:12 - 52:30
    applause
  • 52:30 - 52:34
    Herald: Wow, great talk. Thank you
    very much! We have five minutes
  • 52:34 - 52:39
    for Q&A. So please line up on the
    microphones, and we’ll take
  • 52:39 - 52:41
    some questions. First one!
  • 52:41 - 52:44
    Question: Do you have any indication of
    how secure the systems are on the other
  • 52:44 - 52:49
    end, that the airlines supply their
    fares into the entire systems?
  • 52:49 - 52:54
    Is there any indication that those systems
    might be more secure than
  • 52:54 - 52:59
    on the customer side? Or would it
    be easy to inject a cheap fare, e.g.
  • 52:59 - 53:03
    by impersonating the airline
    with weak passwords?
  • 53:03 - 53:08
    Karsten: Honestly, we don’t know.
    It was definitely on our list to research
  • 53:08 - 53:14
    but we don’t have time for everything so
    we focus more on the customer privacy.
  • 53:14 - 53:19
    But one thing that I really would want
    to test if I had any way of doing it:
  • 53:19 - 53:24
    imagine the parsers for these strings.
    Imagine injecting some special characters
  • 53:24 - 53:32
    in that. I don’t know who creates these
    strings and maybe I don’t wanna know.
  • 53:32 - 53:38
    But if anybody does and you could play
    with some SQL commands I think a lot of
  • 53:38 - 53:43
    web sites would wake up understanding that
    on that front they don’t do enough
  • 53:43 - 53:45
    security either.
  • 53:45 - 53:48
    Herald: Okay, question
    from the Signal Angel?
  • 53:48 - 53:52
    Signal Angel: A question from IRC.
    Recently, U.S. Customs And Border Patrols
  • 53:52 - 53:56
    started collecting social media identifiers
    for foreign citizens trying to enter
  • 53:56 - 54:00
    the U.S. on a Visitor Visa. Could that
    information be accessible through PNR’s?
  • 54:00 - 54:05
    Karsten: That’s a good question.
    I don’t think you would be.
  • 54:05 - 54:07
    From Audience: They are!
  • 54:07 - 54:09
    Karsten: So, I…
  • 54:09 - 54:11
    From Audience: Yes, they are!
  • 54:11 - 54:14
    Karsten: They are in the PNR?
  • 54:14 - 54:15
    From Audience: Yes!
  • 54:15 - 54:16
    Karsten: Okay.
  • 54:16 - 54:19
    laughter
  • 54:19 - 54:26
    I would have imagined that it’s
    more a case like this journalist,
  • 54:26 - 54:33
    Cyrus Favia. He requested through
    FOIA disclosure all the records that
  • 54:33 - 54:37
    the U.S. Government kept on his
    travelling. And he found a lot more stuff
  • 54:37 - 54:42
    than just in the PNR. They had notes in
    there like “he’s a journalist”, “we had
  • 54:42 - 54:46
    to search him extra for that”, stuff like
    that. So they don’t wanna write that
  • 54:46 - 54:50
    into the PNR. But the Government keeps
    separate records that may be indexed
  • 54:50 - 54:52
    by PNR, I don’t know.
  • 54:52 - 54:55
    Herald: Okay, microphone here!
  • 54:55 - 54:59
    Question: Can you say something about
    how long information will be stored
  • 54:59 - 55:05
    in those travel systems, and whether users
    have a right to get them deleted?
  • 55:05 - 55:12
    Karsten: That’s a good question. I think
    that differs by system. So in Amadeus
  • 55:12 - 55:17
    records are removed pretty quickly. Days,
    or at most, weeks after the last flight is
  • 55:17 - 55:21
    finally done. But in Sabre I had the
    impression that much older records was
  • 55:21 - 55:26
    still in there. Which may explain why
    their data set is so dense. If you keep
  • 55:26 - 55:30
    accumulating all the information. By the
    end of the day this is all going back
  • 55:30 - 55:34
    to mainframe technology. So I don’t think
    anybody understands these algorithms
  • 55:34 - 55:36
    any more. They just kind of work.
  • 55:36 - 55:38
    Question: The deletion?
  • 55:38 - 55:42
    Karsten: The deletion, yeah. I don’t think
    you can request anything to be deleted.
  • 55:42 - 55:46
    I don’t think they consider you
    a person that they wanna talk to.
  • 55:46 - 55:48
    You’re not the customer!
  • 55:48 - 55:50
    Question: Thanks!
  • 55:50 - 55:52
    Herald: Okay, the microphone
    there, in the…
  • 55:52 - 55:56
    Question: It seems that the immediate way
    to abuse these systems is, like you said,
  • 55:56 - 56:02
    with abusing money, and the mileage etc.
    It seems that those paths are actually
  • 56:02 - 56:06
    somehow monitored by airlines, so if I’m
    collecting miles and take it not under
  • 56:06 - 56:09
    my name that would raise some flags.
    You think that’s not the case?
  • 56:09 - 56:16
    Karsten: Yes, I should have been more
    explicit how this attack works,
  • 56:16 - 56:20
    the mile diversion. So, of course, you
    have to have an account in the same name
  • 56:20 - 56:25
    as the person flying. So had his demo
    worked, he would have a PNR for
  • 56:25 - 56:29
    a lady Carmen Sandiego. You can just go
    to miles&more and create an account
  • 56:29 - 56:34
    under that name. A lot of airlines, though,
    they also allow you to change your name.
  • 56:34 - 56:38
    So you just change it whenever you found
    a round trip Australia ticket,
  • 56:38 - 56:43
    you change the name to whatever that
    target name is. And I know for a fact
  • 56:43 - 56:49
    that people are doing that right now, not
    you guys, before even. Based on Instagram
  • 56:49 - 56:54
    photos. So people are diverting miles by
    creating new accounts or by keeping
  • 56:54 - 56:58
    changing the names of the accounts.
    And yes, airlines do sometimes notice this
  • 56:58 - 57:05
    but only when it becomes excessive.
    And sure, that’s their money. I just hope
  • 57:05 - 57:09
    that it will become so excessive that
    it’s such a big problem that it can’t be
  • 57:09 - 57:14
    ignored any more. And then the privacy
    issues get fixed on the same token
  • 57:14 - 57:18
    where privacy is never enough to convince
    a big company. But if you throw in
  • 57:18 - 57:21
    a little bit of fraud it may be enough.
  • 57:21 - 57:29
    applause
  • 57:29 - 57:32
    Herald: Okay, one last question.
    Microphone here!
  • 57:32 - 57:37
    Question: Hi Karsten! When people use
    like GDS’s they have these really archaic…
  • 57:37 - 57:41
    there are not even… there are like actual
    terminals, not even pseudo-terminals.
  • 57:41 - 57:45
    And then they expose like these EPI’s for
    the sake of writing your code in like Java
  • 57:45 - 57:49
    or whatever. I’m wondering if there’s
    research to be done at that level?
  • 57:49 - 57:54
    Or did you just not look at that, or
    that’s just an area of further research?
  • 57:54 - 57:59
    Karsten: We did, quite a bit. But we found
    no way of making that public in any way
  • 57:59 - 58:06
    that wouldn’t require a login from a
    travel agency and all of that good stuff.
  • 58:06 - 58:12
    So I think the most I wanna say about that
    is the logins that travel agencies have,
  • 58:12 - 58:16
    they’re terribly secured. But, of course,
    I can’t encourage anybody to go out
  • 58:16 - 58:21
    and hack them. But if you did and you had
    access you’d be logging in to something
  • 58:21 - 58:25
    that looks like a terminal. And you’d be
    typing some commands. And the next thing
  • 58:25 - 58:30
    you know it throws a Java stack trace at
    you. So these just look like terminals.
  • 58:30 - 58:34
    They have moved well beyond that while
    still maintaining this look and feel
  • 58:34 - 58:38
    of a mainframe. And they’re terribly
    insecure. So these stack traces, they just
  • 58:38 - 58:42
    come left and right even if you
    try to do the right thing!
  • 58:42 - 58:43
    laughter
  • 58:43 - 58:45
    Question: Thanks!
    Herald: Okay we have one question
  • 58:45 - 58:47
    from the internet!
  • 58:47 - 58:53
    Signal Angel: Somebody wants to know,
    how do you avoid DDoS’ing those services
  • 58:53 - 58:57
    when you just brute-force the booking
    numbers?
  • 58:57 - 59:02
    Karsten: A good question. Of course we
    don’t wanna hurt anybody, so we tried to
  • 59:02 - 59:07
    keep the rates low. And it turns out if
    you throw 20 Amazon instances at them
  • 59:07 - 59:10
    they don’t go down yet. And…
  • 59:10 - 59:11
    laughter
  • 59:11 - 59:14
    Herald: Okay. Thank you very much,
    Karsten and Nemanja!
  • 59:14 - 59:21
    applause
  • 59:21 - 59:24
    postroll music
  • 59:24 - 59:45
    subtitles created by c3subtitles.de
    in the year 2020. Join and help us!
Title:
Where in the World Is Carmen Sandiego? (33c3)
Description:

more » « less
Video Language:
English
Duration:
59:45

English subtitles

Revisions