Cosa è un CTF:
CTF è l’acronimo di Capture The Flag (cattura la bandiera). Molti gamers lo assoceranno ad un videogioco con personaggi 3D, in realtà si tratta di una sfida intellettuale che richiede al partecipante di scovare bugs (flags) all’interno di un sistema informatico, sfruttarli e fare punto. Non si discosta molto dal classico concetto dei videogiochi in 3D: bisogna sempre invade il territorio nemico, trovare la “bandiera” e sfruttarla prima che il nemico se ne accorga e corregga il bug.
Diversi tipi di CTF:
Esistono differenti modalità di partecipazione ad un CTF e con il susseguirsi degli anni ne sono nate di nuove.
- On Stage: Vengono effettuate sul luogo di un particolare evento (la più famosa è quella che si svolge a Las Vegas durante il DefCON. Ce ne sono poi altre come: TuLUG Cyber Challenge, MIT/LL, 44Con, Nuit du Hack, Facebook Hack Cup, ecc ). Hanno una precisa data di inizio e di fine.
- Online temporali: E’ una modalità di CTF che può essere svolta comodamente da casa collegandosi al sito che sta ospitando la gara (un esempio è il CSAW CTF, organizzato dall’università di New York che ogni anno permette a migliaia di appassionati di giocare con le loro webapp vulnerabili. Abbiamo poi il PHD CTF, DefCamp, Hack.lu, Boston Key Party, ecc ). In questa modalità c’è una specifica data d’inizo ed una per la fine dei giochi.
- Online non temporali: In quest’ultima categoria ci sono tutti quei CTF aperti 24 ore su 24, 7 giorni su 7 (l’esempio più famoso è il sito hackthissite.org che mette a disposizione degli utenti registrati la possibilità di sfruttare vulnerabilità di vario tipo come ad esempio XSS e Sql Injection. Ci sono poi altri siti che hanno preso la stessa scia come hellboundhackers.org, hax.tor.hu, pwn0.com, ecc ). Essendo aperti a tutti, tutti i giorni dell’anno, mantengono una classifica per tenere traccia degli utenti che hanno messo a segno più punti.
La maggior parte dei CTF richiedono ai partecipanti di sfruttare i bug che gli organizzatori dell’evento hanno preventivamente inserito.
Cosa è il CTF365:
E’ un CTF che rientra nella categoria degli “Online non temporali” ma a differenza di questi ultimi i bugs (flags) da sfruttare sono messi a disposizione degli altri partecipanti. La maggior parte delle volte però, i partecipanti fanno di tutto per rilasciare un codice pulito e privo di bug. La sfida si pone quindi su un livello intellettuale molto più alto rispetto a tutti gli altri CTF dello stesso tipo.
Attualmente www.ctf365.com è in “Alpha Stage”, questo vuol dire che l’accesso alla piattaforma di gioco è consentito ai soli utenti approvati dallo staff (genericamente figure professionali dell’InfoSec e ai certificati CSIRT). Verso gli inizi di Febbraio 2014, passeranno alla fase Beta: con registrazioni aperte ad un maggior numero di persone. Al momento risultano più di 11.000 i partecipanti registrati al sito.
L’idea è nata nell’Ottobre 2011 quando Marius Corìci (uno dei fondatori) ha avviato il progetto HaS (Hack a Server – piattaforma di security testing che sfrutta il crowd sourcing). Si sono successivamente resi conto che l’intera infrastruttura poteva tranquillamente ospitare una competizione CTF: hanno quindi creato CTF365.com sopra all’originale progetto HaS.
Come funziona il CTF365:
Una volta entrati col proprio account sulla piattaforma di gioco ci troviamo davanti una mappa:
I punti gialli sono i Team in gioco. Ogni squadra ha un leader e la sua posizione geografica determina anche quella di tutto il Team. Se il vostro account è stato approvato dallo staff (solo in Alpha stage) potrete vedere questo menù cliccando sul nickname in alto a destra:
Se invece avete meno voci è perchè il vostro account non risulta ancora abilitato.
Crearsi una squadra:
E’ possibile crearsi una propria squadra o farsi aggiungere in una già esistente. Nel primo caso basterà andare su “Account → My Team”
Per ogni squadra verrà assegnata una VPS dove poter creare il proprio sistema, bersaglio degli altri Team. Nel caso in cui volete unirvi ad altri, basterà chiedere al Team Leader di aggiungere il vostro indirizzo e-mail di registrazione.
Aggiungere una chiave pubblica:
Qualora siate voi stessi il Team Leader dovrete aggiungere una chiave pubblica SSH durante la creazione della squadra:
La chiave verrà inserita automaticamente dentro la vostra VPS e vi concederà accesso root al sistema. Per generare una nuova chiave pubblica SSH dovrete usare il comando:
ssh-keygen -t rsa -C “email@dominio.com“
Aggiungere membri alla propria squadra:
Ricordatevi che voi siete il Team Leader e che ogni membro del Team è una vostra responsabilità. Cercate quindi di aggiungere solo persone fidate altrimenti tutta la squadra varrà bannata dal gioco.
Per aggiungere una nuova figura dovrete andare su “Account → My Team” ed in fondo alla pagina troverete “Members” dove dovrete inserire la mial di registrazione del vostro alleato.
Configurazione della VPN:
Per l’accesso al campo di gioco è necessario essere collegati in VPN. Il miglior metodo per farlo è tramite l’uso del client OpenVPN. Cliccate quindi su “Account → VPN”, poi sul bottone “Enable VPN” e seguite le istruzioni a video che vi spiegheranno tutto.
Creare la fortezza:
A questo punto si presume che voi siate collegati alla VPN di gioco. Il prossimo passo sarà quello di creare il vostro fortino. Cliccate quindi su “Account → My Fortress”, date un nome alla vostra fortezza e scegliete la distribuzione Linux che verrà montata (attualmente è solo disponibile Debian 7.2). Cliccate sul pulsante “Create server”. A questo punto vi troverete davanti ad una schermata simile a questa:
Dovrete cliccare su “Instantiate” ed attendere da qualche secondo ad un minuto massimo, fin quando su “STATE” non comparirà la dicitura “ACTIVE, RUNNING”.
Cliccando su “Details” appariranno a video le istruzioni per la connessione in SSH alla vostra VPS, con relativo indirizzo IP assegnatole (attualmente tutte le fortezze sono nel range 10.194.0.1-255). Ogni squadra avrà a disposizione una sola fortezza, l’immagine è solo di esempio.
Requisiti minimi per una fortezza:
Per farsi mantenere attiva la propria fortezza è necessario installare (in massimo 48h) tutti i requisiti minimi:
- Devono essere avviati i servizi più comuni come SMTP, POP, IMAP, FTP, ecc.
- Bisogna avere almeno un e-mail client (Horde, SquirrelMail, ecc).
- Installare almeno 2 CMS (WP, Drupal, Joomla, …) con più plugins possibili (Gallery, social share, video plugin, ecc).
- Installare almeno 3 web applications.
- Avere attivi almeno 2 differenti Database (MySQL, Postgres, MariaDB, ecc).
Inoltre è necessario lasciare la fortezza avviata 24 ore su 24 per permettere a tutti i partecipanti (di differenti zone geografiche) di scovare bug sulla vostra macchina.
Passando invece alle caratteristiche della VPS abbiamo a disposizione 500MB di RAM, un processore da 3.2GHz e 8GB di spazio su disco (lo stretto necessario per le caratteristiche minime richieste).
Sistema di punteggio:
Qualora troviate una vulnerabilità su una fortezza o sul sito di ctf365 dovete riportarla usando il pulsante “Scoring” in alto a destra (vicino al vostro nickname). Apparirà una finestra come questa:
Basterà inserire tutti i dati ed il tipo di vulnerabilità riscontrata e premere “Create Scoring”. Dopo una verifica da parte dello staff vi verranno assegnati i punti corrispondenti. Maggiore sarà la criticità del bug che avete trovato e maggiore sarà la ricompensa.
I Badges:
Man mano che si procede nel gioco verranno assegnati dei badges, visionabili sulla propria pagina profilo.
Ogni badge corrisponde ad un bug segnalato e più se ne trovano e più si può crescere di livello: da “Beginner” per arrivare fino ad “Expert” / “Master” / “Commander” / ecc.
Un’altra categoria è il badge delle certificazioni. Un utente che dimostra di essere certificato in una delle categorie proposte, può segnalarlo allo staff del ctf365 ed una volta verificato, varrà inserita sul profilo:
La mia esperienza:
Ho avuto la fortuna di provare CTF365 in Alpha e mi sono stupito di quanto sia differente da tutti gli altri tipi di CTF online.
La sfida non è fra te ed i creatori della piattaforma, bensì fra tutti i partecipanti. Questo rende il gioco decisamente più stimolante perché invece di attaccare solo, devi stare anche in difesa: cercando di non farti bucare la VPS assegnata. In un mese di testing non mi sono mai imbattuto in downtime o malfunzionamenti: questo dimostra quanto i creatori stiano investendo nel progetto.
L’infrastruttura in VPN replica una scenario reale dove professionisti e studenti si possono sentire liberi di sperimentare tutte le metodologie d’attacco conosciute e non, senza incorrere in problemi legali. Le statistiche ad oggi rivelano che ci sono 12.000 utenti registrati e 1.100 squadre sparse in tutti gli angoli del mondo. Tenere in piedi tutta l’infrastruttura ha un costo non indifferente: per questo motivo, quando apriranno le registrazioni, verranno anche implementati servizi a pagamento:
“Dire: ‘Non ho tempo per il CTF365‘ è come un pilota d’aereo che dice: ‘Non ho tempo per un simulatore di volo’” – Cit. https://twitter.com/CTF365/status/403091330609328128
Se volete più informazioni, qua potete trovare l’intervista a Marius Corìci: http://news.softpedia.com/news/Interview-with-Marius-Cor-ci-on-the-CTF365-Capture-the-Flag-Platform-401197.shtml
Che aspettate quindi? Join the army 😀 http://ctf365.com/