Estudo aponta quais são as linguagens de programação mais inseguras |
Ninguém esta ileso de erros ou falhas de segurança, mas analisando todos os relatórios de vulnerabilidades de todos os tipos, a WhiteSource, conseguiu listar as linguagens de programação mais inseguras dos últimos 10 anos. Nos últimos tempos, temos visto muitas falhas de segurança de hardware, como por exemplo, Meltdown e Specter da Intel, e ao mesmo tempo, temos muitas falhas nas linguagens de programação, muitas mesmo.
No estudo da WhiteSource, foi levado em consideração o seu banco de dados de segurança das 7 linguagens mais utilizadas no mundo inteiro. Este banco, contém informações de inúmeras fontes, dentre elas o National Vulnerability Database (NVD). Logo, dados de avisos de segurança, rastreadores de problemas no Github, e outros rastreados de projetos de código aberto. É muita informação, afinal precisão neste momento é essencial.
De acordo com o resultado da pesquisa, as linguagens de programação mais inseguras são:
1) Linguagem C: 47%
2) Linguagem PHP: 17%
3) Linguagem Java: 12%
4) Linguagem JavaScript: 11%
5) Linguagem Python: 6%
6) Linguagem C++: 6%
7) Linguagem Ruby: 5%
Acredito que você não tenha ficado surpreso, nem eu. A linguagem de programação vencedora, cujo o número de erros é alto, se comparado as outras é a C. Cerca de 50% de todos os erros ou falhas relatados estavam em C.
O Engenheiro de segurança do kernel do Google Linux, Kees Cook, escreveu em seu blog que C é sofisticado, quase um código de máquina. Ao mesmo tempo, o C vem com uma bagagem preocupante, muitas indefinições e outras limitações que levam a falhas de segurança e infraestrutura vulnerável.
"Isso não quer dizer que C é menos seguro que os outras linguagens. O alto número de vulnerabilidades de código aberto em C pode ser explicado por vários fatores. Para iniciantes, o C tem sido usado por mais tempo do que qualquer uma das outras linguagens que pesquisamos e tem o maior volume de código escrito. É também uma das linguagens por trás das principais infraestruturas, como o OpenSSL e o kernel do Linux. Esta combinação em grande volume e centralidade explica o alto número de vulnerabilidades conhecidas de código aberto em C."
Ainda segundo o relatório, C ++, possui as vulnerabilidades mais severas nos últimos cinco anos. Erros de buffer, que há muito tempo afetam o C, também estão sendo descobertos frequentemente em C ++. Com isso, o JavaScript, talvez a linguagem mais popular, também é o único que viu um” aumento contínuo no número de vulnerabilidades nos últimos 10 anos”.
A maioria das CWE (Common Weakness Enumeration) do JavaScript são Path Traversal e falhas de segurança de criptografia de pacotes JavaScript, que mal são usados, mantidos ou suportados, diz o relatório.
A única linguagem que vem se mostrando um bom desempenho, quando o assunto é falhas de segurança é por exemplo é o bom e velho Python. Quase todos os idiomas compartilham algumas CWEs. Duas CWEs são encontradas em 70% dos idiomas mais comuns: Cross-Site-Scripting (XSS), também conhecido como CWE-79 e Input Validation, também conhecido como CWE-20, e muitas outras.
Mas o C é realmente o pior e o Python o melhor? A WhiteSource acha que é uma conclusão simples demais. O relatório aponta que não há garantia de segurança apenas pela linguagem de programação, mas de como o desenvolver a utiliza, estar atento as modificações, atualizações e novos recursos, podem ajudar manter o software e obviamente seus usuários finais protegidos.