
Framework open-source per ospitare competizioni CTF Attack/Defense con gamebot automatizzato, esecuzione di script, routing VPN e gestione dell'infrastruttura basata sul cloud per educatori e formatori.
Questo è il framework che Shellphish utilizza per ospitare l'iCTF.
Il Framework iCTF è descritto in un articolo presentato al workshop Usenix 3GSE nel 2014.
Abbiamo rilasciato questo framework nella speranza che permetta a educatori e formatori di ospitare i propri CTF A/D. Questo framework è gratuito per uso commerciale, ma il supporto che possiamo offrire è limitato.
Prevediamo di rilasciare in futuro documentazione tecnica più dettagliata su ciascun componente; per ora puoi trovare le istruzioni su come creare una partita qui.
Se hai domande, invia un'email a [email protected].
DICHIARAZIONE DI NON RESPONSABILITÀ: Questo framework è ancora in fase di sviluppo e questa release deve essere considerata una versione BETA. Nuove pull request e nuovi issue sono benvenuti :)
Questo è il database centrale che tiene traccia dello stato della partita. Viene eseguito sulla VM Database ed espone un'API RESTful. Nota che questo database non dovrebbe essere accessibile direttamente dalle squadre, le quali dovrebbero invece passare attraverso il componente dei servizi di squadra.
Gamebot è il componente responsabile dell'avanzamento della competizione. La competizione è suddivisa in tick. All'inizio di ogni tick, il gamebot decide quali script devono essere eseguiti dallo scriptbot (ad esempio, script per impostare le flag, recuperare le flag o testare i servizi) e scrive la pianificazione nel database centrale. Quindi, estrae dal database i dati relativi al tick precedente (ad esempio, flag inviate e stato dei controlli dei servizi) e calcola i punti da assegnare a ciascuna squadra. I nuovi punteggi vengono memorizzati nel database, in modo che possano essere visualizzati dal componente dashboard.
Lo scriptbot è responsabile dell'esecuzione degli script pianificati dal gamebot. Lo scriptbot estrae gli script pianificati per l'esecuzione dal database centrale e poi li esegue. Ad esempio, gli script recuperano le flag che sono state impostate nel tick precedente o verificano se i servizi sono attivi e funzionanti.
Il componente router è responsabile dell'instradamento del traffico tra le squadre nella competizione. Il componente implementa un servizio OpenVPN. A ogni squadra viene assegnata una VM che funge da router per la squadra. Il traffico tra le squadre deve essere reso anonimo per impedire alle squadre di distinguere il traffico generato dallo scriptbot dal traffico delle squadre.
Per maggiori informazioni visita la nostra pagina wiki su come organizzare un CTF di classe