225 words
1 minutes
Insecure Direct Object References
2021-06-30
No Tags

Insecure Direct Object References (IDOR)#

O que é#

Vulnerabilidade bem comum em que o atacante manipula um dado em que originalmente ele não tem acesso. Alguns exemplos de como pode ser feito são:

  • Manipulação de URL no próprio navegador.
  • Chamadas em API rest alterando um path.
  • Alteração no body da request editando parâmetros que não são os que estavam na tela.

Normalmente o atacante vai se aproveitar de chamadas como:

GET recurso/{idRecurso}

Impactos do problema#

Os impactos de um IDOR podem ser bem grandes e depende da funcionalidade. Cada feature tem que validar o que pode ser exposto, criado, editado, removido por um usuário qualquer.

Imagine uma funcionalidade, na qual, o saque de valores pode ter um parâmetro de qual a conta do vai o dinheiro não é validado, isso pode dar brecha para o usuário alterar para uma conta não disponível ou até lavagem de dinheiro que seria um caso mais grave.

Como Evitar#

Atualmente a única forma de evitar o problema, é adicionando um controle de acesso para cada recurso. O problema pode ser mais difícil de ser encontrado caso não seja utilizado referências sequenciais, dessa forma, o atacante pode não fazer tentativas com a sequência.

Melhores praticas evitar a vulnerabilidade:

  • Usar hash para ID de cada recurso.
  • Validar escopo na query.
  • Garantir sempre que o dono do recurso que executa a ação.

Want to follow me?#

You can get in contact me on this social media.

GitHub: luizleite-hotmart

Twitter: luizleite_

Twitch: coffee_and_code

Linkedin: luizleiteoliveira

Insecure Direct Object References
https://luizleiteoliveira.github.io/posts/2021-06-30-idor_guia/
Author
Lorem Ipsum
Published at
2021-06-30