Come impedire agli amministratori di accedere ai log dalla propria attività?

26

L'idea sarebbe quella di impedire a un utente malintenzionato che ha rubato un account root / amministratore o di eseguire l'escalation per cancellare le proprie attività o persino leggere le tracce di ciò che sta facendo. Supponiamo di essere sotto Linux, di accedere con auditd, di avere registri centralizzati , e possiamo usare MAC con SELinux. Ma mi interessano anche le risposte su Windows.

Una soluzione sarebbe vietare a tutti gli account root di accedere ai log. I registri sono gestiti solo da processi autorizzati su server specifici da logrotate, syslog e tutto il materiale SIEM. Quindi solo il SOC può leggere e analizzare i registri degli amministratori. Solo un processo di eliminazione può eliminare i vecchi registri. Qualcuno può confermare che è fattibile?

È possibile avere qualcosa di più flessibile in cui gli amministratori con i propri privilegi di root possono leggere i registri di altri account di root?

    
posta lalebarde 21.09.2018 - 19:22
fonte

7 risposte

45

La soluzione accettata è quella di non memorizzare i log localmente, ma su un server di log. Una volta che i registri sono lì, puoi limitare o limitare l'accesso come meglio credi.

In alcune soluzioni di server di registro / aggregatore, è possibile limitare un utente a visualizzare le voci che contengono riferimenti a determinati dati (come i loro account utente o IP macchina). Ciò significa che puoi abilitare gli amministratori a vedere altre attività di amministrazione, ma non le loro.

In genere si desidera posizionare gli avvisi all'interno del server di registro / aggregatore per far scattare se i registri di una qualsiasi macchina smettono di rientrare o vengono ridotti al di sotto di determinate soglie, il che aiuta a rilevare se un amministratore locale ha impedito la trasmissione dei registri al log server / aggregatore.

Server Syslog, SIEM, aggregatori di registri, stack ELK ecc. Esistono numerose opzioni da esplorare.

    
risposta data 21.09.2018 - 20:01
fonte
12

Qualsiasi registro su un host compromesso è sospetto. È necessaria una piattaforma di registrazione centralizzata, un server syslog centrale / splunk / logrhythm / qualunque. Mantieni un diverso set di amministratori e account. Questa è l'idea.

Una volta installata una piattaforma, è possibile delegare i diritti per visualizzare le proprie azioni, proprie o di altri amministratori, che possono essere eseguite. Abbiamo avuto i diritti di leggere specifiche fonti di log e host delegati.

    
risposta data 21.09.2018 - 20:02
fonte
2

Se un utente malintenzionato acquisisce privilegi elevati su una macchina, quindi l'intera macchina non è più affidabile , per non parlare dei controller di registro.

Un server di registrazione remoto è l'unica opzione qui, anche se i dettagli possono variare. Sarai in grado di gestire i registri e gestire i controlli di accesso in un modo più sicuro rispetto alla memorizzazione dei registri localmente.

    
risposta data 23.09.2018 - 03:28
fonte
1

Il primo passaggio consiste nell'inviare i log su un server diverso, in modo che dopo che il primo server sia stato compromesso (e quindi i loro registri potrebbero essere modificati), quel server di registro avrebbe queste voci di registro. E questo server può (dovrebbe) essere protetto più strettamente.

Ciononostante, qualcuno deve essere in grado di amministrare quel server, solo se è possibile aggiornare il server!

Modi per proteggere ulteriormente i registri in quel server:

  • Richiede più amministratori per qualsiasi azione (non banale) (ad esempio, i comandi introdotti richiedono la conferma da parte degli amministratori N)
  • I log possono essere archiviati collegandoli a quelli precedenti in un albero Merkle , in modo che la rimozione o la modifica di una voce influire su quelli successivi¹
  • L'hash del registro corrente potrebbe essere inviato a un utente esterno (prelevando da un server di data e ora, inviando una società partner o semplicemente inviando a un feed Twitter²).

¹ Quando si discute di usare questo può vendere meglio affermare che questo utilizza tecnologia blockchain .

² O se i registri stessi non sono confidenziali, potresti addirittura inviare alcuni eventi del server di registro in chiaro: "jdoe ha effettuato l'accesso al server di registro ed eseguito rm -rf / "

    
risposta data 23.09.2018 - 01:16
fonte
1

Alcuni modi possibili per proteggere i registri dall'amministratore:

  • registrazione remota su una macchina che non è controllata dall'amministratore in questione
  • scrivi il log su un supporto scrivibile una sola volta (ad esempio, Bluray registrabile), nota che potresti anche aver bisogno di una strategia per evitare di riempire eccessivamente il supporto, come scollegare tutti gli amministratori se i registri stanno per diventare pieni
  • pubblica l'hash dei log su una blockchain pubblica, questo rileva manomissioni, anche se non registra la distruzione
  • forzare l'accesso alla macchina tramite un server mitm, gli amministratori possono collegarsi alla macchina amministrata tramite il server mitm, che registrerà tutti gli input tasto / mouse e l'uscita schermo / terminale (usando ssh mitm o vnc / rdp mitm)
risposta data 23.09.2018 - 05:07
fonte
0

Una soluzione consiste nell'utilizzare un diodo di dati per proteggere l'accesso al server central collector, che è quindi accessibile solo fisicamente, ciò che è facile da controllare. Inoltre, è possibile creare specifici account utente individuali per una migliore protezione.

    
risposta data 25.09.2018 - 17:44
fonte
0

Filtro auditd registra con rsyslog per uid avere un file per uid. Quindi SELinux può essere applicato per implementare qualsiasi politica, in particolare per impedire a un amministratore di accedere ai propri registri. La soluzione proposta qui evita di richiedere ad un team indipendente di amministratori di accedere ai log sui server di log quando si dispone di una politica restrittiva.

Come detto da altri, i registri devono essere centralizzati. Inoltre, l'accesso a questi server di registri centralizzati deve essere eseguito solo con account locali.

    
risposta data 02.10.2018 - 11:43
fonte

Leggi altre domande sui tag