Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)M
Posts
21
Comments
418
Joined
3 yr. ago

  • a grand scale with the XZ backdoor

    The XZ backdoor, affected a lot less machines than you think. It did not affect:

    • Debian Stable, or Red Hat Enterprise Linux (and rebuilds) — RHEL/rebuilds
    • Linux distros that did not integrate ssh into ssytemd
    • Linux distros that do not use systemd

    The malicious code never made it into RHEL or Debian. Both of those distros have a model of freezing packages at a specific version. They then only push manually reviewed security updates, ignoring feature updates or bugfixes to the programs they are packaging. This ensures maximum stability for enterprise usecases, but the way that the changes are small and reviawable also causes them to dodge supply chain attacks like xz (it also enables these distros to have stable auto update features, which I will mention later). But those distros make up a HUGE family of enterprise Linux machines, that were simply untouched by this supply chain attack.

    As for linux distros that don't integrate ssh with systemd or non systemd distros being affected, that was because the malware was inactive in those scenarios. Malicious code did make it there, but it didn't activate. I wonder if that was sloppiness on the part of the maker of the malware, or intentional, having it activate less frequently as a way of avoiding detection?

    Regardless, comparing the XZ backdoor to the recent NPM and other programming language specific package manager supply chain attacks is a huge false analogy. They aren't comparable at all. Enterprise Linux distros have excellent supply chain security, whereas programming language package managers have basically none. To copy from another comment of mine about them:

    Debian Linux, and many other Linux distros, have extensive measures to protect their supply chain. Packages are signed and verified, by multiple developers, before being built reproducibly (I can build and verify and identical binary/package). The build system has layers, such that if only a single layer is compromised, nothing happens and nobody flinches.

    Programming langauge specific package repos, have no such protections. A single developer has their key/token/account, and then they can push packages, which are often built on their own devices. There are no reproducible build to ensure the binaries are from the same source code, and no multi-party signing to ensure that multiple devs would need to be compromised in order to compromise the package.

    So what happened, probably, is some developer got phished or hacked, and gave up their API key. And the package they made was popular, and frequently ran unsandboxed on devs personal devices, so when other developers downloaded the latest version of that package, they got hacked too. The attackers then used their devices to push more malicious packages to the repo, and the cycle repeats.

    And that’s why supply chain attacks are now a daily occurrence.

    And then this:

    You should probably turn off Dependabot. In my experience, we get more problems from automatic updates than we would by staying on the old versions until needed.

    Also drives me insane as well. It's a form of survivorship bias, where people only notice when automatic upgrades cause problems, but they completely ignore the way that automatic security upgrades prevent many issues. Nobody cares about some organization NOT getting ransomwared because their webserver was automatically patched. That doesn't make the news the way that auto upgrades breaking things does. To copy from yet another comment of mine

    If your software updates between stable releases break, the root cause is the vendor, rather than auto updating. There exist many projects that manage to auto update without causing problems. For example, Debian doesn't even do features or bugfixes, but only updates apps with security patches for maximum compatibility.

    Crowdstrike auto updating also had issues on Linux, even before the big windows bsod incident.

    https://www.neowin.net/news/crowdstrike-broke-debian-and-rocky-linux-months-ago-but-no-one-noticed/

    It's not the fault of the auto update process, but instead the lack of QA at crowdstrike. And it's the responsibility of the system administrators to vet their software vendors and ensure the models in use don't cause issues like this. Thousands of orgs were happily using Debian/Rocky/RHEL with autoupdates, because those distros have a model of minimal feature/bugfixes and only security patches, ensuring no fuss security auto updates for around a decade for each stable release that had already had it's software extensively tested. Stories of those breaking are few and far between.

    I would rather pay attention to the success stories, than the failures. Because in a world without automatic security updates, millions of lazy organizations would be running vulnerable software unknowingly. This already happens, because not all software auto updates. But some is better than none and for all software to be vulnerable by default until a human manually touches it to update it is simply a nightmare to me.

  • This is a message to remind myself to share my config later.

    I will state that I a, using cloudnativepg for postgres.

  • The way forgejo actions works, is that it is not a universal thing for every repo. Each repo, can have it's own forgejo actions instance connected to it, running stuff.

    The big benefit of that, is that you can make users bring their own actions servers, and not bother to deploy your own.

  • It has newer packages than Debian.

    This is not quite true. They have overlapping release cycles. A new Debian release will ship frozen versions of the latest packages, causing it to have newer packages than most ubuntu releases. Then the new ubuntu release comes out, with and it has newer packages. Ubuntu doesn't universally newer packages than debian. The difference is that Debian ONLY does security updates, and doesn't do feature updates or even bugfixes over it's lifespan. Ubuntu, on the other hand, does ship feature updates and bug fixes, incrementing the package version as they go over the lifespan of an Ubuntu release.

    Comparing the bash versions of the latest ubuntu stable version versus the current debian stable, and you'll notice that Debian has a newer bash:

     
        
    [moonpie@osiris moonpiedumplings.github.io]$ podman run -it --rm debian
    root@980ac170ddb4:/# bash --version
    GNU bash, version 5.2.37(1)-release (x86_64-pc-linux-gnu)
    Copyright (C) 2022 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    
    This is free software; you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    root@980ac170ddb4:/# exit
    exit
    [moonpie@osiris moonpiedumplings.github.io]$ podman run -it --rm ubuntu
    Resolved "ubuntu" as an alias (/etc/containers/registries.conf.d/00-shortnames.conf)
    Trying to pull docker.io/library/ubuntu:latest...
    Getting image source signatures
    Copying blob 817807f3c64e done   | 
    Copying config f794f40ddf done   | 
    Writing manifest to image destination
    root@1486a1c38699:/# bash --version
    GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
    Copyright (C) 2022 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    
    This is free software; you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    
      

    This is Ubuntu 24, the current stable release. 25/questing, the rolling version does have newer/same package versions of debian. But people don't base distros off of the rolling version of ubuntu, only the stable releases.

  • Debian Linux, and many other Linux distros, have extensive measures to protect their supply chain. Packages are signed and verified, by multiple developers, before being built reproducibly (I can build and verify and identical binary/package). The build system has layers, such that if only a single layer is compromised, nothing happens and nobody flinches.

    Programming langauge specific package repos, have no such protections. A single developer has their key/token/account, and then they can push packages, which are often built on their own devices. There are no reproducible build to ensure the binaries are from the same source code, and no multi-party signing to ensure that multiple devs would need to be compromised in order to compromise the package.

    So what happened, probably, is some developer got phished or hacked, and gave up their API key. And the package they made was popular, and frequently ran unsandboxed on devs personal devices, so when other developers downloaded the latest version of that package, they got hacked too. The attackers then used their devices to push more malicious packages to the repo, and the cycle repeats.

    And that's why supply chain attacks are now a daily occurrence.

  • No, they're dual licensed. Canonical has users contributing signing a Contributor License agreement, in which they agree to allow Canonical to distribute alternatively licesed, or proprietary versions.

    This change was somewhat controversial, and partially why Incus was forked from LXD.

    • oauth, and control sign ups via there. Don't let people sign up via forgejo itself.
    • anubis, yeah. Or similar.
    • forgejo actions is an optional component... and forgejo users can bring their own actions server. Of course, it's a risk to them since the server owner could execute code in actions. But yeah.
  • Void auth, or kanidm look like easier alternatives.

  • I have installed an OS onto just the btrfs root subvolume, leaving the home directory intact. This is how I originally swapped from Manjaro to Arch. The arch manual install instructions helped.

    But this should be a feature of the graphical installers imo.

  • Transparent fileystem compression and deduplication (btrfs feature not in ext4) compresses data while still having it be accessible normally. This leads to big space savings.

    You can use the tool compsize to check it out.

  • Postgres jsonb?

  • I like ORM's because they prevent sql injection. Mostly. Sql injection is a really bad vuln that's nowhere near as ubiqitous as it used to be for every php app, and that's partly due to ORM's.

  • I don't hate on any language's syntax tbh, but the tooling for nix is absolutely miserable compared to similar.

    People hate on yaml a lot, but I can start typing and then press tab and it completes a whole template for whatever k8s objecy I am trying to make. Having to copy from my other project's shell.nix/whatever into the new one feels miserable in comparison.

  • Journalists communicating with sources in censored regions

    Whistleblowers sharing information securely

    You and your peer agree on an encryption key (any string).

    This is unacceptably unsecure for the usecases you mention. There is a reason why the most secure messaging apps don't use symetric encryption, don't use passphrases, and they also possess forward secrecy.

    It's pointless to push this as a censhorship circumvention method when many other methods exist that already do so 10x better, in a secure way, over decentralized, hidden and unblockable infrastructure. (Tor's meek-azure bridges use microsoft's infrastructure, which nobody is able to block because everybody depends on it, even China).

    I appreciate the project, and I am always happy to see people learning, progressing, and publishing their results, but you need to be honest about the weaknesses of your software compared to established solutions. It's not impossible for you to one day produce a secure messaging app, but today is not the day. Right now, using this is just a fast way to get killed.

  • Also try wireguard over port 53. Often (udp) traffic to port 53 is unblocked because it's needed for DNS.

    What is special about this setup is that it can sometimes get around captive portal wifi.

  • hides as regular HTTPS traffic so it’s not blockable by Firewalls

    From OP's post, of course. If OP does not need to evade firewalls that are that aggressive, then they should have settled for a less stealthy VPN solution, as many of these HTTPS proxy solutions have performance and usability (can often only proxy TCP traffic) tradeoffs.

    Perhaps they have already tried the wireguard on port 443 solution, and it didn't work for them. My high school would auto detect and block wireguard to any port. Perhaps they are in a similar situation.

  • Many of the prominent https VPN protocols are for evading the great firewall of China. OP had that as a requirement, so it is not an unreasonable assumption.

    If you are evading less locked down firewalls, then you don't need as stealthy VPNs.