Slashdot Mirror


My United Airlines Website Hack Gets Snubbed

Bennett Haselton writes: United Airlines announced that they will offer up to 1 million air miles to users who can find security holes in their website. I demonstrated a way to brute-force a user's 4-digit PIN number and submitted it to them for review, emailing their Bugs Bounty contact address on three occasions, but I never heard back from them. Read on for the rest. If you've had a different experience with the program, please chime in below.

United Airlines announced the program in May (also specifying rules which specifically prohibited hacking in-flight systems, but which included "[t]he ability to brute-force reservations, MileagePlus numbers, PINs or passwords".) I poked around on their website and discovered that on their "Forgot your MileagePlus number?" page, you can request a reset of your password by submitting your first and last name, AND any ONE of the following:

  • your e-mail address
  • your street address
  • your phone number
  • your PIN
  • your password
  • your "old MileagePlus number"

And after submitting your information, the page will tell you whether your information matched an existing MilagePlus customer record.

This means that if you know a user's first and last name, you can guess their PIN, and the MileagePlus site will tell you whether you got it right or not. If the site doesn't limit your number of guesses, you can write a script that iterates through all 10,000 possibilities for the PIN until it finds the right one.

I wrote a script that did exactly that, and brute-forced my own account's PIN in a few hours (submitting one guess at a time, and running at 2 a.m. so as not to impact any other users). This means that United's website is not limiting the number of guesses per IP address, or showing a CAPTCHA after some number of failed attempts, or limiting the number of guesses per hour on a particular account, or any other countermeasures that you might expect. (The Bugs Bounty Program rules state, "[W]e do not allow execution of brute-force attacks on other users," which I interpreted to mean that brute-forcing your own account ought to be fine.)

So, United, if you're reading this, the immediate fix should be to disable the "PIN" option on the "Forgot your MileagePlus Number?" page. Keep the option to retrieve your account number by submitting your password, since even weak passwords are far harder to guess than 4-digit PIN numbers. But get rid of the PIN option.

I mentioned other possible countermeasures, including limiting requests per IP address and showing a CAPTCHA, but I actually don't think either of these would be effective. If you limit requests per IP address, any serious adversary will have a botnet of machines that they can use to submit requests from different addresses. If you make the user type in a CAPTCHA to submit a request, an attacker can hire workers online to read and type in the CAPTCHAs for a penny apiece. If you limit the number of reset attempts per hour on a particular account, that will slow down the attacker's attempts to brute-force the PIN for a particular account. However, if the attacker has a database of 1000 customer names and wants to find PINs for all of them, on Day 1 they could try 10 PINs for customer 1, then 10 PINs for customer 2, and so on up to customer 1000, and then on Day 2 they could try the next set of 10 PINs on customer 1, customer 2, etc. The attacker can't find any particular customer's PIN quickly, but they will be able to recover all of the customers' PINs slowly -- even though they never did more than 10 PIN authentication attempts on any particular account in the same day. Without a safe countermeasure, then, simply getting rid of PIN authentication would be the best fix.

It's because of attacks like this that I would argue that 4-digit PINs should never be used by themselves for authentication, if there's any possibility of a brute-force attack. They should only ever be used (a) for authentication in conjunction with something else, like a password (for example, if you're already logged in to a financial services account, you could require an additional 4-digit PIN to transfer money to another user); or (b) in a scenario where a brute-force attack is infeasible (for example, if you call tech support and a live human operator asks you to authenticate yourself with a 4-digit PIN).

The same attack is probably possible on the MileagePlus login page, since you can log in using your 4-digit PIN as an alternative to your password. However, this is less of a glaring security hole, because to brute-force a someone's PIN number on that page, you would have to at least know their MileagePlus number. The "Forgot Your MileagePlus Number?" page, on the other hand, allows you to brute-force someone's PIN number when all you know is their name.

As is often the case with stolen PINs and passwords, the most harmful effect here would probably not be the compromising of the user's MileagePlus account. The biggest problem is that most users use the same PINs and passwords for multiple accounts, and the attacker now has the 4-digit PIN that the user probably uses for their voicemail password, their ATM card, their burglar alarm, and who knows what else.

I first sent sent two emails about this to United's bug bounty email address reporting the issue on May 23, a few hours apart, and then followed up on June 1 asking if anyone had seen the first messages. I still have not receive a response.

So why didn't United reply? Have they just been receiving too many submissions by email? About 18 months ago I wrote about a researcher who emailed a security hole to Google and never heard back from them, even after they fixed the issue (although Google apologized and paid him his reward after the article ran). I suggested that if email submissions sometimes get back-logged, it would be a more effective approach to have email submissions reviewed by a lower-paid, less-experienced team of interns than by senior security researchers. The principle is that while it takes experience to find and fix security holes, it only takes some simple logical reasoning skills to evaluate whether a particular discovery constitutes a security hole, so the work can be farmed out to interns who want to gain work experience. By having each submission reviewed by, say, 3 randomly chosen interns from your pool of evaluators, you can churn through the submissions faster and reduce the chances of a legitimate bug falling through the cracks.

I'm sure some of the submissions are crap, and it's not United's fault if they initially got behind because they got more mails than they expected. But as soon as they realized they were getting swamped, they should have put more people on it -- even if those extra people were IT interns with just enough computer experience to read a bug description and tell if it was legit.

And one of the interns could also proofread the submission guidelines. Currently, under "things we will pay 250,000 miles for", the program page lists: "Brute-force attacks." Under "things that will result in criminal prosecution," the same page lists: "Brute-force attacks." If United keeps both promises, I hope my air miles don't expire before I get out of jail.

26 of 187 comments (clear)

  1. No More Bennett by aardvarkjoe · · Score: 5, Interesting

    I was surprised to find this show up on the Slashdot front page, and then realized that since the last time we had a Bennett post, I had switched computers, and so my user script to block them was no longer installed. Since I'd already seen it, though, I figured I'd post a link to the script again: https://gist.github.com/anonymous/3235db049b18699c082b#file-gistfile1-txt.

    This article isn't as stupid as Bennett's normal tripe; at least he seems to have identified a real issue here, although Slashdot is still allowing him to use their website as his personal blog. One amusing thing, though: he's complaining that United isn't responding to his emails about the hole. I've asked Slashdot repeatedly (through both e-mail and comment threads) to make it possible for us to block Bennett posts, or at least to comment on why they won't. The Slashdot staff have, so far, completely ignored me. They have apparently been too busy adding "share to TwitBook" buttons to the stories.

    --

    How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
    1. Re:No More Bennett by Anonymous Coward · · Score: 2, Insightful

      I think this is the first time I've seen an article title in first person, as well. It's not enough that Bennett uses /. as his personal blog, but now he's even talking about himself on it.

    2. Re:No More Bennett by kaiser423 · · Score: 3, Insightful

      Exactly. This is pretty tripe. He admits up front that the bug bounty program says "No brute forcing of other users account" and then assumes that brute forcing is ok. There's also the possibility that they meant that brute forcing in general is not ok, so just tossed his submission when it arrived because it was a brute force attack. My guess is that they already knew it could be brute forced and were looking for other potential security issues to find and implement as a group before they push the next update -- that they were actually looking for a little more in depth security issues than that.

      I have to say that I'm not honestly surprised that Bennett didn't think of that conclusion, because it would require more than a strict literal interpretation of something and navel gazing, which really are his two specialties.

    3. Re:No More Bennett by bmxeroh · · Score: 3, Interesting

      (Note: While we accept bug reports on the ability to conduct brute-force attacks, we do not allow execution of brute-force attacks on other users. Please see the “Do not attempt” section. If you believe you have found a method to conduct a brute-force or code injection attack, please report it to us without testing it.).

      The program details specifically say that. He's an idiot, but we all knew that.

      --
      Central Ohio Home Theater Installation - The Theater People
    4. Re:No More Bennett by idontgno · · Score: 2

      Brute forcing your own account isn't banned. But it's not rewarded, either. That's what the "If you believe you have found a method to conduct a brute-force or code injection attack, please report it to us without testing it." bit of the rules means.

      In other words, no, Bennett, you did not outsmart those meanies in charge of making the rules of this bug bounty system. Your hack wasn't particularly clever, so doesn't get rewarded as if it were. However, the bug report itself is probably valid, and United obviously has some fixing to do. (No failed-PIN limiter? The 1970s called; they'd like their input validation methodology back.)

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    5. Re:No More Bennett by Anonymous Coward · · Score: 2, Informative

      Don't forget Roland Piquepaille ;)

      You might need something more powerful than a script if he comes back.

  2. No brute-forcing murky... or clear? by JJJJust · · Score: 4, Informative
    The website explains the brute-forcing thing in a roundabout way... but it does note (emphasis added):

    While we accept bug reports on the ability to conduct brute-force attacks, we do not allow execution of brute-force attacks on other users. Please see the “Do not attempt” section. If you believe you have found a method to conduct a brute-force or code injection attack, please report it to us without testing it.

    1. Re:No brute-forcing murky... or clear? by Anonymous Coward · · Score: 3, Informative

      Under "DO NOT ATTEMPT" it Clearly states that Brute Force Attacks are not allowed. That's about as clear as they can make it. It's the TOP ITEM under "Don't do this or we will disqualify you and possibly start a criminal investigation"

      Do not attempt:
      Attempting any of the following will result in permanent disqualification from the bug bounty program and possible criminal and/or legal investigation. We do not allow any actions that could negatively impact the experience on our websites, apps or online portals for other United customers.

      Brute-force attacks

    2. Re:No brute-forcing murky... or clear? by Orphis · · Score: 2

      This isn't a BRUTE force attack. This is just a force attack.
      If a server has an issue with 10k requests at night when nobody is using it over a few hours, then they have much bigger problems!

    3. Re:No brute-forcing murky... or clear? by bws111 · · Score: 2

      Brute force has absolutely nothing to do with what the server can handle, it just means trying every possibility.

    4. Re:No brute-forcing murky... or clear? by RavenLrD20k · · Score: 3, Insightful

      I have an idea. How about you learn something before you talk out of your ass? Brute force has never, in the entire lifetime of the phrase, meant that you were pegging a server while you are trying every possibility for the password on an account. Hell, if I send a username and next-in-series password at a rate of one every 20 minutes, that's still classified as a brute force attack, and unless the server is really anemic, there's no chance in Hell that the server is going down. If I'm doing that same type of attack at a rate of 200 attempts per second, or even 2000 attempts per second, that's still not going to blip much on the server's CPU unless it's already bogged with another process, and those are STILL classed as brute force.

      The type of attack you're looking for is Distributed Denial of Service, which isn't generally for breaking into accounts but taking the server down with an overwhelming number of requests or pings that the server doesn't have the resources to be able to respond to any further requests.

    5. Re:No brute-forcing murky... or clear? by grahamsz · · Score: 2

      You could easily refine this based on the logic that users are horribly bad at choosing passwords and pins

      http://www.datagenetics.com/bl...

      You only need to try 426 codes to hit 50% of all pin codes (in that analysis)

  3. "My" by Anonymous Coward · · Score: 5, Insightful

    If the title of your post starts with "my", and it isn't on Ask Slashdot, you are a douche.

  4. Um... Did you actually read the program? by Anonymous Coward · · Score: 5, Informative

    Bugs that are eligible for submission:
    The ability to brute-force reservations, MileagePlus numbers, PINs or passwords (Note: While we accept bug reports on the ability to conduct brute-force attacks, we do not allow execution of brute-force attacks on other users. Please see the “Do not attempt” section. If you believe you have found a method to conduct a brute-force or code injection attack, please report it to us without testing it.)

    Do not attempt:
    Attempting any of the following will result in permanent disqualification from the bug bounty program and possible criminal and/or legal investigation. We do not allow any actions that could negatively impact the experience on our websites, apps or online portals for other United customers.

    Brute-force attacks

    So... It looks like you didn't follow the rules & tested a brute force attack. That straight away says that they will most likely ( and with valid reasoning ) disqualify you from the program. Since you used your account only, they will likely not prosecute. You still broke the rules and will probably not get anything except kicked out.

    1. Re:Um... Did you actually read the program? by CronoCloud · · Score: 3, Insightful

      Yeah, he interpreted it as forbidding brute-force testing against other users, but allowing brute-force against one's own account when it's clear that it actually means "don't test brute-force attacks at all"

      Frequent Contributor Bennet Haselton is coming across as a bit "Autistic spectrum-y" in this story.

    2. Re:Um... Did you actually read the program? by Ichijo · · Score: 3, Insightful

      Serious question: how could someone determine that PINs can be brute-forced without brute forcing them? Without the ability to prove it, it's the bounty hunter's word against the website, and we already know websites will do anything they can to avoid paying.

      --
      Any sufficiently unpopular but cohesive argument is indistinguishable from trolling.
    3. Re:Um... Did you actually read the program? by bennetthaselton · · Score: 2

      Yeah, he interpreted it as forbidding brute-force testing against other users

      That's right, since it said "we do not allow execution of brute-force attacks on other users"

  5. I tried... by bogie · · Score: 5, Funny

    But they said there was now a $50 service fee in order for me to submit my bug. They said something about how fuel prices had gone up and they had no choice but to start charging the fee.

    --
    If you wanna get rich, you know that payback is a bitch
  6. Maybe your report was too long. by SeaFox · · Score: 5, Funny

    If your bug submission was anything like your Slashdot submissions, their eyes glazed over after the first three paragraphs and they didn't even read the other eight pages where you actually explained the hack.

  7. Is Haselton going to jail? by Anonymous Coward · · Score: 2, Insightful

    http://www.united.com/web/en-US/content/contact/bugbounty.aspx#terms

    Do not attempt:

    Attempting any of the following will result in permanent disqualification from the bug bounty program and possible criminal and/or legal investigation[!!1!]. We do not allow any actions that could negatively impact the experience on our websites, apps or online portals for other United customers.

            Brute-force attacks
            Code injection on live systems
            Disruption or denial-of-service attacks
            The compromise or testing of MileagePlus accounts that are not your own
            Any testing on aircraft or aircraft systems such as inflight entertainment or inflight Wi-Fi
            Any threats, attempts at coercion or extortion of United employees, Star Alliance member airline employees, other partner airline employees, or customers
            Physical attacks against United employees, Star Alliance member airline employees, other partner airline employees, or customers
            Vulnerability scans or automated scans on United servers (including scans using tools such as Acunetix, Core Impact or Nessus)

    Please, please, please, let it happen!

  8. I thought we were done with this crap... by dark.nebulae · · Score: 2

    After not hearing from bennett for so long, I thought slashdot had finally come to it's senses and shit-canned that ass wipe. I guess I'm the ass wipe instead.

  9. Up to 1 million air miles* by NotDrWho · · Score: 3, Funny

    * Meaning 0 - 1 million air miles

    --
    SJW's don't eliminate discrimination. They just expropriate it for themselves.
  10. A million miles on United? by Virtucon · · Score: 4, Funny

    That's like 10 years in Leavenworth.

    --
    Harrison's Postulate - "For every action there is an equal and opposite criticism"
  11. If you get them to honor it... by Overzeetop · · Score: 3, Funny

    Good News - you've got a million frequent flyer miles!
    Bad News - you have to fly United.

    --
    Is it just my observation, or are there way too many stupid people in the world?
  12. You forgot to mention one thing... by bobbied · · Score: 2

    One of the terms here is that your submission "MUST BE THE FIRST" that specifies the successful attack...

    If you don't know for sure yours was the first (and there is no way you can) it's up to United to respond or not and pony up with the miles or not. So you did all that work, proved the attack works, but you don't really know if United hasn't already validated somebody else's submission for this and paid THEM the miles you think they owe you.

    Then there is the whole, how do you know they actually received it vector....

    Look, you are unlikely to get anything out of United on this. Stop wining about it and move on.

    --
    "File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
  13. Re:Additional context for non-frequent flyers by ErichTheRed · · Score: 2

    Yes, it's easy to just grant FQTV miles arbitrarily, but airlines do somewhat treat them like currency. Also, the old-school domestic airlines (AA, UA, DL, hey, are there really only 3 left???) rely heavily on business travelers so it's in their best interest to not water down their programs. But you are right - unless they specifically block out inventory, they won't lose money, especially for a one-off bug bounty payment.

    Look at FlyerTalk forums sometime. All those consultants working for the Big 4, or traveling salesmen, or midlevel corporate executives are on there complaining constantly about a perceived slight or loss of benefit. I know a bunch of consultants who easily fly 40+ weeks out of the year. I can definitely see someone being upset about service if they have to endure that much flying, but there are some people who really take it to an extreme. One example would be just missing a status level unless you happen to book an around-the-world trip by the end of the year, and literally sitting on the plane for 48 hours to rack up miles. I guess I'd be a little upset if I did a mileage run and then couldn't get anything for it, but still...

    It's even more interesting now with Delta. DL has decided they actually want to sell first class seats to paying customers, so they're reducing the price from, say, 8x economy price to 3x economy price. That really stirred up a s**tstorm with heavy Delta flyers -- suddenly it's a million times harder to get a free upgrade unless you're Platinum Elite. I'm a moderate flyer, never enough to even get the first status level in a FF program, but I always just end up buying tickets over the long run with what I rack up. That seems to work for me....that and hotel points -- taking a family of four on a trip is easier with the occasional free hotel night Marriott throws me.