Il penetration tester ha assunto un’importanza strategica sempre maggiore nell’ambito della sicurezza informatica nelle aziende.
Se è vero, infatti, che negli ultimi anni si sono moltiplicati framework e normative sulla cyber security nell’intento di favorire la diffusione rapida e quanto più uniforme di una cultura della sicurezza, è altrettanto evidente che, per quanto utile, questo approccio risulta tuttavia distante dalla realtà delle applicazioni di business e dalle infrastrutture informatiche presenti in azienda.
Audit stilati compilando form preimpostati sono sicuramente validi, ma non possono riprodurre un’efficace fotografia dello stato di sicurezza delle misure difensive poste a protezione dei propri crown jewels.
Una buona gestione organizzativa deve, quindi, essere accompagnata da una forma di sana preoccupazione, che preluda all’organizzazione di simulazioni di attacco nei confronti della propria infrastruttura: i cosiddetti penetration test.
Indice degli argomenti
Chi è il penetration tester
Il penetration tester può essere descritto come un hacker incaricato di attaccare lecitamente un target aziendale, al fine di scovare il maggior numero di difetti.
Sono diversi gli ambiti in cui un penetration tester (pentester, in gergo) può tentare di bypassare le restrizioni poste dalla società committente. Soprattutto sono molteplici, e personalizzabili, gli scenari all’interno dei quali è possibile far agire l’hacker etico:
- penetration test interno: si simula un attacco perpetrato da un insider, ovvero un malintenzionato che può, più o meno lecitamente, agire dall’interno dell’azienda. In questo caso, a seconda delle necessità e della curiosità della società committente, il penetration tester cercherà di analizzare il contesto informatico infrastrutturale nel quale si trova, al fine di tentare di accedere ad informazioni riservate o di compiere azioni non autorizzate;
- penetration test esterno: si simula un attacco condotto dall’esterno, emulando un criminale informatico che punti a violare i terminali aziendali esposti pubblicamente su rete internet, quali applicazioni, database, dispositivi di rete, web server e via dicendo.
Entrambe queste semplici casistiche esemplificative possono essere affrontate secondo diverse modalità, classificate come segue dall’Institute for Security and Open Methodologies, nel quadro della metodologia OSTMM:
- Blind. Gli analisti simulano le azioni di un agente di minaccia all’oscuro dei dettagli implementativi del contesto oggetto di analisi. Il target è a conoscenza di tutti i dettagli della verifica.
- Double Blind. Gli analisti simulano le azioni di un agente di minaccia all’oscuro dei dettagli implementativi del contesto oggetto di analisi. Il target non è informato sul perimetro di test.
- Gray Box. Gli analisti simulano le azioni di un agente di minaccia in possesso di informazioni limitate sulle componenti e sulle difese presenti nel contesto oggetto di analisi. Il target è a conoscenza di tutti i dettagli della verifica.
- Double Gray Box. Gli analisti simulano le azioni di un agente di minaccia in possesso di informazioni limitate sulle componenti e sulle difese presenti nel contesto oggetto di analisi. Il target è a conoscenza del perimetro di test, ma non di tutti i dettagli della verifica.
- Tandem. Gli analisti e il target sono entrambi in possesso di informazioni di dettaglio relative al contesto oggetto di analisi e alla verifica di sicurezza.
- Reversal. Gli analisti sono in possesso di informazioni di dettaglio relative al contesto oggetto di analisi. Il target non è informato sul perimetro di test.
Per quanto ogni tipologia di test abbia i propri obiettivi, l’intento finale di un penetration tester è ottenere l’accesso a informazioni confidenziali e all’esecuzione di codici con privilegi amministrativi.
Risiede in questo la differenza sostanziale che separa la professione del penetration tester da quella del vulnerability assessor, che si limita alla rappresentazione delle vulnerabilità presenti e non all’individuazione di criticità e varchi sfruttabili in un eventuale attacco informatico.
Le attività svolte dal penetration tester
Il mestiere del penetester può essere particolarmente avvincente e, al contempo, molto rischioso: dovendo operare in ambienti di produzione, uno specialista deve dimostrarsi cauto e soprattutto conscio dei potenziali effetti collaterali di ciascuna tecnica da adoperare o adoperata.
Una rigorosa formazione e una accurata preparazione sono i requisiti fondamentali per chiunque svolga questa professione.
Si riportano nel seguito alcune delle operazioni-tipo che uno specialista deve poter implementare:
- eseguire penetration test su applicazioni web, reti e sistemi informatici;
- condurre verifiche fisiche su sistemi e dispositivi di rete;
- progettare e creare exploit, script e tool che servano a bypassare le misure di sicurezza in essere;
- verificare vulnerabilità in applicazioni custom su web o dispositivi mobile;
- ragionare come un attaccante, contestualmente rispettando le regole di ingaggio, e ragionare come un utente target: spesso le vulnerabilità sfruttate sono quelle dovute all’errore umano o alle bad practice;
- comprendere e considerare l’importanza per il business delle informazioni recuperate, individuando velocemente potenziali punti utili a condurre ulteriori attacchi;
- documentare in maniera completa, precisa e semplice gli attacchi condotti, affinché siano ripetibili;
- essere in grado di verificare l’efficacia delle misure applicate come remediation alla fine dell’engagement.
Le competenze necessarie
Per diventare un buon penetration tester è necessaria una buona base di esperienza maturata sul campo o per il tramite di laboratori o challenge, spesso organizzati su internet a livello internazionale.
Sono inoltre sempre più diffusi, anche in Italia, corsi universitari in Ingegneria e Scienze Informatiche con specializzazioni in grado di formare giovani hacker etici.
Le caratteristiche principali per un penetration tester restano la duttilità – la capacità di adattarsi a un linguaggio o a un’applicazione sconosciuta – e l’abilità di mantenere il sangue freddo sia in caso di fallimento sia in caso di riuscito accesso ad informazioni sensibili.
Entrando nello specifico, è ovviamente richiesta la conoscenza approfondita dei sistemi Windows e Unix, compresa la capacità di rielaborare script in PowerShell, bash, Perl, Python, Ruby, PHP e SQL.
A seconda degli ambiti di specializzazione, possono inoltre essere richieste skill specifiche di analisi come interpretazione di codice mobile, de-offuscamento, de-compilazione e reverse engineering.
Tra le certificazioni più accreditate per maturare l’esperienza necessaria vi è senz’altro l’OSCP (Offensive Security Certified Professional) che permette, attraverso appositi laboratori virtuali, di testare strumenti e tecniche di intrusione in ambiente controllato.