Ir para o conteúdo principal

Avaliação técnica de vulnerabilidades no código do Skala

Data de elaboração

05/04/2023

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


Observações

Sem observações.

1. Glossário de Termos



2. Introdução



3. Grupos de políticas de autorizações


O sistema de permissões do Skala é definido da seguinte forma:

Grupo Perfis unitários
RHGerente RH@skala, Gerente@skala
Nafas Nafas@skala
Auditor Auditor@skala
AUDITOR || NAFES Auditor@skala, Nafas@skala
NAFAS || GERENTE || RH Nafas@skala, RH@skala, Gerente@skala


4. Análise/Checklist na primeira camada (proteção das rotas)


4.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


4.2  Pacote MVC (Escala)

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.3  Pacote MVC (Home)

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.4  Pacote MVC (Mapa)

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.5  Pacote MVC (Padrao)

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.6  Pacote MVC (Plantao)

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.7  Pacote MVC (Relatorio)

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.8  Pacote MVC (Servidor)

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.9  Pacote MVC (ServidorEquipe)

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.10  Pacote MVC (Solicitacao)

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

5. Análise da segunda camada de proteção (Permissão por perfil)


5.1  Manutenção de equipes

Ações Restrições existentes? Quem pode?
Ver listagem de equipes O gerente visualiza somente os departamentos de sua atribuição, já os outros perfis acessam todos os departamentos da sua unidade orçamentária. RHGerente
Ver detalhes de equipe Não existem restrições e o usuário pode ver a equipe apenas trocando o ID na rota RHGerente
Adicionar equipe Não se aplica RHGerente
Editar equipe Não se aplica RHGerente
Vincular equipe Não se aplica RHGerente


5. Conclusão


6. Referências