On Tue, Oct 20, 2009 at 1:26 PM, Mike Ter Louw <mter...@uic.edu> wrote:
> I'm not sure if hacking at the straw man should occur on the list or on the
> wiki.  Please let me know if it should go to the wiki.

I've be inclined to discuss feedback on the mailing list where others
can see and comment most easily.

> Threat Model:
>
> "We further assume the web developer wishes to prevent the attacker from
> achieving any of the following goals:
>
>  * The attacker must not learn the contents of the target web site's
> cookies."
>
> A broader definition than cookie stealing that also covers integrity issues
> like defacement could be:
>
>  * The attacker's sequence of injected bytes are interpreted as one or more
> script instructions and executed with the privileges of the (CSP-protected)
> document.

I tried to tighten down the attacker's goals to keep a narrow focus
for the module.  Running script with the page's privileges seems more
like a means to an end rather than a goal unto itself.  Although you
could argue that stealing the cookie is also just a means to a
different end.  Either is probably fine, but I'm inclined to leave it
as is for now.

> If the purpose of the threat model is to scope out the protections afforded
> by the module, then the following may be more appropriate:
>
>  * The attacker's sequence of injected bytes are interpreted as an inline
> script (i.e., <script> element without |src| attribute, script element
> attribute, javascript: URI, dynamic CSS, etc.)
>
>  * The attacker's sequence of injected bytes are interpreted as a reference
> to external script, where the external script is located at a different
> origin to the document protected by CSP
>
>  * The attacker's sequence of injected bytes are compiled as a result of
> executing an allowed script (e.g., via eval(), setTimeout(), setInterval(),
> or Function constructor)

These are too syntactic for an attacker goal.  They pre-suppose a
particular solution.

> block-xss directive:
>
> The effects of this directive are given in a default-allow style, which
> could lead to gaps in protection.  (Some possible gaps are commented on in
> the Open Issues section.)  Could the effects of block-xss be specified as
> exceptions to a default-deny policy?

This is a good point.  I wrote this as a series of MUST NOT
requirements to make it easy to implement and test.  We should do a
better job of explaining the "why" behind the requirements.  If we've
missed anything, we should add more requirements to make sure each
implementation behaves correctly.  Maybe we should add a catch-all
MUST NOT requirement that covers anything we've forgotten?

> Open Issues section:
>
> IE's CSS behaviors and expressions could fit in the same category as XBL
> bindings, as they are non-standard features that can be used as XSS vectors

I've added this to the list of open issues.  The catch-all MUST NOT
might be sufficient to get these.  We can of course mention them in a
non-normative note to remind implementors.

Thanks!
Adam
_______________________________________________
dev-security mailing list
dev-security@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-security

Reply via email to