Transcript

Image of a man pointing a gun at his own foot.

Caption: Installing an AUR package without reading it’s PKGBUILD.

  • KernelTale@programming.dev
    link
    fedilink
    English
    arrow-up
    6
    ·
    23 hours ago

    If it’s endorsed by the project team I might as well. At that point it’s the same as downloading from GitHub and if I am in AUR I’ve probably not found it in standard repos nor flathub.

    • Jesus_666@lemmy.world
      link
      fedilink
      English
      arrow-up
      28
      ·
      1 day ago

      If you want a bunch of stuff that’s not in core or extra and you don’t want to intensely babysit the AUR, you could try Chaotic-AUR. It hosts prebuilt packages for a bunch of AUR packages which are actively maintained by the Chaotic team.

      I consider it to be more secure than the AUR proper since they actually care for their packages and review nontrivial changes. For instance, the recent takeover attacks didn’t hit Chaotic-AUR builds since the changed packages didn’t make it past the review.

      It’s still an unofficial third-party repository and closer to the AUR than to extra but I consider it a major step up.

    • Azzu@leminal.space
      link
      fedilink
      arrow-up
      17
      arrow-down
      1
      ·
      2 days ago

      I mean how often do you install AUR packages? Usually takes like a minute or so to skim through PKGbuild and the pkg comments and look for obvious issues. And most updates are just a sha hash and version change, taking like 5s to check.

      • HereIAm@lemmy.world
        link
        fedilink
        arrow-up
        12
        ·
        1 day ago

        But wasn’t the latest AUR attack from a dependancy in the pkgbuild? Going out of your way to review all the dependencies as well is not really possible by just skimming through the script.

      • Baŝto@discuss.tchncs.de
        link
        fedilink
        English
        arrow-up
        6
        ·
        1 day ago

        I need a better wrapper that shows me diffs since last build. I’m too lazy for this

        Also pulling in release messages from git etc would be nice

      • NaibofTabr@infosec.pub
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        1
        ·
        24 hours ago

        Rarely, to be sure. I tried Arch for a bit, but I need a computer that I can actually use to get shit done, that isn’t a constant project itself. Even Qubes doesn’t require as much effort to keep operational.

  • Richard@lemmy.world
    link
    fedilink
    arrow-up
    11
    ·
    1 day ago

    Nah, if you really want to live on the bleeding edge you gotta make blindly installing vibecoded junk from shady parts of the AUR part of your workflow

  • Wilmo@programming.dev
    link
    fedilink
    English
    arrow-up
    4
    ·
    23 hours ago

    I use Arch without touching this AUR in my latest install. Just use what’s in the main package repos or flathub

    • printf("%s", name);@piefed.blahaj.zone
      link
      fedilink
      English
      arrow-up
      42
      ·
      edit-2
      2 days ago

      This video taught me a lot.

      Check the list of dependencies. If you really want to vet the package, look through all of the dependencies listed and read their package descriptions on their source page (github, gitlab, codeberg, whathaveyou). Check also the URL, from which makepkg (or yay or whatever) is going to pull some of the data. Is the URL legit?

      PKGBUILD of localsend
      # Maintainer: NourEddineX  
      # Contributor: Nixuge  
      # Contributor: Noah Vogt <noah@noahvogt.com>  
      # Contributor: SpieringsAE (aarch64 addition)  
      
      # Note: 
      # using the .deb instead of the .tar.gz as it already contains the icons as well as the .desktop file.  
      
      pkgname=localsend-bin  
      pkgver=1.18.0  
      pkgrel=1  
      pkgdesc='An open source cross-platform alternative to AirDrop'  
      
      LOOK HERE  
      url=https://github.com/localsend/LOCALSEND  
      LOOK HERE  
      
      arch=('x86_64' 'aarch64')  
      license=(Apache-2.0)  
      
      LOOK HERE  
      depends=(fuse2 xdg-user-dirs libayatana-appindicator)  
      LOOK HERE  
      
      conflicts=('localsend')  
      provides=('localsend')  
      options=(!debug)  
      source_x86_64=("${url}/releases/download/v${pkgver}/LocalSend-${pkgver}-linux-x86-64.deb")  
      source_aarch64=("${url}/releases/download/v${pkgver}/LocalSend-${pkgver}-linux-arm-64.deb")  
      sha256sums_x86_64=('dae68192ad43a59a68df06454eb5fa4e9a9f86a343fe430165efd8b18863d0f4')  
      sha256sums_aarch64=('eb24e724fbdf830c8fb07dfc66b76b8a649923d083278305a63d5d539db4b606')  
      _pkgdesktop="localsend_app.desktop"  
      
      
      prepare() {  
      	tar -xf data.tar.zst  
      }  
      
      build() {  
      	sed -i -E \  
      		"s|Exec=localsend_app|Exec=localsend|" \  
      		"${srcdir}/usr/share/applications/${_pkgdesktop}"  
      
      	# Adjust .desktop to have it point to the correct icon  
      	sed -i -E 's/^Icon=.+/Icon=localsend/' "${srcdir}/usr/share/applications/${_pkgdesktop}"  
      }  
      
      package() {  
      	# Desktop  
      	install -Dm644 "${srcdir}/usr/share/applications/${_pkgdesktop}" "${pkgdir}/usr/share/applications/${pkgname%-*}.desktop" 
      	
      
      	# Icons  
      	install -dm644 "${pkgdir}/usr/share/icons/"  
      	cp -a "${srcdir}/usr/share/icons" "${pkgdir}/usr/share"  
      	# Dirty - rename icons to localsend  
      	for res in "128x128" "256x256"; do  
      		mv "${pkgdir}/usr/share/icons/hicolor/${res}/apps/localsend_app.png" "${pkgdir}/usr/share/icons/hicolor/${res}/apps/localsend.png"  
      	done  
      
      
      	# Executable  
      	install -dm755 "${pkgdir}/opt/${pkgname%-*}/"  
      	cp -a "${srcdir}/opt/localsend_app/." "${pkgdir}/opt/${pkgname%-*}"  
      	# Same as icons - rename to localsend  
      	mv "${pkgdir}/opt/${pkgname%-*}/localsend_app" "${pkgdir}/opt/${pkgname%-*}/localsend"  
      
      	# Symlink executable  
      	install -dm755 "${pkgdir}/usr/bin"  
      	ln -s \  
      		"/opt/${pkgname%-*}/${pkgname%-*}" \  
      		"${pkgdir}/usr/bin/${pkgname%-*}"  
      }  
      
      • Kangae_Hishiryo@scribe.disroot.org
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        19 hours ago

        Yeah. There’s also some others behaviours to look at.

        Like, does the PKGBUILD install the package on some non-standard location? That’s a suspicious behaviour, although it’s not an automatic red flag by itself.

        Does it execute arbitrary code or any external script (worse if it’s Python, Lua or JS)? That’s a HUGE red flag in most of cases.

        Does it (ab)uses of AWK, sed and the like? That’s also suspicious in a variety of cases.

    • Malix@sopuli.xyz
      link
      fedilink
      arrow-up
      25
      ·
      2 days ago

      as the other commenter said, but worth echoing:

      • is it suddenly using npm to install/run something? (iirc this was the attack vector for most packages that were infected)
      • suddenly added some weird extra wget/curl/whatever to packaging methods to fetch something weird?
      • are the package’s sources (eg. github urls) legit?

      Generally you should be aware of who’se software you’re installing -> check if it’s downloading the stuff from right place, and nothing extra. The PKGBUILD changes in the aur website are pretty good indicator if something has changed and how.

      edit: npm itself, or it’s usage isn’t bad - but it is quite suspicious if the AUR package isn’t for some webapp or so.

    • dwt@feddit.org
      link
      fedilink
      Deutsch
      arrow-up
      11
      ·
      2 days ago

      I think that the whole concept of sharing user repos to install packages is sadly not really good anymore. Because now it suddenly exposes that there is usually neither a trust anchor to that repo, nor an established review and fix process for such things.

      I‘d say, just use the community maintained official package sources for now.

    • realitaetsverlust@piefed.zip
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      1
      ·
      1 day ago

      I don’t mean this in any mean way, but if you don’t know what you should be looking for, you probably shouldn’t install AUR packages. Just as I wouldn’t recommend someone who has never climbed a mountain to try mt everest.

      You need to be able to understand the build process before you install anything from the AUR. Everything else is the equivalent of installing random exe’s you found on a forum on windows.

      Luckily, there’s a lot of different videos online regarding the AUR build process, and the archwiki has an excellent article aswell.

      • call_me_xale@lemmy.zip
        link
        fedilink
        arrow-up
        2
        ·
        1 day ago

        To be clear, I have like… three? extremely popular AURs installed - I’m definitely not in the habit of grabbing random stuff.

      • massive_bereavement@fedia.io
        link
        fedilink
        arrow-up
        6
        ·
        1 day ago

        That might work until they realize people are doing it and then just add the right circumventions. After all I can test my exploit and see if Claude or Gemini can find it, and polish it until they don’t.

      • MonkderVierte@lemmy.zip
        link
        fedilink
        arrow-up
        6
        ·
        1 day ago

        The compromised packages load a script from thr net that runs a compromised npm package (“atomic-lockfile” 1.4.2).

        Ok, also a AUR issue. But more so a NPM one, since they have all full moon two supply-chain attacks.

  • zitrone 🍋@europe.pub
    link
    fedilink
    arrow-up
    10
    ·
    1 day ago

    just use nix instead

    we have super secure mechanisms in place to prevent supply chain attacks

    /s (nix just hasn’t been targeted yet (as far as we know 💀💀))

    • Euphoma@lemmy.ml
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 day ago

      Yeah, I just update all 20 flakes that I sourced from github and pray that none of them were hacked

    • chortle_tortle@mander.xyz
      link
      fedilink
      arrow-up
      3
      ·
      1 day ago

      /s (nix just hasn’t been targeted yet (as far as we know 💀💀))

      Isn’t the real security through obscurity just being such a fringe market no one bothers? 🤔

  • Nalivai@lemmy.world
    link
    fedilink
    arrow-up
    15
    ·
    1 day ago

    I’m running Arch daily since 2015, was on Debian before. I install and try a lot of stuff. Never had anything bad happened to me once. Worst case scenario the shit I just installed didn’t work so I have to debug it.
    Not endorsing this apparently dangerous lifestyle, but also a little bit maybe

    • Funkt4st1c@lemmy.world
      link
      fedilink
      English
      arrow-up
      5
      ·
      1 day ago

      Yeah same. Aur has been significantly less virus prone than the windows norm (inb4 wut abut winget >;ppp) of “Googling some shit you want and clicking the first website to roll the dice on predatory ads or malware or maybe the thing you wanted”

      …not to mention if you have btrfs you can just rollback a month or two and call it a day.

    • Baŝto@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 day ago

      Not updating AUR packages saved me from the last incedent 🙃I had 6 or sth packages installed who were in the list

    • yeehaw@lemmy.ca
      link
      fedilink
      arrow-up
      2
      ·
      1 day ago

      I get why we need to do this but most people are not programmers either and probably don’t understand wtf they’re looking at.

      While I understand some of what um looking at, when in just trying to get the updates over with its super annoying to review each aur pkgbuild.

  • Solrac@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    24 hours ago

    I was contemplating moving to NixOS, but then another fiasco just happened, masse me question what would one have to lose by switching to Qubes instead, considering the increasingly surveiling internet.

  • Kangae_Hishiryo@scribe.disroot.org
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    1 day ago

    I once found a Rust program that streamlined the PKGBUILD reviewing process a lot by, first of all, giving you a really neat list of patterns and behaviours that would make a PKGBUILD suspicios or even plain dangerous, then having a scriptable rule-based engine that would either abort that operation, or show warns and workarounds to you.

    I forgot its name, unfortunately, and I installed it on my previous installation (Garuda, now I’m on CachyOS).

    Very dumb of my part not to try to write that down before the OS change lol.

  • sel@piefed.social
    link
    fedilink
    English
    arrow-up
    1
    ·
    24 hours ago

    I just don’t understand the process of I don’t have two minutes to read what I’m installing. It’s fucking batshit crazy that all these retards want to come use Linux which is fine but then when they get solid advice they tell us they can’t be bothered.

    • flying_sheep@lemmy.ml
      link
      fedilink
      arrow-up
      3
      ·
      23 hours ago

      Yeah, when something isn’t in the official repos, NixOS exists, Flatpak exists, and they’re all vetted.

      Wanting a super clean system where everything is managed by pacman is purely about taste, so if you want it, you clearly can be bothered to put in the 2 minutes of work.