Os desenvolvedores da Web escrevem código não seguro por padrão

"Se você quiser, posso criptografar senhas."



Alguns desenvolvedores que foram explicitamente instruídos a usar criptografia usaram a criptografia de senha Base64

Quando as informações sobre outro vazamento de dados aparecem na mídia, é sempre intrigante o motivo pelo qual a empresa manteve as senhas dos usuários em texto não criptografado, não protegeu a API ou cometeu algum outro erro básico. Essa violação das regras de segurança é possível em nosso tempo?

Um novo estudo da Universidade de Bonn (Alemanha) mostra que os desenvolvedores freelancers, por padrão, aderem a práticas extremamente inseguras, a menos que o cliente precise de mais.

Pesquisadores convidaram 260 desenvolvedores de Java no Freelancer.com para desenvolver um sistema de registro para uma rede social imaginária, que os clientes supostamente começaram a fazer. Desses, apenas 43 concordaram com um pedido que incluía o uso das tecnologias Java, JSF, Hibernate e PostgreSQL.

Metade dos desenvolvedores recebeu 100 euros pelo trabalho e metade - 200 euros. Metade de cada um dos dois grupos foi instruída a usar um armazenamento seguro de senhas, enquanto o outro não.

Embora a amostra seja claramente pequena, a diferença é tão significativa que sugere algumas tendências gerais. Aqui estão alguns dos resultados do estudo:

  • Entre aqueles que não receberam instruções, 15 de 18 mantinham as senhas em texto não criptografado
  • Três das pessoas que foram instruídas a usar o armazenamento seguro também armazenaram suas senhas em texto não criptografado.
  • Programadores que criptografaram senhas usavam métodos não seguros: 31 programadores usavam métodos como Base64, MD5, SHA-1 etc. para criptografia.
  • Apenas 12 freelancers usaram métodos seguros , como bcrypt e PBKDF2.

8 pessoas usaram o Base64 para criptografia
10 - MD5
1 - SHA-1
3 - 3DES
3 - AES
5 - SHA-256
1 - HMAC / SHA1
5 - PBKDF2
7 - Bcrypt

A tabela abaixo (aumenta por clique) mostra os resultados completos para cada participante: quantos dias ele precisou para concluir a tarefa, quanto tempo gastou na implementação da segurança e qual algoritmo de criptografia ele aplicou. Na metade superior da tabela, aqueles que receberam instruções diretas para criptografar as informações. Os participantes ousados ​​são aqueles que primeiro enviaram uma solução não segura, mas receberam instruções adicionais para implementar um armazenamento seguro de senhas.



A grande maioria dos programadores não conseguiu implementar métodos básicos de segurança e 17 dos 43 copiaram códigos de sites aleatórios.

Apenas 15 desenvolvedores usaram salt - uma sequência de dados que é passada para a função hash junto com a senha, o que complica bastante a força bruta.


A tabela (clicável) mostra os dados demográficos dos participantes do estudo. Como você pode ver, são principalmente homens, com idade média de 30 anos, de 11 países (em dois casos, o país não está indicado)

Grupos com baixos e altos salários trabalhavam com o mesmo nível de qualidade.

Em geral, o estudo é bastante deprimente. Pode-se supor que a conscientização básica de segurança entre os freelancers é incrivelmente baixa. Dos 18 participantes que receberam instruções especiais para usar a criptografia, três decidiram usar o Base64 e afirmaram, por exemplo: "[I] criptografou tudo para que a senha não fique visível" e "É muito difícil descriptografá-la".

Talvez esse comportamento seja específico apenas para freelancers, e membros da equipe sem instruções imediatamente tentem tomar uma decisão segura? O estudo não fornece uma resposta para esta pergunta.





Source: https://habr.com/ru/post/pt449452/


All Articles