Quali sono i parametri da registrare in un'applicazione web?

5

Sto lavorando allo sviluppo di un sistema di autenticazione sicuro con SSO. Fino ad ora ho utilizzato il framework di registrazione per generare registri che aiutano nel debug dell'applicazione. Mi chiedo se ci sia una linea guida per implementare la registrazione in un'applicazione web.

per esempio diciamo che c'è un attacco all'app web e un addetto alla sicurezza viene ad analizzare i log e quali sono le cose che cercherà di scoprire? Come rendere l'analisi del registro più semplice?

    
posta Shurmajee 09.04.2013 - 09:55
fonte

2 risposte

4

Se fossi io, vorrei quanto segue:

  • Timestamp preciso (almeno una risoluzione di 1 secondo)
  • Indirizzo IP di origine.
  • Porta sorgente, se possibile.
  • Set completo di intestazioni di richiesta, se possibile.
  • ID sessione.
  • Le intestazioni di inoltro (ad esempio X_FORWARDED_FOR ) sono obbligatorie per la traccia tramite proxy non trasparenti.
  • URL completo richiesto.
  • Parametri POST se applicabili.
  • Altri dati specifici della tua webapp che potrebbero essere utili per il tracciamento delle azioni.

In alcuni casi, questa informazione potrebbe essere voluminosa. Suddividendo i registri ogni giorno e archiviandoli in un formato compresso, dovrebbe essere possibile memorizzare una cronologia ragionevole dei registri. Sarebbe anche accettabile rimuovere le informazioni più dettagliate (ad esempio, i dati POST completi) dopo un paio di settimane, ma ciò potrebbe limitare l'efficacia della risposta agli incidenti e le analisi forensi per gli attacchi rilevati in un secondo momento.

    
risposta data 09.04.2013 - 11:49
fonte
3

Oltre a ciò che Polynomial ha suggerito, raccomanderei di prestare particolare attenzione al tentativo di autenticazione. Ad esempio, registrando l'intera richiesta (incluso l'user-agent - non un identificatore univoco ma un indicatore utile) forse oscurando la password in un formato leggibile dalla macchina (*). Ma anche se il tentativo è riuscito o meno.

Dato che dovresti cambiare l'ID di sessione a un tentativo di autenticazione, devi registrarne entrambi (indipendentemente dal successo). Anche tenere traccia del contenuto correlato per la pagina di autenticazione (jss, css, immagini) è una misura utile, anzi, si potrebbe anche considerare di aggiungere alla pagina un contenuto non memorizzabile nella cache. Misurare il tempo di sosta sulla pagina è utile per rilevare alcuni tipi di attacchi.

La misurazione del tempo necessario per generare l'html e il tempo necessario per scaricarlo sul client fornisce informazioni di profilazione e rilevamento degli attacchi di tipo sloloris.

Per le pagine diverse dalla pagina di autenticazione, quindi vedi l'elenco Polynomial e (dove un ID utente è associato a una sessione, quindi l'id utente - ad esempio, vedi mod_auth_memcookie).

(*) cioè con campi separati e facilmente parificabili

    
risposta data 09.04.2013 - 15:05
fonte

Leggi altre domande sui tag