Live data from Hacker News

GitLab discovers widespread NPM supply chain attack

about.gitlab.com

181–190 of 263 posts

Re: GitLab discovers widespread NPM supply chain attack

#181
post #45

Earlier quoted context omitted.

Because bias and incentives matter. There's a reason disclosures are obligatory in academic papers.

They pulled a little sneaky on ya, mentioning GitLab security features available to GitLab users in a GitLab Security blog post with GitLab logos everywhere. Call me a conspiracy theorist, but I start to think these people might be affiliated with GitLab.

It's more like, you don't know where honest technical evaluation ends, and an ad starts.

Re: GitLab discovers widespread NPM supply chain attack

#182

Mitigate this attack vector by adding: ignore-scripts=true to your .npmrc https://blog.uxtly.com/getting-rid-of-npm-scripts

Is there a way to list all the packages in the dependency tree with preinstall/postinstall hooks? Preferably before doing the installation?

Re: GitLab discovers widespread NPM supply chain attack

#184

Earlier quoted context omitted.

This is why you want containerisation or, even better, full virtualisation. Running programs built on node, python or any other ecosystem that makes installing tons of dependencies easy (and thus frustratingly common) on your main system where you keep any unrelated data is a surefire way to get compromised by the supply chain eventually. I don't even have the interpreters for python and js on my base system anymore…

Here I go again: Plan9 had per-process namespaces in 1995. The namespace for any process could be manipulated to see (or not see) any parts of the machine that you wanted or needed. I really wish people had paid more attention to that operating system.

The tooling for that exists today in Linux, and it is fairly easy to use with podman etc.

K8s choices clouds that a little, but for vscode completions as an example, I have a pod, that systemd launches on request that starts it.

I have nginx receive the socket from systemd, and it communicates to llama.cpp through a socket on a shared volume. As nginx inherits the socket from systemd it does have internet access either.

If I need a new model I just download it to a shared volume.

Llama.cpp has now internet access at all, and is usable on an old 7700k + 1080ti.

People thinking that the k8s concept of a pod, with shared UTC, net, and IPC namespaces is all a pod can be confuses the issue.

The same unshare command that runc uses is very similar to how clone() drops the parent’s IPC etc…

I should probably spin up a blog on how to do this as I think it is the way forward even for long lived services.

The information is out there but scattered.

If it is something people would find useful please leave a comment.

Re: GitLab discovers widespread NPM supply chain attack

#185

Earlier quoted context omitted.

This is why you want containerisation or, even better, full virtualisation. Running programs built on node, python or any other ecosystem that makes installing tons of dependencies easy (and thus frustratingly common) on your main system where you keep any unrelated data is a surefire way to get compromised by the supply chain eventually. I don't even have the interpreters for python and js on my base system anymore…

No thats not what i want, that whats i need when i use something like npm. Which can't be the right way.

Why not? Make a bash alias for `npm` that runs it with `bwrap` to isolate it to the current directory, and you don't have to think about it again. Distributions could have a package that does this by default. With nix, you don't even need npm in your default profile, and can create a sandboxed nix-shell on the fly so that's the only way for the command to even be available.

Most of your programs are trusted, don't need isolation by default, and are more useful when they have access to your home data. npm is different. It doesn't need your documents, and it runs untrusted code. So add the 1 line you need to your profile to sandbox it.

Re: GitLab discovers widespread NPM supply chain attack

#186
post #172
post #102

About a month ago I had a rather annoying task to perform, and I found an NPM package that handled it. I threw “brew install NPM” or whatever onto the terminal and watched a veritable deluge of dependencies download and install. Then I typed in ‘npm ’ and my hand hovered on the keyboard after the space as I suddenly thought long and hard about where I was on the risk/benefit curve and then I backspaced and typed “bre…

I used to run npm only inside docker containers, and I've been regularly laughed at on these forums. I eventually gave up…

“Whenever you find yourself on the side of the majority, it is time to pause and reflect." — Mark Twain (supposedly)

Re: GitLab discovers widespread NPM supply chain attack

#187

I have an friend that starts an project next month that will rely on npm. He is quite a noob and didn't code in ages. He will have almost no clue how to harden against this, he will probably not even notice if he becomes a victim until something really bad happens. Pretty sad.

"a friend" because friend starts with a consonant sound, not a vowel sound. "a project" for the same reason.

HTH.

Re: GitLab discovers widespread NPM supply chain attack

#189
post #61

Earlier quoted context omitted.

But how do you left pad a string?

char * left_pad (const char * string, unsigned int pad) { char tmp[strlen (string)+pad+1]; memset (tmp, ' ', pad); strcpy (tmp+pad, string); return strdup (tmp); } Doesn't sound too hard in my opinion. This only works for strings, that fit on the stack, so if you want to make it robust, you should check for the string size. It (like everything in C) can of course fail. Also it is a quite naive implementation, since i…

strndup would be safer if I correctly recall from my C days?
Post reply on HN