A free and open-source rootkit for Linux

(lwn.net)

74 points | by jwilk 7 hours ago

4 comments

  • jraph 3 hours ago
    > If one did wish to use Singularity for nefarious purposes, however, the code is MIT licensed and freely available — using it in that way would only be a crime, not an instance of copyright infringement.

    Too bad the author picked the MIT license. Had they picked (A)GPL, it would have forced the criminals to distribute a copy of LICENSE.TXT alongside their improved copy of the source code on systems they compromise. Failing this, using it in that way would be both a crime and an instance of copyright infringement.

    Although, it occurs to me that if they don't give credits to the original author, it's also already a copyright infringement under the MIT.

    • ilvez 3 hours ago
      It's probably an old joke, but heard it here first. LOL
      • jraph 3 hours ago
        I don't know about you, but for ethical reasons, I only allow libre rootkits to run on my systems.
        • fc417fc802 49 minutes ago
          It's just like a gun free zone. You glue a prominent sign to your laptop that uses bright colors and an imposing font. "No proprietary software permitted!" Problem solved.
        • sva_ 2 hours ago
          Do you compile them yourself then? For possible arch specific optimizations
          • da_chicken 48 minutes ago
            Are you even free if your rootkit isn't part of Gentoo Stage 0?
    • reactordev 2 hours ago
      They checked with their lawyers first… lol.

      Pretty sure all laws are null and void in their mind.

  • bmitch3020 2 hours ago
  • markus_zhang 1 hour ago
    Ah this is so interesting. Rootkits are difficult to implement already, and RE them definitely is another level. Now we have a guidance.
  • XorNot 3 hours ago
    Man I just discovered this as a good guide on how to exceed the normal limits on Linux kernel modules.

    Been working on a derviative which hooks the VFS to allow dynamically remapping file paths on a per process basis so I can force badly behaved apps to load custom TLS certificates (looking at you Bazil builds in nixpkgs).

    (If anyone knows something which already does this it would save me a lot of yak shaving)

    • st_goliath 2 hours ago
      > how to exceed the normal limits on Linux kernel modules.

      Uh, what limits? I'm not aware of anything that would stop your module, once probed, from reaching around the back of the kernel and futzing around in the internals of another driver/device in a completely unrelated subsystem, or subsystem internals. SoC/SoM vendors love to pull that kind of crap in their BSPs.

      > hooks the VFS to allow dynamically remapping file paths on a per process basis

      Instead of messing with kernel VFS internals, you could try:

      - patching the offending application or package (ideally make the path configurable and contribute that back upstream)

      - running the application in a mount namespace and bind-mount something over the path

      - use LD_PRELOAD to wrap fopen/open/openat (I'm pretty sure, ready made solutions for this already exist)

      • fc417fc802 43 minutes ago
        > use LD_PRELOAD to wrap fopen/open/openat (I'm pretty sure, ready made solutions for this already exist)

        I think I would literally recompile libc to patch fopen/open/openat long before I would even begin to consider writing a kernel module to mess with filesystem paths on a per-process basis.

        I feel like if you find yourself seriously considering writing a kernel module then you are either contributing to kernel development, or have embarked on an adventure specifically to learn about kernel internals, or have take a very wrong turn.

    • linuxftw 1 hour ago
      > Been working on a derviative which hooks the VFS to allow dynamically remapping file paths on a per process basis so I can force badly behaved apps to load custom TLS certificates (looking at you Bazil builds in nixpkgs).

      chroot or namespaces/containers?

      • fc417fc802 40 minutes ago
        Well he said nix so it's probably hardcoded to load from the store. Tampering with the store itself might have unintended consequences if anything else references the same certificate package.