31 de março de 2010

O uso de ferramentas de Bug Tracker no tratamento de vulnerabilidades

Ao implementar processos de desenvolvimento seguro, geralmente nos deparamos com problemas considerados pelo senso comum como básicos e essenciais para a produção de software, o que é o caso da ausência de uma ferramenta de bug tracker. Neste post, descrevo a implementação de uma ferramenta destinada a preencher este ponto e customizada para auxiliar o processo de gestão e correção de vulnerabilidades em softwares.

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:

  1. Execute o download do pacote de instalação à partir do endereço http://www.mantisbt.org/download.php.
  2. Descompacte este pacote no diretório de publicação que será utilizado no Servidor de Aplicação.
  3. Acesse a URL do web site publicado.
  4. 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.
  5. 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:

  1. Apague o diretório admin do diretório raiz do site.
  2. Crie um novo usuário e apague o usuário padrão administrator, cuja senha padrão é root. :-)
  3. 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.

4 comentários:

marcio disse...

Mudar para portugues.

* Acertar a linguagem para o nosso português, para isto altere a variável p_lang no arquivo mantis/core/lang_api.php no seu editor de texto trocar

function lang_get($p_string, $p_lang = null ) por
function lang_get($p_string, $p_lang = 'portuguese_brazil')

Elias Wagner disse...

Márcio,

realmente existe a possibilidade de alterar o idioma, mas eu não recomendo alterar para o português.

A tradução muda o conceito da ferramenta, a abertura de todos os issues é tratada como Gestão de Mudanças.

Abs.

Implementando um processo de segurança em desenvolvimento disse...

[...] O uso de ferramentas de Bug Tracker no tratamento de vulnerabilidades [...]

» Inimigos do Código Seguro disse...

[...] de qualidade e seguro depende da adoção de práticas de desenvolvimento e organização. Eu já escrevi sobre Bug Tracking e incluo como uma excelente prática a adoção de ferramentas que implementem o processo de [...]