Este site apresenta uma taxonomia dos erros de segurança de software desenvolvida pelo Fortify Software Security Research Group, em conjunto com o Dr. Gary McGraw. Cada categoria de vulnerabilidade é acompanhada de uma descrição detalhada do problema, com referências a fontes originais e trechos de código, onde aplicável, para melhor ilustrar a questão.
Descreve-se a organização do esquema de classificação com a ajuda da terminologia usada na Biologia: as categorias de vulnerabilidade são chamadas de filos, enquanto os conjuntos de categoria que compartilham o mesmo tema recebem o nome de reinos. Os filos de vulnerabilidade são classificados em "sete mais um" reinos perniciosos apresentados por ordem de importância para a segurança de software:
- Input Validation and Representation
- API Abuse
- Security Features
- Time and State
- Errors
- Code Quality
- Encapsulation
- * Environment
Os primeiros sete reinos são associados a defeitos de segurança no código fonte, enquanto o último descreve problemas de segurança externos ao código real. Para percorrer as descrições de reino e filo, simplesmente navegue pela árvore taxonômica à esquerda.
O principal objetivo da definição dessa taxonomia é organizar grupos de regras de segurança que possam ser usadas para ajudar o desenvolvedor de software a compreender os tipos de erros que impactam a segurança. Ao entender melhor como o sistema falha, os desenvolvedores tornam-se capazes de analisar melhor os sistemas que criam, podendo identificar e solucionar mais rapidamente os problemas de segurança que encontram e, geralmente, evitar repetir os mesmos erros no futuro.
Um grupo de regras de segurança organizado de acordo com essa taxonomia, quando posto em funcionamento em uma ferramenta de análise, é um mecanismo de ensino poderoso. Como o desenvolvedor de hoje geralmente desconhece as diferentes maneiras existentes para introduzir os problemas de segurança em seu trabalho, disponibilizar uma taxonomia como esta deve oferecer benefícios tangíveis à comunidade de segurança de software.
Definir um esquema de classificação melhor também pode resultar em ferramentas melhores: compreender melhor os problemas ajudará pesquisadores e profissionais a aprimorar os métodos para detectá-los.
Para saber mais sobre a taxonomia, consulte o documento original Seven Pernicious Kingdoms: A Taxonomy of Software Security Errors e o documento recém-lançado A Evolução de uma Taxonomia: Dez Anos de Segurança de Software .