Arbejde med Linux-funktioner

Introduktion

Linux-kapaciteter er specielle attributter i Linux-kernen, der giver processer og binære eksekverbare specifikke privilegier, der normalt er reserveret til processer, hvis effektive bruger-id er 0 (rodbrugeren, og kun root-brugeren, har UID 0).

Denne artikel vil forklare nogle af de tilgængelige funktioner, deres anvendelser og hvordan man indstiller og fjerner dem. Bemærk venligst, at indstilling af funktioner på eksekverbare filer har potentiale til at kompromittere dit systems sikkerhed. Som sådan bør du overveje at teste på et ikke-produktionssystem, før du implementerer funktioner i produktionen.

Forudsætninger

  • Et Linux-system, hvor du har root-adgang (enten via root-brugeren eller en bruger med sudo-adgang).

Forklaring

Grundlæggende er målet med kapaciteter at opdele 'root's magt i specifikke privilegier, så hvis en proces eller binær, der har en eller flere kapaciteter, udnyttes, er den potentielle skade begrænset sammenlignet med den samme proces, der kører som root.

Muligheder kan indstilles på processer og eksekverbare filer. En proces, der er et resultat af udførelsen af ​​en fil, kan få den fils egenskaber.

Mulighederne implementeret på Linux er talrige, og mange er blevet tilføjet siden deres oprindelige udgivelse. Nogle af dem er som følger:

  • CAP_CHOWN: Foretag ændringer af bruger-id'et og gruppe-id'et for filer
  • CAP_DAC_OVERRIDE: Tilsidesæt DAC (Discretionary Access Control). For eksempel, vto omgå læse/skrive/udføre tilladelseskontrol.
  • CAP_KILL: Omgå tilladelsestjek for at sende signaler til processer.
  • CAP_SYS_NICE: Hæv pænheden af ​​processer ( En forklaring på pænhed kan findes her )
  • CAP_SYS_TIME: Indstil systemet og hardware-uret i realtid

Kør for den fulde liste man 7 capabilities.

Funktioner er tildelt i sæt, nemlig "tilladt", "arvelig", "effektiv" og "omgivende" for tråde og "tilladt", "arvelig" og "effektiv" for filer. Disse sæt definerer forskellig kompleks adfærd, deres fulde forklaring ligger uden for denne artikels omfang.

Når vi indstiller muligheder på fil, vil vi næsten altid bruge "tilladt" og "effektiv", for eksempel CAP_DAC_OVERRIDE+ep. Læg mærke til +ep, som betegner de førnævnte sæt.

Arbejde med filfunktioner

Nødvendige pakker

Der er to hovedværktøjer, getcapog setcapsom henholdsvis kan se og indstille disse attributter.

  • På Debian og Ubuntu leveres disse værktøjer af libcap2-binpakken, som kan installeres med:apt install libcap2-bin
  • På CentOS og Fedora er libcappakken nødvendig:yum install libcap
  • På Arch Linux leveres de også af libcap:pacman -S libcap

Læseevner

For at se, om en fil har nogen funktionssæt, kan du blot køre getcap /full/path/to/binary, for eksempel:

 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

Hvis du gerne vil finde ud af, hvilke funktioner der allerede er indstillet på dit system, kan du søge i hele dit filsystem rekursivt med følgende kommando:

getcap -r /

På grund af det faktum, at virtuelle filsystemer (såsom /proc) ikke understøtter disse operationer, vil kommandoen ovenfor producere tusindvis af fejl, så for et renere output, brug følgende:

getcap -r / 2>/dev/null 

Tildeling og fjernelse af funktioner

For at indstille en bestemt funktion på en fil skal du bruge setcap "capability_string" /path/to/file.

For at fjerne alle funktioner fra en fil skal du bruge setcap -r /path/to/file.

Til demonstration opretter vi en tom fil i den aktuelle mappe, giver den en mulighed og fjerner den. Start med følgende:

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

Den anden kommando producerer intet output, hvilket betyder, at denne fil ikke har nogen kapacitet.

Indstil derefter en funktion for filen:

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

"CAP_CHOWN+ep" blev brugt som et eksempel, men enhver anden kan tildeles på denne måde.

Fjern nu alle funktioner fra testfile:

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

Igen vil der ikke være noget output, fordi "CAP_CHOWN+ep" blev fjernet.

Konklusion

Funktioner har mange potentielle anvendelsesmuligheder og kan være med til at stramme sikkerheden på dine systemer. Hvis du bruger SUID-bitten på dine eksekverbare filer, så overvej at erstatte den med den specifikke kapacitet, der er nødvendig.

Efterlad en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere