this post was submitted on 01 Apr 2024
9 points (100.0% liked)

Linux

45457 readers
1409 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 
top 15 comments
sorted by: hot top controversial new old
[–] [email protected] 1 points 3 months ago (2 children)

Don't forget all of this was discovered because ssh was running 0.5 seconds slower

[–] [email protected] 0 points 3 months ago (1 children)

Its toooo much bloat. There must be malware XD linux users at there peak!

[–] [email protected] 2 points 3 months ago* (last edited 1 month ago) (1 children)

Tbf 500ms latency on - IIRC - a loopback network connection in a test environment is a lot. It's not hugely surprising that a curious engineer dug into that.

[–] [email protected] 1 points 3 months ago

Especially that it only took 300ms before and 800ms after

[–] [email protected] 0 points 3 months ago (1 children)

Is that from the Microsoft engineer or did he start from this observation?

[–] [email protected] 0 points 3 months ago (1 children)

From what I read it was this observation that led him to investigate the cause. But this is the first time I read that he's employed by Microsoft.

[–] [email protected] 0 points 3 months ago (1 children)

I've seen that claim a couple of places and would like a source. It very well may be since Microsoft prefers Debian based systems for WSL and for azure, but its not something I would have assumed by default

[–] [email protected] 2 points 3 months ago

but it's* not something

[–] [email protected] 1 points 3 months ago

A small blurb from The Guardian on why Andres Freund went looking in the first place.

So how was it spotted? A single Microsoft developer was annoyed that a system was running slowly. That’s it. The developer, Andres Freund, was trying to uncover why a system running a beta version of Debian, a Linux distribution, was lagging when making encrypted connections. That lag was all of half a second, for logins. That’s it: before, it took Freund 0.3s to login, and after, it took 0.8s. That annoyance was enough to cause him to break out the metaphorical spanner and pull his system apart to find the cause of the problem.

[–] [email protected] 1 points 3 months ago (1 children)

Thank you open source for the transparency.

[–] [email protected] 1 points 3 months ago

And thank you Microsoft.

[–] [email protected] 1 points 3 months ago (1 children)

I know this is being treated as a social engineering attack, but having unreadable binary blobs as part of your build/dev pipeline is fucking insane.

[–] [email protected] 0 points 3 months ago* (last edited 3 months ago) (1 children)

It's not uncommon to keep example bad data around for regression to run against, and I imagine that's not the only example in a compression library, but I'd definitely consider that a level of testing above unittests, and would not include it in the main repo. Tests that verify behavior at run time, either when interacting with the user, integrating with other software or services, or after being packaged, belong elsewhere. In summary, this is lazy.

[–] [email protected] 0 points 3 months ago (1 children)

and would not include it in the main repo

Tests that verify behavior at run time belong elsewhere

The test blobs belong in whatever repository they're used.

It's comically dumb to think that a repository won't include tests. So binary blobs like this absolutely do belong in the repository.

[–] [email protected] -1 points 3 months ago* (last edited 3 months ago)

A repo dedicated to non-unit-test tests would be the best way to go. No need to pollute your main code repo with orders of magnitude more code and junk than the actual application.

That said, from what I understand of the exploit, it could have been avoided by having packaging and testing run in different environments (I could be wrong here, I've only given the explanation a cursory look). The tests modified the code that got released. Tests rightly shouldn't be constrained by other demands (like specific versions of libraries that may be shared between the test and build steps, for example), and the deploy/build step shouldn't have to work around whatever side effects the tests might create. Containers are easy to spin up.

Keeping them separate helps. Sure, you could do folders on the same repo, but test repos are usually huge compared to code repos (in my experience) and it's nicer to work with a repo that keeps its focus tight.

It's comically dumb to assume all tests are equal and should absolutely live in the same repo as the code they test, when writing tests that function multiple codebases is trivial, necessary, and ubiquitous.