Come configurare un aggregatore di log per autenticare i dati?


8

Contesto : l'aggregazione dei registri remoti è considerata un modo per migliorare la sicurezza. In generale, ciò affronta il rischio che un utente malintenzionato che compromette un sistema possa modificare o eliminare i registri per frustrare l'analisi forense. Ho cercato opzioni di sicurezza in strumenti di registro comuni.

Ma qualcosa non va. Non riesco a vedere come configurare nessuno dei logger remoti comuni (ad es. Rsyslog, syslog-ng, logstash) per autenticare che un messaggio in arrivo proviene realmente dall'host presunto. Senza un qualche tipo di vincolo politico, un log-originator potrebbe falsificare i messaggi per conto di un altro log-originator.

L'autore di rsyslog sembra avvertire dell'autenticazione dei dati di registro :

Un'ultima avvertenza: transport-tls protegge la connessione tra il mittente e il destinatario. Non protegge necessariamente dagli attacchi presenti nel messaggio stesso. Soprattutto in un ambiente di inoltro, il messaggio potrebbe essere stato originato da un sistema dannoso, in cui venivano inseriti nomi host e / o altri contenuti non validi. Se non è previsto il provisioning di tali elementi, questi record potrebbero essere visualizzati nel repository dei destinatari. -transport-tls non protegge da questo (ma può aiutare, usato correttamente). Tieni presente che syslog-transport-tls offre sicurezza hop-by-hop. Non fornisce sicurezza end-to-end e non autentica il messaggio stesso (solo l'ultimo mittente).

Quindi la domanda di follow-up è: qual è una configurazione buona / pratica (in qualsiasi strumento di registro comune di tua scelta - rsyslog, syslog-ng, logstash, ecc.) Che fornisce un po 'di autenticità?

Oppure ... se nessuno autentica i dati di registro, perché no ?

-

(A parte: nella discussione / confronto, può essere utile utilizzare alcuni diagrammi o terminologie da RFC 5424: Sezione 4.1: Esempi di scenari di distribuzione - ad es. "Originator" vs "relay" vs "collector")


Quale parte stai cercando di proteggere? Il registro aggrega la ricezione di dati da un host corretto o i dati stessi?
Shane Andrie,

Ricezione dall'host corretto. Se Alice e Bob sono entrambi originatori di log e Trento è il log-collector, Alice dovrebbe essere in grado di fornire i log di Trento con "hostname = alice" ma non "hostname = bob". Ma penso che l'impostazione predefinita sia progettata per presumere che Alice possa essere un log-relay, quindi le permetterebbero di inviare qualsiasi cosa.
Tim Otten,

Risposte:


1

Questa è un'ottima domanda

Uso logstash per realizzare qualcosa di simile a quello che stai proponendo. Utilizzando logstash (o logstash-forwarder) per inviare i log al sistema di raccolta centrale, aggiungere una configurazione logstash per aggiungere un campo chiave al messaggio, il cui valore è una lunga stringa casuale unica per ciascun server.

Quindi, dal lato di ricezione, puoi aggiungere una regola corrispondente per scartare (o avvisare) qualsiasi messaggio in cui la chiave di un host specifico non corrisponde a quello che ti aspetti per il suo nome host.

Questo non è a prova di proiettile, ma è un solido passo nella giusta direzione.


3

La cosa giusta da usare per questo è TLS con i certificati client della macchina.

rsyslog lo fa da circa il 2008 e ha ottime istruzioni: http://www.rsyslog.com/doc/v8-stable/tutorials/tls_cert_summary.html

Il processo è estremamente semplice, come vanno queste cose:

  1. Crea una CA
  2. Rilascia i certificati su tutti i tuoi computer da cui desideri registrare
  3. Configurare rsyslog per utilizzare tale autenticazione

Quindi, i computer non possono impersonarsi a vicenda e nessuno può accedere al log server senza uno dei certificati.

Vedo che l'hai già trovato, ma sei ancora preoccupato per il loro avvertimento. Non me ne preoccuperei troppo. L'iniezione di log è certamente una cosa, ma lo sono molte cose, tra cui l'iniezione attraverso l'applicazione e l'iniezione nel processo di registrazione. Rsyslog autenticato non ti proteggerà se qualcuno ha un attacco di iniezione di log nel tuo software applicativo, ma nulla lo farà o non potrà farlo; solo risolvere l'applicazione può essere d'aiuto. Questo ti proteggerà solo dai registri falsificati.

Le altre avvertenze possono essere facilmente mitigate dal mancato utilizzo dei relè, che in ogni caso ci sono davvero poche ragioni per farlo. Se non si dispone di relè e si utilizza l'opzione x509 / name per il driver di connessione gtls nel server rsyslog, non si dovrebbero avere problemi.

Vedi anche il documento di configurazione di gtls: http://www.rsyslog.com/doc/v8-stable/concepts/ns_gtls.html

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.