1,263 karma · joined September 26, 2022
louis@lang.sh
[ my public key: https://keybase.io/louislang; my proof: https://keybase.io/louislang/sigs/sR5R808tt65aCugytdt6xz-in9aUoyyvTGAKLTYe1gI ]
I can absolutely assure you, we have no affiliation with these packages. We end up reporting much more malicious packages than these every single day. We wouldn't risk harming our reputation to publish three dumb packages. Just thought these were interesting in a diabolical sort of way.
For GitHub, they just seem to be a bit more careful in what they remove. Malware (and other security related code) _can_ be used for educational purposes. As such, they aren't as quick to nuke this stuff from the site.
See their acceptable use policy:
> Note that GitHub allows dual-use content and supports the posting of content that is used for research into vulnerabilities, malware, or exploits, as the publication and distribution of such content has educational value and provides a net benefit to the security community. We assume positive intention and use of these projects to promote and drive improvements across the ecosystem.
https://docs.github.com/en/site-policy/acceptable-use-polici...
Even when they do act, it can be slow, unfortunately.
A bit of work has been done to RE the binary itself, and we’ve found references to the following GitHub https://github.com/T4hg/frek/blob/master/__init__.py
Happy to chat with anyone that’s interested in this sort of thing. We’ve got a trove of samples that seems to grow daily!
Our system has been alerting us to this actor's activities all morning (beginning sometime last night). They have been wildly active, and have continued to publish packages as we've worked to get them removed.
Interestingly, they have ported the Python bits to Javascript and have started publishing to NPM as well. Exact same TTP, crossing two ecosystems.
Our platform monitors these ecosystems, scanning packages for signs of risk as they are published. This way we can get them removed before they impact the wider open source community. We currently support Javascript, Typescript, Python, Ruby, Java, C# and recently just rolled out Golang and Rust support into beta.
We believe in a defense in depth approach to supply chain security and have also published an open source sandbox that limits access to the filesystem, network, disk and environment variables.
https://github.com/phylum-dev/birdcage
This is rolled into our CLI so that you can do things like `phylum npm install <pkgName>` and install packages in a sandboxed way.
Happy to answer questions about this attack, security, sandboxes, etc!
We scan all the open source packages as they’re published, and got a hit for this pretty much right away. The volume of packages that get published that are malware is astonishing…
Kind of unfortunate that these guys just closed the issue, if they aren’t malicious actors. I suspect that this is a fake account, and not an account compromise, though.
Cryptocurrency aside, it definitely looks like these attacks are ramping up and we - the developers with access to critical infrastructure - are the primary targets. Today its crypto, tomorrow it's SSH keys.
It's both worrisome and tremendously annoying.
Allows you to specify the allowed permissions in a toml file. Still a wip, but would love some feedback!
Oh it _absolutely_ is!
We're working extremely hard here and I think we're making great strides. More hard work to come, but I think it's absolutely worth the effort!
In this way a `phylum npm install <pkgName>` would perform the typosquat checks _and_ limit access to system resources. You can even alias this as `alias npm="phylum npm"` so that it's easier for the user.
This is currently offered as a SaaS solution, but we'll be providing an on-prem offering by EOY that should work well in an air-gapped environment.
The sandbox I mentioned above is rolled into our CLI by default, but that should operate well enough on its own without needing to call out to our API if you wanted!
This campaign is ongoing. Our system just notified us of two more packages, which have been reported to PyPI. I expect this list to continue to grow throughout the day.
As a related aside, we are working on a package sandbox that prevents access to disk, network and env variables during package installation. It's not quite ready for primetime, but it is completely open source and we'd love some early feedback/contributions!
https://github.com/phylum-dev/birdcage
If anyone has any questions, I'd be more than happy to answer them!