upvote

  > The most fascinating part of this wave of LLM reverse engineering is seeing how many weird and poor choices were lying in plain sight.
I think what's interesting is that for decades one group of devs has been pushing for higher quality and security while other groups have been pushing for "good enough" or "MVP"[0]. Clearly the group that rushed won.

But in some weird way we're coming to the day of reckoning. I'm sure we'll always have missed bugs but with a lot of what we're seeing it more seems like these were avoidable problems. Code issues I can easily imagine at least one person on the team said "this isn't acceptable, we need to correct it" and them getting overruled. I'm sure each and every one of you has seen, if not experienced, this.

It'll be interesting to see if that continues. I suspect companies will still rush but from my experience even the best models happily produce shoddy code. And there's a feedback loop, the model's performance is influenced by the code's quality. So it's easy to degrade and get into a bad feedback loop. But I think people still value speed over quality, even in this world where Microsoft shit the bed

[0] in quotes because the entire conversation is essentially about what is actually good enough and what actually is the minimum viable product.

reply
"The fan downloads its root CA cert over plain HTTP"

Would love to understand the decision-making behind this at Coway (or their firmware contractor). Anyone care to guess why someone would make this choice?

reply
Hardware companies by and large don't get software. They just don't understand it. Their world is sourcing parts and assembly and packaging. They look at software like any other line item in the BOM: Like a screw or gasket. You source it from the cheapest supplier, and spoon it onto the product somewhere on the assembly line. These companies simply don't care about their software, and their requirements to their supplier amount to "make something work." The quality bar is literally "customer should not return the product."
reply
> Anyone care to guess why someone would make this choice?

My guess: At some point in the past, a firmware was developed without plans to include firmware update functionality. The team that did this was later burned when the client tried to use a new certificate that the hardcoded, unchangeable system didn't recognize.

Angry meetings occurred, developers were chastised, and someone realized they could avoid that problem by fetching an updated root CA on demand. They did it over HTTP to avoid a chicken and egg problem.

In hardware manufacturing, everything is about crossing items off the list of problems. A problem was raised, someone came up with an idea to solve that problem, and it was implemented. The practice might have spread to other products because it became institutional knowledge about how to avoid a problem that made a customer angry once.

This is from my experience in the consumer hardware industry. If you're not watching the outsourced development closely, they will take the easiest route to solve the problem in front of them and nobody will consider any other consequences.

reply
Everyone (including the author) is as per usual focused on the wrong thing.

There is nothing wrong with downloading a certificate over HTTP. In fact, that's how PKI is designed and if you look at the AIA field of this very site you will see the certificate chain is meant to be served over HTTP.

What IS wrong is implicitly trusting an untrusted certificate. Whether it came over HTTPS or HTTP is irrelevant. But no one is talking about that.

I'm more puzzled why someone would buy a complicated IoT purifier for a drafty Bay Area house that probably has knob and tube wiring.

My most reliable air purifiers have a dumb, physical on/off switch. I bought them deliberately for that feature.

reply
People don’t understand things and act shocked when they learn apt and Steam packages are downloaded over HTTP. You only need encryption for private information. CA public keys are not that. But you do need verifiable signatures.
reply
It kind of makes sense opsec wise when you are on a network with adversaries though.

1) Others knowing knowing exactly which package you are downloading could give them a very clear way to fingerprint and target services you are running

2) HTTPS could allow you to potentially reduce your risk surface in a case where there is a bug in Steam's signature checker itself and someone sends a crafted payload instead of game files. Server validation would have prevented that. This has actually happened with apt before: CVE-2019-3462.

Odds are small, but I believe in DiD. I could imagine an attacker with nothing better to do could get up to this on say, a Uni's network.

And before you come at me with I should be using a VPN to protect against these scenarios, I do that already. This is about HTTPS being a sane default when possible.

reply
But we're talking about an air filter, not a production server.
reply
I'm all for Air Filters using HTTP!

The default for package upgrades on PCs should be HTTPS (as it already is on Arch, Alpine, NixOS, Flatpak, and Homebrew) since it reduces risk with minimal performance impact for most users.

reply
> fingerprint and target services

Or they could connect to the service.

> Server validation would have prevented that

No it wouldn't have. HTTPS does not ensure a server's contents are trustworthy.

> And before you come at me with I should be using a VPN to protect against these scenarios, I do that already

So you protect yourself from unlikely, irrelevant threats by... deliberately paying strangers to MiTM your traffic?

reply
[dead]
reply
deleted
reply
I partly blame Google and Mozilla for the HTTP hysteria.

You publicly demonize something long enough and otherwise intelligent people start believing HTTPS is a magic invisibility cloak or the Good Housekeeping seal of approval for the web.

It is a tool in the toolbox and nothing more. Wearing safety goggles while making spaghetti is equally stupid.

reply
[dead]
reply
did firmware a long time. had two PIs try to force this on me for an IoT device. i pushed back and we missed a deadline. but it uses aws iot certs correctly in a secure element. the customer knew better and thanked me later, lead to 1099 work
reply
3rd party SDK requires TLS and it's not easy to bypass. Development contract doesn't allow long-term support where they can push updates if/when proper CA bundle changes.

Solution: ignore security in 1st party code outside 3rd party library that tries to prevent ignoring security.

As far as I know, most of this cheap crap is basically supply chain management companies that contract a factory to manufacturer and contract a software development/IoT/chip company to write software. Everything is waterfall-style locked in with no ongoing support or funding after the production run is done. The software company doesn't care insomuch as it "works" and working to the SCM company is "powers on and functions", not "is secure". As such, there's not much accountability. If the endeavour gets bad publicity, they just close up shop and spin up a new brand.

reply
Probably something like “What if the cert expires?”
reply
Control and $
reply
Similarly, how easy things are for more people to do. I'm certainly not advocating for pulling in a root CA over HTTP, but before LLMs could make this knowledge trivial, how many people would even think to look at that angle. It's democratizing in an interesting way.
reply
It is an interesting thought experiment: what things happen once the inertia cost to seeing how something works collapses to 0 for even a small number of your user base. Smart companies might give in now and open up their app even if only as a read-only repo. Dumb ones won’t even know to consider it. And the huge middle will wind up getting new UX ideas for free.
reply
As a data point here, the people from Ting electrical monitors should really contact me. I used their app for a few days and then built something way cooler off of it and managed to run down what was causing our high electrical usage (the well pump serving an out of control ice maker). You can’t do this at any fine-grained level, but the well pump’s electrical draw was very recognizable by just having the data logged to SQLite in real time from the Ting api and then telling Claude when the pump went on and off.

EtA: I built a skill for it https://github.com/tclancy/ai-tooling/blob/main/skills/diagn...

reply
I remember when people were like LLMs write insecure code. Well, so does literally everyone apparently, Maybe that's where it learned it. I feel like that group has gotten a lot quieter lately.
reply
When some of my colleagues started using AI, their output quality increased markedly!
reply