crossroadsguy
2 days ago
All the sandbox-exec and all the Lulu rules are not going to protect against something like this.
At one point permission pop-up fatigue sets in we start giving any permission as if it's normal. We also become desensitised to isntalling tools: brew, npm, it becomes second nature.
"Oh, those 367 tools installed by package X? Yeah yeah, must be normal, that's how all these work now".
"Brew shows 59 packages outdated?". "Must upgrade". "Yeah, done. Perfect".
And the advent of agents and harnesses. It's not a matter of whether, it's when! OSes need to do something about it. Help users have complete separate "program space" at ease with better, easier, and lighter VMs if nothing else. I know, I know - Unix and Linux solved all this even before Alexander III of Macedon started wearing his nappies. Of course.
happyPersonR
an hour ago
This software should be rewritten until it has no dependencies other than the compiler. Like it should use no libraries at all other than crypto.
Also put it in rust ….
isityettime
2 days ago
> All the sandbox-exec and all the Lulu rules are not going to protect against something like this.
No, you can block this with sandboxing tools. For my LLM agents, I use a tool called Nono, whose macOS implementation is built on the same foundation as sandbox-exec. One of the key features it supports (and it's not the only tool that does this) is proxying and the injection of credentials via the proxy. For example, when I run Codex at work, Codex does not have access to my Azure AI Foundry API credentials. It sends out requests via dummy credentials, and the proxy injects the real ones outside the sandbox.
The other thing that proxy does is let you restrict network access in various ways. So you can run something like LiteLLM so that it doesn't have access to the internet at large; it can only talk to Azure AI Foundry or AWS Bedrock or whoever your inference provider is. You sandbox LiteLLM separately from your agents, and you give it access to much less. The software firewall stuff isn't perfect but it is a significant defense against things like this.
There are also lots of other restrictions that are easy to do which mitigate this. Nono blocks access to the root of $HOME, then selectively allows access to paths within it, and also explicitly blocks access to common paths to secrets. So it's pretty easy to make sure that access to important things are blocked: SSH credentials, GnuPG socket (and local Unix sockets in general), local OS keyrings, etc.
The way I use tools like this is exclusively by writing policy, testing it, and revising where the policy is inadequate. I never get approval fatigue because I don't do approvals.
You're right that attacks like this are hard to defend against, and that we're used to tool sprawl, and also that LLMs can do things like install tools we don't expect them to themselves! But there are ways to anticipate and mitigate attacks like this. Sandboxing tools (including contained and VMs) that support credential injection are genuinely useful for this.
drdaeman
2 days ago
Until this Nono tool gets a supply chain attack and happily ships all your Azure credentials somewhere they aren’t supposed to be, then starts mining Monero or something.
LiteLLM is frequently used in roughly the same scenario - trading virtual LAN-only keys for real ones as it relays requests to the inference providers.
isityettime
2 days ago
> LiteLLM is frequently used in roughly the same scenario - trading virtual LAN-only keys for real ones as it relays requests to the inference providers.
LiteLLM isn't a sandboxing tool so it just can't perform as much risk reduction even when everything is working as intended.
And what nono adds over sandbox-exec is a uniform interface across platforms and some policy management tools. You can impose the same restrictions via the OS built-in mechanisms yourself via Seatbelt or a built-in interface like sandbox-exec. You can also combine an OS-level sandboxing tool like nono, zerobox, Anthropic's srt, Seatbelt, landrun, Bubblewrap, Fence, etc., with a VM-based one like Docker's sbx, smolvm, krunvm, microsandbox, or Shuru. So now you need two simultaneous supply chain attacks in unrelated projects to line up just right at the same time.
"Eventually you have to trust some part of your security stack" is neither particularly interesting nor evidence that there's no way to defend against supply chain attacks. Even if you only have one sandboxing tool and it's OS-level rather than VM-based, that becomes a single part of your stack that you can give special attention to in evaluating updates in a way that LiteLLM can't be.
There's also just the empirical fact that at this point, trusting LiteLLM's maintainers to lock down their release pipelines looks foolhardy. This is the second supply chain attack they've had in 7 months. It's absolutely wiser to choose a sandboxing tool you like, audit it to examine its release pipelines, code signing requirements, attestation strategy, and whatever else, then put LiteLLM inside that tool's sandbox than to just thow your hands up and say "I gotta trust something, so it might as well be LiteLLM!". Maybe nono ain't it either, idk. I'm still experimenting to figure out how I want my setup to work.
But I think neither the defeatism nor the relativism in this thread are very compelling.
fdsjgfklsfd
2 days ago
No no it's really important that I have 5-factor authentication on every website and it requires me to go through the whole login process again every time I break eye contact.
Terr_
2 days ago
And if it ever detects that you briefly used a browser with any kind of privacy-preserving features on any website, you will be logged out from all devices and forced to revalidate your email and gene sequences.
Discord does this with Firefox: It doesn't even tell you that a captcha failed or anything, just poof logged out and you must re reverify the same email you verified 10 minutes ago.
smolder
a day ago
Discord should be illegal and we should use IRC. It did the same thing better without centralized logging.
smolder
a day ago
Downvote me if you want but I am dead serious. Attaching profit motives to basic infrastructure is why the USA is a dystopia today. Protocols really are better than platforms. IRC was a better system than discord.
We have been a petri dish for insane megalomaniacs for too long, and now freedom is coming back to bite us, because it gave freedom to the worst imaginable people to oppress the rest of us.
orangedog
a day ago
IRC didn't and hasn't meaningfully evolved the features Discord has, which is why people use Discord.
You're getting downvoted probably because it isn't a serious suggestion. IRC is missing features and you don't have a meaningful reason to make it illegal.
For the record, I use IRC.
lioeters
a day ago
> Attaching profit motives to basic infrastructure
Water, food, housing, healthcare, telecommunications, computing (including artificial intelligence). I guess it's "socialist" to believe that these baseline needs should be, and can be, free for all of humanity.
One day we'll look back and laugh at the stupidity of our current state of civilization, that we'd need to pay anybody anything to live on this planet that provides all those things and more for free. Pity us, future people, I hope we grow up soon.
craftkiller
a day ago
> Water, food, housing, healthcare, telecommunications, computing
> planet that provides all those things and more for free
This planet does not provide healthcare, telecommunications, or computing for free (unless you consider nature's "the sick get eaten" approach "healthcare"). Housing is only free if you either don't value the labor or you are fine living in caves. Water and food could be free if you're only interested in drinking from rivers and foraging for fruit, otherwise we're back to whether or not you value the labor in farming or building the infrastructure for water collection and transport.
(for the record, I think those things should be all funded by taxes. I just think it is silly to claim the planet provides those things for free. We created those things, through millennia of toil.)
Der_Einzige
a day ago
100000% agree. Discord is one of the most disgusting pieces of software in human history.
sznio
2 days ago
and yet somehow an attacker never needs all these auth methods.
my boyfriend didn't have 2fa enabled, but google would still ask him to verify a code on his phone. recently his password leaked, the hackers got into the account and google never bothered them with an extra verification. amazing. the fact that they signed in from a completely different country? who cares!
(yes i enabled 2fa for him now)
hoppp
2 days ago
Ready to add anal probes?
tensegrist
2 days ago
for what, chess.com?
NonDairyMatt
2 days ago
Yes! I'll be damned if someone improves my elo
supaflybanzai
2 days ago
Hey! I spat toothpaste all over the floor!
yturijea
a day ago
This is seriously one of the reasons I see Rust as quite suspicious(with its 200-300 dependencies in all builds), unlike golang where you can actually create a full app with no dependencies.
smolder
a day ago
There are not that many dependencies in Rust if you know how to write it. That's just what vibe coders end up with. It's a great language which is overtaken by people with no idea what they're doing that heard it was a great language.
yturijea
11 hours ago
most modern linux toolings have 200-300 dependencies.. and some of these are before the whole AI thing, so not just vibe coders. The problem with rust is that is doesn't ship with any basic functionality, like crypto, or json encoding, or similar. So you end up having to depend a lot, because what should be part of the standard library simply isn't there. Hence my reference to golang which has all those. Of course rust has other benefits, but that one is a huge issue, for the same reason we see so many issues with js and python related to security attacks through pipeline.
decentstates
2 days ago
Sandboxing should be built in to your windows manager like: https://decentstat.es/posts/shai-halud-nix-housing/
abhisek
2 days ago
What are you talking about? Even dependency cooldown of 24h is enough to protect the consumers from these breaches. The attack did not have any novelty, used a newly registered look-alike domain for C2 and a PTH technique which is now known.
Sandbox comes in for the unknown ones and yes, its a pain to get the profile right.
lrvick
2 days ago
> Even dependency cooldown of 24h is enough to protect the consumers from these breaches.
From some of them perhaps, but plenty hide for -years- undetected.
woodruffw
2 days ago
> From some of them perhaps, but plenty hide for -years- undetected.
Which ones? Not even xz-utils was years (it was weeks), and it’s the poster child for a attacker doing everything right until the very end.
lrvick
a day ago
Some top of mind examples that -could- have been intentional like Heartbleed, Milksad, the or the terraform entropy flaw I found all come to mind. Bugdoors like those are great because they are subtle, can hide for years, and two of those persist even after patching. All are also things someone can just say were an accident and we kind of have to believe them.
I am aware of at least one evil firm that finds bugs like these months and sometimes years before they are public and sells the knowledge to spooks until someone else independently spots them and tells the public.
Only a matter of time before these types of firms introduce the bugs themselves given the incentives, if they are not already.
woodruffw
a day ago
“Could” is doing a lot of lifting here. Like `d=4`, the parsimonious explanations are honest mistakes, incompetence, and institutional error, not intentional bug placement.
user
a day ago
Eisenstein
2 days ago
When they catch a shipment of drugs being smuggled across the border, do they say 'we got them all'? You have to assume for every number X that you intercept, you miss X * Y.
woodruffw
a day ago
I think drug smuggling and open source package compromise have pretty different failure modes, which explains differences in perpetrator behavior.
(This is also different from what the GP argues.)
Eisenstein
a day ago
I think the concept is exactly the same. When you detect something, that means you have found the ones that made a mistake or got unlucky enough to get caught. You must assume that some haven't.
Not every malicious actor is a financially driven crypto-miner or credential stealer. It seems likely that some exploits are going to be sat on or used in a highly targeted manner such that we may never know they exist.
woodruffw
a day ago
I don’t think the actor’s persona is the most relevant thing here, although I do think that more sophisticated attackers generally don’t prefer open source supply chain attacks because it doesn’t have the right visibility-to-impact ratio.
But again: it’s impossible to argue against a “silent majority” claim. The argument passes the sniff test for drug smuggling because we have separate evidence that most drugs are not interdicted. We have no such separate evidence for open source supply chain compromises.
user
a day ago
nvme0n1p1
2 days ago
Don't let perfect be the enemy of good
lrvick
2 days ago
It would be like having a one day quarantine for a deadly and rapidly spreading disease known to have a very long asymptomatic period.
I mean okay, it probably helps in some random cases, but the disease will not care at all. Easy to route around and we just wasted a lot of developer energy treating symptoms and ignoring the actual problems.
People are running around acting like cooldowns fix supply chain attacks. This is completely absurd. Imagine an antivirus that just makes you wait one day to install any new software or updates. Should we do that too? We should question what problem are we actually solving before this type of thinking gets even more out of hand.
What we need is actually reviewing all heavily used OSS code with as many eyes and agents as possible in a coordinated and decentralized way, and then federated reproducible signed releases. If we are going to have a one day cooldown, we must do something actually useful with it or people will see it does no good and stop doing it. Without a review plan, a day might as well be a year.
Like literally fund this with taxes or something like caring for public roads. Add it to our internet bill like a utility safety fee.
brookst
2 days ago
You’re imagining one single threat. Which isn’t the case.
It would be like having a one-day quarantine against 500k viruses, which have a median asymptomatic time of 3 hours and stdev of 1 hour: sure, statistically some get by you. But it’s dramatically better than insisting on no protection except perfect protection.
user
a day ago
anonreplier
2 days ago
Yes, that’s not going to happen. At best you’ll get curated commercial repos.
atmosx
2 days ago
Yes it’s messed up. I was thinking about pi agent and the extensions getting updates every three hours.
cptmurphy
2 days ago
Fuchsia solved that
caaqil
2 days ago
> Unix and Linux solved all this even before Alexander III of Macedon started wearing his nappies
I mean, didn't Linux shells invent pop-up fatigue? I thought we (yes, we) all used to -y flag preemptively so the upgrades and installations/setups go through. Linux really did do it first, the agents are just more needy and their popups more verbose now, but not exactly new.
VM isn't a silver bullet.
fc417fc802
2 days ago
Stuff like this is highly context dependent. It is a good thing that apt asks about each step. I voluntarily add more of this by opting for things like listbugs. If I then decide to override such protections with a -y for whatever reason that's a choice on my part to prioritize convenience.
Either way it's got nothing to do with security - I was never going to catch a vulnerability in the central debian repos by reading a list of dependent packages.
isityettime
2 days ago
It's kind of the opposite. The more typical Unix nehavior is to just assume you knew what you were doing and meant it, and not ask for confirmation in the first place. -y is just the reversion of an abberation.