Você está na página 1de 6

Conferncia IADIS Ibero-Americana WWW/Internet 2006

PROCESSO SEGURO DE DESENVOLVIMENTO DE SOFTWARE


Francisco Jos Barreto Nunes e Arnaldo Dias Belchior
Mestrado em Informtica Aplicada - Universidade de Fortaleza Av. Washington Soares, 1321, Fortaleza, Cear, Brasil CEP 60811-905

RESUMO A necessidade de se desenvolver produtos de software com maior qualidade exigiu que se criassem modelos e normas internacionais, voltados para a qualidade do processo de desenvolvimento e de produtos de software. Contudo, apesar do investimento feito em processos de desenvolvimento ainda no h garantias de que os sistemas desenvolvidos sejam imunes a ataques ou deixem de apresentar problemas de segurana. Este trabalho prope um Processo Seguro de Desenvolvimento de Software e apresenta os resultados da aplicao deste processo em um projeto de desenvolvimento de software. PALAVRAS-CHAVE Segurana da Informao, Processo Seguro de Desenvolvimento de Software.

1. INTRODUO
A crescente demanda por produtos de software para suportar novos processos de negcio tem motivado muitas pesquisas na rea de processos. Neste sentido, crescente a importncia da segurana da informao alinhada a vrios processos de negcios. CLASP (Comprehensive, Lightweight Application Security Process) (2006) uma iniciativa que objetiva aplicar a segurana dentro do processo de desenvolvimento de software. A segurana da informao atua atravs de aes relacionadas proteo das informaes manipuladas por sistemas de informao. Segundo Dias (2001), os objetivos da segurana da informao envolvem, sobretudo, a manuteno da confidencialidade, da disponibilidade e da integridade das informaes, variando de acordo com a natureza do sistema e com o nvel de impacto que uma falha de segurana possa apresentar. Muitos especialistas ainda pensam que um software ao implementar criptografia para proteger a integridade dos dados torna-se seguro. Na verdade, esse software apenas implementa uma das caractersticas de segurana, no podendo, de fato, ser considerado seguro. A segurana de software no pode ser confundida com software seguro, isto , caractersticas de segurana no representam que o software seja seguro (McGraw, 2004). A segurana da informao possui vrias abordagens difundidas globalmente como o SSE-CMM (Systems Security Engineering Capability Maturity Model) (2003), a ISO/IEC 15408 (2005a, 2005b, 2005c), a ISO/IEC 17799 (2005), e o OCTAVE (The Operationally Critical Threat, Asset, and Vulnerability Evaluation) (Alberts, 2001). Este trabalho prope um processo seguro para o desenvolvimento de software, tendo como referncia as atividades derivadas dessas abordagens. Adicionalmente, so descritos os resultados da aplicao desse processo seguro em um projeto de desenvolvimento de software voltado para controlar o acesso dos usurios e realizar auditoria destes acessos. Este trabalho est organizado como se segue: a seo 2 descreve o Processo Seguro de Desenvolvimento de Software. A seo 3 mostra os resultados da aplicao do PSDS. A seo 4 apresenta as principais concluses deste trabalho.

2. PROCESSO SEGURO DE DESENVOLVIMENTO DE SOFTWARE


A pesquisa em torno do SSE-CMM, da ISO/IEC 15408, da ISO/IEC 17799, e do OCTAVE permitiu elaborar um conjunto de 11 macroatividades e 40 atividades que compem o Processo Seguro de Desenvolvimento de

363

ISBN: 972-8924-20-8 2006 IADIS

Software (PSDS). As inter relaes entre as macroatividades representada na Figura 1. O PSDS aderente ao ciclo de vida iterativo e incremental de software. Para produtos de software que utilizam, por exemplo, de ciclo de vida clssico, pode-se considerar apenas uma nica iterao.

Figura 1. Processo seguro de desenvolvimento de software.

2.1 Planejar Segurana


O propsito desta macroatividade garantir que todas as informaes necessrias para o planejamento da segurana do projeto sejam estabelecidas e registradas no processo seguro para o projeto. So verificados metas e planos de segurana da organizao e definidos os objetivos do processo seguro para o projeto. atribuio dessa macroatividade formalizar o grupo de engenharia de segurana, suas atribuies e como ser sua estrutura. Possui as seguintes atividades: (i) definir objetivos de planejamento de segurana e identificar seus mecanismos; (ii) atribuir responsabilidades de segurana no projeto; (iii) implementar ambientes de processamento; e (iv) planejar o gerenciamento de incidentes de segurana. A Figura 2 detalha essa macroatividade, apresentando as responsabilidades de segurana. O engenheiro de segurana e o gerente de projeto planejam, a partir das metas e dos planos de segurana, as demais macroatividades do processo seguro, que sero executadas ao longo do projeto e constrem o cronograma dessas atividades, instanciando o processo seguro para o projeto em questo. O engenheiro de segurana e o engenheiro de software orientam os integrantes do projeto a respeito dos padres de qualidade e das prticas de engenharia de software aplicveis ao projeto.

364

Conferncia IADIS Ibero-Americana WWW/Internet 2006

Figura 2: Macroatividade Planejar Segurana

2.2 Avaliar Vulnerabilidade de Segurana


O propsito desta macroatividade identificar e caracterizar, em cada iterao, as vulnerabilidades de segurana do sistema em relao ao ambiente definido, segundo o processo seguro atravs dos objetivos de segurana elencados para o projeto. Os ativos de informao do sistema a ser desenvolvido so essenciais, sendo selecionados os mais crticos para o desempenho do negcio. Possui as seguintes atividades: (i) executar mtodos de identificao de vulnerabilidade de segurana.; e (ii) analisar as vulnerabilidades de segurana identificadas.

2.3 Modelar Ameaa de Segurana


O propsito desta macroatividade identificar e caracterizar ameaas de segurana, juntamente com suas propriedades e caractersticas. A partir da lista de vulnerabilidades, que o principal produto resultante da macroatividade anterior, avaliam-se todas as ameaas levantadas, para que o engenheiro de segurana compreenda as ameaas relacionadas s vulnerabilidades identificadas, isto , ameaas potenciais que podem aparecer ao colocar o produto em funcionamento. Possui as seguintes atividades: (i) identificar as ameaas de segurana aos ativos crticos; (ii) classificar as ameaas de segurana aos ativos; e (iii) desenvolver estratgias de reduo das ameaas de segurana.

2.4 Avaliar Impacto de Segurana


O propsito desta macroatividade identificar e caracterizar impactos que sejam relevantes com respeito ao sistema e avaliar a possibilidade da ocorrncia desses impactos. Os impactos podem ser tangveis, como prejuzos financeiros, ou intangveis, como perda de reputao. Entende-se impacto como sendo a conseqncia de um incidente no desejado, causado tanto deliberado quanto acidentalmente, e que afeta os ativos. As conseqncias podem envolver a destruio ou dano destes ativos, ou mesmo perda de confidencialidade, integridade, ou disponibilidade.

365

ISBN: 972-8924-20-8 2006 IADIS

Possui as seguintes atividades: (i) priorizar processos crticos influenciados pelo sistema; (ii) revisar ativos do sistema que se referem segurana; e (iii) identificar e descrever impactos de segurana.

2.5 Avaliar Risco de Segurana


O propsito desta macroatividade , de posse das informaes de vulnerabilidade, ameaa e impacto da iterao, avaliar os riscos inerentes do prottipo do sistema em desenvolvimento pela identificao da exposio de segurana, o risco dessa exposio, e a priorizao desses riscos. Foca no descobrimento dos riscos de segurana envolvidos com o sistema em um ambiente definido baseado em um entendimento estabelecido de como os ativos so vulnerveis s ameaas. Possui as seguintes atividades: (i) identificar exposio de segurana; (ii) avaliar risco de exposio de segurana; e (iii) priorizar riscos de segurana.

2.6 Especificar Necessidades de Segurana


O propsito desta macroatividade especificar as necessidades relacionadas com segurana para o prottipo do sistema, na iterao, entre todos os envolvidos, principalmente o usurio. Envolve definir as bases para segurana no sistema de modo a satisfazer todos os requisitos legais e organizacionais para segurana. Essas necessidades se baseiam no contexto de segurana operacional do sistema, no atual ambiente de segurana e sistema da organizao. Possui as seguintes atividades: (i) compreender as necessidades de segurana do cliente; (ii) capturar uma viso de alto nvel orientada segurana da operao do sistema.; (iii) definir requisitos de segurana; e (iv) obter acordo sobre requisitos de segurana.

2.7 Fornecer Informao de Segurana


O propsito desta macroatividade prover aos arquitetos de sistema, projetistas, implementadores, ou usurios a informao de segurana de que necessitam. Essa informao inclui arquitetura segura, projeto, ou alternativas de implementao e orientao de segurana. Procura garantir que: (i) todos os problemas do sistema so revisados em relao a implicaes de segurana e so resolvidos de acordo com objetivos de segurana; (ii) todos os membros da equipe de projeto compreendem segurana e, por conseguinte, podem realizar suas funes; e (iii) a soluo reflete a informao de segurana fornecida. Possui as seguintes atividades: (i) entender e revisar necessidades de informao de segurana; (ii) determinar consideraes e restries de segurana; (iii) identificar e analisar alternativas de segurana; (iv) fornecer orientao de segurana; e (v) identificar e revisar requisitos de garantia de segurana.

2.8 Verificar e Validar Segurana


O propsito desta macroatividade garantir que as solues sejam verificadas e validadas com respeito segurana. Procura garantir que: (i) solues sejam verificadas em relao aos requisitos de segurana, arquitetura, e projeto usando observao, demonstrao, anlise e teste; e (ii) solues so validadas em relao s necessidades de segurana do cliente. Assim sendo, as metas dessa atividade incluem que as solues, de fato, implementem de maneira adequada e eficaz os requisitos de segurana, e que as solues satisfaam as necessidades de segurana do cliente. Possui as seguintes atividades: (i) definir a abordagem de verificao e validao de segurana; (i) realizar verificao de segurana; (i) realizar validao de segurana; (iv) revisar e comunicar resultados de verificao; e validao de segurana.

2.9 Gerenciar Segurana


O propsito desta macroatividade tratar das tarefas necessrias para administrar e manter os mecanismos de controle de segurana para o ambiente de desenvolvimento e um sistema operacional, bem como gerenciar a implantao de controles para novas funcionalidades, que se integram com os controles existentes. Define tambm como ser o gerenciamento da segurana, envolvendo a definio de treinamentos e programas de educao de segurana necessrios. Possui as seguintes atividades: (i) gerenciar e controlar servios e componentes operacionais de segurana; (ii) gerenciar percepo, treinamento e programa de educao de segurana; e (iii) gerenciar a implementao de
controles de segurana.

366

Conferncia IADIS Ibero-Americana WWW/Internet 2006

2.10 Monitorar Comportamento de Segurana


O propsito desta macroatividade garantir que a segurana, que foi prevista para o projeto, seja conseguida pelo sistema resultante em seu estado operacional. Isso alcanado pela garantia de que as deficincias ou erros que poderiam conduzir a uma brecha de segurana sejam monitorados e, por conseguinte, identificados, reportados e acompanhados at suas correes. Os ambientes externo e interno devem ser monitorados em relao aos fatores que podem ter um impacto na segurana do sistema. Alm disso, a monitorao deve auxiliar garantir que o nvel de segurana no se deteriore. Possui as seguintes atividades: (i) analisar registros de evento com impacto na segurana; (ii) preparar a resposta aos incidentes de segurana relevantes; (iii) monitorar mudanas em ameaas, vulnerabilidades, impactos, riscos, no ambiente, e em suas caractersticas; (iv) reavaliar mudanas em ameaas, vulnerabilidades, impactos, riscos e no ambiente; (v) revisar o comportamento de segurana do sistema para identificar mudanas necessrias; e (vi) realizar auditorias de segurana.

2.11 Garantir Segurana


O propsito desta macroatividade definir um conjunto de atividades que podem ser aplicadas, para garantir que a segurana do produto seja mantida. A garantia da segurana deve assegurar que controles de segurana eficazes sejam definidos e implementados para proteger dados e operaes crticas. A seguir, sero apresentados os principais resultados da aplicao do processo seguro proposto (PSDS), considerando-se dificuldades e descobertas de sua aplicao. Possui as seguintes atividades: (i) definir estratgia de manuteno da garantia de segurana; e (ii) conduzir anlise de impacto de segurana das mudanas.

3. RESULTADOS E APLICAO DO PSDS


A partir das atividades do PSDS foi realizada uma pesquisa de campo aplicada a quarenta e dois especialistas em segurana da informao e especialistas em processo de desenvolvimento de software, que avaliaram o grau de importncia das atividades deste processo seguro. Como um dos resultados desta pesquisa de campo, as sete atividades que melhores avaliadas foram: Definir objetivos de planejamento de segurana e identificar seus mecanismos, Analisar as vulnerabilidades de segurana identificadas, Identificar as ameaas de segurana aos ativos crticos, Definir requisitos de segurana, Compreender as necessidades de segurana do cliente, Executar mtodos de identificao de vulnerabilidade de segurana, e Atribuir responsabilidades de segurana no projeto. O PSDS proposto foi aplicado a um sistema de controle de acesso e auditoria, que controla a segurana de acessos de todos os usurios dos sistemas corporativos de uma empresa pblica. Esse controle realizado atravs do estabelecimento de um perfil de usurio dentro da organizao. Este sistema estabelece padres para a criao, a alterao e a manuteno de senhas de usurio de forma segura, segundo a poltica de segurana adotada pela organizao, permitindo a configurao de dados para auditoria. Atravs da aplicao do processo foram identificados os seguintes pontos importantes: A inexistncia de uma prtica direcionada a identificar os principais ativos de informao do sistema a ser desenvolvido. Pela criticidade inerente de um processo de controle de acesso e auditoria, procurou-se identificar as habilidades da equipe de sistema em codificao segura. No havia na organizao uma base (histrica) de conhecimento de erros e problemas nos sistemas corporativos, que permitisse identificar com maior brevidade, possveis vulnerabilidades e ameaas de segurana. Contudo, esta aplicao do processo produziu um conjunto de rvores de ataque, vulnerabilidades, ameaas, e necessidades de segurana que conduziram a apresentao dos seguintes requisitos de segurana: Impedir criao de senhas inseguras: toda e qualquer criao ou alterao de senha, que seja realizada pelo sistema ou pelo usurio, deve seguir, no mnimo, as regras que estabelecem a norma interna de criao de senhas. Impedir acesso indevido ao sistema: revises peridicas dos usurios e seus grupos / perfis poderiam reduzir acessos indevidos. Os acessos do sistema devem ser seguros com autenticao e validao de perfil a fim de evitar: (i) envio incorreto da senha inicial gerada pelo sistema; (ii) pessoas estranhas

367

ISBN: 972-8924-20-8 2006 IADIS

acessem algum sistema, passando-se por usurios vlidos; (iii) roubo, alterao ou qualquer outra ao que comprometa as informaes dos usurios, (iv) o usurio do sistema acessa outras informaes alm daquelas atribudas a seu grupo; (v) cadastro de informaes incorretas. Impedir alterao nos registros de auditoria: os registros (log) das aes realizadas pelos usurios e pelo administrador do sistema sero armazenados para consulta e esses registros no devem ser alterados ou apagados por estes usurios ou pelo administrador. A seguir, algumas das dificuldades encontradas nesta aplicao do processo seguro: No foi dimensionado um tempo adequado, que permitisse aos membros da equipe de desenvolvimento a assimilao e a aplicao das atividades previstas no processo seguro proposto. Alinhar o cronograma do processo de desenvolvimento do sistema ao processo seguro; Foi necessrio disponibilizar recursos adicionais para o processo seguro e dispositivos de integrao como forma de garantir a eficincia do processo. Foi atestado que as atividades do processo seguro no necessitam ser todas implementadas, podendo ser adaptadas para funcionar eficientemente dentro do processo de desenvolvimento de software da organizao, que o utiliza. O tipo de projeto define que atividades melhor se aplicam ao produto a ser desenvolvido.

4. CONCLUSES
A proposta de um processo seguro de desenvolvimento de software (PSDS) objetiva auxiliar na construo de software mais seguro, que proteja a confidencialidade, a integridade, e a disponibilidade das informaes processadas e armazenadas, satisfazendo a crescente exigncia dos clientes por produtos seguros. Como pontos relevantes do processo seguro proposto, pode-se destacar: (i) ressaltar a importncia de se planejar a segurana no desenvolvimento de software; (ii) incentivar a realizao de anlises de vulnerabilidade, de ameaas, de impacto e de risco; (iii) promover a elicitao de requisitos de segurana; e (iv) expressar a necessidade de se realizar testes para validar e verificar a segurana inserida no sistema. Apesar dos pontos citados, a implantao de um processo seguro de desenvolvimento pode implicar inicialmente na adio de mais recursos e investimentos, que tende a variar conforme o projeto. Entre outras contribuies, este trabalho consolidou uma proposta de um conjunto de atividades referentes segurana da informao, a partir de abordagens relevantes da rea de segurana, que foram selecionadas para compor um processo seguro de desenvolvimento de software. Como trabalho futuro ser aplicado o processo seguro proposto em outra uma organizao de software de grande porte, incluindo vrios projetos de software, objetivando refin-lo.

REFERNCIAS
Alberts, C. et al, 2001. OCTAVE - The Operationally Critical Threat, Asset, and Vulnerability Evaluation. Carnegie Mellon Software Engineering Institute. Disponvel em: www.cert.org/octave. Albuquerque, R. e Ribeiro, B., 2002. Segurana no Desenvolvimento de Software. Editora Campus, So Paulo, Brasil. Clasp, 2006. CLASP - Comprehensive, Lightweight Application Security Process. Version 1.2. Disponvel em: www.securesoftware.com/process/clasp. Dias, C., 2001. Segurana e Auditoria da Tecnologia da Informao. Editora Axcel Books, Rio de Janeiro, Brasil. ISO/IEC 15408-1, 2005a. Information Technology Security Techniques Evaluation Criteria for IT Security Part 1: Introduction and General Model. ISO/IEC 15408-2, 2005b. Information technology Security techniques Evaluation criteria for IT security Part 2: Security functional requirements. ISO/IEC 15408-3, 2005c. Information technology Security techniques Evaluation criteria for IT security Part 3: Security assurance requirements. McGraw, G., 2004. Software security. In IEEE Security and Privacy, March/April 2004, pages 32-35. ISO/IEC 17799, 2005. Tecnologia da informao Tcnicas de segurana - Cdigo de prtica para a gesto da segurana da informao, ABNT, Rio de Janeiro. Schumacher, M. and Roedig, U., 2001. Security engineering with patterns, Proceedings of Pattern Languages of Programs (PLoP) Conference. Illinois, USA. SSE-CMM, 2003. System Security Engineering Capability Maturity Model, Version 3. Disponvel em: www.sse-cmm.org.

368

Você também pode gostar