Na minha universidade local, há um pequeno clube de computação para estudantes com cerca de 20 alunos. O clube possui várias equipes pequenas com áreas de foco específicas, como desenvolvimento móvel, robótica, desenvolvimento de jogos e hackers / segurança.
Estou introduzindo alguns conceitos básicos de desenvolvimento ágil para algumas equipes, como histórias de usuários, estimativa de complexidade de tarefas e integração contínua para controle de versão e builds / testes automatizados.
Estou familiarizado com alguns ciclos de vida básicos de desenvolvimento, como cascata, espiral, RUP, ágil etc., mas estou imaginando se existe um ciclo de vida de desenvolvimento de software para invadir / violar a segurança. Certamente, os hackers estão escrevendo código de computador, mas qual é o ciclo de vida desse código? Eu não acho que eles estariam preocupados demais com a manutenção, uma vez que a violação foi encontrada e corrigida, o código que explorou essa violação é inútil.
Eu imagino que o ciclo de vida seria algo como:
- Encontre lacunas na segurança
- Explorar a lacuna na segurança
- Adquirir carga útil
- Utilize carga útil
Que tipo de diferenças (se houver) existem para o ciclo de vida de desenvolvimento de software quando o objetivo do produto é violar a segurança?
fonte
Respostas:
De que tipo de código você está falando?
Existem muitas ferramentas de segurança usadas no processo de hackers, incluindo scanners como nmap , sqlmap , Nessus e muitos outros. Eu imagino que eles tenham o mesmo tipo de ciclo de vida de software que qualquer outro aplicativo.
Por outro lado, existem códigos de exploração. Códigos escritos para tirar proveito de uma exploração e situação muito específica. Duvido muito que eles precisem de qualquer ciclo de vida. No entanto, muitos códigos de exploração também são integrados a uma estrutura de exploração maior, como o Metasploit .
Após uma discussão com o @AviD, gostaria de acrescentar alguns pontos.
Será muito diferente para situações específicas.
Alguns códigos de exploração podem ser apressados para levar em conta a janela antes que o dia zero seja corrigido. O código pode ser apressado por outros motivos também. Veja: CRIME - Como vencer o sucessor do BEAST? para um ótimo exemplo disso. Uma pessoa escreveu um pedaço de código de PoC para provar rapidamente seu argumento. Nenhuma metodologia de ciclo de vida de software é levada em consideração para códigos como este.
Malwares armados como stuxnet ou FLAME provavelmente o fazem. Software empacotado como o Metasploit faz.
Então a resposta certa é ... depende.
fonte
Não vejo por que deve haver um ciclo de vida de desenvolvimento especificamente diferente, dependendo da finalidade do produto.
O software desenvolvido para violar a segurança pode ter a vida útil de qualquer outro tipo de software e exigirá a mesma quantidade de manutenção e trabalho.
Diferentes criadores de software adotam ciclos de vida diferentes, dependendo de suas necessidades.
fonte
Os modelos de desenvolvimento que você especificar são apenas isso - modelos de desenvolvimento. Eles são extremamente úteis quando você está desenvolvendo engenharia - quando você tem requisitos, quando precisa criar ou modificar arquiteturas de sistema ou projetos de componentes, quando precisa criar ou modificar um produto e testes associados e quando é liberado para um cliente.
Não tenho certeza de que esses modelos possam ser aplicados diretamente a projetos mais orientados à pesquisa, nos quais você está tentando responder a perguntas ou aprender mais sobre um sistema (ou os pontos fracos de segurança do sistema, no seu caso particular).
Eu suspeitaria que os modelos iterativos / incrementais, como os métodos ágeis e o modelo Spiral, seriam os mais úteis para formar uma base. Em cada iteração, você pode trabalhar para responder perguntas ou definir mais parâmetros para trabalhar, que podem ou não incluir a gravação de qualquer código. Talvez vários métodos de pesquisa científica também possam fornecer uma base interessante.
fonte
Recentemente, o hackeamento viu uma forte profissionalização, longe de hackers solteiros fazerem isso "pelo lulz" ou para ganhar fama, em direção à colaboração entre especialistas com o objetivo de ganhar dinheiro. O resultado foram "kits de hackers" comerciais completos, como o kit de exploração Blackhole, onde pontos fracos de software específicos podem ser facilmente integrados como plug-ins. Eu diria que esses produtos são desenvolvidos exatamente como qualquer outro produto de software.
Aparentemente, também existe um mercado em desenvolvimento para explorações de dia zero .
fonte
O Life-Cyle nunca depende de código. É bastante dependente de outros fatores como:
No seu cenário, a metodologia Agile Life Cyle seria mais útil. O motivo é que você precisa envolver seu cliente durante o desenvolvimento e precisa verificar os parâmetros de qualidade aceitáveis do seu produto. Metodologia Ágil iria ajudá-lo imensamente para melhorar o seu Software Hacking via recolha de feedback do seu cliente e, em seguida, trabalhar gradualmente em incrementais base.
fonte