A group of Israeli researchers explored the security of the Visual Studio Code marketplace and managed to "infect" over 100 organizations by trojanizing a copy of the popular 'Dracula Official theme to include risky code. Further research into the VSCode Marketplace found thousands of extensions with millions of installs.
Fake news headline. There is no virus installed on millions of computer.
An extension typosquatting an extension with million of install managed to be installed a few hundred of times.
I believe they’re referring to lower down in the article, where the researchers analyzed existing extensions on the marketplace:
After the successful experiment, the researchers decided to dive into the threat landscape of the VSCode Marketplace, using a custom tool they developed named ‘ExtensionTotal’ to find high-risk extensions, unpack them, and scrutinize suspicious code snippets.
Through this process, they have found the following:
1,283 with known malicious code (229 million installs).
8,161 communicating with hardcoded IP addresses.
1,452 running unknown executables.
2,304 that are using another publisher’s Github repo, indicating they are a copycat.
It’s a proof of concept showing the weaknesses in Microsoft’s vetting process for extensions published on the store. They then used the process to get pseudo-malicious code inside hundreds of organisations (not hundred of installs) some of which are high profile.
inside hundreds of organisations (not hundred of installs)
At the time of the article, the extension listed around 300 hundred installation on the VS marketplace. There is a lot of bots downloading packages, one extension i contribute to, and nobody use it except 3 peoples, have been indicated to be downloaded 238 times.
If you look at the number of extensions available on the vscode marketplace, and the false positive they listed as “malicious code” (read the code attentively), I’m sure my own extension will show up in their “malicious code” (it isn’t)
True, it’s a private (not local) IP. It could easily have connected to a remote system, as their proof-of-concept did.
This code execs cmd.exe and pipes output to and from a hardcoded IP. That’s pretty weird. What’s running on that IP? How does the extension know something is there?
It looks like VS Code has no review — human or automated — or enforced entitlement system that would have stopped this or at least had someone verify it was legit.
Thing is, tons of code extensions have an RCE in one form or another, but they always hit a localhost, or configurable IP.
How do there automated analysis did any difference ?
Tons of extensions summon the cmd to summon the language devtools, their automated analysis flagged tons of package and they infer millions of infeections from that.
Except their summary is wrong. The researchers went on to search other extensions for known malicious code, and found it in thousands of extensions with tens of millions of total installs.
Good point. That was in the “static IP” category and not counted in the 200+ million install “malicious code” category, though. It could be a warning sign of false positives, but the example was such a small snippet it could also be opening after a VPN is established. That example was supposedly part of code that opens a connection for shell access from the other end, but without more details it’s not really possible to say.
Tons of devtools summons cmd.exe and do networks. Their claim is that more than 10% of the vscode marketplate is malicious package (i just divided the number of extensions they says is malicious, by the number of extensions)
Fake news headline. There is no virus installed on millions of computer.
An extension typosquatting an extension with million of install managed to be installed a few hundred of times.
I believe they’re referring to lower down in the article, where the researchers analyzed existing extensions on the marketplace:
If you look at the code of one of the “malicious code”, it hit a … local IP, not a remote one.
Does that mean the hacker is in my room??
We’re seeing connections from IP addresses that aren’t even routable on the internet. We’re compromised. Time to format.
Turns out you were the hacker all along
I wouldn’t be so quick to write it off.
It’s a proof of concept showing the weaknesses in Microsoft’s vetting process for extensions published on the store. They then used the process to get pseudo-malicious code inside hundreds of organisations (not hundred of installs) some of which are high profile.
Microsoft doesn’t have a vetting process for publishing extensions in the store. Maybe the failure is that people assume they do?
Surely you mean “that Microsoft does not make it clear that they don’t”?
Maybe, but I think the only app store that does vet apps is the Apple one, so that should be the default expectation.
And I think even they wouldn’t manually look for something like this. They’re mainly concerned about people breaking the commercial rules.
At the time of the article, the extension listed around 300 hundred installation on the VS marketplace. There is a lot of bots downloading packages, one extension i contribute to, and nobody use it except 3 peoples, have been indicated to be downloaded 238 times.
If you look at the number of extensions available on the vscode marketplace, and the false positive they listed as “malicious code” (read the code attentively), I’m sure my own extension will show up in their “malicious code” (it isn’t)
Their findings included an extension that opens an obvious reverse shell.
They made themselves the extensions.
If you are talking about the other reverse shell, it hit a local IP address.
True, it’s a private (not local) IP. It could easily have connected to a remote system, as their proof-of-concept did.
This code execs
cmd.exe
and pipes output to and from a hardcoded IP. That’s pretty weird. What’s running on that IP? How does the extension know something is there?It looks like VS Code has no review — human or automated — or enforced entitlement system that would have stopped this or at least had someone verify it was legit.
Thing is, tons of code extensions have an RCE in one form or another, but they always hit a localhost, or configurable IP. How do there automated analysis did any difference ?
Tons of extensions summon the cmd to summon the language devtools, their automated analysis flagged tons of package and they infer millions of infeections from that.
Since I read this I can’t stop picturing you as Peter Lorre lmao.
Damn now I noticed i did tons of mistake/types there ^^'.
Lol it was just one of those things where I read it in his voice for that word.
Thx for saving the click
Except their summary is wrong. The researchers went on to search other extensions for known malicious code, and found it in thousands of extensions with tens of millions of total installs.
I hopped people here would notice that their “malicious code” detection is totally bogus when the malicious code highlighted hit a local IP address.
Good point. That was in the “static IP” category and not counted in the 200+ million install “malicious code” category, though. It could be a warning sign of false positives, but the example was such a small snippet it could also be opening after a VPN is established. That example was supposedly part of code that opens a connection for shell access from the other end, but without more details it’s not really possible to say.
Tons of devtools summons cmd.exe and do networks. Their claim is that more than 10% of the vscode marketplate is malicious package (i just divided the number of extensions they says is malicious, by the number of extensions)
Did you really have to use that stupid “fake news headline” phrase? Gross.
Thanks you too