[Incompleto] Avaliação técnica de vulnerabilidades no código do SIF
Data de elaboração |
05/04/2023 |
---|---|
Responsável pelo estudo |
José Henrique dos Santos Nogueira Carlos Eduardo Carvalho do Viso |
Equipe do estudo |
José Lucas da Silva Costa João Pedro Rocha Brito Daniel Ribeiro Camboim de Oliveira |
Alvo | Sistema de Frequência |
Origem |
Falhas de segurança |
Objetivo |
Avaliar falhas de segurança no SIF |
Documentação Correlata |
Não se aplica. |
Observações |
Sem observações. |
1. Glossário de Termos
- SIF- Sistema de Frequência.
- BAF- Boletim Anual de Frequência.
2. Introdução
A avaliação técnica tem como objetivo realizar o mapeamento dos principais pontos críticos em relação às falhas de segurança presentes no sistema SIF, a nível de código. Diante disso, a demanda foi feita em duas camadas: A primeira camada consiste em analisar informações básicas de segurança, já na segunda, foi verificado a limitação de acesso de acordo com o perfil, ou seja, cada perfil deverá acessar apenas as informações e funcionalidades definidas na regra de negócio.
3. Grupos de políticas de autorizações
O sistema de permissões do SIF é definido da seguinte forma:
Grupo | Perfis unitários |
PodeAcessar | RecursosHumanos@SIF, Gerente@SIF, Nafas@SIF, ResponsavelDaFrequencia@SIF |
PodeGerenciarFrequencia |
RecursosHumanos@SIF, Gerente@SIF, Nafas@SIF, ResponsavelDaFrequencia@SIF |
PodeGerenciarBafs | RecursosHumanos@SIF, Gerente@SIF |
PodeGerenciarBafsJaHomologados | Nafas@SIF |
PodeGerenciarEstacoes | Tecnico@SIF |
4. Análise/Checklist na primeira camada (proteção das rotas)
4.1 Pacote MVC (Baf)
Checklist de avaliação | |
Authorize está presente na controller? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
4.2 Pacote MVC (CertidaoDeFrequencia)
Checklist de avaliação | |
Authorize está presente na controller? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
4.3 Pacote MVC (Colaboradores)
Checklist de avaliação | |
Authorize está presente na controller? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
4.4 Pacote MVC (Consultas)
Checklist de avaliação | |
Authorize está presente na controller? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
4.5 Pacote MVC (CorrigirFrequencia)
Checklist de avaliação | |
Authorize está presente na controller? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
4.6 Pacote MVC (Documentos)
Checklist de avaliação | |
Authorize está presente na controller? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
4.7 Pacote MVC (Estacao)
Checklist de avaliação | |
Authorize está presente na controller? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
4.8 Pacote MVC (Frequencia)
Checklist de avaliação | |
Authorize está presente na controller? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
4.9 Pacote MVC (FrequenciaManual)
Checklist de avaliação | |
Authorize está presente na controller? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
4.10 Pacote MVC (HistoricoDeHomologacao)
Checklist de avaliação | |
Authorize está presente na controller? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
4.11 Pacote MVC (Home)
Checklist de avaliação | |
Authorize está presente na controller? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
4.12 Pacote MVC (HomologacaoDaFolha)
Checklist de avaliação | |
Authorize está presente na controller? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
4.13 Pacote MVC (HorasAcumuladas)
Checklist de avaliação | |
Authorize está presente na controller? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
4.14 Pacote MVC (Organograma)
Checklist de avaliação | |
Authorize está presente na controller? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
4.15 Pacote MVC (Registros)
Checklist de avaliação | |
Authorize está presente na controller? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
4.16 Pacote MVC (SolicitacaoDeCompensacaoDeBancoDeHoras)
Checklist de avaliação | |
Authorize está presente na controller? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller sem autenticação? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
Foi testado no navegador o acesso direto a controller com autenticação diferente? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
ValidateAntiForgeryToken está presente em todas as ActionResult's com o método POST? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum uso indiscriminado do recurso AllowAnonymous nas ActionResult's? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Existe algum alguma serialização que seja acessível pelo usuário na camada de front-end? | [ x ] Sim - [ ] Não - [ ] Não se aplica |
No ORM utilizado existe alguma consulta que esteja em SQL puro? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
Caso sim para a pergunta anterior, está havendo algum tratamento para SQL Injection? | [ ] Sim - [ ] Não - [ x ] Não se aplica |
Existe algum cookie com informações expostas de autenticação? | [ ] Sim - [ x ] Não - [ ] Não se aplica |
5. Análise da segunda camada de proteção (Permissão de acesso)
5.1 Manutenção de Bafs
Ações | Observações | Quem pode? |
ListarBafs | O usuário com perfil Recursos Humanos visualiza somente os bafs de sua unidade orçamentária. Porém, essa restrição está presente apenas na page _menu (front-end), na controller (back-end) não existem essa restrição. | RecursosHumanos/Gerente |
CarregarBafs | Não existe restrição no back-end. | RecursosHumanos/Gerente |
CriarBafs | Não se aplica | RecursosHumanos/Gerente |
GravarBaf | Não se aplica | RecursosHumanos/Gerente |
InvalidarBaf | colocar autorização para os perfils adequado e proteger o ID do baf | RecursosHumanos/Gerente |
visualizarPDF | colocar autorização para os perfils adequado e proteger o ID do baf | RecursosHumanos/Gerente |
Homologar | Não se aplica | Nafas |
Cancelar | Não se aplica | RecursosHumanos/Gerente |
CanceladoPeloNafas | Não se aplica | Nafas |
DetalharBafHomologado | colocar autorização para os perfils adequado e proteger o ID do baf | RecursosHumanos/Gerente |
Download | Não se aplica | RecursosHumanos/Gerente |
5.2 Gerenciamento da Certidão de Frequência
Ações | Observações | Quem pode? |
Index | não se aplica. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
Emitir | Não existe restrição no back-end. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
Autenticacao | Todos podem acessar a autentificação da frequência, mesmo que não tenha perfil no sif. | Todos |
AutenticacaoDoToken | Todos podem acessar a autentificação da frequência, mesmo que não tenha perfil no sif. | Todos |
5.3 Gerenciamento de colaboradores
Ações | Observações | Quem pode? |
ListarPorSetor | apenas proteger o ID do setor | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
5.4 Gerenciamento de consultas
Ações | Observações | Quem pode? |
ConsultarColaboradoresComFaltas | Apenas proteger o ID do setor | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
ConsultarColaboradoresComFrequenciasNaoHomologadas | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
ConsultarColaboradoresComFrequenciasHomologadas | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
VisualizarListaSeisMeses | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
ColaboradoresFederais | A restrição de acesso aos bafas homologados está presente apenas na page _menu (front-end), na controller Consultas (back-end) não existem essa restrição. | Nafas |
ConsultarBafsHomologados | A restrição de acesso aos bafas homologados está presente apenas na page _menu (front-end), na controller Consultas (back-end) não existem essa restrição. | Nafas |
FrequenciasRescindidas | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
RelatorioDeEfetividade | A restrição de acesso aos bafas homologados está presente apenas na page _menu (front-end), na controller Consultas (back-end) não existem essa restrição. | Nafas |
RelatorioDeAuditoria | Não se aplica | RecursosHumanos/Gerente/Nafas |
5.5 Gerenciamento de correção de frequência
Ações | Observações | Quem pode? |
Index | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
EditarNota | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
5.6 Gerenciamento de Folha Padrão
Ações | Observações | Quem pode? |
VisualizarFolhaHomologada | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
GerarPDF | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
5.7 Gerenciamento de Estação
Ações | Observações | Quem pode? |
Index | Não se aplica | Tecnico |
Criar | Não se aplica | Tecnico |
Editar | Não se aplica | Tecnico |
Inativar | Proteger o id da estação. | Tecnico |
VerificarDispositivoAtivo | Proteger o ip da estação | Tecnico |
5.8 Gerenciamento de Frequência
Ações | Observações | Quem pode? |
HomologarFrequencia | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
DetalharFrequencia | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
AuditarFrequencia | Perguntar da PO qual perfil é responsável por auditar frequência. Atualmente, todos os perfis (exceto o tecnico) podem auditar frequência. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
RemoverHomologacaoDaFolha | Perguntar da PO qual perfil é responsável por remover a homologação da folha. Atualmente, todos os perfis (exceto o tecnico) podem auditar frequência. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
CriarFrequencia | Perguntar da PO qual perfil é responsável por remover a homologação da folha. Atualmente, todos os perfis (exceto o tecnico) podem auditar frequência. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
5.9 Gerenciamento de Frequência Manual
Ações | Observações | Quem pode? |
CarregarRegistros | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
PreVisualizacaoDaFolha | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
SalvarFrequenciaManual | Falta proteger a rota post. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
RemoverFolhaManual | Falta proteger a rota post. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
5.11 Gerenciamento de Histórico de Homologação
Ações | Observações | Quem pode? |
Listar | Rota não protegida, qualquer pessoa logada no sauron consegue visualizar. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
VisualizarPdf | Rota não protegida, qualquer pessoa logada no sauron consegue visualizar. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
5.12 Gerenciamento da Página Home
Ações | Observações | Quem pode? |
Index | Rota não protegida, qualquer pessoa logada no sauron consegue visualizar. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
Error | Rota não protegida, qualquer pessoa logada no sauron consegue visualizar. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
Sair | Rota não protegida, qualquer pessoa logada no sauron consegue visualizar. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
5.13 Gerenciamento de Homologação da Folha
Ações | Observações | Quem pode? |
Listar | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
IdentificarFolha | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
HomologarFrequenciaDoPlantonista | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
HomologarFrequenciaManual | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
HomologarFrequencia | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
5.14 Gerenciamento de Horas Acumuladas
Ações | Observações | Quem pode? |
Index | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
ListarColaboradoresPorDepartamento | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
5.16 Gerenciamento do Organograma
Ações | Observações | Quem pode? |
CarregarDepartamento | Rota não protegida, qualquer pessoa logada no sauron consegue visualizar. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
CarregarViewBagsDeUnidadesEDepartamentos | Rota não protegida, qualquer pessoa logada no sauron consegue visualizar. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
5.17 Gerenciamento de Registros
Ações | Observações | Quem pode? |
CriarRegistro | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
EditarRegistro | Não se aplica | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
AtivarRegistro | Precisa proteger a rota post. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
InativarRegistro | Precisa proteger a rota post. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
5.18 Gerenciamento de Solicitação de Compensação de Bancos de Horas
Ações | Observações | Quem pode? |
Listar | Rota não protegida, qualquer pessoa logada no sauron consegue visualizar. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
Indeferir | Rota não protegida, qualquer pessoa logada no sauron consegue visualizar. E também, proteger a rota post. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
Deferir | Rota não protegida, qualquer pessoa logada no sauron consegue visualizar. E também, proteger a rota post. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
IndeferirCancelamento | Rota não protegida, qualquer pessoa logada no sauron consegue visualizar. E também, proteger a rota post. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
Cancelar | Rota não protegida, qualquer pessoa logada no sauron consegue visualizar. E também, proteger a rota post. | RecursosHumanos/Gerente/Nafas/ResponsavelDaFrequencia |
6. Conclusão
Diante da análise técnica feita no código do Sistema Integrado de Frequência - SIF, foi possível avaliar a situação atual do sistema e pontos de segurança. Inicialmente, no primeiro nível de proteção, verificou-se que o sistema estava parcialmente seguro, entretanto em algumas rotas do SIF foi possível identificar vulnerabilidades graves em relação a acessos às rotas que deveriam ter restrições de acordo com o usuário logado e a definição de perfil no sistema MeuAcesso para o SIF.
Laudo Técnico |
Introdução Este laudo técnico tem como objetivo avaliar a segurança do código-fonte do Sistema Integrado de Frequência. O escopo da análise envolveu a avaliação de vulnerabilidades no código e a identificação de medidas de segurança ausentes que podem ser implementadas para melhorar a proteção do sistema. Metodologia Para realizar a análise, foram utilizadas técnicas de análise estática de código, inspeção manual do código-fonte e testes de vulnerabilidade. Achados Durante a análise do código, foi identificado em vários pontos do sistema uma falha de segurança específica. Foi observado que o sistema não implementa, em algumas controllers, a funcionalidade "ValidateAntiForgeryToken" para prevenir ataques de falsificação de solicitação entre sites (CSRF). A ausência dessa medida de segurança pode permitir que um atacante execute ações maliciosas em nome do usuário legítimo, sem que este perceba. A CSRF é um tipo comum de ataque em que o atacante envia uma solicitação HTTP para o servidor, simulando ser o usuário legítimo. Isso pode ser feito por meio de um link malicioso ou um formulário falso. Sem o uso do "ValidateAntiForgeryToken", o servidor não pode verificar se a solicitação veio do usuário legítimo ou de um atacante. Após a realização de testes adicionais, também identificamos um conjunto de pontos no sistema em que os usuários podem acessar funcionalidades indevidas apenas trocando o ID na URL. Ao fazer isso, os usuários podem acessar informações de plantões e escalas de outros servidores, o que pode representar um sério risco para a privacidade dos usuários e a segurança do sistema. A vulnerabilidade encontrada pode ser explorada por atacantes mal-intencionados para obter informações confidenciais de outros usuários e comprometer a integridade do sistema. A exploração dessa vulnerabilidade também pode afetar a confidencialidade, integridade e disponibilidade dos dados armazenados no sistema. Recomendações Recomenda-se fortemente que a funcionalidade "ValidateAntiForgeryToken" seja implementada no sistema para evitar a vulnerabilidade CSRF. Esta medida de segurança é importante para proteger os usuários do sistema e garantir a integridade dos dados armazenados no servidor. Também recomenda-se que sejam implementadas medidas adicionais de segurança, como a implementação de controles de acesso e validação de permissões de usuário em todos os pontos do sistema que envolvem acesso a informações sensíveis. Essas medidas podem ajudar a mitigar a vulnerabilidade identificada e reduzir o risco de violações de segurança. Conclusão Com base na análise realizada, foi identificada falhas de segurança no sistema relacionada à ausência da funcionalidade "ValidateAntiForgeryToken". Recomenda-se que essa medida de segurança seja implementada no sistema para evitar a vulnerabilidade CSRF. A implementação dessa medida pode melhorar significativamente a segurança do sistema e garantir a proteção dos usuários e dados armazenados. Conjuntamente alerta-se sobre a identificação da vulnerabilidade de acesso indevido de informações, que representa um sério risco para a segurança do sistema e a privacidade dos usuários. Recomendamos que a equipe tome medidas imediatas para corrigir a vulnerabilidade identificada e implemente medidas adicionais de segurança para proteger o sistema contra ataques mal-intencionados. |
Elaborado por: José Henrique dos Santos Nogueira Assessor IV Porto Velho - RO, 11 de abril de 2023. |
7. Referências
https://documentos.sistemas.ro.gov.br/books/sif-sistema-de-frequencia/page/manual-sif-para-chefes-imediato
https://documentos.sistemas.ro.gov.br/books/sif-sistema-de-frequencia/page/solicitacao-de-acesso-ao-sif
https://documentos.sistemas.ro.gov.br/books/sif-sistema-de-frequencia/page/manual-sif-para-rh
https://gitlab.setic.ro.gov.br/detic/asp.net-core/sif