LWN.net Logo

Security

Subverting HTTPS with BREACH

By Jake Edge
August 7, 2013

An attack against encrypted web traffic (i.e. HTTPS) that can reveal sensitive information to observers was presented at the Black Hat security conference. The vulnerability is not any kind of actual decryption of HTTPS traffic, but can nevertheless determine whether certain data is present in the page source. That data might include email addresses, security tokens, account numbers, or other potentially sensitive items.

The attack uses a modification of the CRIME (compression ratio info-leak made easy) technique, but instead of targeting browser cookies, the new attack focuses on the pages served from the web server side. Dubbed BREACH (browser reconnaissance and exfiltration via adaptive compression of hypertext—security researchers are nothing if not inventive with names), the attack was demonstrated on August 1. Both CRIME and BREACH require that the session use compression, but CRIME needs it at the Transport Layer Security (TLS, formerly Secure Sockets Layer, SSL) level, while BREACH only requires the much more common HTTP compression. In both cases, because the data is compressed, just comparing message sizes can reveal important information.

In order to perform the attack, multiple probes need to be sent from a victim's browser to the web site of interest. That requires that the victim get infected with some kind of browser-based malware that can perform the probes. The usual mechanisms (e.g. email, a compromised web site, or man-in-the-middle) could be used to install the probe. A wireless access point and router would be one obvious place to house this kind of attack as it has the man-in-the-middle position to see the responses along with the ability to insert malware into any unencrypted web page visited.

The probes are used as part of an "oracle" attack. An oracle attack is one where the attacker can send multiple different requests to the vulnerable software and observe the responses. It is, in some ways, related to the "chosen plaintext" attack against a cryptography algorithm. When trying to break a code, arranging for the "enemy" to encrypt your message in their code can provide a wealth of details about the algorithm. With computers, it is often the case that an almost unlimited number of probes can be made and the results analyzed. The only limit is typically time or bandwidth.

BREACH can only be used against sites that reflect the user input from requests in their responses. That allows the site to, in effect, become an oracle. Because the HTTP compression will replace repeated strings with shorter constructs (as that is the goal of the compression), a probe response with a (server-reflected) string that duplicates one that is already present in the page will elicit a shorter response than a probe for an unrelated string. Finding that a portion of the string is present allows the probing tool to add an additional digit or character to the string, running through all the possibilities checking for a match.

For data that has a fixed or nearly fixed format (e.g. email addresses, account numbers, cross-site request forgery tokens), each probe can try a variant (e.g. "@gmail.com" or "Account number: 1") and compare the length of the reply to that of one without the probe. Shorter responses correlate to correct guesses, because the duplicated string gets compressed out of the response. Correspondingly, longer responses are for incorrect guesses. It is reported that 30 seconds is enough time to send enough probes to essentially brute force email addresses and other sensitive information.

Unlike CRIME, which can be avoided by disabling TLS compression, BREACH will be more difficult to deal with. The researchers behind BREACH list a number of mitigations, starting with disabling HTTP compression. While that is a complete fix for the problem, it is impractical for web servers to do so because of the additional bandwidth it would require. It would also increase page load times.

Perhaps the most practical solution is to rework applications so that user input is not reflected onto pages with sensitive information. That way, probing will not be effective, but it does mean a potentially substantial amount of work on the web application. Other possibilities like randomizing or masking the sensitive data will also require application rework. At the web server level, one could potentially add a random amount of data to responses (to obscure the length) or rate-limit requests, but both of those are problematic from a performance perspective.

Over the years, various attacks against HTTPS have been found. That is to be expected, really, since cryptographic systems always get weaker over time. There's nothing to indicate that HTTPS is fatally flawed, though this side-channel attack is fairly potent. With governments actively collecting traffic—and using malware—it's not much of a stretch to see the two being combined. Governments don't much like encryption or anonymity, and flaws like BREACH will unfortunately be available to help thwart both, now and in the future.

Comments (8 posted)

Brief items

Security quotes of the week

The "My Satis" Android application has a hard-coded Bluetooth PIN of "0000"

[...]

As such, any person using the "My Satis" application can control any Satis toilet. An attacker could simply download the "My Satis" application and use it to cause the toilet to repeatedly flush, raising the water usage and therefore utility cost to its owner.

Attackers could cause the unit to unexpectedly open/close the lid, activate bidet or air-dry functions, causing discomfort or distress to user.

Trustwave advisory — Android-controlled toilets, what could possibly go wrong?

Ellison's Law: For every keystroke or click required to use a crypto feature, the userbase declines by half.
Garrett LeSage (quoting Stef Walter from GUADEC)

Even the electronic civil lib contingent is lying to themselves. They're sore and indignant now, mostly because they weren't consulted — but if the NSA released PRISM as a 99-cent Google Android app, they'd be all over it. Because they are electronic first, and civil as a very distant second.

They'd be utterly thrilled to have the NSA's vast technical power at their own command. They'd never piously set that technical capacity aside, just because of some elderly declaration of universal human rights from 1947. If the NSA released their heaps of prying spycode as open-source code, Silicon Valley would be all over that, instantly. They'd put a kid-friendly graphic front-end on it. They'd port it right into the cloud.

Bruce Sterling

One day, we saw that Bruce Sterling was coming into town for a book reading, and we thought: here's our chance. Like good Nineties digital activists, we'd all read our Hacker Crackdown, and knew he might be a friend in getting some rip-roaring coverage in the heart of the beast. After horribly hijacking him from what looked a nice literary meal, we took him to heroin-chic dive bar in Soho, told him our problems, and begged him to help.

Forget defending crypto, he said. It's doomed. You're screwed.

No, the really interesting stuff, he said, is in postmodern literary theory.

Danny O'Brien

Comments (9 posted)

Computer scientists develop 'mathematical jigsaw puzzles' to encrypt software (UCLA)

UCLA has a report on "software obfuscation" research by computer science professor Amit Sahai. Essentially, code can be encrypted in such a way that it still operates correctly but cannot be reverse engineered. "According to Sahai, previously developed techniques for obfuscation presented only a "speed bump," forcing an attacker to spend some effort, perhaps a few days, trying to reverse-engineer the software. The new system, he said, puts up an "iron wall," making it impossible for an adversary to reverse-engineer the software without solving mathematical problems that take hundreds of years to work out on today's computers — a game-change in the field of cryptography. The researchers said their mathematical obfuscation mechanism can be used to protect intellectual property by preventing the theft of new algorithms and by hiding the vulnerability a software patch is designed to repair when the patch is distributed."

Comments (48 posted)

Attackers wield Firefox exploit to uncloak anonymous Tor users (ars technica)

Ars technica is one of many sites with coverage of the Firefox exploit that was used to attack the anonymity of Tor users. "The attack code exploited a memory-management vulnerability, forcing Firefox to send a unique identifier to a third-party server using a public IP address that can be linked back to the person's ISP. The exploit contained several hallmarks of professional malware development, including 'heap spraying' techniques to bypass Windows security protections and the loading of executable code that prompted compromised machines to send the identifying information to a server located in Virginia, according to an analysis by researcher Vlad Tsrklevich."

Comments (16 posted)

Open Source Voting Machine Reborn After 6-Year War With IRS (Wired)

Wired is reporting that the Open Source Digital Voting (OSDV) Foundation has finally gotten approval for its non-profit status from the US Internal Revenue Service after applying for it in February 2007. "Then the revolution stalled. The Open Source Digital Voting Foundation spent the next four years in a kind of government-induced limbo as the Internal Revenue Service delayed processing of its application for nonprofit status. That delay cost the operation an untold amount of grant and donation dollars, and though the project has produced some software, it still hasn't begun work on important things like ballot-counting and tabulation devices and accessible voting machines." OSDV runs the Trust the Vote project and seeks to create open source voting machine solutions.

Comments (99 posted)

New vulnerabilities

bluetile: command injection

Package(s):bluetile CVE #(s):CVE-2013-1436
Created:August 6, 2013 Updated:August 7, 2013
Description: From the OSS security mailing list:

A remote command injection vulnerability was reported in xmonad-contrib. The vulnerability is in the XMonad.Hooks.DynamicLog module.

As we know, web browsers usually set the window title to the current tab. A malicious user, then, can craft a special title in order to inject commands in the current bar.

Alerts:
Fedora FEDORA-2013-13388 2013-08-06
Fedora FEDORA-2013-13332 2013-08-06
Fedora FEDORA-2013-13332 2013-08-06
Fedora FEDORA-2013-13332 2013-08-06
Fedora FEDORA-2013-13388 2013-08-06
Fedora FEDORA-2013-13332 2013-08-06
Fedora FEDORA-2013-13332 2013-08-06
Fedora FEDORA-2013-13332 2013-08-06

Comments (none posted)

chromium-browser: multiple vulnerabilities

Package(s):chromium-browser CVE #(s):CVE-2013-2881 CVE-2013-2882 CVE-2013-2883 CVE-2013-2884 CVE-2013-2885 CVE-2013-2886
Created:August 5, 2013 Updated:September 4, 2013
Description: From the CVE entries:

Google Chrome before 28.0.1500.95 does not properly handle frames, which allows remote attackers to bypass the Same Origin Policy via a crafted web site. (CVE-2013-2881)

Google V8, as used in Google Chrome before 28.0.1500.95, allows remote attackers to cause a denial of service or possibly have unspecified other impact via vectors that leverage "type confusion." (CVE-2013-2882)

Use-after-free vulnerability in Google Chrome before 28.0.1500.95 allows remote attackers to cause a denial of service or possibly have unspecified other impact via vectors related to deleting the registration of a MutationObserver object. (CVE-2013-2883)

Use-after-free vulnerability in the DOM implementation in Google Chrome before 28.0.1500.95 allows remote attackers to cause a denial of service or possibly have unspecified other impact via vectors related to improper tracking of which document owns an Attr object. (CVE-2013-2884)

Use-after-free vulnerability in Google Chrome before 28.0.1500.95 allows remote attackers to cause a denial of service or possibly have unspecified other impact via vectors related to not properly considering focus during the processing of JavaScript events in the presence of a multiple-fields input type. (CVE-2013-2885)

Multiple unspecified vulnerabilities in Google Chrome before 28.0.1500.95 allow attackers to cause a denial of service or possibly have other impact via unknown vectors. (CVE-2013-2886)

Alerts:
Debian DSA-2732-1 2013-08-02
Fedora FEDORA-2013-14176 2013-08-15
Fedora FEDORA-2013-14205 2013-08-15
Mageia MGASA-2013-0249 2013-08-17
Red Hat RHSA-2013:1201-01 2013-09-03
Gentoo 201309-16 2013-09-24

Comments (none posted)

evolution-data-server: encrypt email to unintended recipient

Package(s):evolution-data-server CVE #(s):CVE-2013-4166
Created:August 1, 2013 Updated:August 12, 2013
Description:

From the Ubuntu advisory:

Yves-Alexis Perez discovered that Evolution Data Server did not properly select GPG recipients. Under certain circumstances, this could result in Evolution encrypting email to an unintended recipient.

Alerts:
Ubuntu USN-1922-1 2013-07-31
Mageia MGASA-2013-0245 2013-08-11

Comments (none posted)

gksu-polkit: privilege escalation

Package(s):gksu-polkit CVE #(s):CVE-2013-4161
Created:August 5, 2013 Updated:August 7, 2013
Description: From the Red Hat bugzilla:

It was found that the patch to correct CVE-2012-5617 (bug #883162) was improperly applied, so the vulnerability described by CVE-2012-5617 was never really fixed.

Alerts:
Fedora FEDORA-2013-13620 2013-08-04
Fedora FEDORA-2013-13616 2013-08-04

Comments (none posted)

heat-jeos: improper handling of passwords

Package(s):heat-jeos CVE #(s):CVE-2013-2069
Created:August 6, 2013 Updated:September 30, 2013
Description: From the Red Hat bugzilla:

It was discovered that when used to create images, livecd-tools gave the root user an empty password rather than leaving the password locked in situations where no 'rootpw' directive was used or when the 'rootpw --lock' directive was used within the Kickstart file, which could allow local users to gain access to the root account.

Alerts:
Fedora FEDORA-2013-9715 2013-08-06
Fedora FEDORA-2013-13131 2013-09-30

Comments (none posted)

httpd: disrepects dirty flag

Package(s):httpd apache CVE #(s):CVE-2013-2249
Created:August 6, 2013 Updated:August 12, 2013
Description: From the CVE entry:

mod_session_dbd.c in the mod_session_dbd module in the Apache HTTP Server before 2.4.5 proceeds with save operations for a session without considering the dirty flag and the requirement for a new session ID, which has unspecified impact and remote attack vectors.

Alerts:
Slackware SSA:2013-218-02 2013-08-06
Fedora FEDORA-2013-13994 2013-08-09
Fedora FEDORA-2013-13922 2013-08-16

Comments (none posted)

mozilla: multiple vulnerabilities

Package(s):firefox, thunderbird, seamonkey CVE #(s):CVE-2013-1701 CVE-2013-1709 CVE-2013-1710 CVE-2013-1713 CVE-2013-1714 CVE-2013-1717
Created:August 7, 2013 Updated:August 30, 2013
Description: From the CVE entries:

Multiple unspecified vulnerabilities in the browser engine in Mozilla Firefox before 23.0, Firefox ESR 17.x before 17.0.8, Thunderbird before 17.0.8, Thunderbird ESR 17.x before 17.0.8, and SeaMonkey before 2.20 allow remote attackers to cause a denial of service (memory corruption and application crash) or possibly execute arbitrary code via unknown vectors. (CVE-2013-1701)

Mozilla Firefox before 23.0, Firefox ESR 17.x before 17.0.8, Thunderbird before 17.0.8, Thunderbird ESR 17.x before 17.0.8, and SeaMonkey before 2.20 do not properly handle the interaction between FRAME elements and history, which allows remote attackers to conduct cross-site scripting (XSS) attacks via vectors involving spoofing a relative location in a previously visited document. (CVE-2013-1709)

The crypto.generateCRMFRequest function in Mozilla Firefox before 23.0, Firefox ESR 17.x before 17.0.8, Thunderbird before 17.0.8, Thunderbird ESR 17.x before 17.0.8, and SeaMonkey before 2.20 allows remote attackers to execute arbitrary JavaScript code or conduct cross-site scripting (XSS) attacks via vectors related to Certificate Request Message Format (CRMF) request generation. (CVE-2013-1710)

Mozilla Firefox before 23.0, Firefox ESR 17.x before 17.0.8, Thunderbird before 17.0.8, Thunderbird ESR 17.x before 17.0.8, and SeaMonkey before 2.20 use an incorrect URI within unspecified comparisons during enforcement of the Same Origin Policy, which allows remote attackers to conduct cross-site scripting (XSS) attacks or install arbitrary add-ons via a crafted web site. (CVE-2013-1713)

The Web Workers implementation in Mozilla Firefox before 23.0, Firefox ESR 17.x before 17.0.8, Thunderbird before 17.0.8, Thunderbird ESR 17.x before 17.0.8, and SeaMonkey before 2.20 does not properly restrict XMLHttpRequest calls, which allows remote attackers to bypass the Same Origin Policy and conduct cross-site scripting (XSS) attacks via unspecified vectors. (CVE-2013-1714)

Mozilla Firefox before 23.0, Firefox ESR 17.x before 17.0.8, Thunderbird before 17.0.8, Thunderbird ESR 17.x before 17.0.8, and SeaMonkey before 2.20 do not properly restrict local-filesystem access by Java applets, which allows user-assisted remote attackers to read arbitrary files by leveraging a download to a fixed pathname or other predictable pathname. (CVE-2013-1717)

Alerts:
Red Hat RHSA-2013:1140-01 2013-08-07
CentOS CESA-2013:1140 2013-08-07
CentOS CESA-2013:1140 2013-08-07
Debian DSA-2735-1 2013-08-07
Mandriva MDVSA-2013:210 2013-08-07
Scientific Linux SL-fire-20130807 2013-08-07
Ubuntu USN-1924-1 2013-08-06
Ubuntu USN-1925-1 2013-08-07
Ubuntu USN-1924-2 2013-08-06
Red Hat RHSA-2013:1142-01 2013-08-07
CentOS CESA-2013:1142 2013-08-07
Oracle ELSA-2013-1140 2013-08-07
Oracle ELSA-2013-1140 2013-08-07
Oracle ELSA-2013-1142 2013-08-07
Scientific Linux SL-thun-20130807 2013-08-07
Slackware SSA:2013-219-02 2013-08-07
Slackware SSA:2013-219-01 2013-08-07
Slackware SSA:2013-219-03 2013-08-07
CentOS CESA-2013:1142 2013-08-09
Fedora FEDORA-2013-14412 2013-08-09
Fedora FEDORA-2013-14412 2013-08-09
Fedora FEDORA-2013-14412 2013-08-09
Mageia MGASA-2013-0248 2013-08-12
openSUSE openSUSE-SU-2013:1334-1 2013-08-14
SUSE SUSE-SU-2013:1325-1 2013-08-14
Fedora FEDORA-2013-14419 2013-08-15
Fedora FEDORA-2013-14419 2013-08-15
Fedora FEDORA-2013-14419 2013-08-15
openSUSE openSUSE-SU-2013:1348-1 2013-08-16
SUSE SUSE-SU-2013:1325-2 2013-08-23
SUSE SUSE-SU-2013:1382-1 2013-08-27
Debian DSA-2746-1 2013-08-29
Gentoo 201309-23 2013-09-27

Comments (none posted)

mozilla: multiple vulnerabilities

Package(s):firefox, seamonkey CVE #(s):CVE-2013-1702 CVE-2013-1704 CVE-2013-1705 CVE-2013-1708 CVE-2013-1711
Created:August 7, 2013 Updated:August 19, 2013
Description: From the CVE entries:

Multiple unspecified vulnerabilities in the browser engine in Mozilla Firefox before 23.0 and SeaMonkey before 2.20 allow remote attackers to cause a denial of service (memory corruption and application crash) or possibly execute arbitrary code via unknown vectors. (CVE-2013-1702)

Use-after-free vulnerability in the nsINode::GetParentNode function in Mozilla Firefox before 23.0 and SeaMonkey before 2.20 allows remote attackers to execute arbitrary code or cause a denial of service (heap memory corruption and application crash) via vectors involving a DOM modification at the time of a SetBody mutation event. (CVE-2013-1704)

Heap-based buffer underflow in the cryptojs_interpret_key_gen_type function in Mozilla Firefox before 23.0 and SeaMonkey before 2.20 allows remote attackers to execute arbitrary code or cause a denial of service (application crash) via a crafted Certificate Request Message Format (CRMF) request.(CVE-2013-1705)

Mozilla Firefox before 23.0 and SeaMonkey before 2.20 allow remote attackers to cause a denial of service (application crash) via a crafted WAV file that is not properly handled by the nsCString::CharAt function. (CVE-2013-1708)

The XrayWrapper implementation in Mozilla Firefox before 23.0 and SeaMonkey before 2.20 does not properly address the possibility of an XBL scope bypass resulting from non-native arguments in XBL function calls, which makes it easier for remote attackers to conduct cross-site scripting (XSS) attacks by leveraging access to an unprivileged object. (CVE-2013-1711)

Alerts:
Ubuntu USN-1924-1 2013-08-06
Ubuntu USN-1924-2 2013-08-06
openSUSE openSUSE-SU-2013:1334-1 2013-08-14
SUSE SUSE-SU-2013:1325-1 2013-08-14
openSUSE openSUSE-SU-2013:1348-1 2013-08-16
Fedora FEDORA-2013-14562 2013-08-18
Fedora FEDORA-2013-14568 2013-08-18
SUSE SUSE-SU-2013:1325-2 2013-08-23
SUSE SUSE-SU-2013:1382-1 2013-08-27
openSUSE openSUSE-SU-2013:1496-1 2013-09-27
Gentoo 201309-23 2013-09-27
SUSE SUSE-SU-2013:1497-1 2013-09-27

Comments (none posted)

otrs2: sql injection

Package(s):otrs2 CVE #(s):CVE-2013-4717 CVE-2013-2625
Created:August 5, 2013 Updated:August 13, 2013
Description: From the Debian advisory:

It was discovered that otrs2, the Open Ticket Request System, does not properly sanitize user-supplied data that is used on SQL queries. An attacker with a valid agent login could exploit this issue to craft SQL queries by injecting arbitrary SQL code through manipulated URLs.

Alerts:
Debian DSA-2733-1 2013-08-02
Mageia MGASA-2013-0247 2013-08-11
Mandriva MDVSA-2013:212 2013-08-13
openSUSE openSUSE-SU-2013:1338-1 2013-08-14

Comments (none posted)

perl-Proc-ProcessTable: symlink attack

Package(s):perl-Proc-ProcessTable CVE #(s):CVE-2011-4363
Created:August 5, 2013 Updated:August 23, 2013
Description: From the CVE entry:

ProcessTable.pm in the Proc::ProcessTable module 0.45 for Perl, when TTY information caching is enabled, allows local users to overwrite arbitrary files via a symlink attack on /tmp/TTYDEVS.

Alerts:
Fedora FEDORA-2013-13617 2013-08-02
Fedora FEDORA-2013-13635 2013-08-02
Mageia MGASA-2013-0254 2013-08-22
Mandriva MDVSA-2013:216 2013-08-23

Comments (none posted)

samba: denial of service

Package(s):samba CVE #(s):CVE-2013-4124
Created:August 6, 2013 Updated:September 25, 2013
Description: From the CVE entry:

Integer overflow in the read_nttrans_ea_list function in nttrans.c in smbd in Samba 3.x before 3.5.22, 3.6.x before 3.6.17, and 4.x before 4.0.8 allows remote attackers to cause a denial of service (memory consumption) via a malformed packet.

Alerts:
Mandriva MDVSA-2013:207 2013-08-06
Slackware SSA:2013-218-03 2013-08-06
Fedora FEDORA-2013-14312 2013-08-09
Mageia MGASA-2013-0246 2013-08-11
openSUSE openSUSE-SU-2013:1339-1 2013-08-14
Fedora FEDORA-2013-14355 2013-08-15
openSUSE openSUSE-SU-2013:1349-1 2013-08-16
Ubuntu USN-1966-1 2013-09-24

Comments (none posted)

subversion: denial of service

Package(s):subversion CVE #(s):CVE-2013-4131
Created:August 1, 2013 Updated:August 12, 2013
Description:

From the Subversion advisory:

Subversion's mod_dav_svn Apache HTTPD server module will trigger an assertion on some requests made against a revision root. This can lead to a DoS. If assertions are disabled it will trigger a read overflow which may cause a SEGFAULT (or equivalent) or undefined behavior.

Commit access is required to exploit this.

Alerts:
openSUSE openSUSE-SU-2013:1286-1 2013-08-01
Fedora FEDORA-2013-13696 2013-08-02
Mandriva MDVSA-2013:209 2013-08-06
Mageia MGASA-2013-0244 2013-08-11
Fedora FEDORA-2013-13672 2013-08-15
Gentoo 201309-11 2013-09-23

Comments (none posted)

WebCalendar: multiple vulnerabilities

Package(s):WebCalendar CVE #(s):
Created:August 5, 2013 Updated:August 7, 2013
Description: From the WebCalendar bug report:

Version 1.2.7 (22 Jan 2013)

  • Security fix: Do not show the reason for a failed login (i.e. "no such user")
  • Security fix: Escape HTML characters in category name.
  • Security fix: Check all passed in fields (either via HTML form or via URL parameter) for certain malicious tags (script, embed, etc.) and generate fatal error if found.
Alerts:
Fedora FEDORA-2013-13484 2013-08-02
Fedora FEDORA-2013-13454 2013-08-02

Comments (none posted)

Page editor: Jake Edge
Next page: Kernel development>>

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds