Che cosa fai nella maggior parte delle sfide del reverse engineering in CTF
(se non stai solo tirando fuori le password con strings
)
- Si analizza la logica del programma nel suo normale comportamento.
- Analizza quali calcoli sono eseguiti sul nostro input
- Scopri dove si trovano e "bravo ragazzo"
- Trova un modo per far sì che il nostro contributo porti al nostro "bravo ragazzo"
Che cosa fai quando cerchi i bug di sicurezza?
(in un approccio fuzzing)
- Analizzi la logica del programma nel suo comportamento normale
- Analizza quali calcoli sono eseguiti sul nostro input
- Si analizza la logica del programma quando viene fornito un input imprevisto
- Analizza il comportamento e vedi se possiamo sfruttare il nuovo comportamento
Questo è solo un esempio
In realtà, basta invertire il programma per vedere quale funzione chiama può essere sufficiente per trovare un bug di sicurezza, ad esempio, se vedi una chiamata al% non sicuro% co_de per esempio, sai che vale la pena dare un'occhiata a una sicurezza prospettiva.
Oltre a ciò, il reverse è fatto per capire la logica del programma, se vuoi rompere la logica di un programma e approfittarne (o proteggere il programma), devi sapere esattamente come funziona.
Modifica dopo il tuo commento:
Per quanto riguarda il modo in cui un hacker può effettivamente usarlo per violare un sistema di sicurezza;
L'esempio strcpy
sopra implica un overflow del buffer presente, questo è in pratica il strcpy
della scrittura exploit.
Se vuoi una guida avanzata su cosa sia e come funzioni, puoi leggere questi articoli sul blog di corelan che descrivono come funzionano i buffer overflow e come possono essere sfruttati.
Durante la lettura di questi, capirai che il linguaggio di uno scrittore di exploit è in realtà lo stesso del linguaggio di un reverse engineer. Ecco perché è utile addestrare le tue abilità di RE per diventare uno scrittore di exploit migliore.
Analisi malware
Ho quasi osato lasciare questa risposta qui senza notare l'analisi del malware.
Gli autori di malware stanno diventando piuttosto spettacolari quando si tratta di nascondere le attività dannose da AV.
È molto importante per i venditori AV avere persone in grado di decodificare i puzzle estremi che a volte creano per proteggere le macchine in tutto il mondo da sofisticati attacchi di malware.