Esiste un rischio per la sicurezza che consente agli utenti Linux regolari di eseguire codice arbitrario?

6

Vorrei consentire agli utenti non fidati di eseguire app arbitrarie sul nodo. Se utilizzo iptables per bloccare tutto tranne server attendibili, rendere visibile a tutti la cartella home di ciascun utente e utilizzare runuser per avviare il server, esiste il rischio che accedano ai dati degli altri?

Fondamentalmente creerò un nuovo utente per l'istanza, copi l'app nella home directory, chown / chmod, e poi esegui:

runuser -l their-user-name -c /usr/local/bin/node /users/their-user-name/server.js

Capisco che possono inondare la memoria / cpu / io. E ovviamente possono aprire i propri dati, ma a parte questo ... c'è qualche rischio per la sicurezza che mi manca?

Il mio piano è di utilizzare iptables per consentire ad ogni utente specifico di aprire un server su una porta specifica, che può ricevere solo connessioni in entrata dal mio server nginx. E quindi consentire le connessioni in uscita a un server di database affidabile.

    
posta Erik Pukinskis 11.01.2016 - 11:59
fonte

1 risposta

4

C'è sempre qualche rischio e in questo caso se il sistema non è indurito internamente potrebbe essere banale per un "utente conosciuto" o un cattivo attore accedere a dati di altri utenti in pochi minuti se non in secondi.

In questo caso hai ancora tutti i problemi di escalation dei privilegi locali e problemi di sicurezza locale che potrebbero consentire agli utenti locali di diventare root o di eseguire cose come root o semplicemente dare loro pieno accesso ai dati degli altri utenti. In molti modi questo è molto più difficile da proteggere rispetto al tentativo di proteggere un sistema dall'esterno. Detto questo non è che non è possibile aggiungere molti controlli di sicurezza per proteggersi dagli utenti o che non può essere fatto ma richiede molto più lavoro.

Potrebbe essere saggio esaminare l'impostazione di un ambiente chroot tenendo presente che è ancora necessario rafforzare il sistema dagli attacchi interni. Allo stesso modo sarebbe saggio inviare tutti i tuoi registri su un sistema remoto, nel caso in cui un utente non aumenti i privilegi, sarà più difficile per loro nasconderlo.

Ricorda che potrebbero esserci modi più semplici per risolvere il tuo obiettivo finale e che a volte vale la pena di fare un passo indietro per vedere dove sono tutti i compromessi sulla sicurezza e cosa stai effettivamente cercando di ottenere.

Potrebbero essere utili le seguenti guide di sicurezza Linux per la protezione avanzata. Potresti anche voler eseguire uno strumento simile a Nessus per esaminare i tuoi rischi locali.

CIS Security Benchmarks link

NSA Guida alla configurazione di sicurezza dei sistemi operativi link

NIST sp800-123 Guida alla sicurezza generale del server link

Indurimento di sicurezza di Matt Brock su Ubuntu Server 14.04 link

Indurimento della configurazione IPTables con i tassi limite link

Suggerimenti per la protezione avanzata da Linux Server link

Indurire lo stack TCP / IP contro SYN Floods link

Guida IBM per rafforzare Linux link

    
risposta data 11.01.2016 - 15:42
fonte

Leggi altre domande sui tag