Transporte 1.1.1.21

De MSTECH wiki
Ir para: navegação, pesquisa

Sistemas Verificados

  • Transporte Escolar, versão 1.1.1.21
  • Transporte Escolar Api, versão 1.0.0.0

Verificação de Segurança

Testes Realizados

Item de Teste Referência OWASP Resultado
Review Webpage Comments and Metadata for Information Leakage OTG-INFO-005 OK
Test Application Platform Configuration OTG-CONFIG-002 NA
Test File Extensions Handling for Sensitive Information OTG-CONFIG-003 OK
Review Old, Backup and Unreferenced Files for Sensitive Information OTG-CONFIG-004 F
Test HTTP Methods OTG-CONFIG-006 NA
Test HTTP Strict Transport Security OTG-CONFIG-007 F
Test RIA cross domain policy OTG-CONFIG-008 NA
Test Role Definitions OTG-IDENT-001 NA
Test User Registration Process OTG-IDENT-002 NA
Test Account Provisioning Process OTG-IDENT-003 NA
Testing for Account Enumeration and Guessable User Account OTG-IDENT-004 OK
Testing for Credentials Transported over an Encrypted Channel OTG-AUTHN-001 F
Testing for default credentials OTG-AUTHN-002 OK
Testing for Weak lock out mechanism OTG-AUTHN-003 NA
Testing for Bypassing Authentication Schema OTG-AUTHN-004 OK
Testing for Vulnerable Remember Password OTG-AUTHN-005 NA
Testing for Browser cache weakness OTG-AUTHN-006 OK
Testing for Weak password policy OTG-AUTHN-007 NA
Testing for weak password change or reset functionalities OTG-AUTHN-009 NA
Testing for Weaker authentication in alternative channel OTG-AUTHN-010 NA
Testing Directory traversal/file include OTG-AUTHZ-001 OK
Testing for Bypassing Authorization Schema OTG-AUTHZ-002 F
Testing for Privilege escalation OTG-AUTHZ-003 OK
Testing for Insecure Direct Object References OTG-AUTHZ-004 F
Testing for Session Management Schema OTG-SESS-001 F
Testing for cookies attributes OTG-SESS-002 OK
Testing for Session Fixation OTG-SESS-003 OK
Testing for Exposed Session Variables OTG-SESS-004 OK
Testing for CSRF OTG-SESS-005 F
Testing for logout functionality OTG-SESS-006 F
Testing for Session Timeout OTG-SESS-007 OK
Testing for Session puzzling OTG-SESS-008 OK
Testing for Reflected Cross site scripting OTG-INPVAL-001 OK
Testing for Stored Cross site scripting OTG-INPVAL-002 OK
Testing for HTTP Verb Tampering OTG-INPVAL-003 NA
Testing for HTTP Parameter pollution OTG-INPVAL-004 OK
Testing for SQL Injection OTG-INPVAL-005 OK
Testing for LDAP Injection OTG-INPVAL-006 NA
Testing for XML Injection OTG-INPVAL-008 NA
Testing for SSI Injection OTG-INPVAL-009 NA
Testing for XPath Injection OTG-INPVAL-010 NA
Testing for IMAP/SMTP Injection OTG-INPVAL-011 NA
Testing for Code Injection OTG-INPVAL-012 OK
Testing for Command Injection OTG-INPVAL-013 OK
Testing for Buffer Overflow OTG-INPVAL-014 NA
Testing for Incubated Vulnerability OTG-INPVAL-015 OK
Testing for HTTP Splitting/Smuggling OTG-INPVAL-016 OK
Testing for Information Disclosure OTG-ERR-001, OTG-ERR-002 OK
Testing for Weak SSL/TLS Ciphers, Insufficient Transport Layer Protection OTG-CRYPST-001 NA
Testing for Padding Oracle OTG-CRYPST-002 NA
Testing for Sensitive information sent via unencrypted channels OTG-CRYPST-003 NA
Tests of business logic OTG-BUSLOGIC-001..009 OK
Testing for DOM-based Cross site scripting OTG-CLIENT-001 OK
Testing for JavaScript Execution OTG-CLIENT-002 OK
Testing for HTML Injection OTG-CLIENT-003 OK
Testing for Client Side URL Redirect OTG-CLIENT-004 F
Testing for CSS Injection OTG-CLIENT-005 OK
Testing for Client Side Resource Manipulation OTG-CLIENT-006 OK
Test Cross Origin Resource Sharing OTG-CLIENT-007 OK
Testing for Cross site flashing OTG-CLIENT-008 OK
Testing for Clickjacking OTG-CLIENT-009 OK
Testing WebSockets OTG-CLIENT-010 NA
Test Web Messaging OTG-CLIENT-011 NA
Test Local Storage OTG-CLIENT-012 NA

OK (Nenhum problema encontrado); F (Teste falhou, verificar os resultados); NA (Teste não aplicado)

Resultados dos Testes

Teste falhou

OTG-AUTHZ-002, OTG-AUTHZ-004
Severidade Média
Descrição O handler "fileHandler.ashx" não possui controle de acesso, podendo ser acessado diretamente por um usuário não autenticado. Assim ele permite o download de qualquer arquivo disponível através do seu id, que é um número sequencial e portanto de fácil previsão.
Política de segurança "3.3 Controle de acesso", "3.9 Arquivos e recursos"
Sugestões
  • Implementar um controle de acesso para o fileHandler e para os arquivos em si, de forma que apenas os usuários com a devida permissão consigam realizar o download dos arquivos.
  • Utilizar identificadores aleatórios e não previsíveis para dificultar o acesso aos arquivos diretamente.
Referências

Teste falhou

OTG-CONFIG-007, OTG-AUTHN-001
Severidade Média
Descrição As informações enviados para e pelo sistema não são criptografadas, susceptíveis a interceptações e alterações entre o cliente e o servidor.
Política de segurança "3.8 Segurança nas comunicações"
Sugestões
  • Implementar o protocolo TLS seguindo as orientações de boas práticas.
  • Utilizar em ambientes de produção certificados gerados por autoridades certificadores confiáveis. Em ambientes de teste e homologação podem ser utilizados certificados auto-assinados.
Referências

Teste falhou

OTG-CONFIG-004
Severidade Baixa
Descrição O diretório do site no servidor possui arquivos de código fonte (.cs).
Política de segurança "3.7 Proteção de dados"
Sugestões
  • Em produção, deve-se procurar manter apenas os arquivos compilados e necessários para o funcionamento do sistema.
Referências

Teste falhou

OTG-AUTHZ-002
Severidade Baixa
Descrição A api do sistema e o WS "SvcTransporteEscolar" não possuem controle de acesso, podendo ser acessados diretamente por um usuário não autenticado.
Política de segurança "3.11 Web Services e API´s"
Sugestões
  • Implementar mecanismos de autenticação e autorização para as APIs e Webservices.
Referências

Teste falhou

OTG-SESS-005
Severidade Média
Descrição O sistema não implementa um mecanismo anti-CSRF, e permite que as páginas sejam renderizadas a partir de outros domínios (em um frame, iframe ou object).
Política de segurança "3.12.1 Configurações para servidor web", "3.4 Gerenciamento de sessão"
Sugestões
  • Implementar um token anti-CSRF para prevenir ataques desse tipo.
  • Verificar os cabeçalhos "Origin" e/ou "Referer" para identificar a origem do request.
  • Setar o cabeçalho "X-Frame-Options" para "sameorigin" ou "deny".
Referências

Teste falhou

OTG-SESS-001, OTG-SESS-006
Severidade Média
Descrição Ao realizar o logout o cookie de autenticação não é invalidado no servidor, apenas excluido no lado cliente. Assim, forçando o navegador a utilizar o valor antigo do cookie o usuário consegue novamente acesso ao sistema sem realizar o login.
Política de segurança "3.4 Gerenciamento de sessão"
Sugestões
  • Invalidar o cookie de autenticação no lado servidor quando o usuário realiza o logout.
Referências

Teste falhou

OTG-SESS-001
Severidade Média
Descrição Ao realizar a primeira requisição para o sistema o usuário recebe um cookie de sessão, e assim que realiza o login com sucesso ele recebe um cookie de autenticação. No entanto o sistema não faz a validação de ambos os cookies, podendo o usuário depois de autenticado continuar navegando apenas com o cookie de sessão ou de autenticação (nesse caso recebendo uma nova sessão).
Política de segurança "3.4 Gerenciamento de sessão"
Sugestões
  • Sempre verificar no lado servidor a validade de ambos os cookies, e caso algum cookie esteja ausente ou alterado realizar o logout da sessão do usuário, invalidando ambos os cookies.
Referências

Teste falhou

OTG-CLIENT-004
Severidade Baixa
Descrição O sistema faz o redirecionamento do usuário para outros domínios quando o parâmentro "relaystate" da página "Login.ashx" é alterado para uma url qualquer.
Política de segurança "3.1 Validação dos dados"
Sugestões
  • Fazer a validação do valor do relaystate antes de redirecionar o usuário, para previnir o redirecionamento para outros domínios no caso da requisição ter sido alterada ou forjada.
Referências
Índices Resultados
Número de itens testes 64
Número de itens verificados 40
Número de itens (NA) 24
Número de itens (OK) 31
Número de itens (F) 9
Índice de aderência 78%

Verificação de Desempenho

Observações sobre o teste

O CoreSSO utilizado inicialmente para os testes foi o indicado pela equipe do Transportes, copiado do TS-IIS02 e TS-BD. Contudo, o CoreSSO, apresentou problemas, dentre eles o não cadastro da tabela de layout padrão, gerando diversos erros. Desta forma, substituímos o banco e o site por outra versão indicada pela equipe do CoreSSO na época.

Vale ressaltar que o sistema conforme indicação da equipe do Transportes suportaria, em seu limite, o acesso simultâneo de 200 usuários com uma alta taxa de erro no momento de acesso ao sistema Transporte Escolar, tornando necessário a verificação e ajuste do SAML.

Análise do teste

Durante todas os testes, o percentual de processamento e utilização de memória manteve-se dentro dos padrões estabelecidos quando o sistema possui no máximo 1000 usuários simultâneos. A média de fila em disco demonstrou-se baixa.

O tempo médio de resposta das requisições manteve-se no limite estabelecido até 1800 usuários. Porém, nos testes a partir de 2000 requests, há um “pulo” nos tempos de resposta.

A partir de 2000 requests simultâneos não houve possibilidade de executar e finalizar os testes, pois conforme demonstrado acima, há uma sobrecarga no servidor.

Cenários de uso

Cenário de uso #1 - Login
Ação realizada Think Time (segundos)
1 - Acessar tela de login 3
1 - Realizar login 7
1 - Selecionar sistema Transporte Escolar 5
Cenário de uso #2 - Cadastro de veículo
Ação realizada Think Time (segundos)
2 - Acessar tela de consulta de veículos 5
2 - Preencher aba "Documentação" 20
2 - Preencher aba "Aquisição" 7
2 - Preencher aba "Condutor" 38
2 - Preencher aba "Peças e acessórios" 25
2 - Preencher aba "Despesas" 15
2 - Salvar cadastro 5
Cenário de uso #3 - Logout
Ação realizada Think Time (segundos)
3 - Logout 5

Resultado dos testes

Nesta seção serão apresentados os resultados obtidos da execução dos testes.

  • Porcentagem de tempo do processador
Descrição: Mede a saturação do processador e mostra a quantidade de tempo despendida para processar as threads por todas as CPUs.
Limite recomendado: Abaixo de 75 %.
Análise: A aplicação demonstrou desempenho esperado, sendo que o servidor WEB01 teve uma utilização superior em relação aos demais.
2016-06-21 TransporteEscolar TempoDeProcessador.png


  • Porcentagem de memória utilizada
Descrição: Indica a porcentagem de memória utilizada para uso dos processos.
Limite recomendado: Abaixo de 75 %.
Análise: A aplicação utiliza utiliza uma quantidade significativa de memória, principalmente do banco de dados, sendo que a partir de 800 usuários fica acima da porcentagem recomendada.
2016-06-21 TransporteEscolar MemoriaUtilizada.png


  • Kbytes totais pela interface de rede
Descrição: Indica quantos Kbytes foram enviados e recebidos a cada segundo pela interface de rede.
Limite recomendado: Menor que 5 Mbytes para uma rede de 100Mbps, menor que 50 Mbytes para uma rede de 1000 Mbps. (Quanto menor melhor).
Análise: O servidor de banco de dados aprensentou um comportamento inesperado devido a uma queda na quantidade em KBytes utilizada a partir de 1000 usuários.


2016-06-21 TransporteEscolar NetworkTotal.png


  • Tempo médio de resposta das requisições
Descrição: Indica o tempo médio de resposta das requisições.
Limite recomendado: 5 segundos.
Análise: A aplicação demonstrou desempenho esperado próximo à 1800 usuários, com uma quantidade superior de usuários os servidores ficam sobrecarregados, aumentando significativamente o tempo de resposta.
2016-06-21 TransporteEscolar ResponseTime.png


  • Tempo de vazão
Descrição: Indica a quantidade total de request por segundo.
Limite recomendado: Quanto maior melhor.
A aplicação demonstrou desempenho esperado, porém possui uma queda de performance ao ser utilizada por 1602 usuários, resultando em queda menor de requests realizados.
2016-06-22 13-37-47.png