On the Insecurity of Whitelists and the Future of Content Security Policy [pdf]
static.googleusercontent.com
static.googleusercontent.com
* Constraint satisfaction problem
* Communicating sequential processes
* Content security policy (topic of this article)
I'm sure there are more that I can't name right away. Not a great idea to use the acronym in a paper topic.Terrible idea, and scary. A user agent should never requires permissions from a site for its served content to be modified.
At most I rather propose having a new permission in the extension API to inform the user that an extension requires the ability to relax a Content Security Policy (further restricting the effective Content Security Policy would not require any special permission).
A similar trend can be seen in malware analysis, where already today hashsum-based approaches are only able to catch commodity malware, and are nearly useless to detect anything more sophisticated.
I thereforethink the future of content-security will rely on behavior-based methods and flow analysis, as those are harder to fake or mass-produce.
On the other hand, Google is in a unique position as they see a very large fraction of both the Internet traffic and e-mails being sent, which should allow them to detect new types malware much faster and more efficiently than almost anyone else. Really makes me wonder why they don't have their own anti-virus product yet (which seems to be a good way to spy on people's computers and gather more user data as well).
But about IPv6, the smallest subnet is a /64. So if you're getting hit by an IPv6 malicious host, block the /64. Depending on the provider and known allocation, it could be a safe bet to block as far up as /60 or /56, even. That, along with the fact that only a tiny fraction of IPv6 is allocated at all yet, and it's not /as much/ a problem as one would think, given the "more addresses than atoms" line people hear.
What's a CSP one-liner that you can copy and paste into any webpage to prevent execution of all inline scripts, regardless of what external scripts, styles, fonts, and other resources it loads? I suppose it will look something like 'default-src *', but even this most basic usage (and its possible side effects) doesn't seem to be clearly documented in any authoritative guideline. All the documentation is so obsessed with whitelisting this and that CDN, blocking non-https scripts (don't all browsers already do that?), and all sorts of other tricks that they scare away someone who is just looking for some baseline level of protection.
If, instead, we just defined a simple header, meta tag, or even an HTML attribute to block run-of-the-mill XSS attacks on a typical webapp or open-source CMS, the Internet might have become a much safer place already.