Avaliação técnica de vulnerabilidades no código do Skala
Data de elaboração |
18/08/2021 |
---|---|
Responsável pelo estudo |
José Lucas da Silva Costa |
Equipe do estudo |
|
Alvo | Sistema Skala |
Origem |
Falhas de segurança |
Objetivo |
Avaliar falhas de segurança no sistema Skala |
Documentação Correlata |
Documentação Técnica: https://hermes-api.dev.local/swagger/ |
Observações |
Sem observações. |
1. Glossário de Termos
2. Introdução
3. Análise/Checklist na primeira camada (proteção das rotas)
3.1 Pacote MVC (Equipe)
Checklist de avaliação | |
Authorize está presente na controller?[ | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ ] Não se aplica |
As Authorize's específicas nas rotas estão de acordo com a regra de negócio do sistema? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Laudo técnico:
Descrever aqui |
3.2 EscalaController
Checklist de avaliação | |
Authorize está presente na controller?[ | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ ] Não se aplica |
As Authorize's específicas nas rotas estão de acordo com a regra de negócio do sistema? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Laudo técnico:
Descrever aqui |
3.3 HomeController
Checklist de avaliação | |
Authorize está presente na controller?[ | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ ] Não se aplica |
As Authorize's específicas nas rotas estão de acordo com a regra de negócio do sistema? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Laudo técnico:
Descrever aqui |
3.4 MapaController
Checklist de avaliação | |
Authorize está presente na controller?[ | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ ] Não se aplica |
As Authorize's específicas nas rotas estão de acordo com a regra de negócio do sistema? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Laudo técnico:
Descrever aqui |
3.5 PadraoController
Checklist de avaliação | |
Authorize está presente na controller?[ | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ ] Não se aplica |
As Authorize's específicas nas rotas estão de acordo com a regra de negócio do sistema? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Laudo técnico:
Descrever aqui |
3.6 PlantaoController
Checklist de avaliação | |
Authorize está presente na controller?[ | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ ] Não se aplica |
As Authorize's específicas nas rotas estão de acordo com a regra de negócio do sistema? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Laudo técnico:
Descrever aqui |
3.7 RelatorioController
Checklist de avaliação | |
Authorize está presente na controller?[ | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ ] Não se aplica |
As Authorize's específicas nas rotas estão de acordo com a regra de negócio do sistema? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Laudo técnico:
Descrever aqui |
3.8 ServidorController
Checklist de avaliação | |
Authorize está presente na controller?[ | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ ] Não se aplica |
As Authorize's específicas nas rotas estão de acordo com a regra de negócio do sistema? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Laudo técnico:
Descrever aqui |
3.9 ServidorEquipeController
Checklist de avaliação | |
Authorize está presente na controller?[ | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ ] Não se aplica |
As Authorize's específicas nas rotas estão de acordo com a regra de negócio do sistema? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Laudo técnico:
Descrever aqui |
3.10 SolicitaçãoController
Checklist de avaliação | |
Authorize está presente na controller?[ | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ ] Não se aplica |
As Authorize's específicas nas rotas estão de acordo com a regra de negócio do sistema? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ ] Não - [ ] Não se aplica |
Laudo técnico:
Descrever aqui |
4. Conclusão
O presente ESTUDO TÉCNICO PRELIMINAR, elaborado pelos integrantes TÉCNICOS do time TITÃS, considerando a análise dos desafios técnicos envolvidos e citados, conclui pela VIABILIDADE DA IMPLEMENTAÇÃO DA NOTIFICAÇÃO DE MODO CRITERIOSO, uma vez que foram considerados os potenciais benefícios em termos de eficiência e também os problemas envolvidos, principalmente potenciais problemas de desempenho da aplicação. Em complemento, os contratempos identificados são administráveis, pelo que RECOMENDAMOS o prosseguimento da demanda. Ressalva-se que o ideal é que a periodicidade de envio dos e-mails seja no máximo diária, para esta atividade recomenda-se a construção de um Job que faça o envio no período desejado.