
Uma análise do WhiteSource mostrou qual das linguagens de programação tem as maiores falhas de segurança. O vencedor do anti-rating é C. Mas este é apenas o começo da história.
A tecnologia como um todo está cheia de bugs de segurança. Em um nível baixo, esses são erros no hardware. O mesmo ocorreu com a vulnerabilidade da Intel e os erros do Spectre. Um pouco mais altos são os buracos na segurança das linguagens de programação. E há muitos deles!
Recentemente, a OpenSource WhiteSource, uma empresa de segurança, realizou pesquisas de vulnerabilidade em sete das linguagens de programação mais comuns nos últimos dez anos. A empresa usou seu banco de dados de segurança de idiomas para detectar erros. Ele contém vulnerabilidades de código aberto de várias fontes, como o National Vulnerability Database (NVD), instruções de segurança, rastreadores do GitHub`a e projetos de código aberto.
A empresa identificou os seguintes idiomas: C, Java, JavaScript, Python, Ruby, PHP e C ++. E isso não é surpreendente. Como qual idioma tem mais erros de segurança. Por uma ampla margem, este é X. Mais de 50% das vulnerabilidades detectadas estavam nele.
Como Kees “Case” Cook, um engenheiro de segurança de kernel Linux Linux do Google, observou recentemente: “C é um montador aprimorado. Quase um código de máquina ". Além disso, "C carrega bagagem problemática, comportamento vago e outras fraquezas que levam a falhas de segurança e vulnerabilidades de infraestrutura".
No entanto, o WhiteSource afirma que “você não pode dizer que C é menos seguro que outros idiomas. Um grande número de vulnerabilidades no código C de código aberto pode ser explicado por vários fatores. Para iniciantes, o C tem sido usado por mais tempo do que os outros idiomas que exploramos. Possui a maior quantidade de código gravado. É também uma das linguagens por trás de infraestruturas importantes como o OpenSSL e o kernel do Linux. Essa combinação de volume e posição central explica o grande número de vulnerabilidades conhecidas de código aberto. ”
WhiteSource entendeu o ponto. Mas, apesar de décadas de programação e lidar com C, realmente existem maneiras nessa linguagem de cometer erros terríveis de segurança com muita facilidade. Por exemplo, há um grande número de exemplos de comportamento indefinido em C, o que abre oportunidades para todos os tipos de problemas.
Ao mesmo tempo, o C ++ ficou famoso pelas vulnerabilidades do mais alto grau de perigo nos últimos cinco anos. Erros de buffer que atormentam o C por um longo tempo geralmente são detectados no C ++.
Os números não refletem toda a imagem, se falarmos sobre qual idioma é mais ou menos protegido.
(Imagem WhiteSource)Dito isto, o JavaScript é provavelmente a linguagem mais popular. E o único que mostrou "um aumento contínuo no número de vulnerabilidades nos últimos 10 anos".
O WhiteSource enfatiza que, antes de provocar o JavaScript, observe que esses resultados são enganosos. A maior parte da Enumeração de fraqueza comum em JavaScript consiste em saídas do diretório designado e falhas na proteção criptográfica de pacotes JavaScript que mal são usados e suportados.
Por que, então, esses e outros problemas de linguagem estão à vista? Novos programas automatizados, como as Ferramentas de análise de código-fonte, estão descobrindo vulnerabilidades que, de outra forma, seriam negligenciadas.
A única linguagem que se mostrou bem em relação às falhas de segurança é (drum roll!) - Python. Sim, o bom e velho ridicularizou o Python.
Quase todos os idiomas contribuem para a lista geral de vulnerabilidades. Dois erros da lista foram os principais e foram relatados em 70% dos casos: Crossite Scripting (XSS), também conhecido como CWE-79 e Validação inadequada de entrada (CWE-20).
Outros erros comuns: Vazamento / divulgação (CWE-200), diretório fora dos limites (CWE-22) e CWE-264 - permissões, privilégios e controles de acesso. Este último foi recentemente substituído pelo seu parente mais específico e próximo - Controle de Acesso Impróprio (CWE-284).
Mas C é realmente o pior e Python o melhor? A WhiteSource acredita que esta é uma conclusão muito simples: "Embora o jogo" Minha linguagem de programação seja mais segura que a sua "é definitivamente uma maneira divertida de passar o tempo ... a resposta não parece ajudá-lo a criar software mais inovador ou seguro".
Por outro lado, você deve gastar mais tempo "permanecendo na vanguarda das vulnerabilidades de código aberto, entendendo os pontos fortes e fracos da linguagem de programação que você e sua equipe usam".
Por fim, a segurança se resume não às linguagens de programação, mas à maneira como você as utiliza.
→
AÇÃO: 40% de desconto no IaaS para desenvolvedores.Steven J. Vaughan-Nichols para Linux e código aberto
Artigo original