Cibersegurança e listagem de vulnerabilidades
Segurança (ou a falta dela)
Com o avanço massivo das tecnologias e sistemas de informação que presenciamos nos últimos anos, está claro que, mais importante do que saber escrever código, é saber escrever código seguro. Não é incomum vermos grandes vazamentos de dados e ataques críticos em empresas que julgávamos serem seguras. Felizmente, cada vez mais estas empresas estão dispostas em investir tempo e dinheiro na área de cibersegurança, visto que os problemas acarretados pela falta desta são muito reais e danosos.
Vulnerabilidades
Quando falamos em Segurança de Aplicações Web (Cibersegurança) , estamos nos referindo a uma série de ações a serem tomadas a fim de encontrar e remediar possíveis vulnerabilidades em uma dada aplicação. Uma aplicação é dita vulnerável quando esta apresenta alguma fraqueza ou problema que a torne mais suscetível a falhas (não intencionais) ou ataques (intencionais).
De forma geral, uma aplicação vulnerável falha em um desses 3 pilares da segurança:
- Confidencialidade: o acesso à informação é dado somente àqueles autorizados - privacidade.
- Integridade: dados e informações não são corrompidos durante nenhum processo, mantendo sempre a confiança de todas as partes - sem manipulação indevida.
- Disponibilidade: as informações estão sempre acessíveis e disponíveis para um usuário legítimo, sempre que estas forem necessárias.
Catalogação de vulnerabilidades conhecidas
A maior parte dos ataques sofridos por empresas hoje começa a partir de falhas comuns já conhecidas e bem documentadas. O programa Common Weakness Enumeration (CWE)¹ é um sistema de categorização de vulnerabilidades de software e hardware. O objetivo é identificar tais problemas e desenvolver maneiras de mitigá-los. Cada vulnerabilidade é definida e identificada por um número, facilitando que todos os desenvolvidores e arquitetos de software, por exemplo, possam se comunicar numa mesma linguagem. Exemplificando com uma vulnerabilidade muito conhecida: SQL Injection². A página do CWE relativa a esta vulnerabilidade tem o número 89. Além da descrição da vulnerabilidade, nesta página encontram-se exemplos e maneiras de remediar o problema de forma segura.
Entender como um sistema pode ser vulnerável, nos ajuda a escrever códigos melhores e mais seguros para nossos usuários 🙂.
Outras coisas interessantes disponíveis na página do CWE além da descrição da vulnerabilidade e de exemplos:
- uma série de instruções para detectar o problema no nosso código (na seção Detection Methods). Eles mostram tanto uma forma automática de detecção quanto manual. Também fica fácil de ver qual ferramenta é mais apropriada pra encontrar um dado tipo de vulnerabilidade; análise estática ou dinâmica.
- maneiras de mitigar o problema (Potential Mitigations) em várias fases de implementação: desde a fase de design e arquitetura de software até a fase de operação (uso de firewalls, etc).