A ferramenta escolhida é o Mantis (http://www.mantisbt.org/), uma vez que é de fácil customização e instalação, porém qualquer outro produto que possa ser utilizado no processo de bug tracking e possibilite a criação de campos customizados pode ser adotada no mesmo princípio.
Características do Mantis
O Mantis é uma terramenta Open Source desenvolvida em PHP e que tem suporte a diversos bancos de dados, tais como MySQL e Postgres, além de contar com recursos completos para suportar o processo de gestão na correção de problemas encontrados no processo de desenvolvimento de software.
Instalando o Mantis
Para a instalação do Mantis as etapas abaixo apresentadas devem ser cumpridas de forma seqüencial:
- Execute o download do pacote de instalação à partir do endereço http://www.mantisbt.org/download.php.
- Descompacte este pacote no diretório de publicação que será utilizado no Servidor de Aplicação.
- Acesse a URL do web site publicado.
- Na tela de configuração apresentada, informe os parâmetros referentes ao banco de dados que será utilizado e execute a instalação seguindo as instruções que serão fornecidas.
- Configure o servidor de e-mail que será utilizado pelo Mantis no arquivo: config_defaults_inc.php que será instalado no diretório raiz do web site.
Com estas configurações o Mantis estará funcionando e pronto para ser utilizado, porém para garantir a aplicação de alguns protocolos de segurança adicionais, sugiro que sejam cumpridos os pontos abaixo apresentados:
- Apague o diretório admin do diretório raiz do site.
- Crie um novo usuário e apague o usuário padrão administrator, cuja senha padrão é root. :-)
- No arquivo config_defaults_inc.php altere a diretiva “$g_allow_signup = ON” para OFF, uma vez que assim será removida a possibilidade de solicitação do usuário que aparece como padrão na página de acesso.
Dica: O funcionamento do Mantis depende muito do envio de e-mails, inclusive para os processos de criação e validação dos usuários, não esqueça de configurar um smtp para suportar esta finalidade e caso você precise testar o processo localmente, uma uma boa pedida é o Papercut que simula o envio e recebimento de e-mail no seu computador.
Customizando o Mantis para suportar um processo de gestão de vulnerabilidade
1 – A primeira etapa é criar as tags para definir qual o tracker será utilizado. No menu, escolha a opção Manager=>Manage Tags e crie as tags:
- Bug
- Feature
- Support
- Vulnerability
- Security Service
2 – Em seguida, é necessário definir os campos personalizados, o que é realizado pela escolha da opção Manager=>Manage Custom Fields no menu, seguida da criação dos campos personalizados abaixo relacionados, onde os campos “lista” e “texto” são obrigatórios:
- Security Impact – Booleano
- Compliance Impact – Booleano
- Privacy Impact – Booleano
- Vulnerability Category – Lista
- Identified By – Lista
- Identification Method – Lista
- Identification Method Source – Lista
- Report – Texto
- Requested Security Activity - Lista
Conteúdo dos Campos Lista
1 - Vulnerability Category:
- Authentication
- Authorization
- Input Validation
- Output Encoding
- Error Handling
- Session Management
- Logging
2 - Identified By:
- Development Team
- Security Team
- Third Party Assessor
- Client
- External Researcher
- Attacker
- Operations Team
3 - Identification Method:
- Code Review
- Penetration Testing
- Architecture Review
- Design Review
- Other
4 - Identification Method Source:
- Automated Tool
- Human
- Unknown
5 - Requested Security Activity:
- Requirements Review
- Architecture Review
- Design Review
- Code Review
- Penetration Test
- Third Party Assessment
- Final Security, Compliance and Privacy Assessment
Utilizando o BugTracker para suportar o tratamento de vulnerabilidades
A ferramenta de Bug Tracker será utilizada para suportar o processo de documentação e auxiliar na integração das equipes responsáveis pelo desenvolvimento, análise da segurança, assim como na gestão destas equipes. O primeiro passo é entender o que representa cada estado do BugTracker, a imagem a seguir apresenta os status que o Mantis utiliza:
Entendo o Mantis
A imagem a seguir apresenta a aplicação de cada um dos status no tratamento da vulnerabilidade e a utilização dos campos customizados que foram citados :
Esta abordagem foi adotada com base no post de Nick Coblentz, respeitando as regras da licença Creative Commons e autorizado pelo autor.