There have been to many contaminations of major package repos lately. Only one typo in an import statement up the dependency chain and you’d be compromised.
There have been to many contaminations of major package repos lately. Only one typo in an import statement up the dependency chain and you’d be compromised.
We are actively working on a solution that will fully sandbox package installations for npm, yarn, poetry and others.
It's rolled up as part of our core CLI [1], but is totally open source [2]:
[1] https://github.com/phylum-dev/cli [2] https://github.com/phylum-dev/birdcage
Though I’m not sure of the solution really is / should be increased sandboxing.
The alternative may be a rethinking of the increasingly smaller packages. Maybe it’s better to have few large packages maintained by reputable organisations or personalities?
We really need a defense in depth approach here. Sandbox where it makes sense, perform analysis of code being published, consider author reputation, etc.
If you put code in the package itself, this would side step the "installation" sandbox. However we're also doing analysis of all packages introduced to the ecosystem to uncover things that are hiding in the packages themselves.
So you're right, we need a defense in depth approach here.
If you log into your email from the virtual machine, you are at risk.
With local development environment it is a bit different, because unless you are running build/test etc. in a container/vm/sandbox, then attacker has access to all of your files, especially web browser data.
(If it makes any difference, I would probably be using VMWare Workstation Pro)
How do you move data in/out of the guests? I always found that part of interacting with VMs to be annoyingly painful.
Doesn't even need to be command line, you can just open remote addresses in your favourite graphical file browser, at least under Linux.
[0] https://www.qubes-os.org/doc/how-to-use-disposables/
[1] https://www.qubes-os.org/doc/how-to-copy-and-move-files/
Not in Qubes OS:
https://github.com/Qubes-Community/Contents/blob/master/docs...
Yes. Yubikey. ecdsa-sk key requires you to tap yubikey to have a working key. It consists of 2 parts - a private key file, but which is useless without yubikey. https://developers.yubico.com/SSH/
https://developers.yubico.com/SSH/Securing_SSH_with_FIDO2.ht...
Azure DevOps does it too
> A compromised remote could use the VS Code Remote connection to execute code on your local machine.
So I would say that it might be a bit harder for an attacker to gain access to your local machine, but you should not rely on it, because it's more like security by obscurity.
1. https://github.com/ossillate-inc/packj/blob/main/packj/sandb...
It DOES NOT require a VM/Container; uses strace. It shows you a preview of file system changes that installation will make and can also block arbitrary network communication during installation (uses an allow-list).
Disclaimer: I've been building Packj for over a year now.
Doesn’t even have to be a typo if the actual project is compromised. Like one of the 100s of NPM modules without 2FA for publishing.
With modern virtio interfaces for network, disk and graphics practically giving near metal performance, there's no reason to not utilize VMs for development.