Werken met Linux-mogelijkheden

Invoering

Linux-mogelijkheden zijn speciale kenmerken in de Linux-kernel die processen en binaire uitvoerbare bestanden specifieke rechten verlenen die normaal gesproken zijn gereserveerd voor processen met een effectief gebruikers-ID 0 (de rootgebruiker en alleen de rootgebruiker heeft UID 0).

In dit artikel worden enkele van de beschikbare mogelijkheden, hun gebruik en hoe deze in te stellen en te verwijderen, uitgelegd. Houd er rekening mee dat het instellen van mogelijkheden voor uitvoerbare bestanden de beveiliging van uw systeem in gevaar kan brengen. Als zodanig moet u overwegen om te testen op een niet-productiesysteem voordat u mogelijkheden in productie implementeert.

Vereisten

  • Een Linux-systeem waarop je root-toegang hebt (via de root-gebruiker of een gebruiker met sudo-toegang).

Uitleg

In wezen is het doel van mogelijkheden om de kracht van 'root' in specifieke privileges te verdelen, zodat als een proces of binair bestand met een of meer mogelijkheden wordt benut, de potentiële schade beperkt is in vergelijking met hetzelfde proces dat als root wordt uitgevoerd.

Mogelijkheden kunnen worden ingesteld op processen en uitvoerbare bestanden. Een proces dat resulteert uit de uitvoering van een bestand kan de mogelijkheden van dat bestand verkrijgen.

De mogelijkheden die op Linux zijn geïmplementeerd zijn talrijk en velen zijn toegevoegd sinds hun oorspronkelijke release. Sommigen van hen zijn als volgt:

  • CAP_CHOWN: Wijzigingen aanbrengen in de gebruikers-ID en groeps-ID van bestanden
  • CAP_DAC_OVERRIDE: Override DAC (discretionaire toegangscontrole). Bijvoorbeeld om lees- / schrijf- / machtigingscontroles te omzeilen.
  • CAP_KILL: Bypass-toestemming controleert voor het verzenden van signalen naar processen.
  • CAP_SYS_NICE: Verhoog de aard van processen ( Een uitleg van aardigheid vindt u hier )
  • CAP_SYS_TIME: Het systeem en de realtime hardwareklok instellen

Voer voor de volledige lijst uit man 7 capabilities.

Mogelijkheden worden toegewezen in sets, namelijk "toegestaan", "overerfbaar", "effectief" en "ambient" voor threads, en "toegestaan", "overerfbaar" en "effectief" voor bestanden. Deze sets definiëren verschillende complexe gedragingen, hun volledige uitleg valt buiten het bestek van dit artikel.

Bij het instellen van mogelijkheden in het bestand gebruiken we bijvoorbeeld bijna altijd "toegestaan" en "effectief" CAP_DAC_OVERRIDE+ep. Let op de +ep, die de bovengenoemde sets aangeeft.

Werken met bestandsmogelijkheden

Vereiste pakketten

Er zijn twee belangrijke instrumenten, getcapen setcapdie respectievelijk kunt bekijken en stel deze attributen.

  • Op Debian en Ubuntu worden deze tools geleverd door het libcap2-binpakket, dat kan worden geïnstalleerd met:apt install libcap2-bin
  • Op CentOS en Fedora is het libcappakket nodig:yum install libcap
  • Op Arch Linux worden ze ook geleverd door libcap:pacman -S libcap

Leesmogelijkheden

Om te zien of een bestand een set mogelijkheden heeft, kunt u eenvoudig uitvoeren getcap /full/path/to/binary, bijvoorbeeld:

 root@demo:~# getcap /usr/bin/ping
 /usr/bin/ping = cap_net_raw+ep
 root@demo:~# getcap /usr/bin/rcp
 /usr/bin/rcp = cap_net_bind_service+ep

Als u wilt weten welke mogelijkheden al op uw systeem zijn ingesteld, kunt u recursief uw hele bestandssysteem doorzoeken met de volgende opdracht:

getcap -r /

Omdat virtuele bestandssystemen (zoals /proc) deze bewerkingen niet ondersteunen, zal de bovenstaande opdracht duizenden fouten opleveren, dus gebruik voor een schonere uitvoer het volgende:

getcap -r / 2>/dev/null 

Mogelijkheden toewijzen en verwijderen

Gebruik om een ​​bepaalde mogelijkheid voor een bestand in te stellen setcap "capability_string" /path/to/file.

Gebruik om alle mogelijkheden uit een bestand te verwijderen setcap -r /path/to/file.

Ter demonstratie maken we een leeg bestand in de huidige map, geven het een mogelijkheid en verwijderen het. Begin met het volgende:

root@demo:~# touch testfile
root@demo:~# getcap testfile

De tweede opdracht levert geen uitvoer op, wat betekent dat dit bestand geen mogelijkheden heeft.

Stel vervolgens een mogelijkheid in voor het bestand:

root@demo:~# setcap "CAP_CHOWN+ep" testfile
root@demo:~# getcap testfile
testfile = cap_chown+ep

"CAP_CHOWN + ep" werd als voorbeeld gebruikt, maar elke andere kan op deze manier worden toegewezen.

Verwijder nu alle mogelijkheden van testfile:

root@demo:~# setcap -r testfile
root@demo:~# getcap testfile

Nogmaals, er zal geen uitvoer zijn, omdat "CAP_CHOWN + ep" is verwijderd.

Gevolgtrekking

Capaciteiten hebben vele mogelijke toepassingen en kunnen helpen om de beveiliging van uw systemen te verbeteren. Als u de SUID-bit op uw uitvoerbare bestanden gebruikt, overweeg dan om deze te vervangen door de specifieke mogelijkheid die nodig is.



Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.