A Importância da Segurança no Desenvolvimento de Softwares

seguranca_web_edefense

A cada dia um número maior de computadores está conectado a Internet e junto a esta expansão crescem também os ataques aos sistemas informatizados, colocando softwares, organizações e usuários em grande risco. Mesmo as organizações adotando mecanismos de controles e políticas de segurança, o software sempre foi e será o vetor de ataques.

Oferecer um software seguro é obrigação do desenvolvedor e para que este objetivo seja alcançado é necessário avaliar a segurança de todo o ciclo de vida de desenvolvimento da aplicação. Esta avaliação melhora os produtos de TI, pois identifica erros ou vulnerabilidades que podem ser corrigidas pelo desenvolvedor, reduzindo a probabilidade de futuras falhas de segurança, além disso, faz o desenvolvedor tomar mais cuidado com a estrutura e desenvolvimento do software.

Para ter segurança no desenvolvimento é necessário manter fontes em segurança, evitando roubos ou indisponibilidade da equipe de desenvolvimento, seguir especificações de segurança evitando vulnerabilidades que comprometam a segurança e oferecer garantias aos clientes quanto à segurança e integridade da aplicação.

Um ambiente de desenvolvimento seguro se caracteriza por ter um espaço físico restrito, com controle de acesso físico e proteção lógica dos servidores, separação entre ambiente de desenvolvimento, teste e construção (build), gerência de configuração dos fontes e processos de desenvolvimento bem estabelecidos e controlados.

A segurança no desenvolvimento do software é alcançada ao se adotar normas e práticas de boa programação como funções intrinsecamente seguras, verificar os códigos de erro retornado por funções ou métodos, atentar para o tamanho de buffers e arrays do software e documentar o código. A garantia desta segurança é obtida com a construção do software conforme o especificado e na execução e validação de testes para verificar se atende às especificações iniciais.

A segurança no desenvolvimento de softwares está apoiada na norma ISO/IEC 15.408 (Common Criteria for Information Technology Security Evaluation) também chamada de Common Criteria ou CC. Esta norma trata-se de uma metodologia para desenvolvimento de software seguro e possui como objetivo fornecer um conjunto de critérios fixos que permitem especificar a segurança da aplicação de forma não ambígua a partir de características do ambiente e definir formas de garantir a segurança do sistema para o cliente final, sendo definida em quatro níveis de garantia da segurança (EAL – Evaluation Assurance Level): EAL 1 – testado funcionalmente; EAL 2 – testado estruturalmente; EAL 3 – metodicamente testado e verificado e EAL 4 – metodicamente projetado, testado e verificado.

Referências

BRASIL. Núcleo de Informação e Coordenação do Ponto Br. Análise e Interpretação de Logs. 2003. Disponível em: <http://www.cert.br/docs/palestras/nbso-gter15-tutorial2003.pdf>. Acesso em: 12 fev. 2013.

REGO, Bruno M.; BROSSO, Inês. Segurança no Desenvolvimento de Sistemas com Metodologia Ágil SCRUM. Disponível em: <http://www.slideshare.net/BrunoMottaRego/segurana-no-desenvolvimento-de-sistemas-com-metodologia-gil-scrum>. Acesso em: 12 fev. 2013.