~/questoes/ciberseguranca
Controle de acesso é o mecanismo que determina quem pode acessar cada recurso de uma aplicação. A maioria das falhas nesta área ocorre não por causa de criptografia fraca, mas porque os desenvolvedores fazem pressupostos frágeis sobre o que os usuários deveriam conseguir alcançar, deixando brechas que podem ser exploradas através de manipulação simples de requisições.
A alternativa correta identifica que atacantes exploram falhas de controle de acesso modificando parâmetros nas requisições (como IDs de usuário ou URLs) e enumerando endpoints para descobrir recursos restritos. Esta é a técnica mais comum porque é simples e funciona contra pressupostos mal implementados, não exigindo força bruta ou injeção complexa.
Força bruta contra senhas criptografadas com algoritmos modernos é ineficaz por design. Algoritmos como bcrypt, Argon2 ou PBKDF2 são especificamente desenvolvidos para resistir a ataques de força bruta, tornando esta abordagem impraticável em cenários reais de exploração de controle de acesso.
SQL injection avançada é uma técnica diferente, focada em manipular queries de banco de dados. Embora possa ser perigosa, não é o método mais comum para explorar falhas de controle de acesso, que está mais relacionada a permissões e autorização do que a acesso ao banco de dados.
Enviar pacotes malformados para desativar firewalls é uma tática de negação de serviço que não está relacionada a controle de acesso. Um firewall desativado não ajuda um atacante a contornar verificações de permissão dentro da aplicação.
Modificar parâmetros de requisição (como mudar um ID de usuário em uma URL) e enumerar endpoints para descobrir recursos ocultos é a técnica mais comum porque explora pressupostos frágeis. Desenvolvedores frequentemente assumem que certos recursos 'nunca serão alcançados' sem implementar verificações explícitas, deixando a porta aberta para exploração.