De AUR is een van de juwelen in de kroon van Arch Linux en biedt duizenden extra softwarepakketten. Maar is deze door gebruikers aangestuurde repository veilig te gebruiken, of moet u deze vermijden?
Wat is de AUR?
De gevaren van het gebruik van de AUR
AUR-veiligheid: controleer de pakketdetails en reputatie
Controleer de inhoud van de PKGBUILD en andere bestanden
U kunt andere AUR-gebruikers helpen
Wat is de AUR?
De AUR (Arch User Repository) is een door de gemeenschap aangestuurde softwarerepository die meer dan 85.000 softwarepakketten biedt aan Arch Linux-gebruikers. In tegenstelling tot andere Arch-repository’s, zoals de core-, extra- en multilib-repository’s, host de AUR geen kant-en-klare pakketten. In feite host het helemaal geen binaire bestanden of verpakte software.
De AUR host pakketbouwbestanden, genaamd PKGBUILDs. Dit zijn shell-scripts die worden uitgevoerd door de Arch makepkg
hulpmiddel. Wanneer makepkg
wordt uitgevoerd, zoekt het naar een bestand met de naam “PKGBUILD”. Als het er een vindt, wordt het geopend en worden de instructies erin gevolgd om een ​​softwarepakketarchief op uw computer aan te maken. Als u bekend bent met compileren op de opdrachtregel, een PKGBUILD-bestand en makepkg
werken op dezelfde manier samen als een MAKEFILE en de make
nutsvoorziening.
De PKGBUILD-instructies downloaden broncodebestanden en andere bestanden die nodig zijn om het pakketarchief te maken. De pacman
tool wordt automatisch aangeroepen om de software uit het pakketarchief te installeren.
Met het risico enige verwarring te introduceren, enkele AUR-pakketten Doen leveren vooraf gecompileerde binaire bestanden. Maar die binaire bestanden worden niet gehost in de AUR, ze worden elders op internet opgeslagen. De AUR-vermelding voor die pakketten bevat alleen een PKGBUILD-bestand dat het vooraf gecompileerde binaire bestand naar uw computer downloadt.
Met de AUR kan iedereen een PKGBUILD maken voor een stuk software dat ze beschikbaar willen maken voor andere Arch-gebruikers. Dit kunnen open of closed source-pakketten zijn, of zelfs commerciële software. AUR-pakketten die voldoende gebruikersstemmen krijgen, kunnen worden gepromoveerd naar een reguliere Arch-repository, de community-repository.
Het probleem met de AUR wordt duidelijk als je het tot de basis samenvat. Het is een verzameling scripts van willekeurige gebruikers op internet. En ze willen dat je ze op je computer uitvoert.
Om de risico’s te beperken, worden geüploade scripts beoordeeld door gekwalificeerde, gerespecteerde vrijwilligers, ook wel vertrouwde gebruikers genoemd. De vertrouwde gebruikers inspecteren en testen de PKGBUILDS en verwijderen alle gevaarlijke fouten of kwaadaardige bedoelingen.
De gevaren van het gebruik van de AUR
Het komt zeer zelden voor, maar soms glippen er dingen door het net, ondanks de ijver van de vertrouwde gebruikers. In 2015 wist een Valve Software Steam-script je thuismap als je de Steam-map eerder naar een nieuwe locatie had verplaatst.
Sinister was het incident in 2005, toen een verweesd AUR-pakket werd overgenomen door een nieuwe beheerder die opzettelijk schadelijke code aan het PKGBUILD-bestand toevoegde. Deze voorbeelden zijn oud en ongewoon, maar dezelfde dingen kunnen opnieuw gebeuren.
Als u voldoende bekwaam bent, kunt u natuurlijk zelf de inhoud van het PKGBUILD-bestand bekijken. Deze transparantie is een van de sterke punten van de AUR, maar vereist wel voldoende scriptingkennis om hiervan te profiteren. En dat heeft alleen betrekking op het PKGBUILD-bestand zelf. Als het een massa applicatiebroncode binnenhaalt, zou dat in theorie ook moeten worden gecontroleerd.
Andere gevaren bij het gebruik van de AUR zijn gebaseerd op distributie. Niet alle op Arch gebaseerde distributies zijn voldoende Arch-achtig om de AUR foutloos te laten werken. De AUR gaat ervan uit dat het wordt geïnstalleerd op echte Arch Linux, en een volledig gepatchte en bijgewerkte versie. Manjaro ondersteunt de AUR bijvoorbeeld niet officieel, ook al is deze op Arch gebaseerd.
Maar aangezien uw distributie de AUR ondersteunt, wat kunt u doen om ervoor te zorgen dat u het zo veilig mogelijk gebruikt, of u nu de broncode en shellscripts begrijpt of niet?
AUR-veiligheid: controleer de pakketdetails en reputatie
Zelfs zonder codebeoordelingen zijn er stappen die u kunt nemen om u te helpen beslissen of u een AUR-pakket kunt vertrouwen.
Vind uw pakket op de AUR
Er is een pagina in de AUR voor elk pakket. De webpagina van het pakket beschrijft het pakket, welke afhankelijkheden het heeft, welke pakketten ervan afhankelijk zijn en andere nuttige informatie. Begin uw onderzoek door naar de AUR te gaan en uw pakket te zoeken.
Wat is zijn reputatie?
Op pakketten kan door gebruikers worden gestemd en er wordt ook een populariteitsscore aan elk pakket gegeven. Hoe meer stemmen en hoe hoger de populariteit, hoe beter. Het betekent dat het pakket bekend is en veel wordt gebruikt. Met andere woorden, het is een gerenommeerd pakket.
De reputatie van het pakket is een goede indicatie van de betrouwbaarheid ervan. Hoe meer mensen het gebruiken en ervoor stemmen, hoe comfortabeler u zich voelt bij het gebruik ervan.
Controleer de activiteitsdata
In het gedeelte ‘Pakketdetails’ ziet u de stemmen, populariteitsscore en twee datums. Een daarvan is wanneer de pakketten voor het eerst in de AUR zijn geïntroduceerd en de tweede is wanneer het pakket voor het laatst is bijgewerkt.
De datum “Laatst bijgewerkt” geeft aan of het pakket actief wordt onderhouden. Pakketten die lange tijd inactief zijn geweest, moeten met de nodige voorzichtigheid worden behandeld.
Is de upstream-URL een geldige locatie?
Controleer ook de “Upstream-URL” en controleer of deze naar een geldige webpagina of coderepository voor het pakket of project gaat. Als dat niet het geval is, is er iets mis.
Lees de opmerkingen van gebruikers
Onder aan elke AUR-pagina staan ​​opmerkingen van gebruikers. Deze kunnen zich uitstrekken over vele pagina’s. Kijk wat andere gebruikers zeggen over het pakket en wat voor soort vragen ze stellen. Kijk ook welke oplossingen worden geboden voor problemen die aan de orde komen. Zijn er recente opmerkingen? Heeft dit pakket nog een actief gebruikersbestand?
Schrijf je in en doe mee
Als u zich registreert op de AUR en een gratis account aanmaakt, kunt u opmerkingen achterlaten en vragen stellen. Gebruik ook andere bronnen zoals forums en subreddits om naar het pakket te vragen.
Zelfs als je shell-scripts niet begrijpt, zijn er nog een aantal dingen die je kunt controleren.
Controleer de inhoud van de PKGBUILD en andere bestanden
Een gebruikelijke manier om toegang te krijgen tot de AUR is met een opdrachtregel “AUR-helper”, zoals yay
maar u kunt de AUR ook op een hands-on, handmatige manier gebruiken.
Goede AUR-helpers geven u de mogelijkheid om het PKGBUILD-bestand te inspecteren en de installatie te stoppen als u niet verder wilt gaan. In het handmatige proces zoekt u naar het pakket op de AUR en downloadt u het PKGBUILD-bestand en inspecteert u het voordat u het gebruikt. Als je tevreden bent om door te gaan nadat je het hebt bekeken, ren je weg makepkg
handmatig.
Het is een goed idee om ten minste één pakket handmatig te installeren, zodat u weet hoe de AUR-helper op de achtergrond werkt. We gebruiken de yay AUR-helper als voorbeeld.
Het pakket is voor het eerst ingediend in 2016 en is voor het laatst bijgewerkt in mei 2023. Op het moment van schrijven is dat een zeer recente update. Ook opmerkelijk is dat de oorspronkelijke indiener, de huidige beheerder en de laatste persoon die de software heeft verpakt, allemaal dezelfde persoon zijn. Die continuïteit is een goed teken.
Klik op de URL-link “Git Clone URL” in het gedeelte “Pakketdetails” om deze naar het klembord te kopiëren.
Typ in een terminalvenster “git clone”, een spatie, en druk vervolgens op Shift+Ctrl+V om de URL op de opdrachtregel te plakken. Druk op “Enter” om het downloaden te starten.
git clone https://aur.archlinux.org/yay.git
Wanneer de download is voltooid, gaat u naar de nieuwe “yay” -directory.
cd yay
Laten we eens kijken welke bestanden we hebben.
ls
Er is één bestand, het PKGBUILD-bestand. Vaak zijn er een of twee extra helperbestanden. Kijk daar ook doorheen. We zullen gebruiken less
om ons enige bestand te lezen.
less PKGBUILD
Welke URL’s gebruikt het PKGBUILD-bestand?
Een goed gevormd PKGBUILD-bestand dat conventies volgt, maakt variabelen voor de URL’s die het gebruikt. Dit geeft ons een nette lijst bovenaan het bestand met de URL’s waarnaar de PKGBUILD zal verwijzen. In dit geval is er maar één.
We kunnen zien dat het verwijst naar een GitHub-pagina voor de yay
projecteren.
De GitHub-pagina is eigendom van een gebruiker met dezelfde naam als de beheerder die op de AUR-pagina voor dit pakket werd vermeld. Dit zijn twee goede indicaties dat dit een veilig pakket is.
Maar we gaan door en kijken wat dieper.
Zoek naar downloadopdrachten
Gebruik de less
zoekfunctie om het bestand te doorzoeken op toepassingen van wget
of curl
. Beide tools kunnen worden gebruikt om externe bestanden op te halen. Een braaf PKGBUILD zou dergelijke activiteiten niet nodig moeten hebben.
Als u toch iets vindt, behandel ze dan als een rode vlag en installeer het pakket niet totdat u er zeker van bent dat het goedaardig is. Wat is de URL van de wget
of curl
commando’s verwijzen? Zien ze er legitiem uit en zijn ze gerelateerd aan het pakket?
Als u bevestiging kunt krijgen van een vertrouwde bron dat de PKGBUILD betrouwbaar is, en het is gewoon geschreven op een manier die niet aan de conventies voldoet, dan kunt u er nog steeds voor kiezen om het te installeren.
Zoek naar rm, mv en andere gevaarlijke commando’s
Evenzo is er geen PKGBUILD-bestand nodig om de rm
of mv
commando’s, noch zouden ze naar iets in de map “/dev” moeten verwijzen. Als de PKGBUILD direct aanbelt pacman
of vermeldt systemctl
, systemd
of een ander essentieel systeemonderdeel zoals grub
behandel het PKGBUILD-bestand als gevaarlijk en voer het niet uit.
U kunt de stappen die we tot nu toe hebben gebruikt uitvoeren, zelfs als u geen shellscripts kunt lezen. Als u wat met shell-scripting weet, kunt u de eigenlijke code bekijken in de PKGBUILD.
Wees op uw hoede voor versluierde code
Mensen die kwaadaardige code schrijven, proberen vaak de bedoelingen ervan te verbergen door deze te verdoezelen. Ze gebruiken een minimalistische, beknopte, ondoordringbare syntaxis, dus het is moeilijk te ontcijferen wat ze proberen te doen. Als u lijnen ziet die omleiding of call sed
of awk
behandel ze als verdacht.
Door die regels te kopiëren en in een online parser zoals explainshell.com neer te zetten, worden ze uitgepakt zodat je kunt zien wat ze eigenlijk doen. Als je wordt geconfronteerd met een dicht opeengepakte wirwar van haakjes, puntkomma’s en ampersands, is het de moeite waard om een ​​online parser te gebruiken om te controleren of je correct hebt geïnterpreteerd wat de regel probeert te doen. Maar over het algemeen is moeilijk leesbare code een waarschuwing.
Uw /thuis zou uw kasteel moeten zijn
PKGBUILD compileert en bouwt in een chroot
omgeving.
Dit zijn geïsoleerde minibestandssystemen waarmee ontwikkelaars processen kunnen sandboxen door hun toegang tot de rest van het bestandssysteem van uw computer te beperken en hun toegang tot andere systeemopdrachten te verminderen.
Als de PKGBUILD uw homedirectory rechtstreeks manipuleert, behandel dat dan als een waarschuwingsvlag. Zorg ervoor dat u volledig begrijpt wat het doet voordat u besluit het uit te voeren.
U kunt andere AUR-gebruikers helpen
Met extreem populaire pakketten bent u zeer waarschijnlijk veilig. Vanwege het hoge aantal gebruikers worden problemen sneller opgemerkt en sneller gerapporteerd. U kunt uw steentje bijdragen door eventuele problemen die u tegenkomt te melden en goede pakketten te stemmen om hun reputatie te verbeteren.
Als u merkt dat er een probleem is met een pakket waardoor u het niet wilt installeren, kunt u in de problemen komen omdat u dat pakket nodig had. Een manier om vooruit te komen is om op forums te vragen naar suggesties voor andere pakketten die aan die specifieke behoefte kunnen voldoen.
Linux heeft meestal veel manieren om een ​​bepaalde kat te villen.