NUDGES PARA SEGURANÇA DE CRIPTOGRAFIA EM CÓDIGO NO STACK OVERFLOW
RESUMO
Este briefing relata evidências científicas sobre a eficácia de nudges para melhorar a segurança de código criptográfico reutilizado por desenvolvedores. O modelo de deep learning demonstrou desempenho robusto na identificação de padrões inseguros e recomendação de alternativas seguras. A implementação de nudges no Stack Overflow aumentou significativamente a segurança do código reutilizado, ajudando os desenvolvedores a evitar erros comuns.
| Área |
Comportamento desejável |
| Segurança |
Incentivar os desenvolvedores a utilizar exemplos de código criptográfico seguro disponíveis no Stack Overflow. |
| Barreiras cognitivas |
Nudges |
| Otimismo irrealista: Desenvolvedores acreditam que qualquer aplicação de criptografia é suficiente para proteger dados. |
|
| Viés de confirmação: Preferência por exemplos de código que já são familiares ou populares, independentemente de sua segurança. |
|
| Viés de status quo: Tendência de reutilizar código existente sem considerar alternativas mais seguras. |
Simplificação: Integração de ferramentas de segurança diretamente no Stack Overflow para facilitar o uso pelos desenvolvedores. |
| Avisos: Exibição de avisos de segurança quando um exemplo de código inseguro é detectado. |
|
| Aumentos na Facilidade e Conveniência (IEC): Combinação de avisos de segurança com recomendações de exemplos de código seguro. |
|
| Lembretes: Acionamento de lembretes sempre que o usuário copiar um exemplo de código inseguro. |
|
| Padrões: Classificação mais alta para posts contendo apenas exemplos de código seguro nos resultados de busca do Stack Overflow. |
|
NUDGE
- Desempenho do Modelo: O modelo de deep learning alcançou uma AUC-ROC média de 0.992 para predição de padrões de uso criptográfico inseguros. As tarefas de Hash, Cipher, e TLS alcançaram AUC-ROC de 0.999, 0.996, e 0.999, respectivamente. Outras tarefas como IV, Key, e HNV também mostraram alto desempenho com AUC-ROC de 0.980, 0.970, e 0.953, respectivamente.
- Precisão das Recomendações: 99.37% dos exemplos de código inseguros tinham alternativas seguras disponíveis no Stack Overflow que serviam ao mesmo caso de uso. Quando se considerou a similaridade do código, 93.86% dos métodos inseguros tinham uma similaridade de cosseno acima de 0.81 com pelo menos um método seguro, e 75.58% tinham uma similaridade acima de 0.9.
- Estudo de Usuários: Em um estudo de usuários, participantes que receberam nudges forneceram soluções significativamente mais seguras em comparação ao grupo de controle. Para a tarefa de geração de chaves (Key), 84.6% das soluções do grupo com nudges foram seguras, comparado a 60.0% do grupo de controle. Para a tarefa TM, 76.9% das soluções do grupo com nudges foram seguras, comparado a 66.7% do grupo de controle.
- Avaliação de Segurança por Tarefa: A análise mostrou que o tratamento com nudges superou significativamente o grupo de controle na produção de soluções seguras (p < 0.01). As tarefas Cipher e Key foram particularmente bem-sucedidas, enquanto tarefas como IV e TLS tiveram resultados menos desejáveis devido a combinações erradas de código seguro e inseguro pelos participantes.
- Conclusões: Eficácia dos Nudges: Os nudges aplicados no Stack Overflow melhoraram significativamente a segurança do código reutilizado pelos desenvolvedores, sem impactar negativamente a funcionalidade. O estudo de usuários demonstrou que os conselhos de segurança baseados em nudges ajudaram os desenvolvedores a implementar soluções criptográficas mais seguras em cenários propensos a erros.
- Desempenho Consistente: O modelo de deep learning demonstrou desempenho consistente em prever padrões de uso criptográficos seguros e inseguros, facilitando a recomendação de alternativas seguras de maneira eficaz.
- Utilização Generalizada: A integração de nudges no Stack Overflow mostrou ser uma estratégia eficaz para promover a segurança de código entre desenvolvedores, abordando problemas comportamentais e cognitivos que levam à reutilização de exemplos de código inseguros.
- Necessidade de Melhorias: Embora os resultados gerais tenham sido positivos, algumas áreas, como a tarefa de inicialização de vetor (IV), ainda mostraram vulnerabilidades devido a previsões incorretas e combinações inadequadas de código seguro pelos usuários. Isso sugere a necessidade de melhorias contínuas nos modelos de predição e nas interfaces de usuário para maximizar a eficácia dos nudges.
CAIXA INFORMATIVA
|
Descrição |
| Para quem |
Desenvolvedores de software, com foco naqueles que utilizam o Stack Overflow para implementação de criptografia. |
| Onde |
Os nudges foram implementados no Stack Overflow (site de perguntas e respostas para programadores), especificamente nas páginas de posts contendo exemplos de código. |
| Como |
Nudges foram entregues através de avisos de segurança, recomendações de exemplos de código seguros, lembretes ao copiar código inseguro, e melhoria no ranking de posts seguros nas buscas. |
| Categoria do nudge |
Nudge digital |
REFERÊNCIA
Fischer, F., Xiao, H., Kao, C.-Y., Stachelscheid, Y., Johnson, B., Razar, D., Fawkesley, P., Buckley, N., Böttinger, K., Muntean, P., & Grossklags, J. (2019). Stack Overflow Considered Helpful! Deep Learning Security Nudges Towards Stronger Cryptography. Proceedings of the 28th USENIX Security Symposium.