Avaliação técnica de vulnerabilidades no código do SIF
Data de elaboração |
11/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? | [ x ] Sim - [ ] Não - [ |
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 frequências de outros servidores. Além disso, na rota de Solicitação de compensação de banco de horas, qualquer pessoa cadastrada no sauron (meu acesso) pode acessar, bem como, deferir, indefir e cancelar a compensação de banco de horas, 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