Pergunta

Temos centenas de sites que foram desenvolvidos em asp, .net e java e estamos a pagar muito dinheiro por uma agência externa para fazer um teste de penetração para os nossos sites para procurar brechas de segurança.Há algum (bom) software (pago ou gratuito) para fazer isso?

ou..há alguma técnica artigos que podem me ajudar a desenvolver esta ferramenta?

Foi útil?

Solução

Há um par de diferentes direções que você pode ir com ferramentas de testes automatizados para aplicações web.

Primeiro, há o comercial web scanners, de que a HP WebInspect e Rational AppScan são os dois mais populares.Estas são "tudo-em-um", "fogo-e-esqueça" ferramentas que você baixar e instalar no interno ambiente de trabalho do Windows e, em seguida, dar um URL de aranha do seu site, verificação de vulnerabilidades conhecidas (ou seja, as coisas que têm atingido a Bugtraq), e a sonda de cross-site scripting e vulnerabilidades de injeção de SQL.

Segundo, há o fonte-ferramentas de verificação de código, que Coverity e Fortificar são, provavelmente, os dois mais conhecidos.Estas são as ferramentas que você instala em um programador da área de trabalho para o processo de Java ou C# código fonte e procurar por padrões conhecidos de código inseguro, assim como o pobre de validação de entrada.

Finalmente, há o teste de penetração de ferramentas.De longe, o mais popular aplicativo de web do teste de penetração da ferramenta entre os profissionais de segurança é Burp Suite, que você pode encontrar no http://www.portswigger.net/proxy.Outros incluem o Pico de Proxy e OWASP WebScarab.Novamente, você vai instalar em um interno ambiente de trabalho do Windows.Ele será executado como um servidor proxy HTTP, e você vai aponte seu navegador para lá.Você vai utilizar as suas aplicações como um usuário normal seria, enquanto os registros de suas ações.Em seguida, você pode ir para trás a cada página individual ou HTTP ação e de sonda para problemas de segurança.

Em um ambiente complexo, e especialmente se você está considerando algo DIY, Eu recomendo fortemente a penetração de ferramentas de teste.Aqui está o porquê:

Comercial web scanners de fornecer uma grande quantidade de "largura", juntamente com excelente relatório.No entanto:

  • Eles tendem a perder as coisas, porque a cada aplicação é diferente.

  • Eles são caros (WebInspect começa em 10 de milhares).

  • Você está pagando por coisas que você não precisa (como bases de dados de conhecidos ruim CGIs a partir dos anos 90).

  • Eles são difíceis de personalizar.

  • Eles podem produzir barulhento resultados.

Fonte scanners de código são mais completa do que a web scanners.No entanto:

  • Eles são mesmo mais caros que os web scanners.

  • Eles exigem o código-fonte para operar.

  • Para ser eficaz, que muitas vezes necessitam de você para anotar o seu código fonte (por exemplo, para escolher a entrada de novos caminhos).

  • Eles têm uma tendência a produzir falsos positivos.

Tanto comerciais como scanners de código fonte e de scanners têm o mau hábito de se tornar shelfware.O pior, mesmo se eles funcionam, o seu custo é comparável ao de ficar 1 ou 2 aplicações completas auditado por uma consultoria;se você confia em seus consultores, você está garantido para obter melhores resultados a partir deles do que das ferramentas.

Testes de penetração ferramentas têm desvantagens também:

  • Eles são muito mais difícil de usar do que o fogo-e-esqueça comercial scanners.

  • Eles assumem alguns conhecimentos de vulnerabilidades em aplicações web --- você tem que saber o que você está procurando.

  • Eles produzem pouco ou nenhum formal de relatório.

Por outro lado:

  • Eles são muito, muito mais barato --- o melhor do lote, Burp Suite, custa apenas 99EU, e tem uma versão gratuita.

  • Eles são fáceis de personalizar e adicionar a um teste de fluxo de trabalho.

  • Eles estão muito melhor para ajudá-lo a "conhecer" seus aplicativos a partir do interior.

Aqui está algo que você deseja fazer com uma caneta-ferramenta de teste para um aplicativo básico de web:

  1. Faça logon no aplicativo através do proxy

  2. Criar uma "lista negra" das principais áreas funcionais da aplicação, e o exercício a cada vez.

  3. Use o "aranha" ferramenta em seu pen-aplicação de teste para encontrar todas as páginas e ações e de manipuladores de aplicação.

  4. Para cada página dinâmica e cada um formulário HTML o aranha descobre, use o "difusor" (ferramenta de Arroto chama de um "intruso") para o exercício de cada parâmetro com entradas inválidas.Mais fuzzers vêm com o teste básico de strings que incluem:

    • SQL metacaracteres

    • HTML/Javascript escapa e metacaracteres

    • Internacionalizados variantes destes para escapar dos filtros de entrada

    • Bem-conhecido padrão de nomes de campo de formulário e valores

    • Bem-conhecidos nomes de diretórios, nomes de arquivos, e o manipulador de verbos

  5. Passar várias horas de filtragem resultante de erros (uma típica fuzz executar um formulário pode gerar 1000 deles) à procura de suspeitos respostas.

Este é um trabalho intensivo, "bare-metal" abordagem.Mas quando a sua empresa possui as aplicações reais, o bare-metal de abordagem, vale a pena, porque você pode usá-lo para construir suítes de testes de regressão que será executado como um relógio em cada dev ciclo para cada aplicativo.Esta é uma vitória para um monte de razões:

  • Seus testes de segurança vai levar uma quantidade previsível de tempo e recursos por aplicativo, que permite que você para de orçamento e triagem.

  • Sua equipe vai se extremamente precisa e completa dos resultados, uma vez que o teste vai ser ajustado para seus aplicativos.

  • Isso vai custar menos do que comercial scanners e menos de consultores.

É claro que, se você seguir esse caminho, você basicamente está a transformar-se em um consultor de segurança para a sua empresa.Eu não acho que isso seja uma coisa ruim;se você não quiser que os conhecimentos, WebInspect ou Fortalecer, não vai ajudar muito, de qualquer maneira.

Outras dicas

Eu sei que você perguntou especificamente sobre pentesting ferramentas, mas uma vez que essas têm sido amplamente atendida (eu costumo ir com uma mistura de AppScan e treinados pentester), eu acho que é importante ressaltar que pentesting não é o único caminho para "verificação de brechas de segurança", e é muitas vezes não é o mais eficaz.

Fonte de revisão do código de ferramentas pode fornecer-lhe com muito mais visibilidade de sua base de código, e encontrar muitas falhas que pentesting não.

Estes incluem Fortalecer e OunceLabs (caro e para muitos idiomas), VisualStudio.NET CodeAnalysis (para .NET e C++, livre, com VSTS, bom, mas não ótimo), OWASP LAPSO para Java (livre, decente, não é grande), CheckMarx (não é barato, ferramenta fantástica para .NET e Java, mas alta sobrecarga), e muitos mais.

Um ponto importante que você deve observar - (a maioria) as ferramentas automatizadas não encontrar todas as vulnerabilidades, não chega nem perto.Você pode esperar as ferramentas automatizadas para encontrar cerca de 35-40% dos secbugs que seria encontrado por um profissional pentester;o mesmo vale para automatizada vs.manual de código de origem de revisão.

E claro um bom SDLC (Security Development Lifecycle), incluindo a Modelagem de Ameaças, de Revisão de Projeto, etc, vai ajudar ainda mais...

Eu tenho ouvido coisas boas sobre SpiDynamics WebInspect tanto quanto pago de soluções de ir, bem como Nikto (para uma solução gratuita) e outras ferramentas de código aberto.O Nessus é uma ferramenta excelente para infra-estrutura no caso de você precisa verificar se a camada de bem.Você pode pegar um cd ao vivo com várias ferramentas chamado Nubuntu (Revisor oficial de contas, Hélice, ou qualquer outro sistema de segurança baseado em obras de distribuição) e, em seguida, o Google até alguns tutoriais para a ferramenta específica.Sempre, sempre certifique-se de digitalização da rede local embora.Você corre o risco de ter-se bloqueado pelo centro de dados, se você digitalizar uma caixa de WAN sem autorização.Lição que aprendi da maneira mais difícil.;)

Skipfish, w3af, arachni, ratproxy, ZAP, WebScarab :tudo de graça e muito bom IMO

http://www.nessus.org/nessus/ -- O Nessus irá ajudar sugere formas para tornar a sua servidores de melhor.Ele não pode realmente testar aplicativos personalizados por si só, embora eu acho que os plugins são relativamente fáceis de criar em seu próprio país.

Dê uma olhada no Racional Aplicativo De Digitalização (costumava ser chamado de Watchfire).Não é gratuito, mas possui uma boa INTERFACE, é morto poderoso, gera relatórios (sob medida e contra a conformidade com o critério de quadros como Basel2) e eu acredito que você pode escrevê-lo em sua CI construir.

Como sobre nikto ?

Para este tipo de teste que você realmente quer estar olhando para algum tipo de fuzz testador. SPIKE Proxy é um de um par de fuzz testadores de aplicativos da web.É de código aberto e escrito em Python.Eu acredito que há um par de vídeos a partir de BlackHat ou DefCON sobre a utilização de SPIKE lá fora, em algum lugar, mas eu estou tendo dificuldade em localizá-los.

Há um par de high-end profissional de pacotes de software, que irá fazer o web app testes e muito mais.Uma das mais populares ferramentas CoreImpact

Se você está pensando em ir com a Caneta de Testes em seu próprio eu recomendo que você leia muito do OWASP do Projeto de documentação.Especificamente o OWASP Aplicação de Verificação de Segurança e de Teste/Desenvolvimento de guias.A mentalidade que você precisa para testar a sua aplicação é um pouco diferente do que o seu normal desenvolvimento mentalidade (e o que não DEVE ser diferente, mas, geralmente, é).

o que sobre rat proxy?

Um semi-automatizado, em grande parte passiva web segurança de aplicativo da ferramenta de auditoria, optimizado para uma exacta e sensível de detecção automática de anotação de potenciais problemas e relevantes de segurança e padrões de projeto com base na observação das existentes, iniciado pelo usuário de tráfego no complexo web 2.0 ambientes.

Detecta e prioriza grandes classes problemas de segurança, tais como dinâmica cross-site modelo de confiança considerações, script de inclusão de questões, conteúdo servindo problemas, a insuficiência de XSRF e XSS defesas, e muito mais

Ratproxy é, atualmente, acredita-se suporte Linux, FreeBSD, MacOS X e Windows (Cygwin) ambientes.

Eu sei que você perguntou especificamente sobre pentesting ferramentas, mas uma vez que essas têm sido amplamente atendida (eu costumo ir com uma mistura de AppScan e treinados pentester), eu acho que é importante ressaltar que pentesting não é o único caminho para "verificação de brechas de segurança", e muitas vezes não é o mais eficaz.

Fonte de revisão do código de ferramentas pode fornecer-lhe com muito mais visibilidade de sua base de código, e encontrar muitas falhas que pentesting não.

Estes incluem Fortalecer e OunceLabs (caro e para muitos idiomas), VisualStudio.NET CodeAnalysis (para .NET e C++, livre, com VSTS, bom, mas não ótimo), OWASP LAPSO para Java (livre, decente, não é grande), CheckMarx (não é barato, ferramenta fantástica para .NET e Java, mas alta sobrecarga), e muitos mais.

Um ponto importante que você deve observar - (a maioria) as ferramentas automatizadas não encontrar todas as vulnerabilidades, não chega nem perto.Você pode esperar as ferramentas automatizadas para encontrar cerca de 35-40% dos secbugs que seria encontrado por um profissional pentester;o mesmo vale para automatizada vs.manual de código de origem de revisão.

E claro um bom SDLC (Security Development Lifecycle), incluindo a Modelagem de Ameaças, de Revisão de Projeto, etc, vai ajudar ainda mais...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top