Che cos'è un CTF? È un tipo di competizione per la sicurezza del computer, chiamato CTF perché si cattura una "bandiera", una stringa univoca e la si invia all'infrastruttura di punteggio per i punti. I CTF sono quasi sempre limitati nel tempo, spesso per 24-48 ore (tipicamente continuativi nel corso di un fine settimana, il che dà ai concorrenti di tutto il mondo una buona dose indipendentemente dal fuso orario). Esistono due tipi principali di CTF: pericolo e attacco / difesa. I CTF in stile Jeopardy sono più facili da organizzare e anche più facili da giocare / meno punitivi per i nuovi giocatori. In un CTF in stile jeopardy, gli organizzatori scrivono una serie di sfide (servizi binari o web vulnerabili in esecuzione sul cloud, sfide di inversione di tipo crackme, cose nascoste nelle immagini disco o acquisizioni di pacchetti o messaggi crittografati), assegnano valori punto a ciascuno sfida, e metterli a disposizione dei concorrenti (spesso su un forum come quello a rischio, con sfide organizzate per difficoltà e categoria (sfruttamento binario, reverse engineering, sfruttamento del web, crittografia e analisi forense sono le categorie tipiche)). Quando la competizione inizia, i concorrenti ottengono l'accesso alla griglia delle sfide, li risolvi e invia le bandiere per i punti, e alla fine chi ottiene il maggior numero di punti vince (i legami solitamente interrotti per raggiungere il punto vincente totale - più veloce è meglio) .
In un attacco / difesa CTF, gli organizzatori costruiscono ancora una serie di servizi vulnerabili, ma ogni squadra deve eseguire una copia di questi servizi, che devono difendere. Hai hackerato altre squadre per rubare le loro bandiere e prova a correggere i tuoi stessi servizi per evitare che altri team facciano lo stesso con te. I CTF A / D comportano un sacco di operazioni logistiche e infrastrutturali aggiuntive per gli organizzatori (VPN, host target per team, & c). Possono anche essere molto demoralizzanti per i nuovi giocatori se vieni picchiato (o qualcuno ha persistenza sulla tua infrastruttura) e non c'è nulla che tu possa fare al riguardo. Possono anche essere molto divertenti, e funzionano con abilità inusuali come patch binari e exploit reflection.
In termini di preparazione: studio, pratica e strumenti. I suggerimenti di Florent Uguet per i wargames sono utili per la pratica. Alcune altre risorse che potresti trovare utili includono:
- Trail of Bits " Guida ai campi CTF contiene alcune lezioni, elenchi di strumenti e procedure dettagliate dei vecchi problemi CTF.
-
picoCTF è un CTF destinato agli studenti delle scuole superiori con uno sfondo molto limitato. La competizione è finita, ma gli organizzatori hanno lasciato da parte i problemi per le persone. È un buon punto di partenza, e se hai esperienza di programmazione sei molto più avanti della curva e dovresti essere in grado di masticare velocemente le cose in anticipo. C'è anche un nuovo picoCTF in arrivo a ottobre.
-
pwnable.kr ha una serie di buone sfide di sfruttamento binario su cui esercitarsi.
- Spesso è possibile trovare resoconti di sfide dei precedenti CTF online, il che è un buon modo per familiarizzare con gli idiomi particolarmente delicati o con i tipi di problemi che potrebbero presentarsi in un particolare ctf. ctftime.org aggrega le annotazioni, oltre ad ospitare un calendario di ctfs in arrivo.
In termini di strumenti, un consiglio che vorrei offrire è quello di diventare strong in un linguaggio di scripting. La CTF è generalmente sotto pressione temporale e la velocità è più importante della correttezza perfetta. Python sembra essere il linguaggio di scelta più comune, e ci sono molti strumenti validi per le sfide di tipo ctf in python ( pwntools , ad esempio). Raccogliere un po 'di familiarità potrebbe essere utile.