News for hackers. Stuff that matters.
Re:Massive spying on users of Google's Chrome shows new secu... by willvarfar on Thursday June 18, 2020 @03:57AM (#23560827)
Could browser extensions be ran in a sandbox, with read_access to the page, but only able to read from whitelisted registered and fixed URLs for updating configuration etc? So your blocking extension can download lists of things to block, or other config, but it can't exfiltrate any information about the user's browsing habits.

The only side channel I can then think of is using page rewriting or timing to communicate when the user browses to a page controlled by the extension owner. This would be something that there is at least a hope of spotting?

Re:Massive spying on users of Google's Chrome shows new secu... by gorhill on Thursday June 18, 2020 @08:24AM (#23562389)
It's a similar idea I shared with Moz people last year when asked about how privacy concerns raised in manifest v3 could be addressed, I quote myself:

===

> The host permission in current extension framework does not distinguish between accessing all the data and connecting to any remote server.

>

> The key issue I see is that it also allows uBO to connect to any remote server. I think it would help a lot to have a _separate_ permission for remote server access, since this is the key privacy issue here: user data leaving the browser to be collected by a remote server.

>

> So what about a new permission specifically dedicated to specify where an extension is allowed to connect? Without this permission, an extension wouldn't be allowed to connect to a remote server, i.e. unable to leak user data.

===

As a mental framework, I consider the ability to see the URL of all requests or all the DOM to be a read operation, while extensions making requests to remote server (directly or indirectly) is a write operation (to the wide internet). The latter is where the real privacy concerns are, and this is what should be tackled in some manner. I don't see manifest v3 addressing this[1].

* * *

[1] https://www.eff.org/deeplinks/2019/07/googles-plans-chrome-e...

Re:Massive spying on users of Google's Chrome shows new secu... by jopsen on Thursday June 18, 2020 @04:15AM (#23560925)
Next up is a firestorm over broken extensions, followed by baseless conspiracy theories on how this is all ploy for Mozilla to ban adblockers..

Web Extensions caused lots of outcry, when it was mostly about making extensions async and better sandboxed.

EME caused similar outcry, when in fact it migrated us away from plugins riddled with security vulnerabilities (hint Flash). Today most DRM crap runs in a sandbox -- DRM still sucks, but it doesn't compromise my browser :)

I'm suspect, extensions will be sandboxed further, but this will take time.

Re:Massive spying on users of Google's Chrome shows new secu... by Silhouette on Thursday June 18, 2020 @04:52AM (#23561147)
The Web Extensions change in Firefox caused complaints mostly because it broke so much useful functionality, much of which has never been replaced. In quite a few cases that was because of the new security model, but also because the new API simply wasn't powerful enough to do the job properly either.
Re:Massive spying on users of Google's Chrome shows new secu... by aembleton on Thursday June 18, 2020 @05:06AM (#23561231)
Or just don't let it send data. Most plugins have no need to do that.
Re:Massive spying on users of Google's Chrome shows new secu... by eru on Thursday June 18, 2020 @05:12AM (#23561270)
It's a good idea, but wouldn't be enough to secure something like uBlock origin.

Elements filtered by uBlock origin are typically not even loaded over the net. That means that an outside observer can see what uBlock origin does.

However, you could envision a variant of uBlock origin that still loads everything, and only does cosmetic blocking.

But eg an extensions that is supposed to protect your privacy will have to have an influence on your browser's network output.

Re:Massive spying on users of Google's Chrome shows new secu... by IncRnd on Thursday June 18, 2020 @04:11AM (#23560902)
In the same way that DNS requests can exfiltrate data, requesting URLs can also exfiltrate data. This is trivial to perform.
Re:Massive spying on users of Google's Chrome shows new secu... by willvarfar on Thursday June 18, 2020 @05:56AM (#23561542)
Why I specified "fixed URLs", to close that loophole
Re:Massive spying on users of Google's Chrome shows new secu... by yjftsjthsd-h on Thursday June 18, 2020 @11:22AM (#23563915)
My fixed URLs are example.com/0 and example.com/1; I'm going to load them a lot, sometimes in different sequences.
Re:Massive spying on users of Google's Chrome shows new secu... by kyboren on Thursday June 18, 2020 @12:24PM (#23564660)
This is really a fantastic, concise explanation of the pitfalls in OP's logic. Bravo.

Still: The bandwidth of the side channel can be dramatically reduced with a combination of a limit on the number of fixed addresses that can be requested and a limit on the rate of URL requests.

If only one fixed URL may be requested, then the only information revealed[1] is the fact of the request (1 bit) and the time of the request. If that URL may only be requested once per day, scheduled at a time of day chosen uniformly at random, then side channel bandwidth is limited to 1 bit / day, so it would take a good chunk of a year to exfiltrate a disk encryption key. If that URL may be requested only once per week, then it would take nearly five years to exfiltrate a 256-bit key.

Configuration data does not need to be updated so frequently, so this seems like a reasonable strategy.

[1]: (except for potential request metadata that you leak across the web anyway, e.g. IP address or browser user agent string)

Re:Massive spying on users of Google's Chrome shows new secu... by pdkl95 on Thursday June 18, 2020 @01:44PM (#23565575)
> The bandwidth of the side channel can be dramatically reduced

In the late 90s I read a paper about using page faults to exfiltrate data to a low privilege process on a TCSEC B [1] system. A very low bandwidth, noisy side channel was created by using different amount of memory in a privileged process. The low privilege process received the data by initially allocating a large amount of memory and regularly walking across pages while timing each memory read to detect page faults. It was extremely noisy, but a standard error correction scheme and some clever tuning let them exfiltrate data at "a few hundred bits"/hour.

That might be plenty of bandwidth, if you're trying to send keys, names, ID numbers, etc. As usual, the utility of a very low bandwidth channel depends on your threat model.

> e.g. IP address or browser user agent string)

Or the variations in your OS's IP implementation that allow nmap to guess your OS[2]. Or the various "random" ways[3] different OS generate the TCP ISN (Initial Sequence Number).

Security is hard... ~sigh~

[1] https://en.wikipedia.org/wiki/Trusted_Computer_System_Evalua...

[2] https://nmap.org/book/man-os-detection.html

[3] https://lcamtuf.coredump.cx/oldtcp/tcpseq/print.html

Re:Massive spying on users of Google's Chrome shows new secu... by yencabulator on Tuesday June 23, 2020 @06:49PM (#23621367)
So restrict it even further: extension manifest lists URLs, contents of which shall be made available to the extension, but keep the browser in control of when to fetch, with an enforced minimum cache lifetime.
Re:Massive spying on users of Google's Chrome shows new secu... by bgdam on Thursday June 18, 2020 @04:32AM (#23561034)
This is an apples to oranges comparison. DNS requests exfiltrate data such as IP and the domain you want to visit. Currently extensions can literally upload all your passwords if they wish to. Restricting them to be able to only GET whitelisted URLs (no query params or paramterized URLs) would cut down on pretty much 99.999% of possible data theft scenarios.
Re:Massive spying on users of Google's Chrome shows new secu... by vbezhenar on Thursday June 18, 2020 @05:06AM (#23561233)
Extension can issue GET https://password1-abc_password2-defzzz-password3-zzzfed.evil... and DNS server run by evilhost.com will log that query.
Re:Massive spying on users of Google's Chrome shows new secu... by ucosty on Thursday June 18, 2020 @04:54AM (#23561166)
You can exfiltrate data using regular DNS requests, by hiding the data in the host part of the query. The authoritative name server for the domain can then extract out and re-assemble the data.

https://blogs.akamai.com/2017/09/introduction-to-dns-data-ex...

Re:Massive spying on users of Google's Chrome shows new secu... by IncRnd on Thursday June 18, 2020 @12:28PM (#23564718)
There is a lot more to the DNS protocol and packet structure than you are aware.

DNS tunneling is a well-known exfiltration technique which can place data inside of DNS request packets. There are several methods of placing the data in the request packet. In such a case the DNS query might appear as a benign request for IBM.COM's ip address.

Re:Massive spying on users of Google's Chrome shows new secu... by bzb3 on Thursday June 18, 2020 @04:08AM (#23560882)
Of course, that's how it works in Safari.