Baixe o app para aproveitar ainda mais
Prévia do material em texto
TESTES DE SOFTWARE E GERÊNCIA DE CONFIGURAÇÃO Priscila Gonçalves Verificação e auditoria da configuração Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: Explicar o conceito de auditoria de software e a sua responsabilidade no processo de desenvolvimento. Identificar o processo de auditoria de software. Descrever a auditoria de configuração de software. Introdução A auditoria de sistemas é uma atividade independente que objetiva geren- ciar o risco operacional existente e avaliar a adequação das tecnologias e dos sistemas de informação utilizados na empresa. Esse processo revisa e avalia os controles, o desenvolvimento de softwares, os procedimentos de tecnologia de informação (TI), a infraestrutura, a operação, o desempenho e a segurança da informação. Neste capítulo, você vai conhecer o conceito de auditoria de software e verificar a sua importância no processo de desenvolvimento. Você também vai conhecer as etapas e os passos que compõem o processo de auditoria de software. Por fim, vai ver como aplicar a auditoria de configuração de software. A auditoria de software e o processo de desenvolvimento A auditoria de software é uma atividade que gerencia riscos operacionais e avalia se as tecnologias de sistemas de informação utilizadas na organização são adequadas. Para isso, ela revisa e avalia os controles, o desenvolvimento de sistemas, os procedimentos de TI, a infraestrutura, a operação, o desem- penho e a segurança da informação. Portanto, estão em jogo informações críticas que auxiliam na tomada de decisões. Por sua vez, o processo de desenvolvimento tem como objetivos e responsabilidades medir e constatar a efi cácia do sistema, atestar a segurança física e lógica dele e aferir se essas providências atendem às normas. Quem realiza a auditoria é o auditor. Ele deve ter formação em auditoria de computação e ser capaz de: compreender e analisar o ambiente; determinar quais são as situações mais sensíveis; elaborar e aplicar a checklist; analisar as simulações; opinar sobre o ambiente auditado. Além disso, o auditor alocado na área de desenvolvimento deve conhecer a metodologia de desenvolvimento de sistemas, suas etapas, técnicas, formulários e conceitos. Ele também deve conhecer os profissionais da área: o líder de projeto, o analista de sistemas e o próprio desenvolvedor. O auditor tem como responsabilidades motivar melhorias, ser flexível quando necessário e ser imparcial na obtenção dos fatos. Ele dispõe de uma série de técnicas para realizar o seu trabalho. A seguir, você vai conhecer algumas delas. Técnicas e modelos para a auditoria de software Com o aumento de problemas resultantes da inefi ciência de softwares em rela- ção à qualidade e à segurança — tais como o aumento do número de fraudes, o crescente número de operações de lavagem de dinheiro, o aumento de erro em instituições fi nanceiras e a perda ou o roubo de informações fi nanceiras —, corporações passaram por uma regulamentação que colocou em cena leis rigorosas. Dessa forma, as empresas passaram a adotar melhores práticas de gestão de risco e gestão operacional. Agora, a área de TI das organizações deve estar com todos os seus processos alinhados ao negócio, garantindo melhorias nos processos empresariais — governança de TI. A governança de TI, segundo o Board Briefing on IT Governance, preocupa-se com o alinhamento e a entrega de valor por parte da TI para o negócio; ela trata das corretas alocação e medição dos recursos envolvidos e da mitigação de riscos em TI (RAMIRES; SPÍNOLA; KALINOWSKI, 2010). A necessidade global de referências promoveu a criação e o desen- volvimento de melhores práticas, como Control Objectives for Information and related Technology (COBIT), Committee of Sponsoring Organizations Verificação e auditoria da configuração2 (COSO), ISO 27001 e Information Technology Infrastructure Library (ITIL), que você vai conhecer a seguir. A governança de TI utiliza ferramentas e aplicações de TI com a finalidade de aumentar a vantagem competitiva das empresas. Foram desenvolvidos vários institutos internacionais e modelos de gestão que, se aplicados, asseguram a conformidade com as melhores práticas de processos, de segurança da infor- mação e de gerenciamento dos riscos corporativos. Esses modelos formam a base do desenvolvimento de controles internos para as instituições. Cada um deles possui uma metodologia própria, desenvolvida pelo instituto responsável. A escolha do modelo de gestão depende dos objetivos que a organização visa a alcançar de forma gerenciada. Entre os modelos, destacam-se os listados a seguir. COBIT: indicado para governança de TI. A metodologia COBIT traz um conjunto de melhores práticas relacionadas ao controle de objetivos, à otimização de investimentos, aos mapas de auditoria e às técnicas de gerenciamento. Ela é voltada para todas as empresas, independentemente das plataformas tecnológicas adotadas, e busca alinhar as práticas de TI ao modelo de negócio com a finalidade de regulamentar o processo. ITIL: indicada para a gestão de serviços de TI. DRI: indicado para a especificação e a operação de planos de conti- nuidade de negócios. ISO 17799: indicado para a gestão de segurança da informação. CMMI: define um modelo de gestão para o desenvolvimento de softwares. COSO: indicado para definir processos para o controle interno das empresas. A realização de auditorias é feita por meio de técnicas. Entre elas, considere as elencadas a seguir. Questionários: por meio dessa técnica, é possível adequar o ponto de controle em relação aos parâmetros de controle interno, como segurança física, lógica, eficiência, entre outros. Simulação de dados: o auditor afere se a aplicação está dentro das normas, verificando se os dados inseridos no sistema são incompatíveis ou estão em duplicidade. Visita in loco: trata-se da atuação dos auditores junto às pessoas da organização relacionadas ao sistema e às instalações. A partir dessa técnica, pode-se anotar procedimentos, nomes de pessoas, analisar a documentação e emitir opinião em relatórios. 3Verificação e auditoria da configuração Entrevistas: são reuniões entre os auditores e os auditados. Depois de realizar a entrevista, o auditor pode analisá-la e emitir o seu relatório. Análise de logs: nessa técnica, verifica-se a utilização de disposi- tivos componentes de uma configuração ou rede de computadores e do software aplicativo. Assim, pode-se verificar a ineficiência da utilização do computador, bem como identificar erros de programa e/ ou operação, utilização de programas que geram fraudes, tentativas de acesso indevidas e problemas na configuração do computador (análise de dispositivos com folga ou sobrecarregados). Análise de programa-fonte (código-fonte): essa técnica consiste na análise visual do programa. Compara-se também a versão do objeto que está sendo executado com o objeto resultante da última versão com- pilada. Essa técnica analisa se o desenvolvedor cumpriu as normas de padronização do código e a qualidade de estruturação do código-fonte. A auditoria pode ser conduzida de três maneiras. A primeira é realizada por uma organização para ela própria. A segunda é conduzida por uma organização sobre outra. Já a terceira é realizada por uma terceira organização independente, sem que haja interesse nos possíveis resultados da auditoria. Na Figura 1, a seguir, você pode ver como a auditoria se insere no ciclo de vida do software. Figura 1. Auditoria no ciclo de vida do software. Verificação e auditoria da configuração4 O processo de auditoria de software Como você já sabe, a auditoria de software tem como objetivo verifi car e constatar a efi cácia do sistema, atestar a sua segurança física e lógica, garantir a sua qualidade e ajudar a organização a avaliar e validar normas e padrões preestabelecidos. A auditoria de softwareé dividida em três etapas: planeja- mento, execução e relatório, nessa ordem. No planejamento, é definido o escopo prévio do trabalho que será realizado, para que o auditado possa preparar-se de maneira adequada. A transparência é de suma importância. Em processos transparentes de auditoria, a validade e toda forma de licenciamento são explícitas. Nessa etapa, identifica-se o objetivo referente a cada auditoria, opta-se por auditar o processo ou o produto e define-se a estratégia, bem como o cronograma, que deve ser conhecido pelos membros do projeto. As auditorias devem ter esse cronograma atualizado a partir da visualização e devem ser executadas com uma frequência que depende do projeto ou da organização. Na etapa da execução, os funcionários da área de TI da empresa (possíveis auditados que serão indicados pelo líder da equipe) são apresentados ao auditor (ou aos auditores). Então, são identificados os critérios de auditoria, assim como as checklists que servirão de guia durante o processo. Nessa etapa, o desenvolvedor executa um aplicativo que coleta as informações e as configurações existentes no servidor. O sistema auditor faz uma análise de servidores, aplicações, softwares, homologações, licenças, seriais, etc. Além disso, o auditor questiona o auditado de acordo como a checklist, e todas as informações são anotadas e utilizadas para identificar possíveis não conformidades. No relatório, o auditor apresenta toda a descrição de produtos e usuários, a comprovação de utilização, as não conformidades e as ações recomendadas. Isso tudo de acordo com as informações e evidências coletadas na auditoria. A ideia é que a adoção de modelos maduros de desenvolvimento de software dê origem a uma infraestrutura que garanta tal maturidade. Essa infraestrutura deve ser criada a partir de frameworks (modelos) estabelecidos de acordo com a International Organization for Standardization (ISO), o Institute of Electrical and Electronics Engineers (IEEE), o COBIT e a ITIL. O auditor afere, por meio de análise norteada por checklist, a conformidade ou não do que foi realizado com o padrão devido. 5Verificação e auditoria da configuração Para cada não conformidade, o auditor deve apresentar uma ação de correção, contendo data de conclusão e responsável. Também é necessário identificar opor- tunidades de melhorias e boas práticas. O relatório precisa ser apresentado para que todos conheçam o resultado da auditoria. As não conformidades devem ser acompanhadas até o encerramento. Caso as datas não sejam cumpridas, deve-se utilizar um critério que escale os prazos de acordo com cada não conformidade, até que todas sejam finalizadas. Lembre-se de que o relatório deve estar em um repositório com controle de versão. A aplicação da auditoria de configuração de software O padrão IEEE para revisões e auditorias de software (IEEE, 2008) descreve cinco tipos de auditorias de software, assim como os procedimentos necessários para a execução de cada um deles. Os tipos incluídos são: revisões de gerenciamento; revisões técnicas; inspeções; orientações; auditorias. A identificação, o controle de versão e o controle das alterações mantêm a ordem para que não haja uma situação caótica. Porém, mecanismos de con- trole rastreiam alterações somente até a geração de uma ordem de mudança, conhecida como Engineering Change Order (ECO). Logo, para assegurar que a alteração foi implementada corretamente, a equipe de software precisa fazer as revisões técnicas e a auditoria de configuração de software. A revisão técnica tem como foco a exatidão técnica do objeto de configu- ração modificado. Já a auditoria de configuração de software complementa a revisão técnica, realizando avaliações do objeto de configuração em relação Verificação e auditoria da configuração6 às características que não são consideradas na revisão. A auditoria de con- figuração de software tem como finalidade garantir que todos os elementos da configuração de software sejam desenvolvidos de forma adequada, que estejam catalogados e tenham detalhes suficientes para dar base às atividades de rastreabilidade. Segundo Pressman e Maxim (2016), as seguintes perguntas são questões primárias que devem ser feitas durante a auditoria de configuração. 1. A alteração especificada na ECO foi feita? Alguma alteração adicional foi incorporada? 2. Foi realizada uma revisão técnica para avaliar a exatidão técnica? 3. O processo do software e os padrões de engenharia de software foram aplicados adequadamente? 4. A alteração foi “destacada” nos Software Configuration Items (SCIs)? A data e o autor da alteração foram especificados? Os atributos do objeto de configuração refletem essa alteração? 5. Os procedimentos da gerência de configuração de software (Software Configuration Management — SCM) para anotar, registrar e relatar a alteração foram seguidos? 6. Todos os SCIs relacionados foram adequadamente atualizados? A gerência de configuração de software é uma atividade formal em que a auditoria de configuração de software é realizada de forma sepa- rada pelo grupo de garantia de qualidade de software (Software Quality Assurance — SQA). Os membros do grupo de SQA verificam se a entrega dos desenvolvedores está correta, se o trabalho foi realizado dentro das normas e padrões e se os procedimentos de monitoramento e configuração foram estabelecidos, garantindo que os itens de configuração de software estejam corretos, de acordo com a versão, e que toda a parte documental esteja adequada. A Figura 2, a seguir, representa o processo de controle de alterações, em que constam as solicitações e o desenvolvimento — de acordo com a necessidade e as auditorias realizadas durante o processo. 7Verificação e auditoria da configuração Figura 2. Controle de alterações. Fonte: Pressman e Maxim (2016). Como mostra a Figura 2, cada item de configuração produzido durante o desenvolvimento do software pode sofrer alterações ao longo do ciclo de vida do sistema. Para que a ordem permaneça correta e não ocorram incon- sistências, são necessárias normas que controlem as alterações e criações dos itens de configuração. Essas normas são chamadas de “gerência de configuração de software”. Verificação e auditoria da configuração8 IEEE. 1028-2008: IEEE standard for software reviews and audits. New Jersey: IEEE, 2008. Dis- ponível em: https://standards.ieee.org/standard/1028-2008.html. Acesso em: 2 jul. 2019. PRESSMAN, R.; MAXIM, B. Engenharia de software: uma abordagem profissional. 8. ed. Porto Alegre: AMGH, 2016. RAMIRES, A. C. S.; SPÍNOLA, R. O.; KALINOWSKI, M. Auditoria de sistemas. Engenharia de Software Magazine, v. 28, 2010. Disponível em: http://www-di.inf.puc-rio.br/~kalinowski/ publications/RamiresSK10.pdf. Acesso em: 2 jul. 2019. Leituras recomendadas CIA, T. M. Modelo de avaliação do processo de gerência da configuração de software. São Carlos: USP, 2006. LIMA, I. R. C.; CONSTANTINO, L. O.; ZAMBON, N. Auditoria de sistemas. São Paulo: [S.n., 201- ?]. Disponível em: https://edisciplinas.usp.br/pluginfile.php/3344235/mod_resource/ content/1/G3_Auditoria%20de%20Sistemas.pdf. Acesso em: 2 jul. 2019. RAMIRES, A. Auditoria de sistemas de engenharia de software 28. In: DEVMEDIA. Rio de Janeiro: DEVMEDIA, 2010. Disponível em: https://www.devmedia.com.br/auditoria- -de-sistemas-engenharia-de-software-28/17962. Acesso em: 2 jul. 2019. 9Verificação e auditoria da configuração
Compartilhar