this post was submitted on 22 Aug 2026
308 points (96.4% liked)

linuxmemes

32577 readers
2127 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack users for any reason. This includes using blanket terms, like "every user of thing".
  • Don't get baited into back-and-forth insults. We are not animals.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry of any kind will not be tolerated. This is an LGBTQ+-friendly community -- if that is a problem for you, you should leave.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn, no politics, no trolling or ragebaiting.
  • Don't come looking for advice, this is not the right community.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, <loves / tolerates / hates> systemd, and wants to interject for a moment. You can stop now.
  • 5. πŸ‡¬πŸ‡§ Language/язык/Sprache
  • This is primarily an English-speaking community. πŸ‡¬πŸ‡§πŸ‡¦πŸ‡ΊπŸ‡ΊπŸ‡Έ
  • Comments written in other languages are allowed.
  • The substance of a post should be comprehensible for people who only speak English.
  • Titles and post bodies written in other languages will be allowed, but only as long as the above rule is observed.
  • 6. (NEW!) Regarding public figuresWe all have our opinions, and certain public figures can be divisive. Keep in mind that this is a community for memes and light-hearted fun, not for airing grievances or leveling accusations.
  • Keep discussions polite and free of disparagement.
  • We are never in possession of all of the facts. Defamatory comments will not be tolerated.
  • Discussions that get too heated will be locked and offending comments removed.
  • Β 

    Please report posts and comments that break these rules!


    Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't remove France.

    founded 3 years ago
    MODERATORS
     
    top 50 comments
    sorted by: hot top controversial new old
    [–] ICastFist@programming.dev 7 points 11 hours ago (1 children)

    Time to get back to Assembly, I guess.

    But do you trust the CPU?

    Well, fuck

    [–] AnUnusualRelic@lemmy.world 2 points 8 hours ago

    The CPU runs Minix, are you going to tell me you don't trust Minix now?

    [–] demizerone@lemmy.world 4 points 1 day ago

    I think about this every day.

    [–] rizzothesmall@sh.itjust.works 17 points 1 day ago (3 children)

    Maybe? If you poison the prompt then there's evidence and it can be undone. Poison fragments of the source training data, however, and that's some KT shit right there. Enterprise foundation models cost bonkers money to train and pretty much slurp up all the data on the internet for mostly automated annotation. Stick something in an obscure part of the internet which becomes part of the training and produces the malicious response and it's going to be both hard and expensive to detect or correct.

    [–] ICastFist@programming.dev 1 points 2 hours ago

    Should be relatively easy, with the amount of once trusted packages that become attack vectors

    [–] CheesyFox@lemmy.sdf.org 7 points 1 day ago (1 children)

    except for poison to take in, it should be a pretty significant part of the dataset. Also, ngl, i'm not much informed on the topic, but aren't all the datasets, if we're talking about generic diffusion models and LLMs, already been formed? From what i gather, the innovation in AI mainly comes from utilizing new architectures, rather than training a model on something unique.

    [–] rizzothesmall@sh.itjust.works 8 points 1 day ago (2 children)

    The datasets are constantly expanding as new content is generated online. There's a degradation issue currently where the models are training on incorrect data generated by previous iteration of their own or other models and effectively poisoning itself to more confidently give the same incorrect information in future.

    [–] CheesyFox@lemmy.sdf.org 2 points 1 day ago* (last edited 1 day ago) (1 children)

    i've heard of the dataset poisoning and degradation caused by llm-generated content present in the dataset myself, but i'm not sure whether it was a practical observation, or a mere experiment. And I still fail to see how new datasets are really useful for developing a new llms, or how it's a problem for the devs to switch back to the older datasets.

    And the cornerstone stays the same: to have any significant effect on the final LLM quality, shouldn't the poisoned (either by llm-produced content, or by intentional poisoning) data portion be... well, statistically significant?

    [–] dustyData@lemmy.world 1 points 7 hours ago* (last edited 7 hours ago)

    One thing to keep in mind is that, when it comes to LLMs, the models have not significantly changed in architecture.

    There's been new experiments and advancements in architecture on neural networks, and machine learning for specific applications. But LLM, as they are being commercialized by AI corporations to the general public, have stayed relatively the same. Except for one thing. Increasing in size. Larger datasets, or more specialized datasets like with coding, and larger number of tokens in memory. This is why it takes such large data centers. It's all been just brute forcing greater capabilities by enlarging the models.

    One of the things with LLM is that all the dataset influences the weighs and probabilities of the results. Even if the dataset includes a single event of a chain of words (think of the pizza with superglue incident), it can show up in the results eventually.

    [–] Onomatopoeia@lemmy.cafe 86 points 2 days ago (1 children)
    [–] SpaceNoodle@lemmy.world 30 points 2 days ago

    Dev is screwed.

    [–] rtxn@lemmy.world 63 points 2 days ago (3 children)
    [–] Valmond@lemmy.dbzer0.com 6 points 1 day ago

    Quis custodiet ipsos custodes?

    [–] Redjard@reddthat.com 18 points 2 days ago (1 children)

    I've had it on my todo for years to work through ddc and trusting trust.
    Which is a method to verify a compiler is matching its source and thus trustworthy.

    An orthogonal approach is reproducible builds, which among many benefits can make sure a few people verifying things benefit everyone who can then see they have the same verified binaries.

    [–] eah@programming.dev 4 points 1 day ago
    load more comments (1 replies)
    [–] not@lemmy.dbzer0.com 30 points 2 days ago (3 children)
    [–] Natanox@discuss.tchncs.de 6 points 1 day ago (1 children)

    The ending is rather unsatisfactory.

    [–] einfach_orangensaft@sh.itjust.works 2 points 1 day ago (1 children)

    spoilerSome how like all sophisticated technical stories about ai it ends with the acceptance that there is nothing we can do because the alternative would be going back to analog.

    [–] Natanox@discuss.tchncs.de 2 points 1 day ago

    Sounds like quitter talk to me. It's not like AI is an evolutionary process that just happens somewhere, it's a localized tool - and even if it spreads itself, that would be by far the most humonguous virus ever. I think those authors just write down their own fears.

    load more comments (2 replies)
    [–] abbadon420@sh.itjust.works 39 points 2 days ago (1 children)

    The very fact that Anthropic is now injecting a kind of watermark into every output, is solid proof that such a Ken Thompson hack is a inevetable risk

    [–] AudaciousArmadillo@piefed.blahaj.zone 15 points 2 days ago (1 children)

    Ugh. Fuck "AI" and fuck Anthropic. But please read how the "watermarks" work. TL;TR its like a seeded run in a video game. With the seed and pseudo rng, you get the outcome i.e. the extruded text. In the watermark its the reverse, outcome + prng = seed. The result will be the same "quality" extruded garbage as before.

    [–] douglasg14b@lemmy.world 10 points 1 day ago (1 children)

    Good luck.

    Lemmy is damn near the when it comes to wanting to hold an opinion on a topic without having first understood that topic.

    [–] Axolotl_cpp@feddit.it 11 points 1 day ago

    That's just a reflection of the real life and not unique to Lemmy, dw

    [–] irotsoma@piefed.blahaj.zone 20 points 2 days ago (1 children)

    Devs should be "dev managers and executives". Real developers know LLMs are basically just a tool for finding examples and helping with syntax. Sure they're useful, but I'd never let them write code, much less compile it. Who knows what they'd inject into a build.

    [–] Natanox@discuss.tchncs.de 4 points 1 day ago

    Real developers know LLMs are basically just a tool for finding examples and helping with syntax.

    Your words on gods ears. I also found it to be reasonably useful when you're stuck in the documentation of a library clearly written by and for people who already know it.

    Unfortunately people who do not understand code are blissfully ignorant at what garbage they have the machine spit out. Of course until the LLM nukes their whole project folder or even disk because the probability engine unfortunately picked "clean slate" as the most probable next thing. Not as if that ever happened at companies, lol.

    [–] LodeMike@lemmy.today 8 points 2 days ago (1 children)
    [–] zbyte64@awful.systems 15 points 1 day ago (1 children)
    [–] spizzat2@lemmy.zip 18 points 1 day ago* (last edited 1 day ago) (2 children)

    notice

    javascript required to view this site

    why

    measured improvement in server performance

    awesome incremental search

    Boo! Just give me the text!

    Edit: It's long, but here's the opening section, at least:


    In 1984 KenThompson was presented with the ACM TuringAward. Ken's acceptance speech Reflections On Trusting Trust (http://cm.bell-labs.com/who/ken/trust.html) describes a hack (in every sense), the most subversive ever perpetrated, nothing less than the root password of all evil.

    Ken describes how he injected a virus into a compiler. Not only did his compiler know it was compiling the login function and inject a backdoor, but it also knew when it was compiling itself and injected the backdoor generator into the compiler it was creating. The source code for the compiler thereafter contains no evidence of either virus.

    Ken wrote, In demonstrating the possibility of this kind of attack, I picked on the C compiler. I could have picked on any program-handling program such as an assembler, a loader, or even hardware microcode. As the level of program gets lower, these bugs will be harder and harder to detect. A well installed microcode bug will be almost impossible to detect.

    Ken does not mean bug in the sense of error, but in the sense of listening device. And it is "almost" impossible to detect because TheKenThompsonHack easily propagates into the binaries of all the inspectors, debuggers, disassemblers, and dumpers a programmer would use to try to detect it. And defeats them. Unless you're coding in binary, or you're using tools compiled before the KTH was installed, you simply have no access to an uncompromised tool.

    In fact, given the amenability of microcode to the KTH, not even then.

    All manner of controls and monitors could be secreted this way in the OSes of all the devices we all use day to day. It isn't very far fetched to suggest that the hack, in software, can create an updatable backdoor. This way every piece of software on the planet can be KTH bugged without any possibility of detection by any mortal engineer anywhere.

    Well, maybe with the diligent use of an electron microscope.

    Given last week's horrifying revelations concerning the US government's TotalInformationAwareness of every US domestic phone call, it is difficult to imagine that the ThreeLetterAgency's KTH-hacked binaries are not omnipresent. I mean, can you really imagine AdmiralPoindexter would pass up an ability like this?

    [–] Magnum@infosec.pub 4 points 1 day ago

    Doesn't Ken's virus depend on the fact that the compiler (a pre-existing binary version thereof) was used to bootstrap itself? Had a different compiler been used to compile the compiler, the virus would have been killed. No. Ken notes "I could have picked on any program-handling program such as an assembler, a loader, or even hardware microcode." Put it in the linker, say, and all your compilers are affected. You could use a debugger to inspect the compiler's operation. Perhaps a debugger toggled in via the patch panel on the front of a PDP-10 ... otherwise s/login/debugger/ in what Ken said and paste in another trojan or two. How about modification of the compiler sources for another reason? Might have fooled the "am I compiling myself" algorithm, or might have caused the Trojan to have been inserted incorrectly. There are no C compilers out there that don't use yacc and lex. But again, the really frightening thing is via linkers and below this hack can propagate transparently across languages and language generations. In the case of cross compilers it can leap across whole architectures. It may be that the paranoiac rapacity of the hack is the reason KT didn't put any finer point on such implications in his speech ... These examples are not given to rebut Thompson's point (which is a valid one), but instead to remind of good practices to prevent this sort of thing. What practices? I can't think of any way to do it without the resources of a major TLA. KTH demonstrates that we are not able to fully trust any binary even when we have compiled it ourselves from trustworthy sources on a system we have compiled ourselves. The OpenSourceMovement might have an off switch ... but your cell phone probably does not.


    It's been more than twenty years since I read Thompson's marvelous paper, but I believe I correctly recall his fundamental point: UNIX, and every system like it, can NEVER be "secure". It doesn't matter how many layers of anti-virus software, "internet worm protection", "firewall" or any other buzzword -- systems like UNIX (including all versions of Linux, Macintosh OSX, and all versions of WinXP) will NEVER be secure. Thompson published his paper and revealed his hack in order to demonstrate this point. Whereas what systems are secure? Ones that are not compiled from source code, presumably. And certainly not, say, Windows which you left of your list by sheer coincidence.


    In August 2009 a virus utilizing the Ken Thompson hack was seen in the wild. It infected Delphi 4 through 7 and applications genereated with it. http://www.h-online.com/security/Virus-infects-development-environment--/news/114031


    Although non-trivial, an effective counter has been identified: http://www.schneier.com/blog/archives/2006/01/countering_trus.html. That's only (and trivially) effective if you already have a trusted compiler executable. The problem is generating one of those in the first place. Living in the era of PRISM, we can guarantee you can't get one online - KTH in the network will see to that. You sure didn't get one shipped with your OS - all the commercial OS mfrs are compromised and the open source ones all went through PRISM's internet. The only way you're going to get a clean compiler executable now is to build your computer yourself out of TTL logic you salvage from some museum somewhere, then code up a set of basic binary tools sufficient to assemble assembler. Then bootstrap from the source of all the modern tools. This actually sounds like a worthy project until you realize that the only person who could possibly trust your clean compiler executable is you. No one else will know for sure that you're not secretly working for PRISM. Or that you're not just too careless, or that black hats didn't hack their way into your garage and add the KTH while you weren't looking. And even if you got far enough to prove something, the great conspiracy would dose you with mind-altering chemicals or blackmail you into silence or discredit you or similar. Face it, little dude, against TheKenThompsonHack there simply is no defense. Little dude? Why the put down? Who are you putting down, all of us? Please see GoodStyle. {I don't think it was intended to be a put-down so much as a colloquial generic diminutive used as a rhetorical invective to imply weak superiority. It suggests the writer was not confident in his/her claim that "against TheKenThompsonHack there simply is no defense", and subconsciously sought to blunt the full force of the assertion by diminishing the reader.}

    • [Dude. Print out the hexdump of the disassembler, disassemble it manually, see that it works, then use it as the first step in analyzing the compiler. Oh, and TheKenThompsonHack is trivially visible in the .s file if you're looking for it.]
    • {You're assuming the disassembler, hexdump tool, editor you use to read the .s file aren't all compromised.}
    • Yep. The weakness in TheKenThompsonHack isn't there. It's in the fact that it will have to make mistakes in identifying the disassemblers, hexdump tools, editors, compilers, etc. Somewhere, there's a program whose output it will change but it shouldn't have, or a program whose output it should have changed but didn't. See TuringIncompletenessTheorem.

    '''I've never been able to understand why simply doing some programmatic transformation of your compiler first isn't considered a good defense. Basically just obfuscating the code. For such a backdoor to work the injection point needs to be recognized by the injector. So if one ... Started with a corrupted compiler and then obfuscated it's source. Then compiled the obfuscated but "clean" source with the corrupted compiler. One should end up with a clean and uncorrupted compiler. Then compile the unobfuscated source with the "washed" compiler (if the obfuscation significantly degraded the performance of the compiler). If in my paranoia I needed to bootstrap an entire toolchain this way. I'd start with an FPGA. Use it to emulate an FPGA (at horrendous loss of efficiency). Then use the emulated FPGA to run a custom simple soft-CPU. Preferably hand written. Ad then bootstrap a build toolchain using some expensive obfuscations for the first pass after which the tools are considered clean. One would probably always need to be careful of the CPU the toolchain runs on though, but similar obfuscation arguments should apply...'' How do you know that the compromised compiler won't recognize the obfuscation you used? If it does, your "clean" compiler is no longer clean. (The FPGA and CPU solution has the same problem.)


    Wouldn't it be extremely hard (in any sense I can think of) to actually be able to recognize every program that does a particular operation? Say you wrote a program that runs a JVM implementation of a MIPS emulator that can make host system calls that runs a program that implements login by reading whatever files contain the passwords in backwards and converting them to EBCDIC before doing processing on them. I find it hard to believe that the KTH-implementing compiler would actually recognize anything that program is doing. Yes, it will have to make mistakes somewhere. This is because any implementation that was always correct could be used to solve the HaltingProblem. But this doesn't make any particular trick undetectable. What they detect is mostly a matter of whether or not they thought of it and whether or not they considered checking for it worth the effort.

    [–] Lumisal@lemmy.world 4 points 1 day ago (1 children)

    Can't you just check network connections for suspicious activity? At some point the thing affected by the KTH would send an outbound signal either of data collected, or inbound signals if it's updating the backdoor.

    [–] horsesaysweird@feddit.org 4 points 1 day ago (1 children)

    I think the point is that you can't trust any software. Hardware you can only trust if you built it yourself from simple logic components like transistors. Not sure how you would observe network traffic on that basis, but it's probably physically impossible to do because it would be so slow that you would die before you finished checking just one day worth of HTTPS requests.

    [–] Lumisal@lemmy.world 3 points 1 day ago

    You can automate a task to analyze the network traffic (though don't underestimate human checks - remember the guy that noticed something was off by like 0.1% and discovered the logistics attack on Linux?).

    Also, you can probably trust hardware made yourself that's more than that, like FPGA.

    [–] dan@upvote.au 11 points 2 days ago* (last edited 1 day ago) (2 children)

    At work, I use AI for some things. Right now I'm rewriting some legacy spaghetti code that's had a bunch of things hacked into it over the years. I spoke to the person most familiar with the expected behaviour and used AI to combine his info plus the existing code and unit/integration tests into a list of requirements.

    I wrote the new code and tests based on the requirements rather than based on the old code. After each commit, I used AI to check for parity between the old and new code, and it keeps a Google Sheet up to date with the progress (which features were fully implemented, and which ones were missing or had gaps). I had AI write some tests cases too - given the list of requirements, write integration tests for them based on the style of a few tests I wrote by hand.

    It has some quirks (eg for tests it loves over-mocking even though our skills tell it to mock as little as possible) but it definitely speeds things up.

    I use AI for small side projects at work too. Tweaking and adding features I want to shared libraries, internal tools to help our team debug stuff and automate triaging of bug reports (they're all still reviewed by a human), etc.

    The entire reason I can trust its code is because I can read it and tweak it myself. I sometimes need to go through a few iterations to get AI code into an acceptable state. AI writing machine code directly, like what's been talked about recently and what this post is referencing, is such a dumb idea.

    There's other people at work that use AI for absolutely everything. Writing code, reading code, writing posts in our internal groups, etc. That's something I don't understand. Some people that are all-in on AI produce so much low-quality AI slop.

    [–] luciferofastora@feddit.org 3 points 13 hours ago

    I think that's the distinction between an expert using a tool diligently and responsibly, and a lazy person using it haphazardly as a crutch.

    If that tool ever gets ripped out from under you, you'll possibly suffer a loss in performance, but you'll still be able to perform and do your job.

    If their crutch is kicked out, they'll crash.

    load more comments (1 replies)
    load more comments
    view more: next β€Ί