Fandt en sårbarhed i Linux-kernens tty-undersystem

Forskere fra Google Project Zero-teamet meddelte for nylig gennem et blogindlæg en ny metode til at udnytte sårbarheder (CVE-2020-29661) i TIOCSPGRP ioctl-håndteringsimplementeringen af linux kerne tty undersystem, samt detaljerede beskyttelsesmekanismer, der kunne blokere sådanne sårbarheder.

Det er nævnt i indlægget, at problemet skyldes en fejl i låsekonfigurationen, hvilket fører til en racetilstand i koden for /tty/tty_jobctrl.c, som blev brugt til at skabe betingelser for at få adgang til hukommelse efter lancering (brug-efter-fri), udnyttet af brugerplads via manipulation med ioct- ved at kalde TIOCSPGRP.

Ud over de offentliggjorte oplysninger, også der blev lavet en demonstration af en arbejdsbedrift for privilegie-eskalering Debian 10 med kerne 4.19.0-13-amd64 og som heller ikke udelukker, at det kan påvirke forskellige distributioner, blandt hvilke selvfølgelig er dem, der er baseret på og afledt af Debian.

Mange af de individuelle udnyttelsesteknikker og afhjælpningsmuligheder, som jeg beskriver her, er ikke nye. Jeg tror dog, at der er værdi i at skrive dem sammen for at vise, hvordan forskellige begrænsninger interagerer med en ganske normal udnyttelse af fri-efter-brug.

Kodestykkerne i dette blogindlæg, der er relevante for udnyttelsen, er taget fra den ældre version 4.19.160, da det er det, som Debian-kernen er baseret på; nogle andre kodestykker er fra mainline linux.

Samtidig, i den offentliggjorte artikel, vægten er ikke så meget på teknikken til at skabe en fungerende udnyttelse, men på hvilke værktøjer der er i kernen for at beskytte dig selv mod sådanne sårbarheder.

Konklusionen er skuffende da det nævnes, at metoder som segmentering af hukommelse på heapen og styring af adgang til hukommelse, efter at den er frigivet, ikke anvendes i praksis, da de fører til nedsat ydeevne og beskyttelse baseret på CFI (Control Flow Integrity), som blokerer udnyttelser i de senere faser af et angreb, kræver forbedring.

En særlig type terminalenhed er pseudoterminaler, som bruges, når du for eksempel åbner en terminalapplikation i et grafisk miljø eller opretter forbindelse til en fjernmaskine via SSH. Mens andre terminalenheder er knyttet til en slags hardware, styres begge ender af en pseudoterminal af brugerrum, og pseudoterminaler kan oprettes frit af brugerrum (uden privilegier).

Hver gang /dev/ptmx åbnes (forkortelse for "pseudoterminal multiplexer"), repræsenterer den resulterende fildeskriptor enhedssiden (i dokumentationen og kernekilderne omtalt som "master pseudoterminalen") af en ny pseudoterminal.

 Den tilsvarende terminalenhed (som en shell normalt forbinder til) oprettes automatisk af kernen under /dev/pts/ .

Når man ser på, hvad der kan gøre en forskel i det lange løb, lægges vægten på at bruge avancerede statiske analysatorer eller at bruge hukommelsessikre sprog som Rust-dialekterne og C med udvidede annotationer (såsom markeret C) til at opbygge statiske brikker, låse, genstande og pegepinde. Beskyttelsesmetoderne nævner også at aktivere panic_on_oops-tilstand, gøre kernestrukturer skrivebeskyttet og begrænse adgangen til systemkald ved hjælp af mekanismer som seccomp.

Fejlen, der forårsagede problemet blev rettet i Linux-kernen den 3. december sidste år. Problemet manifesterer sig i kerner før version 5.9.13, men de fleste distributioner har løst problemet i kernepakkeopdateringerne, der blev udgivet sidste år.

Der nævnes også en lignende sårbarhed (CVE-2020-29660), der blev fundet samtidigt i implementeringen af ​​TIOCGSID ioctl-kaldet, men den blev også fjernet overalt.

Endelig Hvis du er interesseret i at vide mere om det, du kan kontrollere detaljerne I det følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.