On Fri, Nov 27, 2015 at 10:50 AM, Gavin Sharp <[email protected]> wrote:

> On Fri, Nov 27, 2015 at 7:16 AM, Gervase Markham <[email protected]> wrote:
> > But the thing is, members of our security group are now piling into the
> > bug pointing out that trying to find malicious JS code by static code
> > review is literally _impossible_ (and perhaps hinting that they'd have
> > said so much earlier if someone had asked them).
>
> No, that's not right. There's an important distinction between
> "finding malicious JS code" and "finding _all_ malicious JS code". The
> latter is impossible, but the former isn't.
>

Note that malicious code here might look like this:

  console.log("success");

It's impossible to tell by looking at the code whether that line prints a
success message on the console, or something entirely different, such as
running calc.exe.

A better framing for the problem is "finding some arbitrary instances of
malicious JS code" vs "finding malicious JS code".  My point in the bug and
in the discussions prior to that was that a static checker can only do the
former, and as such, if the goal of the validator is finding malicious
code, its effectiveness is bound to be a lint tool at best.


> Proving "the validator won't catch everything" isn't particularly
> relevant when it isn't intended to, in the overall add-on signing
> system design.
>

The specific problem here is that we allow automatic signing of extensions
once they pass the add-on validator checks, and we allow our users to run
signed extensions without any other checks.  Therefore, the current system
is vulnerable to attacks such as what Dan's PoC extension has demonstrated.

No matter what the overall system design is and what the intended purpose
of the validator is, the concrete issue here is the vulnerability above.  I
admit that I don't have a great understanding of the goals and design of
the add-on signing process (even though I have tried hard to understand it
by looking at the public info we've published), but we cannot dismiss this
vulnerability because the validator is intended to do something different.

Cheers,
-- 
Ehsan
_______________________________________________
dev-platform mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to