Transporte 1.1.1.21
Índice
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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.
- 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.
- 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.
- 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.
- 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.