af Bhabesh Raj Rai, Security Research Department
Den 25. januar 2022 afslørede Qualys detaljerne om en hukommelsessårbarhed mod korruption (CVE-2021-4034), med titlen PwnKit, i polkits pkexec-funktion, der som standard er installeret på alle større Linux-distributioner. PwnKit er en sårbarhed i forbindelse med lokalt rettighedseskalering (LPE), der gør det muligt for ikke-privilegerede brugere at få rodrettigheder på et berørt system, selv i dets standardkonfiguration.
pkexec er en SUID binær, der giver brugeren mulighed for at udføre kommandoer som en anden bruger. Når et brugernavn ikke er angivet, udføres programmet som rodbruger i et lille og sikkert miljø. Herved undgås at injicere koden gennem LD_LIBRARY_PATH eller lignende mekanismer.
Administratorer kan bruge pkexec som et alternativ til sudo, men med mere finkornede kontroller ved at definere en politik for hvert program. Du kan bemærke ligheder i et tilfælde, der påvirkede sudoen. Tilbage i begyndelsen af 2021 blev det konstateret, at en LPE-sårbarhed (CVE-2021-3156) med hukommelseskorruption havde plaget sudo i næsten et årti.
Selvom Qualys ikke offentliggjorde udnyttelsen, gav de nok tekniske detaljer i deres offentliggørelse til hurtigt at skabe udnyttelse. Flere PoC’er som [1] og [2] flyder allerede på internettet, så alle kan bruge dem.
Krav til logkilde
- Linux
- Revideret
- Sysmon til Linux
Registrering af udnyttelsen ved hjælp af LogPoint
Hvis du ikke har auditeret konfigureret til at videresende Linux-logfiler til LogPoint, kan du registrere udnyttelse ved at søge efter PwnKit-artefakter i /var/log/auth.log. Listen LINUX_SERVERS indeholder IP-adresserne på alle Linux-systemer, der videresender logs til LogPoint.
device_ip IN LINUX_SERVERS
| search ("The value for the SHELL variable was not found the /etc/shells file" OR "contains suspicious content")
Administratorer skal dog huske, at PwnKit kan udnyttes uden at efterlade spor i /var/log/auth.log.
For at rydde den blinde vinkel kan administratorer bruge auditeret, forudsat at den er konfigureret til at auditere pkexec-kald. Først skal du søge efter reviderede hændelser, der har værdien “(null)” angivet som deres proctitle.
device_ip IN LINUX_SERVERS | search 'proctitle="(null)"'
Dernæst skal du tjekke for aktivering af pkexec. Defenders kræver disse indikatorer for yderligere at inspicere systemet og afgøre, om det blev kompromitteret ved hjælp af PwnKit.
norm_id=Unix "process"=audit command="pkexec"
| chart count() by log_ts, host, key, path, command
Tilbage i oktober 2021 annoncerede Azure CTO Mark Russinovich udgivelsen af Sysmon for Linux. Administratorer kan bruge vejledninger såsom [1] og [2] til at teste og installere Sysmon til Linux i deres virksomhed. LogPoint udgav Unix v5.2.0, der understøtter Sysmon til Linux. Administratorer skal være opmærksomme på, at Sysmon for Linux har samme taksonomi som deres Windows-modpart.
Den generiske LPE-detektionsmetode fungerer til detektering af PwnKit. Administratorer skal jage efter den privilegerede proces af en ikke-privilegeret med den åbenlyse undtagelse af sudo. PoC’er kan efter udnyttelse enten køre kommandoer direkte som et kommandolinjeargument eller i en interaktiv shell-session. Nedenstående skærmbillede viser begge disse scenarier.
[norm_id=UnixSysmon label="Process" label=Create -user=root -image="/usr/bin/sudo"]
as s1 followed by
[norm_id=UnixSysmon label="Process" label=Create user=root]
as s2 within 3 second on s1.host = s2.host and s1.process_guid=s2.parent_process_guid
| rename s1.host as host, s1.user as user, s2.user as target_user, s1.path as path, s1.image as image,
s1.command as command, s2.image as target_image, s2.command as target_command
| chart count() by host, user, target_user, path, image, command, target_image, target_command
Søger efter generisk lokal rettighedseskalering
Nogle PoC’erkan køre som en enkelt eyeliner via en enkel krøllekommando. Du kan overvåge mistænkelige downloads fra GitHub ved hjælp af procesoprettelseshændelser.
norm_id=UnixSysmon label="Process" label=Create
image IN ["/usr/bin/curl", "/usr/bin/wget"] command="*raw.githubusercontent.com*"
Post-kompromis undersøgelse
De nødvendige skridt til at undersøge aktiviteter efter kompromiser omfatter inspektion af:
- Oprettelsen af nye brugere til persistens.
- Mistænkelig udførelse af krøller, wget osv. for at downloade nyttelaster.
- Installation af kringullejobs for persistens.
- Montering af en SSH-bagdør for at holde længe.
- Installation af møntgravere.
LogPoint SOAR-playbook for undersøgelse af PwnKit
Efter udførelse af playbook’en i LogPoint SOAR kan vi i de sager, der er oprettet af playbook’ens komponenter i undersøgelsestidslinjen, danne os et overblik på højt niveau over undersøgelsens resultater.
LogPoint SOAR-undersøgelsestidslinjen samler resultaterne af undersøgelsen
Afhjælpning
Endelig lægger vi vægt på at minde administratorer om at patche deres Linux-systemer på grund af fejlens alvor og den offentlige frigivelse af flere sårbarheder, POC’er. Administratorer kan fjerne SUID-bitten fra pkexec som midlertidig dæmpning, hvis der ikke er frigivet patches til deres Linux-distribution. Virksomheders forsvarere kan forvente, at trusselsaktører bruger PwnKit efter at have fået fodfæste i et system.