Publicado: June 15, 2010 Última revisão: 25 de julho de 2013
Autor: Robert C. Seacord Robert Martin  
Níveis de maturidade e indicadores de audiência: L3 / D/P  
Ciclos de vida SDLC: Implementação  
Direitos autorais: Copyright © Carnegie Mellon University 2005-2012.  

Resumo

Este artigo descreve a relação entre as Normas comuns de Enumeração de Fraqueza (CWE) e CERT Secure Coding Standards.

[Enumeração de fraqueza comum] [Cert Secure Coding Standards] [Cert-CWE Relationship] [Mapeamentos CERT-CWE] [Referências]

Enumeração de fraqueza comum

A Enumeração de Fraqueza Comum (CWE) é um conjunto unificado e mensurável de fraquezas de software que permite a discussão efetiva, descrição, seleção e uso de ferramentas de segurança de software e serviços que podem encontrar essas fraquezas em código-fonte e sistemas operacionais. O CWE também permite uma melhor compreensão e gerenciamento das fraquezas do software relacionadas à arquitetura e ao design. Ele enumera as fraquezas de design e arquitetura, bem como erros de codificação e design de baixo nível.

Padrões de codificação seguras do CERT

CERT1 , parte do Instituto de Engenharia de Software da Universidade Carnegie Mellon, está desenvolvendo padrões seguros de codificação para linguagens de programação comumente usadas, como C, C++, e Java através de um esforço comunitário amplo que inclui membros das comunidades de desenvolvimento de software e segurança de software. Os padrões de codificação seguros CERT incluem diretrizes para evitar erros de codificação e implementação, bem como erros de design de baixo nível.

Padrões de codificação bem documentados e executáveis são essenciais para garantir o desenvolvimento de software. As normas de codificação incentivam os programadores a seguir um conjunto uniforme de regras e diretrizes determinadas pelos requisitos do projeto e organização, não pela familiaridade ou preferência do programador. Uma vez estabelecidos, essas normas podem ser usadas como uma métrica para avaliar o código fonte (usando processos manuais ou automatizados) para o cumprimento da norma.

Relação CERT-CWE

Os padrões de codificação seguros CWE e CERT desempenham funções separadas, mas mutuamente favoráveis. Simplesmente declarado, o CWE fornece um repositório abrangente de fraquezas conhecidas, enquanto os padrões de codificação seguros CERT identificam construções de codificação inseguras que, se presentes no código, poderiam expor uma fraqueza ou vulnerabilidade no software. Nem todas as fraquezas enumeradas no CWE estão presentes em qualquer padrão de codificação segura particular porque nem todas as fraquezas estão presentes em cada idioma e porque o CWE também inclui problemas de design de alto nível. Nem todas as diretrizes de codificação seguras do CERT são mapeadas diretamente para fraquezas no CWE porque alguns erros de codificação podem se manifestar de maneiras que não se correlacionam diretamente com qualquer fraqueza. Ambas as ferramentas são necessárias para avaliar a segurança e a segurança dos sistemas de software.

A Figura 1 ilustra o aspecto de desenvolvimento de software do ecossistema de garantia de software suportado pelo CWE e pelos padrões de codificação seguros CERT. Visões relacionadas poderiam ser construídas para mostrar como essas ferramentas apoiam a aquisição, educação e pesquisa.

image

Mapeamentos CERT-CWE

O CWE contém várias visualizações, as mais importantes delas são a visão completa do dicionário, a visão de desenvolvimento e a visão da pesquisa. A visão CWE-734 enumera fraquezas abordadas pelo PADRÃO DE Codificação Segura CERT C [Seacord 2009] e inclui 103 dos 799 CWEs totais. Os desenvolvedores podem impedir total ou parcialmente as fraquezas identificadas nesta visão se aderirem a esse padrão. Como nem todas as diretrizes do CERT mapeiam para fraquezas específicas, a exibição CWE-734 está incompleta.

Além disso, os desenvolvedores podem usar um gráfico de cobertura CWE para determinar quais fraquezas não são diretamente abordadas pelo padrão. Fazer essa determinação pode ajudar a identificar e resolver lacunas remanescentes no treinamento, aquisição de ferramentas e outras abordagens para reduzir as fraquezas do software.

As diretrizes do Padrão de Codificação Segura CERT C são cruzadas com entradas de CWE. Essas referências cruzadas são criadas apenas para diretrizes que, se violadas, contribuem diretamente para a fraqueza referenciada. Mapeamentos semelhantes serão criados para outros padrões de codificação CERT assim que os padrões de codificação forem concluídos.

Referências

  • [Seacord 2009] Seacord, Robert C. CERT C Secure Coding Standard. Addison-Wesley Professional, 2009. www.securecoding.cert.org/confluence/display/seccode/CERT+C+Secure+Coding+Standard

Artigo Original