Questo sito web utilizza cookie tecnici e, previo Suo consenso, cookie di profilazione, nostri e di terze parti. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsente all'uso dei cookie. Leggi la nostra Cookie Policy per esteso.OK

LA GUIDA

Security testing: soluzioni e best practice per proteggere gli asset aziendali

I test di sicurezza mettono sotto stress le strutture di rete per verificare l’inaccessibilità dei perimetri fisici e virtuali dell’azienda. Ecco come eseguire un security testing per proteggere gli asset produttivi

27 Set 2018
P
Paolo Perego

OSCP certified penetration tester, Code reviewer, Sviluppatore di codice sicuro, Speaker


Troppo poco si parla di un aspetto fondamentale per la protezione degli asset aziendali: i security testing. Eppure questi sono necessari per una buona cyber security in azienda.

I test di sicurezza in azienda sono come le creature mutaforma di mitologica memoria. Il bouquet di nomi con i quali sono rappresentati è secondo solo alle sfumature dei colori sul pantone.

Si parla di vulnerability assessment, penetration test, security test, security assessment, test di intrusione e, in casi dove l’immaginazione supera la fantasia, di stress test.

Di tanti nomi, ne salveremo solamente un paio, ovvero i vulnerability assessment ed i penetration test i quali aggiungerei anche la (security) code review.

Security testing per la rete aziendale: il vulnerability assessment

Il vulnerability assessment è un’attività volta a creare un elenco di vulnerabilità che, potenzialmente, affliggono un dato indirizzo IP. Potenzialmente perché le vulnerabilità non vengono testate attraverso lo sfruttamento mediante un exploit.

Un vulnerability assessment, o VA volendo abbreviare, è un’attività volta a dare una prima valutazione sullo stato di salute di un server o di un sistema informativo. L’attività, per sua stessa natura, potrebbe quindi far emergere tanti falsi positivi. Vediamo insieme perché.

Il nostro software per vulnerability assessment, poiché si tratta di un’attività che si presta molto bene ad un grado di automazione completo, inizierà esaminando ciascun indirizzo IP di una rete target.

Una volta rilevato il servizio in ascolto e l’esatta versione, il software andrà a cercare nella sua knowledge base tutte le vulnerabilità note conosciute.

Da questo momento in poi molte cose possono andare storte. In particolare, potrebbe succedere che il sysadmin della rete target ha nascosto il numero di versione o cambiato il banner del servizio; oppure che la particolare distribuzione Linux del server ha applicato delle patch senza cambiare il numero di versione del pacchetto; o ancora qualsiasi altro evento che ci porta a non essere in grado di dare con precisione l’indicazione se una vulnerabilità è presente.

Ma quindi, i VA servono? Certamente sì. I vulnerability assessment eseguiti periodicamente servono, ma l’indicazione che danno ha un margine di errore che non scarterei a priori.

Possiamo vedere all’introduzione dei vulnerability assessment come il primo passo per misurare la propria security posture come azienda.

Penetration test: il security testing più efficace

Sicuramente quella del penetration test è la tipologia di test più vicina ad un caso reale. A seconda delle regole di ingaggio concordate tra team che simula l’attacco e committente, si potrà avere qualche conoscenza sul target e sull’infrastruttura o essere un test completamente blind. Potrebbe essere un test eseguito da Internet, in whitelist o meno sui sistemi perimetrali, essere un test eseguito da una postazione all’interno dell’azienda o un test che prevede anche una parte di assessment di sicurezza fisica per vedere se è possibile entrare fisicamente in un building ed attestarsi ad un punto rete.

A seconda dell’ingaggio potrà esserci una fase di social engineering per ottenere le credenziali d’accesso, oppure potrebbero essere informazioni date in anticipo al team di test per velocizzare l’esecuzione dello stesso.

Lo scopo finale del penetration test è quello di entrare il più possibile in profondità in un sistema o in una rete prendendo il controllo di quante più macchine, esfiltrando dati verso l’esterno (per testare ad esempio i meccanismi di data loss prevention) e rendendo persistente la presenza dell’attaccante all’interno dei server dell’azienda target.

La (security) code review per evitare le vulnerabilità software

Le aziende con un livello di maturità elevato hanno un proprio ciclo di vita del software che prevede delle linee guida e dei manuali di safe coding.

Tale documentazione indica al team di sviluppo gli accorgimenti da prendere in materia di programmazione difensiva per evitare vulnerabilità applicative come buffer overflow, cross site scripting, SQL injection o similari.

Una code review è un’attività che interessa il codice sorgente e che valuta come è stato scritto senza mandarlo in esecuzione. Questa attività sarà automatizzata per la parte di analisi ma dovrà avere un team di analisti che scremi la parte di falsi positivi e faccia una review manuale delle porzioni più significative di un’applicazione.

Security testing: tutto quel che serve

Per parlare di security assessment in azienda serve sia commitment che persone del management che abbiano chiara la problematica.

Una volta che la necessità è stata compresa e digerita possiamo decidere se ingaggiare volta per volta un team esterno o creare un competence centre interno.

Entrambi i due approcci hanno i loro pro e i loro contro: quello forse più efficace prevede la presenza di un team interno, eventualmente supportato alla bisogna da team esterni per attività particolari o per le quali si vuole un report imparziale, magari per ragioni di audit esterno.

Il team interno avrà quindi il compito di combinare le varie metodologie di test per alzare la security posture aziendale.

Usare i vulnerability assembler, all’interno di un processo periodico che accompagna un server dal suo primo boot fino alla dismissione, permette di indirizzare le vulnerabilità legate alla configurazione del sistema operativo e del software di base.

Grazie all’esecuzione dei penetration test, modificando volta per volta il target della nostra attività e cambiando il punto di origine dei test, sarà invece possibile simulare un attaccante proveniente dall’esterno o una minaccia interna come un malware scritto ad hoc per esfiltrare i dati o un dipendente infedele.

Infine, è opportuno fare training al personale con campagne di phishing ed azioni di social engineering fino ad una verifica delle reti Wi-Fi aziendali con un test al di fuori del perimetro della sede della compagnia stessa.

Gli unici limiti sono dettati dalla fantasia del security manager, dal tempo e dalle risorse delle persone ingaggiate volta per volta per le attività.

Enjoy it!

@RIPRODUZIONE RISERVATA

Articolo 1 di 4