Slashdot Mirror


New Attack Steals SSNs, E-mail Addresses, and More From HTTPS Pages (arstechnica.com)

Security researchers at KU Leuven have discovered an attack technique, dubbed HEIST (HTTP Encrypted Information can be Stolen Through TCP-Windows), which can exploit an encrypted website using only a JavaScript file hidden in a maliciously crafted ad or page. ArsTechnica reports: Once attackers know the size of an encrypted response, they are free to use one of two previously devised exploits to ferret out the plaintext contained inside it. Both the BREACH and the CRIME exploits are able to decrypt payloads by manipulating the file compression that sites use to make pages load more quickly. HEIST will be demonstrated for the first time on Wednesday at the Black Hat security conference in Las Vegas. "HEIST makes a number of attacks much easier to execute," Tom Van Goethem, one of the researchers who devised the technique, told Ars. "Before, the attacker needed to be in a Man-in-the-Middle position to perform attacks such as CRIME and BREACH. Now, by simply visiting a website owned by a malicious party, you are placing your online security at risk." Using HEIST in combination with BREACH allows attackers to pluck out and decrypt e-mail addresses, social security numbers, and other small pieces of data included in an encrypted response. BREACH achieves this feat by including intelligent guesses -- say, @gmail.com, in the case of an e-mail address -- in an HTTPS request that gets echoed in the response. Because the compression used by just about every website works by eliminating repetitions of text strings, correct guesses result in no appreciable increase in data size while incorrect guesses cause the response to grow larger.

11 of 102 comments (clear)

  1. so once again... by Anonymous Coward · · Score: 4, Insightful

    using only a JavaScript file hidden in a maliciously crafted ad or page

    So we learn for the 1940390155th time that if you let a remote site run arbitrary scripts on your machine, that remote site might do things that are not in your best interest. Surprise surprise.

    Look: we get a constant stream of these things, at least one or two per week, literally for over 10 years. They're all the same. "Run javascript, get pwned". If you care AT ALL about security, you need to block javascript by default and white-list a few sites you care about, like your bank.

    If you are still running javascript by default, in 2016, that's on you. You've had over a decade to learn your lesson. This is like someone walking through the worst part of town at 3am flashing jewels and expensive watches. Then they get mugged. Is it the muggers fault? Yeah, of course it is. But the person doing this is still a bloody idiot, especially after it happens for the 10th time, and then the 20th, and the 50th, and the 100th. Eventually, they need to learn from experience.

    Whitelist selected javascript, and disable everything else. It's time. It was a bad idea just like ActiveX was. The internet is not your friend. Random domains are not trustworthy. Stop letting them run code in your browser. Ignorance stops being a reasonable excuse after endless repetitions of "See this incredible new exploit(*)! (*) that requires you let the attacker run code on your computer."

    1. Re:so once again... by Frosty+Piss · · Score: 4, Insightful

      "Run javascript, get pwned". If you care AT ALL about security, you need to block javascript by default and white-list a few sites you care about, like your bank.

      I understand, really I do. But for most people this approach is not practical because 99.999 percent of the web sites out there that most people visit use JavaScript for functionality.

      --
      If you want news from today, you have to come back tomorrow.
    2. Re:so once again... by WaffleMonster · · Score: 5, Insightful

      So we learn for the 1940390155th time that if you let a remote site run arbitrary scripts on your machine, that remote site might do things that are not in your best interest. Surprise surprise.

      Look: we get a constant stream of these things, at least one or two per week, literally for over 10 years. They're all the same. "Run javascript, get pwned". If you care AT ALL about security, you need to block javascript by default and white-list a few sites you care about, like your bank.

      If you are still running javascript by default, in 2016, that's on you. You've had over a decade to learn your lesson.

      No we learned that compression is vulnerable to side channel attacks something we all knew and nothing more.

      Your view is strange given the unfortunate nature of many top sites employing CDNs to pipe out all manner of java frameworks and half the content of their sites and crap. What you are essentially advocating is a nonstarter. NOTHING works without JavaScript today and expecting people to make judgments about validity of specific script files is a complete nonstarter.

      There are persistent streams of javascript implementation bugs and browser implementation bugs and style sheet implementation bugs and operating system implementation bugs which regularly require attention to prevent exploitation. It is easy to pull the plug and declare all security problems solved yet this course of action does not actually help anyone.

    3. Re:so once again... by mujadaddy · · Score: 2

      I want to boost your comment with my "moderator points", but my script blocker only allows the obvious /. domains (slashdot,org, and slashdotmedia.com), so the script running the moderator system coincidentally doesn't work here.

      I suppose while I'm here, I should inject my newbie /. request to learn what domain(s) I should unblock for scripting purposes here, so plz feel free to enlighten me on this front.

      I also suppose, along my starting sentences with "I" run, that probably everyone reading /. knows about script blocking, but security issues among the mainstream public are seriously problematic (at least in terms of potential attack vectors). It's not a knock against your valid point, but just a reasonably relevant informational nook where people can feel free to discuss it fwiw.

      a.fsdn.com , and possibly the XHR from slashdot.org

      --
      Populus vult decipi, ergo decipiatur...
      "Force shits upon Reason's back." - Poor Richard's Almanac
    4. Re:so once again... by Snotnose · · Score: 2

      Your view is strange given the unfortunate nature of many top sites employing CDNs to pipe out all manner of java frameworks and half the content of their sites and crap. What you are essentially advocating is a nonstarter. NOTHING works without JavaScript today and expecting people to make judgments about validity of specific script files is a complete nonstarter.

      After whitelisting sites like /. and my bank I find 90% of the net works just fine. When I go to a site and nothing happens I can at least look at the URL, take into account where the link came from, and decide whether or not I want to let the page run javascript temporarily. Although I don't keep track, I'd guess 90% don't get to run JS. Sites like time.com will likely get it, those like joeswebpage won't.

  2. I was going to read this article... by burhop · · Score: 2

    ... but the intro made me afraid to click the link.

  3. Malicicously. Crafted. Ad. by Calydor · · Score: 4, Interesting

    Yet another reason to never, NEVER turn off AdBlock, NoScript, Ghostery etc.

    Advertisers and site operators, I don't CARE about your precious earnings if they come at a threat to my property.

    --
    -=This sig has nothing to do with my comment. Move along now=-
  4. One more on the pile. by TheCarp · · Score: 4, Insightful

    Once again proven that browsing the web is like going to a diner party in a world where the handshake has been replaced with unprotected anal sex.

    Sure, many people you meet may be offended when you insist on a condom (plugins like requestpolicy, and noscript) and say its some right of theirs to not let you sit at their table because of it, or rant on about how they need to get paid....

    but at the end of the day.... its basic security. Loading and running code from random third party sites is not safe. It doesn't matter if its inside a restricted environment, its a risk. Its a risk website owners are in the habbit of irresponsibly magnifying for all of their viewers without a second thought

    You should protect yourself. Wear condoms unless you really know your partner. Get some here:
    https://requestpolicycontinued...

    https://noscript.net/

    If you have a browser other than firefox, you will need something else, I don't know what they are but, bottom line...protect yourself.

    --
    "I opened my eyes, and everything went dark again"
  5. Synopsis by grmoc · · Score: 5, Informative

    I'm not a fan of that article summary.

    New summary:
    It is the same as CRIME, but we're using your browser's performance timing JS API as the man-in-the-middle.

    A review:
    Stick sensitive info into compressed stuff, and you make that sensitive info less private. If the encryption is zlib-like, then the attacker can guess the information quite quickly-- a good compressor compresses substrings, not just the whole thing.
    That means that if you have a SSN in there, the attacker can guess some substrings of your SSN, and the response won't be much bigger.
    Guesses that don't share substrings with your SSN will be larger-- the attacker can reject those as bad guesses and not try those substrings again.

    With HTTP2's HPACK compressor (only used for info in the headers), this side-channel is eliminated-- only an exact guess of the data will allow this to happen.This is completely unrelated, however, to someone using entity-body compression with HTTP2. If you mix sensitive data with everything else in the compressed-entity body... side channel attacks galore!

    A mitigation: Don't put the sensitive data in the same resource as the non-sensitive data, and then don't compress the sensitive data.
    HTTP2 makes this cheaper. If sites do this, then these attacks simply do not work any better than the brute-force guessing would.
    Ensuring that this happens (no sensitive data compressed) isn't necessarily the most easy thing...

    Another obvious one is disable the timing API for 3rd party stuff. This is not as effective theoretically, but it is way easier to deploy and makes these kinds of attacks require an external 3rd party.

  6. Please stop attention whoring by WaffleMonster · · Score: 4, Insightful

    The takeaway we all learned many many years ago compression can be used as a side channel attack and therefore should probably never be used in conjunction with any stream containing sensitive data.

    There is no need to invent different names based on where that compression occurs (CRIME, BREACH...etc.) or to assign even more aliases (HEIST) to the same damn thing. Wow you found a new set of metrics to enhance a side channel we all already knew about... so what?

    This is one of the things I always hated about Defcon at least in the early days there were all kinds of talks about different ways to exploit this and that when everyone knew they weren't secure in the first place... like the old joke about someone discovering you can mount an unencrypted drive on another operating system and access all your files without knowing the password!!

    It often boiled down to nothing more than implementing what everyone understood was possible anyway. Not very useful in my opinion.

    At this point in the game anyone with important information to protect still vulnerable to compression attacks should probably do everyone a favor and look for a new line of work. There really isn't a valid excuse at this point.

    1. Re:Please stop attention whoring by WaffleMonster · · Score: 2

      AFAICT, the vulnerability isn't compression in general, but compressing sensitive data along with data controlled by an attacker. Just compressing the sensitive data by itself won't leak much

      Yes it is compression in general that leaks relationships between length and content. You don't even need to influence channel to benefit from dependency between content and length.

      People have for example demonstrated recovery of useful information from encrypted voice communications simply by use of complex codecs without having to compromise encryption or wield any influence on in-band messages.

      Obviously the more intermediate data you can collect and the more you can influence channel (often possible in web environments) yields worse real world outcomes yet the root cause is unchanged. compression = information leak.

      What we need is a structured format where data from different sources can be compressed separately. Classic MVC design, in other words; the sensitive data (the model) should be delivered independent of the view (the presentation of the data, including things like ads). The view should ideally be a static, cacheable resource, and any ads should be as isolated from the rest of the page as if they had been opened in a separate browser instance.

      Not using compression or using secure compression algorithms designed to not leak information would be a far safer option than depending on people not to fuck up.