• harsh3466@lemmy.ml
    link
    fedilink
    arrow-up
    21
    arrow-down
    7
    ·
    edit-2
    7 months ago

    I don’t understand the actual mechanics of it, but my understanding is that it’s essentially like what happened with Volkswagon and their diesel emissions testing scheme where it had a way to know it was being emissions tested and so it adapted to that.

    The malicious actor had a mechanism that exempted the malicious code when built from source, presumably because it would be more likely to be noticed when building/examining the source.

    Edit: a bit of grammar. Also, this is my best understanding based on what I’ve read and videos I’ve watched, but a lot of it is over my head.

    • Corngood@lemmy.ml
      link
      fedilink
      arrow-up
      16
      ·
      7 months ago

      it had a way to know it was being emissions tested and so it adapted to that.

      Not sure why you got downvoted. This is a good analogy. It does a lot of checks to try to disable itself in testing environments. For example, setting TERM will turn it off.

    • arthur
      link
      fedilink
      English
      arrow-up
      14
      ·
      7 months ago

      The malicious code is not on the source itself, it’s on tests and other files. The building process hijacks the code and inserts the malicious content, while the code itself is clean, So the co-manteiner was able to keep it hidden in plain sight.

      • sincle354@kbin.social
        link
        fedilink
        arrow-up
        7
        arrow-down
        1
        ·
        7 months ago

        So it’s not that the Volkswagen cheated on the emissions test. It’s that running the emissions test (as part of the building process) MODIFIED the car ITSELF to guzzle gas after the fact. We’re talking Transformers level of self modification. Manchurian Candidate sleeper agent levels of subterfuge.

    • WolfLink@lemmy.ml
      link
      fedilink
      arrow-up
      10
      ·
      7 months ago

      The malicious code wasn’t in the source code people typically read (the GitHub repo) but was in the code people typically build for official releases (the tarball). It was also hidden in files that are supposed to be used for testing, which get run as part of the official building process.