Análise e Teste de Segurança

Visão Geral

Os testes de segurança do código da Oracle incluem atividades funcionais e não funcionais que verificam os recursos e a qualidade dos produtos. Apesar desses tipos de testes normalmente terem como alvo a sobreposição de recursos do produto, eles possuem objetivos ortogonais e são executados por equipes diferentes. Testes de segurança funcionais e não funcionais se complementam entre si para fornecer uma cobertura de segurança abrangente dos produtos Oracle.

Testes de Segurança Funcional

Testes de segurança funcional normalmente são executados por equipes de controle de qualidade do produto e fazem parte do ciclo de testes do produto. Durante esses testes de controle de qualidade, engenheiros verificam a conformidade dos recursos de segurança implementados com as especificações funcionais definidas anteriormente durante o processo de avaliação da arquitetura e da lista de verificação.

Análise e Teste de Garantia de Segurança

A análise e teste de garantia de segurança verificam as qualidades de segurança dos produtos Oracle para vários tipos de ataques. Há duas grandes categorias de testes utilizados nos produtos Oracle: análise estática e dinâmica, que serão descritas nas seções abaixo. Esses testes se ajustam de forma diferente no ciclo de vida de desenvolvimento do produto e tendem a encontrar tipos diferentes de problemas, portanto, todos são utilizados juntos pelas equipes de produtos Oracle.

Análise Estática

Análise de segurança estática do código-fonte é a linha inicial de defesa usada durante o ciclo de desenvolvimento do produto. A Oracle utiliza um analisador de código estático da Fortify Software, uma empresa da HP, assim como uma variedade de ferramentas desenvolvidas internamente para identificar problemas enquanto o código está sendo gravado. Produtos desenvolvidos nas mais modernas linguagens de programação (como C/C++, Java, C#) e plataformas (J2EE, .NET) são verificados para identificar possíveis problemas de segurança. Esse tipo de verificação funciona muito bem para identificar estouros de buffer e vazamentos de memória em códigos C/C++, problemas de manipulação de recursos em J2EE e .NET, manipulação de credenciais impróprias, injeções variadas, configurações incorretas do sistema entre outros. Um dos inconvenientes desse tipo de análise é o alto nível de relatórios de falsos positivos, ou seja, uma quantidade razoável de itens relatados não constituem um problema real. Normalmente, a análise desses relatórios de verificação envolve engenheiros seniores das equipes de produtos, que estão bem familiarizados com o código do produto distinguindo falsos positivos de problemas reais e reduzindo o número de falsos positivos.

Análise Dinâmica

A atividade de análise dinâmica sempre ocorre durante as últimas fases do desenvolvimento do produto: no final, o produto ou componente deve funcionar corretamente. Apesar disso poder variar entre as organizações da Oracle, essa atividade normalmente é executada por uma equipe de Controle de Qualidade de segurança (ou grupo similar) e pode ser compartilhada entre várias equipes de produtos. A análise dinâmica é destinada a APIs e interfaces do produto externamente visíveis e frequentemente dependem de ferramentas especiais para a execução de testes. Ferramentas manuais e automáticas são usadas nos testes da Oracle. Ferramentas automáticas utilizam a técnica de teste difuso para testar protocolos e interfaces de produtos acessíveis à rede. Com ferramentas manuais, as modificações são feitas à mão, mas oferecem mais precisão.