Zoeken op website

Hoe u harde en symbolische koppelingen in CentOS/RHEL 7 kunt beschermen


In Linux verwijzen harde en zachte links naar bestanden, die erg belangrijk zijn. Als ze niet goed worden beschermd, kunnen eventuele kwetsbaarheden daarin worden uitgebuit door kwaadwillende systeemgebruikers of aanvallers.

Een veel voorkomende kwetsbaarheid is de symlink-race. Het is een beveiligingsprobleem in software dat ontstaat wanneer een programma op onveilige wijze bestanden aanmaakt (vooral tijdelijke bestanden), en een kwaadwillende systeemgebruiker een symbolische (zachte) link naar zo'n bestand kan maken.

Lees ook: Hoe je een harde en symbolische link maakt in Linux

Dit gebeurt praktisch; een programma controleert of een tijdelijk bestand bestaat of niet, en als dat niet het geval is, wordt het bestand gemaakt. Maar in die korte periode tussen het controleren van het bestand en het maken ervan, kan een aanvaller mogelijk een symbolische link naar een bestand maken, waartoe hij of zij geen toegang krijgt.

Dus wanneer het programma met geldige privileges wordt uitgevoerd, wordt het bestand gemaakt met dezelfde naam als het bestand dat door de aanvaller is gemaakt, en wordt letterlijk het doelbestand (gekoppeld aan) gemaakt waartoe de aanvaller toegang wilde hebben. Dit zou de aanvaller dus een manier kunnen geven om gevoelige informatie van het root-account te stelen of een kwaadaardig programma op het systeem uit te voeren.

Daarom laten we u in dit artikel zien hoe u harde en symbolische links kunt beveiligen tegen kwaadwillende gebruikers of hackers in CentOS/RHEL 7-distributies.

Op CentOS/RHEL 7 bestaat een essentiële beveiligingsfunctie die alleen toestaat dat links worden gemaakt of gevolgd door programma's als aan bepaalde voorwaarden is voldaan, zoals hieronder beschreven.

Voor harde links

Voordat een systeemgebruiker een koppeling kan maken, moet aan een van de volgende voorwaarden zijn voldaan.

  • de gebruiker kan alleen linken naar bestanden waarvan hij of zij eigenaar is.
  • de gebruiker moet eerst lees- en schrijftoegang hebben tot een bestand, waarnaar hij of zij wil linken.

Voor symbolische koppelingen

Processen mogen alleen links volgen die buiten beschrijfbare mappen (waar andere gebruikers naar kunnen schrijven) buiten mappen met plakkerige bits vallen, of een van de volgende zaken moet waar zijn.

  • het proces dat volgt op de symbolische link is de eigenaar van de symbolische link.
  • de eigenaar van de directory is ook de eigenaar van de symbolische link.

Beveiliging op harde en symbolische koppelingen in- of uitschakelen

Belangrijk is dat deze functie standaard wordt ingeschakeld met behulp van de kernelparameters in het bestand /usr/lib/sysctl.d/50-default.conf (waarde van 1 betekent ingeschakeld ).

fs.protected_hardlinks = 1
fs.protected_symlinks = 1

Als u deze beveiligingsfunctie om de een of andere reden wilt uitschakelen; maak een bestand met de naam /etc/sysctl.d/51-no-protect-links.conf met de onderstaande kernelopties (waarde van 0 betekent uitschakelen).

Let op dat 51 in de bestandsnaam (51-no-protect-links.conf), deze moet na het standaardbestand worden gelezen om de standaardinstellingen te overschrijven.

fs.protected_hardlinks = 0
fs.protected_symlinks = 0

Sla het bestand op en sluit het. Gebruik vervolgens de onderstaande opdracht om de bovenstaande wijzigingen door te voeren (deze opdracht laadt feitelijk de instellingen van elk systeemconfiguratiebestand).

sysctl --system
OR
sysctl -p  #on older systems

Misschien vindt u het ook leuk om deze volgende artikelen te lezen.

  1. Hoe een Vim-bestand met een wachtwoord te beveiligen in Linux
  2. 5 ‘chattr’-opdrachten om belangrijke bestanden onveranderlijk (onveranderlijk) te maken in Linux

Dat is alles! Via het onderstaande feedbackformulier kunt u uw vragen stellen of uw mening over dit onderwerp delen.