Researcher hacks over 35 tech firms in novel supply chain attack

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • artifactory-pypi-scanner

    Saves you from package injection!

  • To mitigate this kind of supply chain attacks for python, we have created following tool [1], that will check python packages on Artifactory instance you specify and create packages with the same name on the PyPi.

    [1] https://github.com/pan-net-security/artifactory-pypi-scanner

  • rubygems

    Library packaging and distribution for Ruby.

  • Older Gemfiles apparently looked like the following:

        source 'https://rubygems.org'

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • Appraisal

    A Ruby library for testing your library against different versions of dependencies.

  • remote: https://github.com/thoughtbot/appraisal

  • hub-feedback

    Feedback and bug reports for the Docker Hub

  • This post seems like a good time to note that by default, there's no direct way to verify that what you are downloading from dockerhub is the exact same thing that exists on dockerhub [1].

    Discovered after seeing a comment on HN about a bill of materials for software, i.e., a list of "approved hashes" to ensure one can audit exactly what software is being installed, which in turn led me to this issue.

    [1] - https://github.com/docker/hub-feedback/issues/1925

  • nixpkgs

    Nix Packages collection & NixOS

  • >Nix package managers/repositories have a level of scrutiny to get into, and highly dedicated people in charge of. Random github repos (or npm packages) are extremely low effort/risk to set up.

    That's not really true though. Nix doesn't support signed sources, there are no signatures in the package repository and in theory "John Doe" with no information can add packages and send pull-requests.

    In practise nixpks is just a well moderated user repository and the level of scrutiny is less then the enterprise distros can offer.

    https://discourse.nixos.org/t/trust-model-for-nixpkgs/9450

    https://github.com/NixOS/nixpkgs/issues/20836

  • pip

    The Python package installer

  • Specifying `index-url` is not a solution since `pip` will always choose a package with higher version regardless of the repository. Moreover, in case of same version, it will prioritize PyPI. This was discussed in following issues [0], [1].

    [0]: https://github.com/pypa/pip/issues/5045

  • linux

    Kernel source tree for Raspberry Pi-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://forums.raspberrypi.com/ (by raspberrypi)

  • > Look at the resent story about Linux stable kernels that have had more than 255 minor releases and think how much of a shit show it would have been if they added features too like most developers do.

    At least some distribution kernels do new feature backports - mostly to support new hardware on LTS versions (like e.g. Ubuntu did for the Raspberry Pi, see https://github.com/raspberrypi/linux/issues/3464).

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Nodemailer

    ✉️ Send e-mails with Node.JS – easy as cake!

  • > Such 'nagging donation requests' were banned by npm pretty much days after they first appeared, IIRC,

    What does "banned by npm" mean? Here's an example from the source of the latest version of nodemailer (with 1.4M weekly downloads) sleeping for 4,100 ms on every install so that it can show a "Sponsor us to remove this lag" message: https://github.com/nodemailer/nodemailer/blob/a455716a22d22f...

    > and npm itself is literally a tool for installing code to execute later, so there's no security issue here. If someone wanted to embed malware into a package, they wouldn't need postinstall scripts for it.

    It's fine to have a standard mechanism for postinstall steps. It should be opt-in* by the end user rather than opt-out. That way people know that they're running additional code and ideally selectively pick which packages are allowed to do so. The vast majority of packages do not need it anyway as they do not have C++ bindings or need to generate data.

    The defaults for NPM are such that you have to know quite a bit of how NPM works to download a package and inspect the contents without executing random code.

    > This is really a complete nothingburger.

    It's defensive in depth. With the default being to execute remote code, a single typo could be installing a package that immediately runs malware.

  • SES-shim

    Endo is a distributed secure JavaScript sandbox, based on SES

  • Yeah. JavaScript is probably the closest to being there (with things like SES[0], LavaMoat[1], etc.) but we're not quite there yet. It's just shocking that this sort of thing is as seemingly obscure as it is; it's like the whole industry has collectively thrown up their hands and said code execution is unavoidably radioactively dangerous. (While simultaneously using package managers that... well.) But it doesn't have to be!

    [0] https://github.com/Agoric/ses-shim

    [1] https://github.com/LavaMoat/LavaMoat

  • verdaccio

    📦🔐 A lightweight Node.js private proxy registry

  • The goal of verdaccio is to make this less complicated. https://github.com/verdaccio/verdaccio

  • ponyc

    Pony is an open-source, actor-model, capabilities-secure, high performance programming language

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts