On 28/11/2015 19:42, Dan Stillman wrote:
On 11/28/15 5:06 AM, Gijs Kruitbosch wrote:
On 27/11/2015 23:46, [email protected] wrote:
The issue here is that this new system -- specifically, an automated
scanner sending extensions to manual review -- has been defended by
Jorge's saying, from March when I first brought this up until
yesterday on the hardening bug [1], that he believes the scanner can
"block the majority of malware".

Funny how you omit part of the quote you've listed elsewhere, namely:
"block the majority of malware, but it will never be perfect".

You assert the majority of malware will be 'smarter' than the
validator expects (possibly after initial rejection) and bypass it.
Jorge asserts, from years of experience, that malware authors are lazy
and the validator has already been helpful, in conjunction with manual
review. It's not helpful to say that what Jorge is saying is "not
true" - you mean different things when you say "the majority of malware".

I've addressed this repeatedly. In my view, saying "it will never be
perfect" is a misleading statement that betrays a misunderstanding of
the technical issues.

The validator has been used for years for AMO-published add-ons. It is in that context that it did what it did, and it did so reasonably well - there was always manual review for what the validator didn't catch. Not all add-ons would be published on AMO, and there was no reason for malware authors to publish on AMO except if they wanted to frontload it and have the slightly-less-bumpy install flow that AMO offers because of its default whitelist status in terms of sources of XPIs. Some people did try this. I have no comprehensive data or anything, but I do not believe that there was much if any such malware that made it to "fully reviewed" status on AMO.

In that context, saying that the validator blocked the majority of malware and would never be perfect was a perfectly valid statement and does not imply any lack of technical understanding.

The change that muddies the waters here is that we're now signing add-ons, and we're signing the ones that aren't distributed on AMO. We do not have source code for non-AMO distributed add-ons pre-signing, and so we have no way of knowing how much of that malware would or would not be picked up by the validator as-is. It seems likely that, as-is, a lot of it would be, because they have had no cause to use any techniques of circumvention. It seems equally likely that they would proceed to use such techniques in order to get signed anyway.

IOW, I think you're both right, and it would be helpful if you stopped attacking Jorge and other folks because I don't think that is a constructive discussion to be having.

If the person who's been defending this system for the last year

Jorge does not make decisions in a vacuum, wasn't the only person who architected the current solution, isn't some kind of lone dictator, doesn't get to decide what the Firefox team does (the team that actually implemented signing on the browser side), and he isn't the only person to have "defended the system" for whatever definition of system you're using here (it's not clear) -- and really, as I have pointed out before, even if he was all those things, it would not make "the system" any better or worse. Stop making this all about Jorge and his supposed lack of understanding. As I have repeatedly said, it is not helpful.


As for what, if anything, should block release without override, I'm
happy to talk specifics, but we can't have a discussion about that
without even agreeing on the point of the validator,

Why do we have to agree (and who are 'we'?) on the 'point' of the validator? As it is, the people in this discussion without access to the validator's results for zotero (which is almost everybody) have no idea what you're running into and which things are bothering you because they flag up false positives. For all we know you obfuscate all your code and use eval(btoa(...)) all over the place. More seriously, all I remember explicitly being mentioned is assigning to innerHTML in documents that are not (and won't be) in any docshell and therefore shouldn't be exploitable. It would be good to get a broader idea of the issues you're actually running into (as I'm assuming there are more than just this one, particularly because this one would be pretty easy to fix on your side, as you say the line in question only runs under other browsers).

In any case, if you want to insist, here's my view: the point of the validator is to raise the bar for both malware and for trivially-found security holes in otherwise benign (or seemingly benign / greyware, if you assume collusion between the 'benign' add-on submitted and the website that will use that add-on's security hole for privilege escalation of their website / remote code) add-ons. Raising the bar is helpful so that editors don't waste time reviewing script kiddie or copy-pasted / metasploit-style submissions of bad add-ons (assuming the validator gets updated consistently, anything with 0 creativity compared with a previous submission should be detectable in some way). The validator won't be able to defeat a concerted malicious actor by itself, and we should therefore manually review all add-ons in addition to what the validator does. Yes, that means delays for everyone. I personally do not believe that's avoidable if we want to make any kind of useful guarantee about the add-ons.

For AMO-based add-ons, the validator should additionally help people deal with Firefox code changes to interfaces, e10s, etc.

In my view, if the scanner can be trivially bypassed by malware authors
and is just an advisory tool, there's no justification for blocking
release.

Can we be specific, please? Release of new add-ons? Updates? Both? Just AMO add-ons? Frontloaded and sideloaded non-AMO add-ons?

It should be seen as a linter, providing conscientious
developers with an opportunity to fix potential (but rarely unambiguous)
issues and flagging them for later review by AMO editors. If AMO editors
feel that developers are ignoring legitimate security issues, they could
temporarily rescind the ability to publish without review. Essentially,
I'm calling for whitelist-by-default.

As I've said before, I think this provides no improvement over the pre-signing era. If we allow just anyone to register as a new developer with a throwaway email address and automatically get whatever kind of rubbish signed, with an API to do that to boot, I don't see what the point of signing would be. Getting post-facto blocking in place for those add-ons is of comparatively little use if (a) by that time the add-on can e.g. stop Firefox updating and/or fetching the blocklist; (b) people can resubmit the exact same thing with a different id and get signed - all fully automatically (note that you're saying that the validator shouldn't be allowed to stop signing, so even if we had patterns of bad add-ons encoded in the validator, this would be possible).

And yes, using the automated scanner to try to combat malware is, in my
view, security theater: "the practice of investing in countermeasures
intended to provide the feeling of improved security while doing little
or nothing to actually achieve it" [2]. It may be a harsh assessment,
but I don't think it's unfair.

It is unfair when people have repeatedly pointed out that it has actually achieved improved security. Perhaps not by as much as you would like (ie not enough to dispense with manual review), but it raises the bar.

What you have now is a system that is extremely
disruptive to legitimate developers

I will just point out that not all legitimate developers seem to be
struggling as much with it as you do, so I don't know that your
generalization is justified. Struggling with signing, privately-run
add-ons, modifying public add-ons, the overall debate and its
consequences wrt e.g. government surveillance, centralizing a bunch of
infrastructure that used to be distributed - yes. Struggling
specifically with the automated portion of the review system for
frontloaded, non-AMO add-ons... not so much.

I don't know how many extensions are being flagged for manual review,
true.

This seems like something we should be able to get data about. (I do not have such data.) Have you asked anyone?

But some certainly are, and for them it's extremely disruptive, to
the point where, in Zotero's case, we've decided that we would need to
cease development rather than be in a position where we couldn't release
timely updates to our users.

You have also dismissed all suggestions that you could fix at least some of the issues the validator flags up (as noted above, I don't know what all of them are, so I don't know if *all* of them are fixable, though that seems likely enough to me), and that in case of "emergency" fixes, you (and anyone else to whom this would apply) could email the amo editors list to get an expedited review. We have reviewers in a number of timezones, both paid and volunteer, and so response times are usually pretty quick.

In other words, it is not like we have not provided you options. You don't think the options are good enough, but it's disingenuous to suggest that we haven't been trying to help. What we haven't been willing to do is dispense with automated and manual review altogether.

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

Reply via email to