Security/CSP/Confidentiality: Difference between revisions

Jump to navigation Jump to search
no edit summary
(Created page with "{{FeatureStatus |Feature name=Confidentiality Directive (CSP) |Feature stage=Draft |Feature health=OK }} {{FeatureTeam |Feature product manager=Sid Stamm |Feature feature manager...")
 
No edit summary
Line 6: Line 6:
{{FeatureTeam
{{FeatureTeam
|Feature product manager=Sid Stamm
|Feature product manager=Sid Stamm
|Feature feature manager=Dev Akhawe
|Feature feature manager=Devdatta Akhawe
|Feature lead engineer=Dev Akhawe
|Feature lead engineer=Devdatta Akhawe
}}
{{FeaturePageBody
|Feature overview=Data confinement is a fundamental security primitive unavailable on the web platform today. Applications handling sensitive data currently do not have any mitigation against data exfiltration attacks. The adoption of CSP and primitives like sandbox promise a world with robust defenses against code injection attacks; but no guarantees against data exfiltration attacks.
|Feature users and use cases=From http://lcamtuf.coredump.cx/postxss/
 
"One of the most rudimentary goals of a successful XSS attack is the extraction of user-specific secrets from the vulnerable application. Historically, XSS exploits sought to obtain HTTP cookies associated with the authenticated user session; these tokens - a form of ambient authority - could be later replayed by the attacker to remotely impersonate the victim within the targeted site. The introduction of httponly cookies greatly limited this possibility - and prompted rogue parties to pursue finer-grained approaches."
 
 
This would, in particular, be really useful in scenarios where sensitive tokens are present in the document. Currently, a successful HTML injection can possibly  exfiltrate these tokens. For example, exfiltration of a BrowserID URL to login compromises correctness, exfiltration of a unique identifier of the user compromises privacy and so on.
 
Another important use case is data vaults: Google Docs, Password Managers, phpMyAdmin are all examples of web applications that handle sensitive data, where content exfiltration attacks might be dangerous. An injection vulnerability in Google Docs can exfiltrate sensitive docs; a injection vulnerability in phpMyAdmin can allow exfiltrate SQL databases.
 
 
|Feature non-goals=Side Channels
 
 
Confidentiality invariants more fine-grained than origins. Thus, a website having an open redirect doesn't get much protection from this: they need to modify the open redirect to make whitelist/scrub the redirect of any data. While we might be able to block HTTP redirect cases, meta/javascript redirects will be difficult.
|Feature functional spec=We propose addition of a CSP directive 'confidentiality' which has a whitelist of origins to which a frame is allowed to leak data.
 
In the presence of such a directive, basic protections that are turned on are:
all cross-origin JavaScript object access are disabled except for PostMessage (and, in the future, other HTML5 cross-origin messaging channels). All PostMessages delivered would be checked against the origin whitelist.
 
All network requests caused by the document will be interposed on, and would be allowed through only if the target URI is in the whitelist of origins.
 
 
The current plan is to disable all data: URI iframe/worker loads as soon as a confidentiality primitive is present.
|Feature ux design=n.a.
}}
}}
{{FeaturePageBody}}
{{FeatureInfo
{{FeatureInfo
|Feature priority=Unprioritized
|Feature priority=Unprioritized
6

edits

Navigation menu