Mostrando postagens com marcador Teste de Invasão. Mostrar todas as postagens
Mostrando postagens com marcador Teste de Invasão. Mostrar todas as postagens

quinta-feira, 19 de novembro de 2015

Entenda a relação do Pentest com PCI-DSS

Entre os requerimentos do PCI-DSS, está a obrigação das organizações que armazenam e processam qualquer tipo de informações de um dono de cartão de crédito efetuarem testes regulares nos seus sistemas de segurança. Isso inclui os testes de penetração (também conhecidos como PenTest). Eles devem estar incluídos nas rotinas de busca por vulnerabilidades, uma vez que são uma importante ferramenta para identificar falhas de segurança que levam a ataques e vazamentos de dados.


Para um gerente de TI, é importante entender não só a importância do PenTest, mas também todos os seus componentes, como ele se diferencia de uma busca tradicional por vulnerabilidades, as suas aplicações e quais as suas etapas de aplicação.

quarta-feira, 14 de outubro de 2015

Veja como garantir a qualidade de um teste de invasão em cloud computing

A proteção efetiva dos recursos e dados da sua empresa depende não só da competência com que são desenvolvidos os softwares, mas também da qualidade dos testes realizados para verificar sua segurança. No âmbito de Cloud Computing, se torna ainda mais tênue a linha que separa a confiança e a vulnerabilidade dos sistemas, visto que, hoje em dia, a disseminação de servidores de Cloud contribuiu para que a maior parte dos dados estratégicos das companhias migrasse para um ambiente totalmente virtual.



Hoje vamos falar como elaborar um bom teste de penetração, que coloca à prova o comportamento do software ao ser invadido. Acompanhe:

terça-feira, 17 de dezembro de 2013

From Deploy WAR (Tomcat) to Shell (FreeBSD)

O objetivo deste post é demonstrar como a implementação insegura de serviços na rede pode facilitar o comprometimento de toda a infraestrutura de sua empresa. Neste caso a demonstração será com a instalação padrão do Apache Tomcat [1], em um servidor com o sistema operacional FreeBSD [2], sem nenhum ajuste nas configurações ou hardening no pós-instalação.

Durante um teste de intrusão foi descoberto que determinado servidor executava a aplicação Tomcat (porta 8080) e que o mesmo utilizava credenciais padrão [3] (tomcat:tomcat), assim, foi possível acessar sua interface administrativa, conforme figura 1.

Figura 1 - Interface Administrativa


terça-feira, 8 de outubro de 2013

Automação de atividades para Pentest


Neste blog post, vamos abordar automação de atividades relacionadas a Pentest. Com a delegação de trabalho automatizável, o analista ganha tempo para realização de testes manuais, análises mais sofisticadas e preparação de relatório final. 

Como o nosso amigo Benjamin Franklin   falava,“time is money”(talvez um dos fatos de estar estampado na nota de 100 dólares).

 Quando pensamos em automatizar tarefas vem em mente "Shell script" ou mesmo o uso do famoso "Expect ", são ótimos para os problemas em que precisamos de uma solução rápida, mas vamos ver outros mares onde podemos ver algo com benefícios diferentes, evitando que este  "post" se torne um mero clichê.

Automação para execução de programas

Para automação de tarefas onde temos poder de fogo via comando, podemos passar variáveis por parâmetros "argumentos", podemos usar o syscall execve() para executar um programa, podemos usar também funções como system(), popen()...

Este exemplo ilustra o uso do popen(), claro que poderia usar o argumento "-p 22" do nmap e filtrar sem usar um programa, mas fica para o aprendizado, este programa faz abstração de uma varredura do nmap, depois filtra os IPs que estão com serviço SSH em Open, então salva em um determinado arquivo de log.

 https://github.com/CoolerVoid/C/blob/master/popen_example.c

Mas então vem a pergunta, "em linguagem de alto nível como seria?".

Em Perl poderia fazer algo como:
#!/usr/bin/perl

@array=`/usr/bin/nmap localhost`;
foreach(@array)
{
# aqui poderiamos tratar a saida do comando...
 print $_;
}
Em Ruby:
cmd = IO.popen('/usr/bin/nmap localhost')
puts cmd.readlines
Esta só foi uma dica de como  automatizar a execução de um comando e tratar sua saída, partindo desse ponto podemos executar outros comandos, criar condições, fazer algo concorrente, enfim fazer o que a criatividade mandar.
 

Agendando execução de programas

Algo muito importante é agendar a execução de uma ferramenta, testar a segurança periodicamente, para assim gerar novos relatórios.

Para tal feito em algumas linguagens temos alguns recursos:
* Python podemos usar APScheduler.
* Ruby temos o  Rufus-Scheduler.

Quem dispõe do uso desta função é o "Accuracy", mais informações AQUI.

Por que fazer um código para agendar sendo que posso usar o crontab ? Portabilidade é tudo, nada mais inconveniente que fazer uma gambiarra por cliente, lembre-se tempo é dinheiro...


Agilizando na construção da documentação

Uma das partes mais importantes e complexas durante a realização de um Pentest é a consolidação do conteúdo coletado através dos ataques e geração do relatório (exige habilidade de análise e síntese).

Nada mais chato que ficar selecionando colando informação e formatando um relatório, perde-se muito tempo para, pegar a documentação e fazer a correlação,  tudo isto é tempo que poderia ser aproveitado.

Bom aqui na CONVISO, como funcionário sou muito feliz em dizer que temos uma solução para isso, temos o CSC para gerência de risco,  e para automação de inserção de dados de vulnerabilidades temos os "Drones".

 O que é um Drone ?

 Seria um Agente, que atua no processo de automação para canalização de vulnerabilidades para o CSC, atualmente o que ele faz é pegar entradas de ferramentas(seja em XML,TXT,HTML,JSON), logo fazer uma abstração das vulnerabilidades e envia-las para o CSC.

Em suma com o uso de um "Drone" ganha-se tempo no cadastro de vulnerabilidades, o que evidentemente agiliza a entrega da documentação, lembrando que  as funcionalidades de um drone estão muito além das funcionalidades apresentadas aqui basta ler na documentação.