Quali sono gli aspetti unici di un software Ciclo di vita di un attacco / strumento su una vulnerabilità del software?

10

Nella mia università locale, c'è un piccolo club informatico studentesco di circa 20 studenti. Il club ha diversi piccoli team con aree specifiche di attenzione, come lo sviluppo mobile, la robotica, lo sviluppo di giochi e l'hacking / sicurezza.

Sto introducendo alcuni concetti di sviluppo agili di base in un paio di team, come storie di utenti, stima della complessità delle attività e integrazione continua per controllo di versione e build / test automatici.

Ho familiarità con alcuni cicli di vita di sviluppo di base, come cascata, spirale, RUP, agile, ecc., ma mi chiedo se esiste una cosa come un ciclo di sviluppo di sviluppo software per l'hacking / violazione della sicurezza. Sicuramente, gli hacker stanno scrivendo il codice del computer, ma qual è il ciclo di vita di quel codice? Non penso che sarebbero troppo preoccupati per la manutenzione, dal momento che una volta che la violazione è stata trovata e rattoppata, il codice che ha sfruttato quella violazione è inutile.

Immagino che il ciclo di vita sia qualcosa del tipo:

  1. trova spazio nella sicurezza
  2. Exploit gap in security
  3. Procura payload
  4. Utilizza payload

Che tipo di differenze (se esistono) ci sono per lo sviluppo del ciclo di vita del software quando lo scopo del prodotto è quello di violare la sicurezza?

    
posta David Kaczynski 15.10.2012 - 15:36
fonte

5 risposte

7

Di che tipo di codice stai parlando?

Ci sono molti strumenti di sicurezza usati nel processo di hacking, inclusi scanner come nmap , sqlmap , Nessus e molti altri. Immagino che abbiano lo stesso tipo di ciclo di vita del software come qualsiasi altra applicazione.

D'altra parte, ci sono codici exploit. Codici scritti per approfittare di un exploit molto specifico situazione. Dubito strongmente che tutti abbiano bisogno di un ciclo vitale. Tuttavia, molti codici di exploit sono anche integrati con un framework di sfruttamento più ampio come Metasploit .

Dopo una discussione con @AviD, vorrei aggiungere alcuni punti.

Sarà molto diverso per situazioni specifiche.

Alcuni codici exploit potrebbero essere scaricati per tenere conto della finestra prima che venga azzerato lo zero-day. Il codice potrebbe essere affrettato anche per altri motivi. Vedi: CRIME - Come battere il successore BEAST? per un grande esempio di questo. Una persona ha scritto un pezzo di codice PoC per dimostrare rapidamente il suo punto. Nessuna metodologia del ciclo di vita del software è presa in considerazione per codici come questo.

Probabilmente il malware con armi come stuxnet o FLAME lo fanno.

Software confezionato come Metasploit.

Quindi la risposta giusta è ... dipende.

    
risposta data 15.10.2012 - 17:44
fonte
3

Non vedo perché dovrebbe esserci un ciclo di vita dello sviluppo specificamente diverso a seconda dello scopo del prodotto.

Il software sviluppato per violare la sicurezza può avere una vita lunga quanto qualsiasi altro tipo di software e richiede la stessa quantità di manutenzione e lavoro.

Diversi creatori di tale software adotteranno cicli di vita diversi a seconda delle loro esigenze.

    
risposta data 15.10.2012 - 15:47
fonte
3

I modelli di sviluppo specificati sono proprio questo: i modelli di sviluppo. Sono estremamente utili quando si esegue lo sviluppo ingegneristico - quando si hanno requisiti, quando è necessario creare o modificare architetture di sistema o progetti di componenti, quando è necessario creare o modificare un prodotto e test associati e quando si rilascia a un cliente.

Non sono sicuro che questi modelli possano essere applicati direttamente a progetti più orientati alla ricerca, in cui cerchi di rispondere a domande o di saperne di più su un sistema (o sui punti deboli della sicurezza del sistema, nel tuo caso specifico).

Sospetto che i modelli iterativi / incrementali, come i metodi agili e il modello Spiral, siano i più utili per formare una base. In ogni iterazione, puoi lavorare per rispondere alle domande o definire altri parametri con cui lavorare, che potrebbero includere o meno la scrittura di qualsiasi codice. Forse vari metodi di ricerca scientifica potrebbero anche fornire una base interessante.

    
risposta data 15.10.2012 - 15:50
fonte
1

L'hacking ha visto di recente una strong professionalizzazione, lontano dai singoli hacker che lo fanno "per il lulz" o per ottenere fama, verso la collaborazione tra specialisti con l'obiettivo di fare soldi. Il risultato è stato un vero e proprio "kit di hacking" commerciale come il kit di exploit Blackhole dove specifiche debolezze del software possono essere facilmente integrate come plugins. Suppongo che tali prodotti siano sviluppati praticamente esattamente come qualsiasi altro prodotto software.

C'è apparentemente anche un mercato per exploit zero-day in via di sviluppo.

    
risposta data 15.10.2012 - 15:52
fonte
1

Life-Cyle non dipende mai dal codice. Dipende piuttosto da altri fattori come:

  1. Ora
  2. Budget
  3. Natura del cliente
  4. Natura del prodotto

Nel tuo scenario, la metodologia Agile Life Cyle sarebbe molto utile. Il motivo è che è necessario coinvolgere il cliente durante lo sviluppo e verificare i parametri di qualità accettabili del prodotto. La metodologia Agile ti aiuterebbe immensamente a migliorare il tuo software di hacking raccogliendo il feedback dei tuoi clienti e poi gradualmente lavorando su incrementale base.

    
risposta data 15.10.2012 - 15:45
fonte

Leggi altre domande sui tag