Existem melhores práticas para testes de segurança em uma loja de desenvolvimento ágil?

votos
9

Quanto ao desenvolvimento Agile, quais são as melhores práticas para testes de segurança por liberação?

Se é uma publicação mensal, existem lojas que fazem pen-testes a cada mês?

Publicado 05/08/2008 em 16:05
fonte usuário
Em outras línguas...                            


4 respostas

votos
2

Qual é o seu domínio de aplicação? Depende.

Desde que você usou a palavra "Agile", eu estou supondo que é um aplicativo web. Eu tenho uma resposta fácil agradável para você.

Vá comprar uma cópia do Burp Suite (que é o resultado do Google # 1 para "arroto" --- um endosso certeza!); ele vai custar 99EU, ou ~ $ 180USD, ou US $ 98 dólares Obama se você esperar até novembro.

Arroto funciona como um proxy web. Você navegar através de seu aplicativo web usando o Firefox ou IE ou qualquer outra coisa, e que recolhe todos os hits que você gerar. Estes sucessos são alimentados a um recurso chamado "Intruder", que é um fuzzer web. Intruder vai descobrir todos os parâmetros fornecidos a cada um de seus manipuladores de consulta. Ela irá então tentar valores loucos para cada parâmetro, incluindo SQL, sistema de arquivos, e metacharacters HTML. Em um típico complexo pós forma, isso vai gerar cerca de 1500 acessos, o que você vai olhar através de identificar assustador --- ou, mais importante num contexto Agile, novo --- respostas de erro.

Fuzzing cada manipulador de consulta no seu aplicativo web a cada iteração liberação é o # 1 coisa que você pode fazer para melhorar a segurança do aplicativo sem instituir um "SDLC" formal e adicionando o número de funcionários. Além disso, rever o seu código para os principais pontos quentes de segurança aplicativo web:

  • Use instruções SQL preparadas única parametrizados; não nunca simplesmente concatenar strings e alimentá-los para o seu punho de banco de dados.

  • Filtrar todas as entradas para uma lista branca de personagens conhecidos bons (alnum, pontuação básica), e, mais importante, os dados de filtro de saída de resultados da consulta para "neutralizar" metacharacters HTML para entidades HTML (quot, lt, gt, etc).

  • Usar identificadores aleatórios longos difícil de adivinhar qualquer lugar que você está usando atualmente IDs de linha simples inteiros em parâmetros de consulta, e certifique-se de usuário X não pode ver os dados do usuário do Y apenas adivinhando esses identificadores.

  • Teste cada manipulador de consulta no seu aplicativo para garantir que eles funcionam apenas quando, um cookie sessão iniciada sessão válida é apresentada.

  • Ligue a proteção XSRF em sua pilha da Web, o que irá gerar formulário oculto parâmetros de token em todas as suas formas prestados, para impedir que os atacantes criação de links maliciosos que irá submeter formulários para usuários desavisados.

  • Use bcrypt --- e nada mais --- para armazenar senhas com hash.

Respondeu 10/09/2008 em 22:19
fonte usuário

votos
1

O teste de unidade , programação de Defesa e um monte de toras

O teste de unidade

Certifique-se de teste que você unidade tão cedo quanto possível (por exemplo, a senha deve ser criptografada antes do envio, o túnel SSL está funcionando, etc). Isso impediria seus programadores acidentalmente tornando o programa inseguro.

Programação defesa

Eu, pessoalmente, chamar isso de Programação Paranoid mas Wikipedia nunca está errado ( sarcasmo ). Basicamente, você adicionar testes para as funções que verifica todas as entradas:

  • é cookies do usuário válido?
  • que ele ainda está conectado no momento?
  • são os parâmetros da função protegida contra injeção de SQL? (Mesmo que você saiba que a entrada são gerados por suas próprias funções, você vai testar qualquer maneira)

Exploração madeireira

Registrar tudo como um louco. É mais fácil para remover registos, em seguida, adicioná-los. Um usuário ter logado? Registrá-lo. Um usuário encontrado um 404? Registrá-lo. O administrador editado / excluído uma mensagem? Registrá-lo. Alguém foi capaz de acessar uma página restrita? Registrá-lo.

Não se surpreenda se o seu arquivo de log atinge 15+ Mb durante a sua fase de desenvolvimento. Durante beta, você pode decidir que registra para remover. Se você quiser, você pode adicionar um sinalizador para decidir quando um determinado evento é registrado.

Respondeu 18/08/2008 em 03:40
fonte usuário

votos
1

Eu não sou um especialista em segurança, mas eu acho que o fato mais importante que você deve estar ciente de, antes da segurança testes, é o que você está tentando proteger. Só se você sabe o que você está tentando proteger, você pode fazer uma análise adequada das suas medidas de segurança e só então você pode começar a testar essas medidas implementadas.

Muito abstrato, eu sei. No entanto, eu acho que deveria ser o primeiro passo de todos os auditoria de segurança.

Respondeu 05/08/2008 em 18:50
fonte usuário

votos
1

Não sou especialista no desenvolvimento Agile, mas eu imagino que a integração algum software básico pen-teste automatizado em seu ciclo de construção seria um bom começo. Eu vi pacotes de diversos softwares lá fora, que vai fazer testes básicos e são adequados para automação.

Respondeu 05/08/2008 em 18:19
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more