Segurança: Fator Determinante para A Qualidade de Software

F. Nunes, A. Belchior
{"title":"Segurança: Fator Determinante para A Qualidade de Software","authors":"F. Nunes, A. Belchior","doi":"10.5753/SBQS.2007.15581","DOIUrl":null,"url":null,"abstract":"The increasing occurrence of security failures in software products alerts for the low quality of developed software. However, information security has a larger scope that can combine different quality aspects. A solution for this tendency of failures is to include activities usually applied in information security in a software development process. Therefore, this work proposes a process to deal software security quality: the Software Development Secure Process. Resumo. A crescente incidência de falhas de segurança decorrentes de problemas nos produtos de software alerta para a baixa qualidade do software desenvolvido. Contudo, a segurança da informação tem um escopo maior que pode combinar diversos aspectos de qualidade. Uma solução para essa tendência de falhas é incluir atividades normalmente aplicadas em segurança da informação no processo de desenvolvimento de software. Logo, este trabalho propõe um processo para tratar a qualidade da segurança de software: o Processo Seguro de Desenvolvimento de Software. 1. Introdução Falhas de segurança em software são um dos principais problemas enfrentados pelos profissionais de segurança [CERT 2005]. Esta realidade tende a crescer, uma vez que muitas empresas ainda não perceberam o quão é importante agregar princípios de segurança em seus processos de desenvolvimento de software. Todavia, a especialização de atividades de um processo de desenvolvimento voltadas para produzir software mais seguro ainda está em fase de maturação no que se refere aos problemas de segurança dos sistemas. O processo CLASP (2005), por exemplo, é uma iniciativa que objetiva aplicar a segurança dentro do processo de desenvolvimento de software. A segurança da informação discorre e orienta sobre a melhor forma de aumentar a proteção das informações manipuladas por produtos de software. Não obstante, não se pode deduzir que um software ao implementar algoritmos de criptografia para proteger a integridade dos dados pode ser considerado seguro. Na verdade, esse software apenas implementa uma característica de segurança, não podendo, de fato, ser considerado seguro. A criptografia, por exemplo, não protege o software contra ataques de sobrecarga de memória (buffer overflow). A segurança de software não pode ser confundida com software seguro, isto é, funcionalidades e características de segurança em um software não representam que o software seja seguro [McGraw 2004]. Este trabalho objetiva contribuir para a construção de software seguro e, por conseguinte, software de maior qualidade, por meio da aplicação do Processo Seguro de VI Simpósio Brasileiro de Qualidade de Software 266 Desenvolvimento de Software (PSDS) organizado a partir do SSE-CMM (2003), do OCTAVE [Alberts et al. 2001], da ISO/IEC 15408 (2005a, 2005b, 2005c), e da ISO/IEC 17799 (2005). Este trabalho está organizado como se segue. A seção 2 descreve padrões e normas de segurança utilizadas para estruturar as atividades do processo seguro proposto. A seção 3 apresenta uma visão geral do Processo Seguro de Desenvolvimento de Software. A seção 4 discorre sobre a aplicação do processo seguro. A seção 5 apresenta as principais conclusões deste trabalho. 2. Padrões e Normas de Segurança da Informação O ISSEA (International Systems Security Engineering Association) (2003) estendeu o CMM (Capability Maturity Model) [Paulk et al. 1993] para o SSE-CMM (System Security Engineering – Capability Maturity Model) (2003). A versão anterior do SSECMM foi adaptada para se tornar a norma ISO/IEC 21827 (2002). O SSE-CMM objetiva garantir a segurança de um sistema fornecendo formas de traduzir as necessidades de segurança do cliente em um processo de segurança, que gere produtos que satisfaçam tais necessidades. O OCTAVE (Operationally Critical Threat, Asset, and Vulnerability Evaluation) [Alberts et al. 2001] é uma técnica estratégica de planejamento e avaliação baseada em riscos para segurança. Aspectos relacionados aos riscos (ativos, ameaças, vulnerabilidades, e impacto organizacional) são tratados, permitindo que uma organização ajuste a estratégia de proteção de seus riscos de segurança. Os requisitos do OCTAVE são agrupados em um conjunto de critérios. Neste ponto, dois métodos consistentes com os critérios foram desenvolvidos: o OCTAVE e OCTAVE-S. O Método OCTAVE foi projetado para ser aplicado em grandes organizações. O Método OCTAVE-S é voltado para pequenas organizações. A ISO/IEC 15408 (Evaluation criteria for Information Technology security) (2005a, 2005b, 2005c) propõe um conjunto de critérios para avaliar a segurança de produtos de tecnologia da informação. A ISO/IEC 15408 deriva-se do Common Criteria (2005). Tanto o Common Criteria quanto a ISO/IEC 15408 apresentam um conjunto de requisitos que devem ser atendidos para atingir níveis de segurança nos sistemas. Os requisitos se dividem em: requisitos funcionais de segurança, e requisitos de garantia da segurança. Os primeiros requisitos atuam como um conjunto mínimo de características de segurança que um software poderia implementar e envolvem desde a privacidade até a auditoria. Os requisitos de garantia operam como ações a serem realizadas em apoio ao desenvolvimento, para validar e certificar que o software seja seguro por ter conduzido tais ações (requisitos de garantia), que envolvem: Suporte ao ciclo de vida, Testes, Gerência de configuração, e Entrega e operação do produto, etc. A ISO/IEC 17799 (2005) objetiva preservar a confidencialidade, a integridade e a disponibilidade das informações, através da implementação de controles. Afirma ser essencial para uma organização identificar seus requisitos de segurança. Isto pode ser conseguido pela avaliação de risco dos ativos através da análise das ameaças, das vulnerabilidades, da probabilidade da ameaça se concretizar, além do impacto dessa ameaça na organização. VI Simpósio Brasileiro de Qualidade de Software 267 3. Processo Seguro de Desenvolvimento de Software A partir dos padrões e das normas apresentados na seção anterior, tendo como principal referência o SSE-CMM (2003), foram identificados um conjunto de macroatividades e atividades que passaram a compor o processo proposto: Processo Seguro de Desenvolvimento de Software (PSDS). O PSDS (Figura 1) foi elaborado inicialmente tendo como base o ciclo de vida iterativo incremental. Para a utilização de outros ciclos de vida, isto precisaria ser validado. Este processo é constituído de 37 atividades agrupadas em 11 macroatividades de segurança. As macroatividades e suas atividades elencadas representam uma proposta não exaustiva. A idéia é que cada atividade se adeque às etapas do ciclo de vida de software e que seja aplicada em paralelo com essas etapas. Neste contexto, é recomendável especializar o processo proposto para a organização que o utilizar, segundo suas necessidades e peculiaridades. Assim sendo, é possível utilizar apenas um subconjunto das macroatividades e ou das atividades propostas, adaptá-las e ou incluir novas macroatividades ou atividades específicas. O PSDS apresenta dois papéis que apóiam a execução do processo: o Engenheiro de segurança, e o Auditor de segurança. O Engenheiro de segurança é responsável pela especialização, e instanciação do processo seguro segundo os objetivos do projeto, alinhado com metas e planos da organização, e verificando se os projetos satisfazem seus objetivos de segurança. O Auditor de segurança avalia a aderência do processo seguro nos projetos de software, em termos de resultados das atividades, dos artefatos produzidos, verificando a conformidade das ações dos projetos ao processo estabelecido. Ele valida a eficaz aplicação do processo seguro, podendo reportar-se aos principais envolvidos através de um canal de comunicação independente, para relatar e tratar de não conformidades identificadas. Preferencialmente, o auditor de segurança não deve acumular as responsabilidades do papel desempenhado pela equipe de garantia da qualidade. As 11 macroatividades do PSDS serão descritas a seguir. 3.1 Planejar segurança O propósito dessa macroatividade é garantir que as informações necessárias para o planejamento da segurança para o projeto sejam estabelecidas e registradas. Devem ser elaborados (ou refinados) os objetivos e o plano de segurança da informação para a organização, e ser constituída a equipe de segurança (quando da instanciação do processo seguro). Essa macroatividade é composta pelas seguintes atividades: (i) Desenvolver plano de segurança; (ii) Planejar ambientes de processamento; e (iii) Planejar o gerenciamento de incidentes de segurança. VI Simpósio Brasileiro de Qualidade de Software 268 Figura 1. Processo seguro de desenvolvimento de software VI Simpósio Brasileiro de Qualidade de Software 269 3.2 Avaliar vulnerabilidade de segurança O propósito dessa macroatividade é identificar e caracterizar (na iteração) vulnerabilidades de segurança do software relacionadas com o ambiente definido. É intrínseco dessa macroatividade definir vulnerabilidades específicas para artefatos críticos gerados ao longo do processo de desenvolvimento, fornecendo uma avaliação geral de vulnerabilidade do software. Pela execução de métodos de identificação de vulnerabilidades, os atores envolvidos no processo obtêm uma lista detalhada de vulnerabilidades, que serão em seguida avaliadas. Essa macroatividade é composta pelas seguintes atividades: (i) Identificar vulnerabilidades de segurança; e (ii) Analisar as vulnerabilidades de segurança identificadas. 3.3 Modelar ameaça de segurança O propósito dessa macroatividade é identificar e caracterizar ameaças de segurança com suas propriedades e características, a partir das vulnerabilidades resultantes da macroatividade anterior. Uma ameaça pode ser definida como um evento que possa comprometer o funcionamento habitual do software, impactando em seus objetivos em vários níveis. A modelagem de ameaças pode ser usada para identificar ameaças e guiar decisões de projeto (incluindo artefatos críticos pro","PeriodicalId":137125,"journal":{"name":"Brazilian Symposium on Software Quality","volume":"60 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2007-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Brazilian Symposium on Software Quality","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.5753/SBQS.2007.15581","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

The increasing occurrence of security failures in software products alerts for the low quality of developed software. However, information security has a larger scope that can combine different quality aspects. A solution for this tendency of failures is to include activities usually applied in information security in a software development process. Therefore, this work proposes a process to deal software security quality: the Software Development Secure Process. Resumo. A crescente incidência de falhas de segurança decorrentes de problemas nos produtos de software alerta para a baixa qualidade do software desenvolvido. Contudo, a segurança da informação tem um escopo maior que pode combinar diversos aspectos de qualidade. Uma solução para essa tendência de falhas é incluir atividades normalmente aplicadas em segurança da informação no processo de desenvolvimento de software. Logo, este trabalho propõe um processo para tratar a qualidade da segurança de software: o Processo Seguro de Desenvolvimento de Software. 1. Introdução Falhas de segurança em software são um dos principais problemas enfrentados pelos profissionais de segurança [CERT 2005]. Esta realidade tende a crescer, uma vez que muitas empresas ainda não perceberam o quão é importante agregar princípios de segurança em seus processos de desenvolvimento de software. Todavia, a especialização de atividades de um processo de desenvolvimento voltadas para produzir software mais seguro ainda está em fase de maturação no que se refere aos problemas de segurança dos sistemas. O processo CLASP (2005), por exemplo, é uma iniciativa que objetiva aplicar a segurança dentro do processo de desenvolvimento de software. A segurança da informação discorre e orienta sobre a melhor forma de aumentar a proteção das informações manipuladas por produtos de software. Não obstante, não se pode deduzir que um software ao implementar algoritmos de criptografia para proteger a integridade dos dados pode ser considerado seguro. Na verdade, esse software apenas implementa uma característica de segurança, não podendo, de fato, ser considerado seguro. A criptografia, por exemplo, não protege o software contra ataques de sobrecarga de memória (buffer overflow). A segurança de software não pode ser confundida com software seguro, isto é, funcionalidades e características de segurança em um software não representam que o software seja seguro [McGraw 2004]. Este trabalho objetiva contribuir para a construção de software seguro e, por conseguinte, software de maior qualidade, por meio da aplicação do Processo Seguro de VI Simpósio Brasileiro de Qualidade de Software 266 Desenvolvimento de Software (PSDS) organizado a partir do SSE-CMM (2003), do OCTAVE [Alberts et al. 2001], da ISO/IEC 15408 (2005a, 2005b, 2005c), e da ISO/IEC 17799 (2005). Este trabalho está organizado como se segue. A seção 2 descreve padrões e normas de segurança utilizadas para estruturar as atividades do processo seguro proposto. A seção 3 apresenta uma visão geral do Processo Seguro de Desenvolvimento de Software. A seção 4 discorre sobre a aplicação do processo seguro. A seção 5 apresenta as principais conclusões deste trabalho. 2. Padrões e Normas de Segurança da Informação O ISSEA (International Systems Security Engineering Association) (2003) estendeu o CMM (Capability Maturity Model) [Paulk et al. 1993] para o SSE-CMM (System Security Engineering – Capability Maturity Model) (2003). A versão anterior do SSECMM foi adaptada para se tornar a norma ISO/IEC 21827 (2002). O SSE-CMM objetiva garantir a segurança de um sistema fornecendo formas de traduzir as necessidades de segurança do cliente em um processo de segurança, que gere produtos que satisfaçam tais necessidades. O OCTAVE (Operationally Critical Threat, Asset, and Vulnerability Evaluation) [Alberts et al. 2001] é uma técnica estratégica de planejamento e avaliação baseada em riscos para segurança. Aspectos relacionados aos riscos (ativos, ameaças, vulnerabilidades, e impacto organizacional) são tratados, permitindo que uma organização ajuste a estratégia de proteção de seus riscos de segurança. Os requisitos do OCTAVE são agrupados em um conjunto de critérios. Neste ponto, dois métodos consistentes com os critérios foram desenvolvidos: o OCTAVE e OCTAVE-S. O Método OCTAVE foi projetado para ser aplicado em grandes organizações. O Método OCTAVE-S é voltado para pequenas organizações. A ISO/IEC 15408 (Evaluation criteria for Information Technology security) (2005a, 2005b, 2005c) propõe um conjunto de critérios para avaliar a segurança de produtos de tecnologia da informação. A ISO/IEC 15408 deriva-se do Common Criteria (2005). Tanto o Common Criteria quanto a ISO/IEC 15408 apresentam um conjunto de requisitos que devem ser atendidos para atingir níveis de segurança nos sistemas. Os requisitos se dividem em: requisitos funcionais de segurança, e requisitos de garantia da segurança. Os primeiros requisitos atuam como um conjunto mínimo de características de segurança que um software poderia implementar e envolvem desde a privacidade até a auditoria. Os requisitos de garantia operam como ações a serem realizadas em apoio ao desenvolvimento, para validar e certificar que o software seja seguro por ter conduzido tais ações (requisitos de garantia), que envolvem: Suporte ao ciclo de vida, Testes, Gerência de configuração, e Entrega e operação do produto, etc. A ISO/IEC 17799 (2005) objetiva preservar a confidencialidade, a integridade e a disponibilidade das informações, através da implementação de controles. Afirma ser essencial para uma organização identificar seus requisitos de segurança. Isto pode ser conseguido pela avaliação de risco dos ativos através da análise das ameaças, das vulnerabilidades, da probabilidade da ameaça se concretizar, além do impacto dessa ameaça na organização. VI Simpósio Brasileiro de Qualidade de Software 267 3. Processo Seguro de Desenvolvimento de Software A partir dos padrões e das normas apresentados na seção anterior, tendo como principal referência o SSE-CMM (2003), foram identificados um conjunto de macroatividades e atividades que passaram a compor o processo proposto: Processo Seguro de Desenvolvimento de Software (PSDS). O PSDS (Figura 1) foi elaborado inicialmente tendo como base o ciclo de vida iterativo incremental. Para a utilização de outros ciclos de vida, isto precisaria ser validado. Este processo é constituído de 37 atividades agrupadas em 11 macroatividades de segurança. As macroatividades e suas atividades elencadas representam uma proposta não exaustiva. A idéia é que cada atividade se adeque às etapas do ciclo de vida de software e que seja aplicada em paralelo com essas etapas. Neste contexto, é recomendável especializar o processo proposto para a organização que o utilizar, segundo suas necessidades e peculiaridades. Assim sendo, é possível utilizar apenas um subconjunto das macroatividades e ou das atividades propostas, adaptá-las e ou incluir novas macroatividades ou atividades específicas. O PSDS apresenta dois papéis que apóiam a execução do processo: o Engenheiro de segurança, e o Auditor de segurança. O Engenheiro de segurança é responsável pela especialização, e instanciação do processo seguro segundo os objetivos do projeto, alinhado com metas e planos da organização, e verificando se os projetos satisfazem seus objetivos de segurança. O Auditor de segurança avalia a aderência do processo seguro nos projetos de software, em termos de resultados das atividades, dos artefatos produzidos, verificando a conformidade das ações dos projetos ao processo estabelecido. Ele valida a eficaz aplicação do processo seguro, podendo reportar-se aos principais envolvidos através de um canal de comunicação independente, para relatar e tratar de não conformidades identificadas. Preferencialmente, o auditor de segurança não deve acumular as responsabilidades do papel desempenhado pela equipe de garantia da qualidade. As 11 macroatividades do PSDS serão descritas a seguir. 3.1 Planejar segurança O propósito dessa macroatividade é garantir que as informações necessárias para o planejamento da segurança para o projeto sejam estabelecidas e registradas. Devem ser elaborados (ou refinados) os objetivos e o plano de segurança da informação para a organização, e ser constituída a equipe de segurança (quando da instanciação do processo seguro). Essa macroatividade é composta pelas seguintes atividades: (i) Desenvolver plano de segurança; (ii) Planejar ambientes de processamento; e (iii) Planejar o gerenciamento de incidentes de segurança. VI Simpósio Brasileiro de Qualidade de Software 268 Figura 1. Processo seguro de desenvolvimento de software VI Simpósio Brasileiro de Qualidade de Software 269 3.2 Avaliar vulnerabilidade de segurança O propósito dessa macroatividade é identificar e caracterizar (na iteração) vulnerabilidades de segurança do software relacionadas com o ambiente definido. É intrínseco dessa macroatividade definir vulnerabilidades específicas para artefatos críticos gerados ao longo do processo de desenvolvimento, fornecendo uma avaliação geral de vulnerabilidade do software. Pela execução de métodos de identificação de vulnerabilidades, os atores envolvidos no processo obtêm uma lista detalhada de vulnerabilidades, que serão em seguida avaliadas. Essa macroatividade é composta pelas seguintes atividades: (i) Identificar vulnerabilidades de segurança; e (ii) Analisar as vulnerabilidades de segurança identificadas. 3.3 Modelar ameaça de segurança O propósito dessa macroatividade é identificar e caracterizar ameaças de segurança com suas propriedades e características, a partir das vulnerabilidades resultantes da macroatividade anterior. Uma ameaça pode ser definida como um evento que possa comprometer o funcionamento habitual do software, impactando em seus objetivos em vários níveis. A modelagem de ameaças pode ser usada para identificar ameaças e guiar decisões de projeto (incluindo artefatos críticos pro
安全:软件质量的决定因素
第一个需求是软件可以实现的一组最小的安全特性,从隐私到审计。要求安全操作行为进行管理,在开发支持,才能确保软件等进行了安全操作(保证),要求包括:支持生命周期、测试、配置管理和产品交付和行动等。ISO/IEC 17799(2005)旨在通过实施控制来保持信息的机密性、完整性和可用性。它声称,对于一个组织来说,确定其安全需求是至关重要的。这可以通过分析威胁、漏洞、威胁发生的可能性以及该威胁对组织的影响来评估资产的风险来实现。第六届巴西软件质量研讨会安全标准的软件开发过程和前一节所示,标准主要参考SSE -CMM(2003),确定了一组macroatividades活动,他们的工作流程提出:安全软件开发过程(PSDS)。PSDS(图1)最初是基于增量迭代生命周期设计的。对于其他生命周期的使用,这需要验证。这个过程包括37个活动,分为11个宏观安全活动。宏观活动及其列出的活动代表了一个不详尽的建议。其思想是,每个活动都适合软件生命周期的步骤,并与这些步骤并行应用。在这种情况下,建议根据组织的需要和特点,将拟议的过程专门用于使用它。因此,可以只使用宏观活动和/或提议的活动的一个子集,调整它们和/或包括新的宏观活动或特定的活动。PSDS有两个角色来支持过程的执行:安全工程师和安全审核员。安全工程师负责根据项目目标对安全过程进行专业化和实例化,与组织的目标和计划保持一致,并验证项目是否满足其安全目标。安全审核员根据活动的结果、产生的工件来评估软件项目中安全过程的遵从性,验证项目操作对已建立过程的遵从性。它验证了安全流程的有效应用,并能够通过独立的沟通渠道向主要相关人员报告,以报告和处理已识别的不符合项。最好的情况是,安全审核员不应该积累质量保证团队所扮演角色的责任。PSDS的11个宏观活性将在下面描述。3.1安全规划这一宏观活动的目的是确保建立和记录项目安全规划所需的信息。必须为组织制定(或细化)信息安全目标和计划,并建立安全团队(在安全过程实例化时)。这种宏观活动包括以下活动:(i)制定安全计划;(ii)规划加工环境;e (iii)计划安全事件的管理。VI巴西软件质量研讨会268图1。安全软件开发过程VI巴西软件质量研讨会269 3.2安全漏洞评估这一宏观活动的目的是识别和描述(在迭代中)与定义的环境相关的软件安全漏洞。这种宏观活动的内在特征是为整个开发过程中产生的关键工件定义特定的漏洞,提供软件漏洞的总体评估。通过执行漏洞识别方法,参与过程的参与者获得详细的漏洞列表,然后对其进行评估。这种宏观活动包括以下活动:(i)识别安全漏洞;(ii)分析已识别的安全漏洞。3.3安全威胁建模此宏观活动的目的是识别和描述安全威胁及其属性和特征,从以前宏观活动产生的漏洞。威胁可以定义为可能危及软件正常运行的事件,在几个层面上影响其目标。 威胁建模可用于识别威胁并指导项目决策(包括关键工件)
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信