Arbeide med Linux-funksjoner

Introduksjon

Linux-funksjoner er spesielle attributter i Linux-kjernen som gir prosesser og binære kjørbare spesifikke rettigheter som normalt er reservert for prosesser hvis effektive bruker-ID er 0 (rotbrukeren, og bare rotbrukeren, har UID 0).

Denne artikkelen vil forklare noen av de tilgjengelige funksjonene, deres bruk og hvordan du setter og fjerner dem. Vær oppmerksom på at innstilling av funksjoner på kjørbare filer har potensial til å kompromittere sikkerheten til systemet ditt. Som sådan bør du vurdere å teste på et ikke-produksjonssystem før du implementerer funksjoner i produksjonen.

Forutsetninger

  • Et Linux-system som du har root-tilgang på (enten via root-brukeren eller en bruker med sudo-tilgang).

Forklaring

I hovedsak er målet med kapasiteter å dele opp kraften til 'root' i spesifikke privilegier, slik at hvis en prosess eller binær som har en eller flere muligheter blir utnyttet, er den potensielle skaden begrenset sammenlignet med den samme prosessen som kjører som root.

Muligheter kan settes på prosesser og kjørbare filer. En prosess som er et resultat av kjøringen av en fil kan få egenskapene til den filen.

Mulighetene implementert på Linux er mange, og mange har blitt lagt til siden den opprinnelige utgivelsen. Noen av dem er som følger:

  • CAP_CHOWN: Gjør endringer i bruker-ID og gruppe-ID for filer
  • CAP_DAC_OVERRIDE: Overstyr DAC (Discretionary Access Control). For eksempel, vto omgå lese/skrive/utføre tillatelseskontroller.
  • CAP_KILL: Omgå tillatelsessjekker for å sende signaler til prosesser.
  • CAP_SYS_NICE: Øk hyggeligheten til prosesser ( En forklaring på hyggeligheten finner du her )
  • CAP_SYS_TIME: Still inn systemet og sanntids maskinvareklokke

For hele listen, kjør man 7 capabilities.

Egenskaper tildeles i sett, nemlig "tillatt", "arvelig", "effektiv" og "omgivende" for tråder, og "tillatt", "arvelig" og "effektiv" for filer. Disse settene definerer forskjellig kompleks atferd, deres fulle forklaring er utenfor rammen av denne artikkelen.

Når vi angir funksjoner på fil, vil vi nesten alltid bruke "tillatt" og "effektiv", for eksempel CAP_DAC_OVERRIDE+ep. Legg merke til +ep, som angir de nevnte settene.

Arbeid med filfunksjoner

Nødvendige pakker

Det er to hovedverktøy, getcapog setcapsom kan henholdsvis se og angi disse attributtene.

  • På Debian og Ubuntu leveres disse verktøyene av 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 libcapogså av:pacman -S libcap

Leseevner

For å se om en fil har noen funksjonssett, kan du ganske enkelt kjø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 vil finne ut hvilke funksjoner som allerede er satt på systemet ditt, kan du søke i hele filsystemet ditt rekursivt med følgende kommando:

getcap -r /

På grunn av det faktum at virtuelle filsystemer (som /proc) ikke støtter disse operasjonene, vil kommandoen ovenfor produsere tusenvis av feil, så for en renere utgang, bruk følgende:

getcap -r / 2>/dev/null 

Tilordne og fjerne evner

For å angi en bestemt funksjon på en fil, bruk setcap "capability_string" /path/to/file.

For å fjerne alle funksjoner fra en fil, bruk setcap -r /path/to/file.

For demonstrasjon lager vi en tom fil i gjeldende katalog, gir den en mulighet og fjerner den. Start med følgende:

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

Den andre kommandoen produserer ingen utdata, noe som betyr at denne filen ikke har noen funksjon.

Deretter setter du en funksjon for filen:

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

"CAP_CHOWN+ep" ble brukt som et eksempel, men alle andre kan tilordnes på denne måten.

Fjern nå alle funksjoner fra testfile:

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

Igjen, det blir ingen utgang, fordi "CAP_CHOWN+ep" ble fjernet.

Konklusjon

Funksjoner har mange potensielle bruksområder og kan bidra til å stramme sikkerheten til systemene dine. Hvis du bruker SUID-biten på de kjørbare filene dine, bør du vurdere å erstatte den med den spesifikke egenskapen som trengs.

Legg igjen 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 akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer