37k Chrome users downloaded a fake Adblock Plus extension
engadget.com
engadget.com
So many users download replicas of uBlock and find it hard to install the original uBlock Origin extension. Countless times have I had to send them direct link to Chrome's extension site just to make sure they're installing the right one. This is the case especially as the genuine extension in this case has no direct author website and instead lists a repo on Github (average users feel this indicates a knockoff and look elsewhere).
[1] https://www.pcworld.com/article/2012958/how-to-avoid-fake-do...
From the client side one mitigation might be to have all extensions denied network access by default and have the user manually whitelist those in a little-snitch like manner. There is an experimental flag for something similar to this called "User consent for extension scripts." From Google's side the best thing would be to run all extensions in a sandbox like they supposedly do for Android apps and monitor its activity to see if it does anything suspicious like record browsing history, redirect pages, or call out to sketchy URLs.
I don't think, Google has any interest in doing that. You can't either block internet access on a per-app basis on Android, even though this would close tons of information leaks, that the clunky permission system they currently have in place just can't fix.
And as for the best thing to do from Google's side, that would probably be what Mozilla is doing. Sit actual human beings down to look at the code of newly submitted extensions and of extension updates.
No, this does not scale, can't be automated by some algorithm, but it actually works. And it's not like it needs to scale into the millions.
Reflecting back on the automated extension review, I just realized that the problem is more complex that it seems at first glance since extensions can also contain content scripts that inject JS directly into pages themselves, so it's easy to mask the source of a POST by injecting the xhr directly into the webpage.
uBlock Origin was originally just uBlock, but a rough moderator took it over (or that's somewhat the story) so there's the Origin fork with the original Dev, the uBlock project does not appear to progress anymore.
It's the other way round for me. I only install an extension if I find the github (or similar) repo with sufficient activity, stars or whatever. I would even sometimes use google search with the site:github.com string when looking for extensions or android apps. It would be nice if the chrome store and even android play store had a foss tick box.
I felt really pissed off, actually, that so many people were cluttering up hackernews with all these low-effort links to random unexplained directories inside unfamiliar source repos, somehow thinking it reasonable to presume that we would all want to just dig around in their source code trying to understand what it was they were attempting to do. "github.com" became a negative value signal just as strong as "experts-exchange.com", and I tried to avoid ever clicking on such worthless links.
It was probably a couple of years before I ever had reason to actually use github and discover that the information I had wanted had been present all along. Now of course the inverted layout has become second nature... but I still think it's a bad idea to send anyone who is not already a github user to a github link and expect them to find anything useful to do with it.
Chrome extensions are that. No other browser has this problem.
I think, it's necessary to be pointing fingers here, to get Google to maybe finally do something about it and so that people don't mistakenly limit their use of extensions on other browsers.
* https://www.reddit.com/r/chrome/comments/6fotke/the_great_su...
* https://threatpost.com/seven-more-chrome-extensions-compromi...
* http://chrispederick.com/blog/web-developer-for-chrome-compr...
* https://www.reddit.com/r/Windows10/comments/6hvzzt/psa_my_ch...
* https://thehackernews.com/2017/07/chrome-extention-hacking-a...
* https://arstechnica.com/security/2017/01/ciscos-webex-chrome...
* https://www.bleepingcomputer.com/news/security/coinhive-is-r...
* https://lifehacker.com/many-browser-extensions-have-become-a...
But you have to be an advanced user, it is complex now to install an "unsupported" adon.
Many times, I've reported malicious extensions I've found on user's PCs, and months later they are still alive and well on the Web Store. Google has not taken significant steps to vet browser extensions despite the massive amount of access to your personal data they have, particularly if they use permissions like accessing the content of pages you're on.
Microsoft appears to only permit Edge extensions on a case-by-case, human-vetted basis. I strongly recommend instructing lay users to use Edge over Chrome, and those who insist on Chrome should have --no-extensions added to their shortcuts to ensure Google's extension interface is wholly disabled. (At the office, I use a group policy to block all extensions on all Chrome installs network-wide. Google provides surprisingly decent tools to do this.)
Unfortunately, while Chrome regularly brags about their security measures, it does very little when they permit (and distribute) malicious extensions in their store with permissions to do whatever they want with user data. Their Pwn2Own records, their bug bounties, it's all irrelevant while they don't consider this a serious issue. It is akin to bragging about how good your deadbolt is while leaving the door wide open.
1. Minimize the amount of extensions you use to the bare essentials. If you can live without it, uninstall it. If you rarely use it, uninstall it.
2. Prefer extensions from well-known organizations rather than unknown individuals. Example: there are plenty of extensions that force HTTP requests to HTTPS when possible, but I exclusively use the one from the EFF. Organizations have less to gain and more to lose from breaching the trust of their users in this way.
3. Prefer extensions that multiple software developers have recommended personally. This won't itself protect you from malware, but it does increase the likelihood that emergent malware will be discovered promptly and loudly publicized.
4. If you absolutely need an extension and none of the above apply, download the source code of the extension yourself and manually load it into your browser, to keep it from being automatically updated. (Part of me is wary to recommend this, as software that never gets updated is historically prone to being exploited by lingering unpatched flaws, but I'm having a hard time coming up with an attack vector of this sort for browser extensions.)
Of course, most users have fatigue for these sorts of dialogues and just hit accept (I have done the same in a lot of cases).
I also like Extension Update Notifier
https://chrome.google.com/webstore/detail/nlldbplhbaopldicmc...
Which pops up a toast notification whenever your extensions get updated. At least then it's not a silent upgrade and you can investigate if you wish.
1. Unexpected URL's or IP addresses. Most attack vectors, for example a key-logger, need to call home at some point. Keep in mind, the address may be stored in pieces that are later concatenated together, or other tricks like using charAt() that will break a naive search for "http://".
2. Blobs of base64 code or other obfuscated text that are later eval'd...
3. Or really anything in an eval function is super suspicious.
4. Remote scripts that injected into pages. Does this have plugin have a solid reason to do that? Otherwise, it's an obvious backdoor even if not necessarily nefarious.
5. Look for code that targets specific domains that are out of scope. If you're looking at an extension for a color picker, you wouldn't expect to see code targeting specific high-value sites like Paypal or Gmail.
6. If it's an email productivity add-on, is it stealing emails and contact information from signatures? It's surprisingly common.
7. Some extensions will try to swap out the advertiser IDs or change affiliate links. Unless it's an adblocker, you shouldn't expect to see any code targeting ads.
Is changing the case of one letter enough to get an extension into the Chrome store? Or even worse are overlapping names allowed?
In addition, preventing duplicate names is fairly hard if you support unicode. Characters like the zero width space, Mongolian vowel separator and many others make it algorithmically different but visually they are the same.
https://www.theverge.com/2017/5/3/15534768/google-docs-phish...
It's pretty insane that Google keeps tripping over itself on this same issue. Surely they have the means and know-how to prevent it.
https://chrome.google.com/webstore/detail/ublock-plus/kjagjn...