Qual é a melhor maneira de aprender como desenvolver aplicativos seguros?

8

Eu gostaria de entrar na segurança de computadores em minha carreira. Quais são as melhores maneiras de aprender a programar com segurança?

Parece-me que, além de livros didáticos e aulas, talvez aprender a "hackear" seria uma das melhores maneiras de aprender. Minha razão para pensar isso é o pensamento de que a melhor maneira de aprender a impedir alguém de fazer o que você não quer é aprender o que é capaz de fazer.

Se for esse o caso, isso coloca outra questão: como você aprenderia a invadir de maneira ética? Definitivamente, não quero violar leis ou causar danos em minha busca.

Kenneth
fonte
Todo mundo justifica hackers adicionando "ético". Por que não fazer o download do porcupine.org/satan e se divertir sem afirmar que é "ético"?
9788 S.Lott
Não tentando justificar. Parece que, para parar um hacker, você precisa saber como ele pode invadir. Parece-me que, em algum nível, isso quase exige experiência com hackers. No final, o hacking não é meu objetivo final. Se você tem uma alternativa melhor, estou aberto a sugestões, que é o objetivo deste post. Obrigado!
Kenneth
"Se você tem uma alternativa melhor"? Eu acredito que dei uma resposta. Precisa de mais informações? Além disso, você sabe que a maioria dos hackers usa o SATAN?
31511 S.Lott
para obter informações sobre como eles podem invadir, aqui está um link para as 10 principais falhas de segurança em 2010. owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202010.pdf
Evan
@ Slott - a maioria usa SATAN? Hmmmm - eu ficaria surpreso, pois os vemos usando ferramentas muito melhores!
Rory Alsop

Respostas:

5

Há muita coisa por aí sobre "hackers éticos" - uma palavra frequente é "teste de penetração". Também existem códigos de ética sobre como fazê-lo - mas minha única regra geral seria a mesma das regras do jardim de infância - não são coisas difíceis que não são suas.

Se você estiver interessado nos dois lados da moeda, sugiro projetos domésticos - crie um aplicativo simples e tente hackear. Então você tem o código disponível para poder quebrá-lo e corrigi-lo no conteúdo do seu coração.

A outra coisa são sites como OWASP (veja outra resposta). Há uma tonelada de vulnerabilidades conhecidas por aí. Aprender sobre eles e aprender a evitá-los é um grande passo que interrompe a tentativa e erro de hacking DIY. Também aprender sobre os mecanismos de confidencialidade, integridade, identificação e disponibilidade de software, redes e computadores em geral é um grande passo. Ter experiência na implementação desses mecanismos em seu idioma / implantação preferida é uma ótima maneira de desenvolver habilidades de segurança de software.

bethlakshmi
fonte
2

Uma maneira seria olhar para as ferramentas que podem ser usadas para testar a penetração de um sistema. Você pode fazer o download de algumas distribuições especializadas de teste de penetração do Linux para começar.

Outra parte de sua busca de aprendizado é ler a literatura existente. OWASP, como sugerido por @ S.Lott, é um recurso incrível para segurança de aplicativos da web. O SafeCode é uma fonte mais generalizada, mas é definitivamente muito menos detalhada.

Dan McGrath
fonte