Pesquisar este blog

terça-feira, 17 de julho de 2012

Vulnerabilidades testadas através das Ferramenta Sonar (PMD,PMD - Security rules plugin,FindBugs) e pela ferramenta IBM Rational AppScan.


Segue as Vulnerabilidades são testadas através das Ferramenta Sonar (PMD,PMD - Security rules plugin,FindBugs) e pela ferramenta IBM Rational AppScan.




Vulnerabilidades Classificação Ferramentas Tipos de Teste de Segurança Ambiente de Teste
Securitycode guidelines PMD Caixa Branca Web
SQL injection vulnerability PMD - Security rules plugin Caixa Branca Web
Password management vulnerability PMD - Security rules plugin Caixa Branca Web
Error Handling and logging flaws PMD - Security rules plugin Caixa Branca Web
Insecure direct object reference PMD - Security rules plugin Caixa Branca Web
Hardcoded constant database password FindBugs Caixa Branca Web
Entity database password FindBugs Caixa Branca Web
Cookie formed from untrusted input FindBugs Caixa Branca Web
HTTP Response spliting vulnerability FindBugs Caixa Branca Web
Nonconstant string passed to execute method on an SQL statement FindBugs Caixa Branca Web
A prepared statement is generated from a nonconstant String FindBugs Caixa Branca Web
JSP reflected cross site scripting vulnerability FindBugs Caixa Branca Web
Servlet reflected cross site scripting vulnerability in error page FindBugs Caixa Branca Web
Servlet reflected cross site scripting vulnerability FindBugs Caixa Branca Web
Abuse of Functionality IBM Rational AppScan Caixa Preta Web
Application Privacy Tests IBM Rational AppScan Caixa Preta Web
Application Quality Tests IBM Rational AppScan Caixa Preta Web
Brute Force IBM Rational AppScan Caixa Preta Web
Buffer Overflow IBM Rational AppScan Caixa Preta Web
Content Spoofing IBM Rational AppScan Caixa Preta Web
Credential/Session Prediction IBM Rational AppScan Caixa Preta Web
Cross-site Request Forgery IBM Rational AppScan Caixa Preta Web
Cross-site Scripting IBM Rational AppScan Caixa Preta Web
Denial of Service IBM Rational AppScan Caixa Preta Web
Directory Indexing IBM Rational AppScan Caixa Preta Web
Format String IBM Rational AppScan Caixa Preta Web
HTTP Response Splitting IBM Rational AppScan Caixa Preta Web
Information Leakage IBM Rational AppScan Caixa Preta Web
Insecure Indexing IBM Rational AppScan Caixa Preta Web
Insufficient Authentication IBM Rational AppScan Caixa Preta Web
Insufficient Authorization IBM Rational AppScan Caixa Preta Web
Insufficient Session Expiration IBM Rational AppScan Caixa Preta Web
LDAP Injection IBM Rational AppScan Caixa Preta Web
Null Byte Injection IBM Rational AppScan Caixa Preta Web
OS Commanding IBM Rational AppScan Caixa Preta Web
Path Traversal IBM Rational AppScan Caixa Preta Web
Predictable Resource Location IBM Rational AppScan Caixa Preta Web
Remote File Inclusion IBM Rational AppScan Caixa Preta Web
Session Fixation IBM Rational AppScan Caixa Preta Web
SOAP Array Abuse IBM Rational AppScan Caixa Preta Web
SQL Injection IBM Rational AppScan Caixa Preta Web
SSI Injection IBM Rational AppScan Caixa Preta Web
URl Redirector Abuse IBM Rational AppScan Caixa Preta Web
XML Attribute Blowup IBM Rational AppScan Caixa Preta Web
XML Entity Expansion IBM Rational AppScan Caixa Preta Web
XML External Entities IBM Rational AppScan Caixa Preta Web
XPath Injection IBM Rational AppScan Caixa Preta Web












Todas as Vulnerabilidades acima, tratam da Qualidade do Código e Designer da Aplicação, não tratando da lógica de negócio.

 Vulnerabilidade não são Ameaças, Vulnerabilidade é uma Fraqueza ou Brecha de Segurança na Aplicação que está associado com as Ameaças.

Os testes de Caixa Branca são feitas pela Área de Desenvolvimento e os de Caixa Preta pela área de Testes.

Não foi realizado a Descrição das Vulnerabilidades, ela tem que ser feita nas Contra-medidas descrevendo detalhadamente junto com seu controle de Segurança.

As Vulnerabilidades não são as quantidades de testes realizados, são realizados 133 validações pelo Sonar de 14 classificações de vulnerabilidades e pela AppScan 33 classificações de vulnerabilidades com 1668 validações podendo ser feita de mais de um forma, não tem como mensurar os casos de testes pela AppScan, podendo ser acima de 1 milhão, dependendo da quantidade de URLs.

quinta-feira, 12 de julho de 2012

Como Investir no seu Curriculum


Hoje em dia, só os melhores tem vagas para as grandes empresas, e por sua vez as únicas que pagam bem, um bom curriculum faz muita diferença, mas no entanto não é suficiente se a pessoa não mostrar aquilo que saber fazer, tome muito cuidado quando você colocar algo no curriculum em algum momento você vai ser  questionado. A grande sacada é você ser especialista em alguma área do conhecimento, para isso você precisa encontrar a área que você se encaixa, não adianta você se encaixar em algo que você não vai ser valorizado  todo investimento deve ter um retorno seja ela a pequeno prazo ou a longo prazo. Um bom profissional hoje em dia tem que ser comunicativo, saber fazer boas amizades, saber discutir sobre um problema, tenha foco na sua vida, não procure abraçar o mundo com as mãos, isso não funciona, planeje, crie passos pequenos a seguir.
Quando estava pra terminar a Faculdade não sabia o que fazer ou em que rumo seguir, no entanto tinha uma média boa na faculdade e boas amizades, que me mostrava um ponto a seguir, seja sempre uma pessoa honesta e focada, as pessoas vão te indicar, basta você estudar que as oportunidades virão, sempre encare os desafios impostos, Deus sabe o futuro em algum momento você pode precisar daquela experiência. Invista seu dinheiro em Certificações na área que deseja seguir, elas são um diferencial muito grande, na sua área analise os curriculum dos Plenos e Senior, pra saber seus pontos fracos que ainda precisa melhorar, não seja como criança que muda o foco todo tempo, pesquise, analise, projete, execute seu futuro.


A base salarial do mercado é esta mesmo apresentado na tabela abaixo (Trainee, Junior, Pleno, Senior), variando de 1500 a 7000 de Trainee a Gerente da Área de Testes, manaus esta parecida com o Rio de Janeiro, no entanto são poucos empresas que pagam bem (FUCAPI, Paulo Feitosa, Nokia, Samsung). Estude as empresas, saibam o que elas exigem, tenha boas experiências no seu curriculum. Cada empresa segue um processo, RUP, SCRUM, MPS.BR, ISO 27001, isso é muito importante para empresa, faz a diferença no mercado competitivo, por mais chato que seja a parte de processo, conheça bem, mostre pra empresa que você conhece o processo dela. Pra você chegar no topo salarial pode ser anos de Investimento, eu creio que compensa o sacrifício.




Pesquisa Salarial no site de curriculum CEVIU:
http://www.ceviu.com.br/salario/tabela-pretensao-salarial-analista-testes

quarta-feira, 11 de julho de 2012

Configurando Jmeter para Gravar as Requisições (Proxy Server)


Configuração do Jmeter.

Para configurar o Jmeter para gravar as Requisições, teremos que realizar um configuração especifica pra isso, abaixo segue os passos abaixo:

Em Plano de Teste temos que adicionar “Grupo de Usuários”, clique no botão direito do mouse e siga os passsos:
Adicionar / Theads (Users) / Grupo de Usuários




Em “Grupo de Usuários”, vamos adicionar “Padrões de Requisição HTTP” clique no botão direito do mouse e siga os passos:
Adicionar / Elemento de Configuração / Padrões de Requisição HTTP



Em “Grupo de Usuários”, vamos adicionar “Controlador de Gravação” clique no botão direito do mouse e siga os passos:
Adicionar / Elemento de Configuração / Controlador de Gravação




Em “Grupo de Usuários”, vamos adicionar “Gerenciador de Cookie HTTP” clique no botão direito do mouse e siga os passos:
Adicionar / Elemento de Configuração / Gerenciador de Cookie HTTP


----------------------------------------------------------------------------------------------------------------------------------

Em “Área de Trabalho”, vamos adicionar “Servidor HTTP Proxy” clique no botão direito do mouse e siga os passos:
Adicionar / Elemento de Configuração / Servidor HTTP Proxy


Em “Área de Trabalho”, vamos adicionar “Ver árvore de resultados” clique no botão direito do mouse e siga os passos:
Adicionar / Elemento de Configuração / Ver Árvore de Resultados

----------------------------------------------------------------------------------------------------------------------------------

Agora vamos configurar os Componentes

Padrões de Requisição HTTP, temos que configurar os itens do Servidor Web, Nome do Servidor ou IP que é o site que vai testar, em seguida a Porta “8080”. Após isso devemos configurar os itens do Proxy Server, Nome do Servidor ou IP, que é o endereço “localhost” ou “127.0.0.1” e em seguida a Porta “8080”.




Em “Servidor HTTP Proxy”, vamos configurar a Porta “8080”, em Conteúdo do Plano de Teste vamos adicionar o nosso controlador que criamos no item “Controlador alvo”, em Configurações vamos colocar o Tipo “Java” e a opção “Redirecionar automaticamente”. Em Padrões de URL a serem incluídos adicione as extensões “.*\.html”,“.*\.jsp”, “.*\.do”. Em Padrões de URL a serem excluídos “.*\.icon”, “.*\.jpg” etc. Agora temos que configurar o Browser e Depois é só iniciar o servidor clicando no Botão “Iniciar”.





Configurar o Browser Firefox
Passos:
Tools / Options / Advanced / Network / Settings
1. Selecione "Manual proxy configuration"
2. Digite "localhost" no campo HTTP Proxy.
3. Digite "8080" no campo Port.



Após configurar o Browser Navegue pelo Sistema nos pontos que deseja realizar os testes de Performance. 

-------------------------------------

Pra saber se está correto vamos em "Ver Árvore de Resultados", as requisições que estão em verde foram gravadas com sucesso, as que estão em laranja ouve algum problema, que você terá que analisar.



Obs: Outra opção pra gravar as requisições é a utilização da ferramenta BadBoy, que foi postado em outro tópico.

Veja também: Como montar um relatório de testes de Performance

segunda-feira, 9 de julho de 2012

UTILIZAÇÃO E CONFIGURAÇÃO DO BAB BOY E JMETER

O principal objetivo desse tutorial e a utilização da ferramenta BadBoy para captura dos métodos da aplicação, depois a utilização da captura desses métodos no JMETER para execução dos testes.

BabBoy

É uma ferramenta desenvolvida em C++ (sim, não vai funcionar no linux, infelizmente) que grava todas ações que você faz em uma página web (java, php, ruby, etc...). Ele é capaz de gravar, como uma macro, tudo o que você faz na página web como requests, parâmetros, alert, respostar, etc.. Com ele você pode alterar parâmetros das páginas que você está testando, efetuar asserções por texto (simples ou html), cor, javascript, etc... Veremos então, nesta primeira parte, a estrutura básica do BadBoy e suas principais ferramentas (pelo menos as mais fáceis de utilizar.


JMeter


É um ferramenta utilizada para testes de carga em serviços oferecidos por sistemas computacionais. Esta ferramenta é parte do projeto Jakarta da Apache Software Foundation.

Para a realização de testes, a ferramenta JMeter disponibiliza diversos tipos de requisições e assertions (para validar o resultado dessas requisições), além de controladores lógicos como loops(ciclos) e controles condicionais para serem utilizados na construção de planos de teste, que correspondem aos testes funcionais.

O JMeter disponibiliza também um controle de threads, chamado Thread Group, no qual é possível configurar o número de threads, a quantidade de vezes que cada thread será executada e o intervalo entre cada execução, que ajuda a realizar os testes de stress. E por fim, existem diversos listeners, que se baseando nos resultados das requisições ou dos assertions, podem ser usados para gerar gráficos e tabelas.

Componentes no JMeter são recursos que podem ser utilizados para criar rotinas de testes para aplicações.

Conhecendo o BadBoy
Essa é a tela inicial do BadBoy.


  1. Barra de ferramnetasAqui encontramos todos os botões para as principais ações no Badboy, veremos com detalhes cada uma das ações.
  2. Barra da URLAqui digitamos o endereço de entrada que iremos gravar o script e onde aparecerão as demais url's enquanto vamos navegando nas paginas.
  3. Estrutura do ScriptAqui é apresentada a principal estrutura de script do BadBoy com a estrutura de
    • Suites: Organiza seu script da mesma forma de um test, mas com a diferença de ter apenas uma suite (não nesessário, pois o suite e test possuem quase as mesmas funcionalidade).
    • Tests: Organiza o seu script como um teste, podendo transforma-lo em um template (que tambem será apresentado mais tarde). Você pode organizar o Tests como um TestCase ou como partes agrupadas de teste no seu script
    • Steps: Organiza o seu script como passos para execução de determinada ação ou grupo de ação. Um step pode virar uma Thread, pode repetir N vezes, pode ser monitorada e ser transformada em test.
  4. Tools
Tools apresenta uma série de ferramentas para auxiliá-lo na gravação, execução e visualização do seu script.
  • Summary: Apresenta todos os dados referente a execução do seu script (nro de execuções, falhas, sucessos, tempo médio de execução, etc...)
  • Variebles: apresenta todas as variáveis que podem ser utilizadas no script para substituir um determinado parâmetro.
  • Graph: Apresentação do gráfico contendo o tempo médio da execução de cada step do script.
  • Toos: Uma série de ferramentas que podem ser adicionadas no seu script para ajudá-lo a obter o sucesso da execução do seu script.
  • Checkers: Série de analisadores que podem ser inseridos para efetuar alguma verificação na página.
  • References: itens que podem ser adicionados como requirements ou defeacts para ajudar você a visualizar o que precisa ser verificado ou ajuda-lo em algum decisão dentro da ferramenta, a fins ilustrativos.

    5. Visualizador da página
É aqui será exibida a página enquanto você grava sua execução. Você interage com a pagina neste painel, onde também pode aplicar os checkers.

Como Gravar um Script no BadBoy
Os passos para a gravação de um script é bem fácil

  1. Abra o BadBoy. Ele já estará em modo de gravação, que pode ser visualizado pelo botão "Record" pressionado na barra de ferramentas.
  2. Digite a URL na barra de endereço. O BadBoy Automaticamente criará a o request com todos os parâmetros da página requisitada. 
  3. Comece a interagir com a página no painel de visualização da página. Todas as ações na página serão adicionadas na estrutura do script do BadBoy.

Exportando o script para utilizá-lo no JMeter

Basta depois de ter salvo todas as ações que deseja ser executada na aplicação, ir no seguintes menus:
  1. Selecione o Menu "File" e depois a opção "Export to JMeter".

Com isso basta salvar o script em um diretório, e pronto agora já temos o nosso script que será executado no JMeter.

Agora temos que abrir o script salvo no Jmeter:




Ao abrir o script temos que primeiro adicionar o servidor proxy no Jmeter:

Como o botão direito em cima do menu área de trabalho:

 Área de trabalho > Adicionar > Elementos que não são de Teste > Servidor HTTP Proxy.


 Em controle de alvo selecione nosso teste: Test Plan > Thread group > Step 1. Em seguida aperte o botão Iniciar.



Após Iniciar o servidor selecione em thead group, agora basta configurar o número de usuário e apertar no botão Play.


Depois disso podemos adicionar vários tipos de Gráficos, para visualizar os resultados.
Caminho: clique com botão direito em Thread Group > Adicionar > Ouvintes.



Vou publicar em outro Post explicando com detalhes como interpretar esses gráficos complicados!
Problemas que podem ocorrer no Jmeter:
  • Antivírus bloquear as portas;
  • Skype ocupando a porta 8080;
  • Algum servidor local na porta 8080;
  • Uso de Wifi para fazer os testes, não vai estressar nada;
  • Gargalo na rede utilizada, tem que ser uma rede isolada pra fazer os testes com qualidade.
Obs: Problemas que podem ocorrer por algum motivo, o BadBoy não conseguir gravar corretamente as requisições poderá ocorrer problemas no Jmeter, neste caso recomento gravar pelo Jmeter, via Proxy pelo Browser.

Processo de Testes de Segurança Seguindo as Normas da ISO 15408 e Security Target

Processo de Segurança



  1. Fazer o Levantamento dos Riscos de Segurança (Área de Negocio, pode ser levantado riscos em todas as áreas).
  2. A partir dos Riscos Levantados criar os Requisitos de Segurança (Área de Analise, Arquiteto).
  3. Criar as proteções (controles) em cima dos Requisitos de Segurança (componentes ou classes de forma reutilizável)(Área de Arquitetura e Desenvolvimento).
  4. Realizar o Levantamento dos agentes da ameaça e as possíveis ameaças (qualquer área).
  5. Conforme as ameaças levantada, verificar quais são as vulnerabilidades, como testar e como dever ser tratadas, testes de caixa branca e caixa preta (Teste + Desenvolvimento).
  6. Fazer o Levantamento dos Ativos a serem protegidos.
  7. Criar politicas de Segurança para proteger meus Ativos.
  8. Entender o Valor desses Ativos para meu Negocio (Área todos).

1. Fazer o Levantamento dos Riscos de Segurança (Área de Negocio).
Exemplo:
  • Roubo de Dados confidenciais da Aplicação.
  • Todos os dados podem ser roubados, modificados ou apagados. Podendo prejudicar a reputação do Negocio.

2. A partir dos Riscos Levantados criar os Requisitos de Segurança (Área de Analise).

Todos os dados de Entrada e Saída devem ser tratados, não permitindo a inserção de caracteres especiais. (ex. | .. \ ‘).


3. Criar as proteções (controles, contra-medidas).

A arquitetura vai implementar a classe “tratamento_caracteres”, a classe realizará o tratamento de caracteres especiais, não permitindo a sua entrada e saída do sistema, a implementação deve ser reutilizada em outras classes ou sistemas caso necessário. 


4. Realizar o Levantamento dos agentes da ameaça e as possíveis ameaças (qualquer área).

Agente da Ameaça
Ameaça ex-funcionário (desenvolvedor, administrador).

Ameaça
Acesso não autorizado ao banco de dados pela camada de Aplicação.


5. Vulnerabilidades, como testar e como dever ser tratadas (Teste + Desenvolvimento).


Vulnerabilidades:
SQL-Injection, LDAP Injection, XPath Injection etc.

Como Testar:
O Testes Realizará através da Ferramenta AppScan, realizará o teste Fuzzing de Segurança, inserindo várias scripts de testes pra encontrar possíveis problemas, tipo de teste caixa preta.

Tratamento:
O Desenvolvimento corrigirá possíveis problemas encontrados com a equipe de testes, corrigindo o código fonte da aplicação.


6. Fazer o Levantamento dos Ativos a serem protegidos.

Ativos
Banco de Dados, Código Fonte da Aplicação.


7. Criar politicas de Segurança para proteger meus Ativos.

PO-XYZ – Todo Funcionário desligado da empresa, deve-se remover todas as permissões do Banco de Dados.
CS-XYZ – Deve fazer uma Auditoria Interna para garantir que o processo de segurança esta sendo realizado.


8. Entender o Valor desses Ativos para meu Negocio (Área todos).

Entender a necessidade de proteger meu banco de dados, impedindo injeções pela camada de aplicação.



Security Target

Vai conter tudo que foi feito no processo de Segurança, todo levantamento realizado, ferramentas utilizadas, descrição dos controles ou componentes criados, ameaças e agentes da ameaça existentes, requisitos de segurança, riscos, politicas internas, levantamento das vulnerabilidades testadas e como testadas, quais ferramentas usadas, politicas de segurança interna, especificar as minhas fronteiras, normais técnicas. 

Exemplo Security Target:


Mapas Mentais de Teste



Segue alguns Mapas Mentais de Testes Abaixo, serve como guia, os testes de Segurança podem Funcionais, Não-Funcional, Estrutural, isso depende como você vai testar, de que forma, e do tipo de Teste de Segurança.



Funcionalidade (Functionality) – Características definidas do Sistema (Segue a Documentação), capacidades, a reusabilidade, a segurança.
Usabilidade (Usability)– Fatores humanos, estética, facilidade de uso.
Confiabilidade (Reability) – Tolerância a falhas, capacidade de recuperação, Robustez, tempo médio para falha.
Desempenho (Performance) – Velocidade, eficiência, tempo de resposta de consumo, taxa de transferência de recursos.
Capacidade de suporte (Supportability) – Fácil Manutenção, Facilidade de Instalação,  Reparo Rápido, Configurável.


http://en.wikipedia.org/wiki/FURPS









quarta-feira, 4 de julho de 2012

Testes Segurança de Caixa Branca de forma Automatizada



Uma boa ferramenta para Testes Segurança de Caixa Branca Automatizado é o Sonar, que faz a analisa de segurança Interna do Sistema, na camada de Aplicação. Realizada principalmente por meio de análise de código fonte - via verificadores de código estáticas e dinâmicas e dos métodos. O Sonar inclui os plugins por padrão PMD, PMD - Security rules plugin, FindBugs.

Veja abaixo quais são as regras.

segunda-feira, 2 de julho de 2012

O Bom Testador



A realidade da imagem abaixo é evidente no nosso dia a dia, a gente tenta explicar a complexidade do negócio, o tempo que a gente tem para testar, a experiência necessário e o conhecimento da arquitetura, faz o levantamento dos riscos, mas mesmo assim os gestores não procuram entender, querem tudo pra ontem sem problema nenhum, não querem seguir o processo, quando a qualidade dar desvio, a culpa é do funcionário que não elaborou o documento. 
O Bom Testador tem que ter jogo de cintura nessas horas, e aprender a negociar prazos e ter uma base e experiência muito grande pra justificar o tempo gasto tendo em vista os erros que podem acontecer. Uma técnica muito boa, é fazer o gerente ou gestor assinar um termo se responsabilizando por futuros problemas, evidencie sempre seus Testes, para ter como justificar futuros problemas.