PENETRATION TEST

Penetration Test

Penetration Test

 

Oggi giorno tutto e’ e sara’ sempre piu’ connesso o interconnesso in rete, dalle nostre vite sociali, ai dati aziendali fino all’ultima frontiera rappresentata dall’Internet delle Cose IoT, che è un neologismo riferito all’estensione di Internet al mondo degli oggetti e dei luoghi concreti.

Tutto questo scambio continuo di dati (foto, login, codici…) richiede che le aziende incaricate di mantenere al sicuro i nostri dati piu’ importanti debbano essere sempre preparati dal pericolo sempre maggiore di un’intrusione, in effetti il comportamento non sarebbe diverso da una squadra di vigili del fuoco che si allenano costantemente simulando ogni tipologia di situazione cosi da sapere sempre cosa fare, come risolvere e se possibile come prevenire un disastro.

Una delle metodologie a cui dovrebbero affidarsi i team di sicurezza interni, o tramite specifiche consulenze, sono i cosidetti PENETRATION TEST.
Che cosa s’intende quando si usa questo termine? Il penetration test è la metodologia di valutazione della sicurezza di un sistema o di una rete. L’analisi comprende più fasi ed ha come obiettivo evidenziare le debolezze della piattaforma fornendo il maggior numero di informazioni sulle vulnerabilità che ne hanno permesso l’accesso non autorizzato. L’analisi è condotta dal punto di vista di un potenziale attaccante e consiste nello sfruttamento delle vulnerabilità rilevate al fine di ottenere più informazioni possibili per accedere in modo fraudolento al sistema. Un pen-test dunque consiste nel testare la sicurezza di un sistema cercando di violarlo sottoponendolo ad una grande varietà di attacchi informatici e non. L’obiettivo è quello di individuare eventuali vulnerabilità sfruttabili da terzi per ottenere accessi non autorizzati ai servizi e ai sistemi analizzati.

Oltre ai problemi di sicurezza, devono essere rilevati, quali possibili punti deboli, i problemi relativi alla configurazione, il cosidetto “tuning“, che incidono sulla robustezza e le performance del sistema, e gli errori di progettazione della rete. Non a caso, a volte una cattiva configurazione è più pericolosa di un bug.

Questa e’ una lista sintetica che descrive cio che un pen-tet cerca d’individuare:

  • bug, vulnerabilità e security hole nel software presente;
  • punti deboli nella progettazione della rete;
  • punti deboli di firewall e router;
  • punti deboli negli script dei web-server;
  • errori nella configurazione dei principali servizi in esecuzione;
  • problemi relativi l’accesso fisico alle macchine.

Una volta portato a termine il test, tutti i problemi di sicurezza rilevati vengono presentati al cliente o alla propria direzione informatica assieme ad una valutazione del loro impatto nel sistema e nello scenario del business aziendale, fornendo inoltre una soluzione tecnica o proposta di migrazione e mitigazione del sistema.

Il penetration test ci fornisce quindi una stima chiara sulle capacità di difesa e del livello di penetrazione raggiunto nei confronti di problematiche quali:

  • vulnerabilità interne al sistema;
  • vulnerabilità esterna al sistema;
  • difetti sicurezza fisica

Quali sono le modalita’ in cui i Penetration Tester svolgono il loro ruolo ??
I processi di penetration test possono essere effettuati in diverse modalità. La differenza consiste sulla quantità e qualità delle informazioni disponibili a coloro che devono effettuare l’analisi riguardo ai sistemi analizzati. I processi di analisi che vengono condotti in un penetration test hanno diversi tempi di azione in cui vengono alternate fasi manuali e fasi automatiche. Vengono acquisite inizialmente le informazioni principali sull’architettura della piattaforma e sui servizi offerti. Dall’analisi di questi dati deriva la scelta di come condurre il passo successivo, consistente in una enumerazione dei principali errori e problemi. Subentrano cosi nell’equazione i Penetration Tools che, uniti all’esperienza manuale dell’analista permettono quindi di evidenziare tutte le possibili vulnerabilità, incluse quelle più recenti e, a volte, alcune ancora non di pubblico dominio. I problemi riscontrati sono quindi manualmente verificati.

L’attività si considera conclusa una volta portata a termine la reportistica composta dal report di analisi sommaria dedicato al management o executive summary, contenente l’analisi dell’impatto di rischio di quanto riscontrato e tempistiche per l’azione di rientro o mitigazione delle problematiche riscontrate, e dal report tecnico, contenente l’analisi dettagliata dei problemi e la soluzione tecnica.

Va aggiunto per maggiore chiarezza che il penetration test va effettuato su sistemi esposti su Internet e comunque sulle piattaforme sensibili collegate a grosse reti, testando le vulnerabilita’ sia con attacchi esterni alla rete che con attacchi dall’interno della stessa e, possibilmente gia prima prima che esse entrino nella fase di completo esercizio.
Possiamo distinguere vari livelli tecnici dei test, piu’ a grandi linee si possono delineare tre grandi categorie:

  • livello basso: questo è il test che in genere fanno i tool di auditing automatici, a la Nessus per intenderci. Si controlla solo se ci sono servizi in esecuzione con vulnerabilità note, in genere vengono rilevate solo grosse falle e misconfigurazioni macroscopiche.
  • livello medio: oltre a controllare i servizi in esecuzione, viene testata la rete, i firewall, i router, etc…, e si fa spesso ricorso anche a tecniche di social engineering.
  • livello alto: qui siamo a livelli paranoici, si può arrivare a controllare i sorgenti (se disponibili) dei programmi alla ricerca di nuove vulnerabilità (quindi meglio optare per software open source e li dove e’ possibile per far sviluppare internamente cio di cui si ha bisogno), o ad esercitare la tecnica denominata del trashing detto anche information diving, che è la pratica di risalire ad informazioni riservate attraverso il setacciamento dei rifiuti della vittima, come resoconti, bollette, corrispondenza. Una delle tecniche preferite dal famoso Kevin Mitnick.

Mettendo insieme tutte queste metodologie ed informazioni possiamo darvi un piccolo scenario di cio che viene eseguito, a grandi linee, durante un’attacco:

  • Ricognizione di base: informazioni dal sito, informazioni sul dominio e sull’amministratore. A volte basta visitare il sito per raccogliere importanti notizie sul software presente sul server, spesso infatti in fondo all’home page i webmaster inseriscono notizie sul sistema operativo, webserver, etc…., come ad esempio trovare indicazioni come queste “Powered by Apache, Linux Inside…” , mettono a rischio i sistemi.
  • Ricostruzione della struttura interna della rete
  • Raccolta Info:Una volta identificata la struttura della rete e il numero di macchine bisogna raccogliere il maggior numero di informazioni su ognuna di esse. Quindi occorre ricercare i servizi in esecuzione, identificare i sistemi operativi, la versione dei servizi, il tipo di processore, i nomi utente (standard e non), le risorse condivise, etc.
  • Tracciamento vulnerabilita‘: dopo aver determinato i tipi di servizi attivi sull’host bersaglio si deve tracciare una mappa delle vulnerabilità, e occorre ricercare (o scrivere) gli exploit applicabili contro i servizi bersaglio.
  • Analisi della topologia della rete.
  • Applicazione degli exploit.
  • Verifica della possibilità di sniffing e tentativi di DoS & DDoS.
  • Test su router e firewall.
  • Pulizia delle tracce dell’attacco.
  • Stesura del report.

Al termine degli attacchi e della valutazione dei log raccolti un sistema potra’ dirsi vulnerabile se è possibile:

  • accedere a risorse interne;
  • leggere e modificare file riservati;
  • controllare il traffico in entrata e/o uscita;
  • eseguire programmi senza averne i permessi;
  • accedere alla macchina con i permessi di amministratore (root) da parte di utenti non privilegiati;
  • controllare la configurazione della rete e dei servizi.

Punti critici:
cerchiamo ora di evidenziare i lati negativi del preparare un pen-test che purtroppo e’ un po come fare i lavori di casa mentre voi ci abitate dentro……
I punti critici da prendere in considerazioni sono: trattamento dei dati raccolti, salvaguardia dei sistemi e dei dati, riservatezza riguardo le vulnerabilità emerse durante il pen-test. Durante il penetration test potrebbero verificarsi dei disagi dovuti al lavoro del tester, si potrebbero avere perdite o danni ai dati o ancora una momentanea perdita di accessibilità. Ad esempio una macchina dedicata all’e-commerce potrebbe rimanere inaccessibile a causa di una simulazione di un DoS, con conseguenze economiche dirette. O ancora, una azienda che fornisce servizi a terzi, potrebbe vedere i propri servizi interrotti con evidente disagio per i clienti.
Prima di cominciare il test bisogna concordare quale livello di rischio il committente è disposto a correre, invitandolo anche a fare un backup dei dati prima di effettuare il pen-test. Bisogna prevedere tali evenienze in fase di stipula del contratto, declinando per quanto possibile le responsabilità e garantendo però, allo stesso tempo, adeguate misure per il recupero del sistema.

Per ultimare questa carellata sul valore di un Pen-test aggiungo che il suo valore è strettamente legato alle capacità del tester, dunque affidiamoci soltanto a persone preparate che possono dimostrare esperienza pratica svolta su clienti tracciabili; inoltre esso perde di validità non appena si apportano modifiche (anche minime) alla configurazione di una macchina interessata al test, quindi è consigliabile eseguire un pen-test poco prima di mettere in produzione la rete. Inoltre anche lasciando inalterate le macchine testate, il pen-test dovrebbe essere ripetuto periodicamente, poichè oggi giorno vengono trovate quotidianamente nuove vulnerabilità e nuovi exploit.

in-memory computing grandi moli di dati direttamente nella memoria

In-Memory Computing Database

In-Memory Computing Database

La quantità di dati prodotti e gestiti giornalmente in ogni parte del mondo ha raggiunto dimensioni inimmaginabili rispetto anche solo a cinque anni fa. Internet of Things, Digital Technology, Mobility sono solo alcune delle ultime evoluzioni tecnologiche che hanno impresso a questo fenomeno un’accelerazione esponenziale. Un trend, visibile in tutti i settori dell’economia e in ogni parte del mondo.
La complessità degli attuali scenari competitivi obbliga le aziende al continuo riallineamento dell’offerta sulla base dei cambiamenti repentini della domanda. Big Data e Internet of Things restituiscono un ricco bacino informativo da cui sviluppare nuove opportunità di business, ma generano al contempo nuove sfide di governance.

L’in-memory computing è la chiave di volta per rispondere proattivamente all’effervescenza del mercato, perché permette di elaborare grandi moli di dati direttamente nella memoria centrale del sistema, restituendo le informazioni pertinenti con maggiore rapidità.
Il ricorso a piattaforme di “in-memory” via cloud permette di dotarsi di un’infrastruttura prestazionale e scalabile per il data management, con vantaggi di affidabilità, agilità e performance, a supporto di applicazioni analitiche e mission-critical.

In altre parole, l’in-memory computing elimina la necessità di eseguire operazioni di ricerca e recupero delle informazioni su disco ogni volta che viene eseguita un’elaborazione, rendendo trascurabile la latenza di accesso ai dati. Questo nuovo modello tecnologico porta ad un forte miglioramento delle performance di sistema e contiene in sé il potenziale per un’innovazione epocale delle attività di elaborazione elettronica, insomma una nuova era, caratterizzata da un più rapido ed efficiente accesso ai dati.
Due fattori principali stanno contribuendo alla forte espansione dell’ in-memory computing:

Processori a 64 bit
Con il rilascio del processore a 64 bit, avviene una vera e propria rivoluzione nelle capacità di
memoria potenzialmente utilizzabili.

Continua diminuzione del prezzo della RAM
Negli ultimi 30 anni i prezzi della RAM sono diminuiti di oltre 500.000 volte:

Nel frattempo i retailers, alla costante ricerca di strumenti di analisi dei dati per assumere decisioni tempestive in maniera rapida e confidente, hanno un potenziale enorme, a oggi ancora inespresso, nei dati immagazzinati nei propri sistemi, siano essi transazionali o memorizzati in data-warehouse, siano essi prodotti e gestiti dall’azienda o provenienti dalle interconnessioni con il proprio eco-sistema composto da clienti, fornitori, partner commerciali etc… Questa impressionante mole d’informazioni è un patrimonio fondamentale che può essere reso disponibile per prendere decisioni immediate, in modalità real-time ad ogni livello della propria catena decisionale.

Al pari di un comune database, il motore di In-Memory Computing supporta gli standard di settore, come SQL e MDX, ma include anche un motore per il calcolo ad alte prestazioni che integra il supporto del linguaggio procedurale direttamente nel kernel del database. Tale approccio elimina l’esigenza di leggere i dati dal database, elaborarli e quindi riscriverli nuovamente nel database.

Il motore di In-Memory Computing propone quindi significative innovazioni tecniche come l’utilizzo del nucleo della CPU e la massiccia elaborazione parallela. In particolare la velocità, la scalabilità e la capacità di compressione dei dati sono i suoi veri punti di forza tecnici.

Tra le prime aziende a credere ed investire in questa tecnologia e’ stata SAP che ha creato una propria soluzione HANA, una nuova tecnologia destinata a cambiare il mercato, in particolare della Business Intelligence.

Hana e’ una nuova soluzione ibrida basata sulla tecnologia di in-memory computing, che sarà installata su diversi server e apparati di Dell, Hp, Ibm e Fujitsu. Coinvolte nel progetto anche Cisco e Intel. Si chiama Hana (acronimo di High Performance Analytic Appliance) ed è una soluzione che comprende la prima appliance analitica basata sulla tecnologia ‘in-memory computing’.

HANA è una combinazione di software e hardware sulla quale possono girare applicazioni sviluppate appositamente ma che può anche essere accostata a tradizionali sistemi ERP e di business intelligence.

Le regole del gioco cambiano quindi con il software in-memory di SAP HANA:

Perché attendere analisi effettuate su dati già obsoleti? Perché accettare elaborazioni di transazioni, esecuzione dei processi e ricerca di informazioni troppo lenti?
Affidati alla piattaforma SAP HANA per attingere a volumi elevati di informazioni dettagliate e aggiornate al verificarsi degli eventi.

Perché scegliere SAP HANA?

  • Velocità: gestire volumi di dati massivi in secondi, non in ore
  • Agilità: decisioni real-time supportate da informazioni real-time
  • Ordine: ottenere informazioni da ogni dato, strutturato o non strutturato
  • Penetrazione dei dati: indagare, e ottenere risposte, immediatamente
  • Potenza: eseguire nuove applicazioni che sfruttano le potenzialità delle informazioni
  • Cloud: un modello cloud-based sicuro, scalabile e robusto
  • Innovazione: utilizzare la conoscenza per guidare il cambiamento, velocemente come mai prima
  • Semplicità: ridurre costi e complessità per ogni volume o tipo di dato
  • Valore: ottimizzare il business per creare nuove offerte e aumentare i margini di profitto
  • Scelta: utilizzare l’hardware e il software che si preferiscono

Tutto ciò significa che attraverso HANA, le applicazioni possono delegare le operazioni direttamente alla memoria invece che ai dischi. L’informazione viene così conservata e analizzata in HANA, invece che immagazzinata in tabelle statiche all’interno di database tradizionali.

IN-MEMORY COMPUTING, la tecnologia c’e’ e vale la pena provarla.