On 27/11/2015 12:16, Gervase Markham wrote:
On 26/11/15 17:13, Mike Hoye wrote:
Stillman wrote some new code and put it through a process meant to catch
problems in old code, and it passed. That's unfortunate, but does it
really surprise anyone that security is an evolving process? That it
might be be full of hard tradeoffs? There is a _huge_gap_ between "new
code can defeat old security measures" and "therefore all the old
security measures are useless".

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).

That's not what they're saying. They're saying it is impossible to guarantee with static analysis that code is not malicious. Nobody disputes that, and nobody did before they started saying it, either. The distinction is that the static code review finds *some* malicious JS code. Dan's charge is that this is not useful because malware authors will realize this (we tell them that their add-on got rejected and why!) and try to bypass that review until they manage it.

This entire discussion is pretty orthogonal to the fact that we're signing add-ons and the issues that Till and Thomas were talking about anyway (which was basically: now add-ons need to be reviewed to be signed and that review takes a long time, and that disrupts users and add-on developers).

And not only that, but attempting it seems
to be causing significant collateral damage.

This is the interesting bit. The reason Dan is bringing this up is not his concern for users' safety but the fact that the same automated scanning is flagging things in his add-on that he claims aren't "real" issues, this causes him to land in the "manual review" queue, and that takes time.

To my mind, the logical conclusion of Dan's post is that he should want all add-ons to be manually reviewed all the time. He claims that if static analysis does not guarantee benign code, it is not worth having it at all (something which I would dispute (see distinction drawn above), but let's stick with it for now).

The reason we're drawing different conclusions is that I believe we still want to do something about the issues caused by frontloaded add-ons not distributed through AMO, and so we will need to do some kind of review, and if we get rid of the static analysis, the logical thing to do would be to use manual review.

Of course, having to manually review all the add-ons is going to cause even more delays, and is therefore not in Dan's interest, so instead he posits that we should just drop all our attempts to control issues caused by frontloaded add-ons not distributed through AMO.

The interesting thing is that Dan is nominally talking about how we're trying to moderate quality and safety in a space where we haven't before (ie add-ons not distributed through AMO), but then says stuff like "And it’s just depressing that the entire Mozilla developer community spent the last year debating extension signing and having every single counterargument be dismissed only to end up with a system that is utterly incapable of actually combating malware."

which basically boils down to an ad-hominem on Mozilla and an indictment of "the system" and signing and the add-ons space generally, when really, all we're talking about right now is how/whether to review non-AMO-distributed add-ons before signing them. Dan acknowledges elsewhere in his post that signing has other benefits, but the polemic tone sure makes it seem like the entire plan we have here is rubbish from start to finish.

There's been a general trend there that Dan sees our attempts to try to do something in that space as a one-way street where Mozilla should basically make sure that all add-ons that used to work and weren't distributed through AMO should not be disrupted, and we have been saying that it's hard to improve user experience here if there are 0 restrictions, and so "something's gotta give". Dan wants a system where he can (grudgingly) submit his add-on to AMO, and AMO gives it back to him signed (ideally automatically via APIs) and nobody from Mozilla (human or otherwise) reviews his code or tells him how to do stuff. And we're trying to improve the state of non-AMO add-ons. Those two desires are fundamentally very hard to reconcile. And that has very little to do with whether or not static analysis can guarantee you non-malicious code or not.

~ Gijs

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

Reply via email to