Linux 5.4-kjernen har mottatt patcher for å begrense root-tilgang til kjernens interne deler

Linus Torvalds akseptert inkludert i den kommende utgivelsen av Linux 5.4-kjernen er et sett med patcher "lockdown", foreslått David Howells (Red Hat) og Matthew Garrett (Matthew garrett, jobber hos Google) for å begrense root-brukertilgang til kjernen. Lockdown-relatert funksjonalitet er inkludert i en valgfritt lastet LSM-modul (Linux sikkerhetsmodul), som plasserer en barriere mellom UID 0 og kjernen, og begrenser viss funksjonalitet på lavt nivå.

Hvis en angriper oppnår kodekjøring med rotrettigheter, kan han kjøre koden sin på kjernenivå, for eksempel ved å erstatte kjernen ved å bruke kexec eller lese-/skriveminne via /dev/kmem. Den mest åpenbare konsekvensen av slik aktivitet kan være omvei UEFI Secure Boot eller henting av sensitive data lagret på kjernenivå.

Opprinnelig ble rotbegrensningsfunksjoner utviklet i sammenheng med å styrke beskyttelsen av verifisert oppstart, og distribusjoner har brukt tredjepartspatcher for å blokkere forbipassering av UEFI Secure Boot i ganske lang tid. Samtidig ble slike restriksjoner ikke inkludert i hovedsammensetningen av kjernen pga uenigheter i deres implementering og frykt for forstyrrelser i eksisterende systemer. "Lockdown"-modulen absorberte patcher som allerede ble brukt i distribusjoner, som ble redesignet i form av et eget undersystem som ikke var knyttet til UEFI Secure Boot.

Låsemodus begrenser tilgangen til /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debug mode, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), noen ACPI-grensesnitt og CPU MSR-registre, kexec_file og kexec_load-anrop er blokkert, hvilemodus er forbudt, DMA-bruk for PCI-enheter er begrenset, ACPI-kodeimport fra EFI-variabler er forbudt,
Manipulasjoner med I/O-porter er ikke tillatt, inkludert endring av avbruddsnummer og I/O-port for serieporten.

Som standard er låsemodulen ikke aktiv, den bygges når SECURITY_LOCKDOWN_LSM-alternativet er spesifisert i kconfig og aktiveres gjennom kjerneparameteren "lockdown=", kontrollfilen "/sys/kernel/security/lockdown" eller monteringsalternativer LOCK_DOWN_KERNEL_FORCE_*, som kan ta verdiene "integritet" og "konfidensialitet". I det første tilfellet blokkeres funksjoner som tillater endringer i den kjørende kjernen fra brukerplass, og i det andre tilfellet er funksjonalitet som kan brukes til å trekke ut sensitiv informasjon fra kjernen også deaktivert.

Det er viktig å merke seg at lockdown bare begrenser standardtilgang til kjernen, men beskytter ikke mot modifikasjoner som følge av utnyttelse av sårbarheter. For å blokkere endringer i den kjørende kjernen når utnyttelser brukes av Openwall-prosjektet utvikler seg egen modul LKRG (Linux Kernel Runtime Guard).

Kilde: opennet.ru

Legg til en kommentar