selinux: blocco di sudo e di su su mettendo l'utente nel profilo user_t

1

Sto tentando di bloccare le escalation dei privilegi da account non privilegiati come www-data .

In sostanza, se il mio server web viene compromesso, i cracker possono trovare dei modi per aumentare il livello (le vulnerabilità si trovano in sudo? riutilizzo della password di root da un altro server incrinato?). Voglio trovare un modo per proibirlo e ho scoperto che mettere www-data nel profilo user_u selinux ha questo effetto.

Tuttavia, guardando il file audit.log quando www-data tenta di sudo o su mostra questo:

Per sudo:

type=AVC msg=audit(1533818833.807:318): avc:  denied  { setuid } for  pid=1417 comm="sudo" capability=7  scontext=user_u:user_r:user_t:s0 tcontext=user_u:user_r:user_t:s0 tclass=capability

Was caused by:
The boolean selinuxuser_use_ssh_chroot was set incorrectly. 
Description:
Allow selinuxuser to use ssh chroot

Allow access by executing:
# setsebool -P selinuxuser_use_ssh_chroot 1

Per su:

type=AVC msg=audit(1533818282.076:263): avc:  denied  { write } for  pid=1354 comm="su" name="btmp" dev="dm-0" ino=8428621 scontext=user_u:user_r:user_t:s0 tcontext=system_u:object_r:faillog_t:s0 tclass=file

Was caused by:
    Missing type enforcement (TE) allow rule.

    You can use audit2allow to generate a loadable module to allow this access.

Quindi, per sudo , sembra più di un bug (perché selinuxuser_use_ssh_chroot ??!) e per su , la negazione deriva da diritti insufficienti su /var/log/wtmp

Questo metodo è efficace per bloccare possibili escalation di utenti non fidati? O sembra più di un trucco? È sufficiente per impedire all'utente compromesso con password di root di ottenere l'accesso root?

    
posta philippe 09.08.2018 - 14:59
fonte

1 risposta

0

Il messaggio su selinux_use_ssh_chroot booleano è un suggerimento diagnostico basato sull'AVC generato messaggio di rifiuto. Il rifiuto esatto riguarda la capacità setuid e il booleano in questione abilita una regola che consente l'operazione, quindi è stata suggerita automaticamente. Allo stesso modo un suggerimento automatico per la regola aggiuntiva che consente l'accesso è stato generato quando si è tentato di utilizzare su . I messaggi di rifiuto AVC sono attesi se si tenta di ottenere privilegi come utente confinato.

Tuttavia, i test non riflettono il comportamento del server Web (apache o nginx) in un dominio limitato. Per impostazione predefinita, dovrebbe essere eseguito nel dominio httpd_t confinato. Se non esiste una politica mirata, il servizio verrà eseguito nel dominio non confinato, non in user_t .

Se un server Web confinato è compromesso, l'autore dell'attacco è ancora confinato con httpd_t dominio e non può ottenere nuove autorizzazioni che non erano originariamente consentite. Non dovrebbero esserci regole che consentano un processo in httpd_t per eseguire sudo / su . Anche se il processo dovesse riuscire a chuid per eseguire il root, senza alcuna regola di transizione verso un altro dominio, il processo rimarrebbe comunque in httpd_t e sarà limitato alle regole per httpd_t .

    
risposta data 13.08.2018 - 23:44
fonte

Leggi altre domande sui tag