Logging: il lato nascosto delle web application

di Davide Denicolo

scritto il

Quanto è utile tener traccia delle operazioni critiche nelle web application? Ne parlano Rohit Sethi e Nish Bhalla in un articolo su Securityfocus nel quale espongono l’elevata importanza che questi strumenti di monitoraggio offrono; essi consentono infatti un’analisi quasi immediata in caso di attacco web per carpirne informazioni utili per risalire all’attacker (ora, IP, browser) e alla vulnerabilità (DOS, SQL Injection).

Migliaia di righe di debug registrate su memorie di massa da analizzare in fase di troubleshooting, problemi che spesso sistemi di IDS/IPS non sono in grado di individuare o prevenire; inoltre l’utilizzo di tool come “Samwill Log Analysys” atti ad analizzare pattern attack su file log di grandi dimensioni, è incoraggiato dagli autori stessi.

Ma praticamente, quali sono i tool più diffusi che permettono di tracciare tali operazioni e quali sono le funzionalità che andrebbero monitorate?

Tra i prodotti più diffusi Log4J ha il primato, un progetto opensource della Apache Software Foundation e Log4net per l’ambito proprietario Microsoft; sempre gli autori inoltre, indicano come funzionalità critiche da monitorare, quelle relative all’autenticazione web e di interrogazione SQL.

Ecco degli esempi di pseudo-codice tratti dall’articolo:

In questo caso viene inserito nel log una riga contenente informazioni qualora l’autenticazione non andasse a buon fine (un presunto brute forcing o cracking dell’account)


if (!request.password.equals(result.password)){
//user supplied wrong p/w
log.debug("Invalid access attempt for " + request.usernane +
" with password " + request.password);
}

e la validazione delle query SQL verso il database:


if (!request.desc.indexOf(';') != 0) {
//possible SQL Injection character
log.fine("Possible SQL injection character ';' in request.desc
value of " + request.desc);
}

Come si può notare, diversi sono i livelli di debug offerti da questi tool, la cosa più importante è saperli usare con parsimonia e in aree di codice dove si necessità veramente monitorare l’attività dell’applicazione; questo fattore risulta importante perchè un eccessivo uso dei log, può diventare controproducente al punto tale da arrivare a saturare dischi occupando memoria inutilmente.