av Bhabesh Raj Rai, Security Research Department
Den 25 januari 2 022 avslöjade Qualys detaljerna om en sårbarhet för minnesförstörelse (CVE-2021-4034), med titeln PwnKit, i polkitets pkexec utility som standard installerad på varje stor Linux-distribution. PwnKit är en lokal privilegieeskaleringssårbarhet (LPE) som gör det möjligt för obehöriga användare att få rotprivilegier på ett berört system även i dess standardkonfiguration.
pkexec är en SUID-binär som låter användaren utföra kommandon som en annan användare. När användarnamn inte anges körs programmet som root user i en liten och säker miljö. Detta förhindrar att koden injiceras via LD_LIBRARY_PATH eller liknande mekanismer.
Administratörer kan använda pkexec som ett alternativ till sudo men med mer finkorniga kontroller genom att definiera en policy för varje program. Du kan se likheter i ett fall som påverkade sudo. Redan i början av 2 021 befanns en LPE-sårbarhet mot minnesförstörelse (CVE-2021-3156) ha plaggat sudo i nästan ett decennium.
Trots att Qualys inte offentliggjorde utnyttjandet tillhandahöll de tillräckligt med tekniska detaljer i sitt avslöjande för att snabbt skapa utnyttjanden. Flera PoC:er som [1] och [2] svävar redan på internet för alla att använda.
Krav på loggkälla
- Linux
- Granskad
- Sysmon för Linux
Upptäcka exploatering med hjälp av LogPoint
Om du inte har konfigurerats för att vidarebefordra Linux-loggar till LogPoint kan du upptäcka exploatering genom att söka efter PwnKit-artefakter i /var/log/auth.log. Listan LINUX_SERVERS innehåller IP-adresserna för alla Linux-system som vidarebefordrar loggar till LogPoint.
device_ip IN LINUX_SERVERS
| search ("The value for the SHELL variable was not found the /etc/shells file" OR "contains suspicious content")
Administratörer måste dock komma ihåg att PwnKit kan användas utan att lämna spår i /var/log/auth.log.
För att rensa döda vinkeln kan administratörer använda granskad, förutsatt att den har konfigurerats för att granska pkexec-anrop. Först måste du leta efter händelser som har värdet ”(null)” angivet som proctitle.
device_ip IN LINUX_SERVERS | search 'proctitle="(null)"'
Därefter måste du kontrollera om det finns pkexec-anrop. Defender kräver dessa indikatorer för att ytterligare inspektera systemet och avgöra om det har utsatts för fara med hjälp av PwnKit.
norm_id=Unix "process"=audit command="pkexec"
| chart count() by log_ts, host, key, path, command
I oktober 2 021 tillkännagav Azure CTO Mark Russinovich lanseringen av Sysmon för Linux. Administratörer kan använda guider som [1] och [2] för att testa och driftsätta Sysmon för Linux i sin verksamhet. LogPoint släppte Unix v5.2.0 som stöder Sysmon för Linux. Administratörer måste notera att Sysmon för Linux har samma taxonomi som Windows.
Den generiska LPE-detektionsmetoden används för att detektera PwnKit. Administratörer måste leta efter lek med den privilegierade processen av en icke-privilegierad process med det uppenbara undantaget sudo. PoC:er tillåts efter exploatering antingen köra kommandon direkt som ett kommandoradsargument eller i en interaktiv skalsession. Skärmbilden nedan visar båda dessa 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öker efter generisk lokal privilegieeskalering
Vissa PoC-apparaterkan köras som en singelliner via ett enkelt lockkommando. Du kan övervaka misstänkta nedladdningar från GitHub med hjälp av processkapande händelser.
norm_id=UnixSysmon label="Process" label=Create
image IN ["/usr/bin/curl", "/usr/bin/wget"] command="*raw.githubusercontent.com*"
Utredning efter kompromiss
De nödvändiga stegen för att undersöka aktiviteter efter kompromisser inkluderar inspektion av:
- Skapandet av nya användare för varaktighet.
- Misstänkt exekvering av curl, wget etc. för att ladda ner nyttolaster.
- Installation av cronjobb för uthållighet.
- Installation av en SSH-baklucka för uthållighet.
- Installation av myntarbetare.
LogPoint SOAR Playbook för PwnKit-undersökning
Efter exekvering av motsvarande playbook i LogPoint SOAR kan vi se de fall som skapats av playbookens komponenter i utredningens tidslinje för att få en detaljrik översikt över undersökningens resultat.
LogPoint SOAR-undersökningens tidslinje samlar in resultaten av utredningen
Korrigering
Slutligen vill vi påminna administratörerna om att patcha sina Linux-system på grund av bristens allvarlighetsgrad och den offentliga publiceringen av flera sårbarhets-POC:er. Administratörer kan ta bort SUID-biten från pkexec som tillfällig begränsning om patchar inte har släppts för deras Linux-distribution. Företag kan förvänta sig att hotaktörer använder PwnKit efter att ha fått fotfäste på ett system.