TSDD Teste de segurança durante o desenvolvimento.

Slides:



Advertisements
Apresentações semelhantes
Análise e Projeto de Sistemas III
Advertisements

Metodologia de testes Nome: Gustavo G. Quintão
Engenharia de Software Qualidade de Software Uma abordagem conceitual André Luis Zanon São Carlos SP – UFSCAR 2010 Engenharia de Software – UFSCAR.
Adélia Barros Testes de Software Adélia Barros
Engenharia de Software
ISO Processos do Ciclo de Vida do Software
Fundamentos de Engenharia de SW
Débora da Silva Orientadora: Maria Inés Castiñeira
Teste de Software.
Prentice Hall Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 8 Defeitos e falhas de software Especificação errada: pode não.
RELATORIO DE PESQUISA 1 Ferramentas para modelagem de sistemas e representação dos requisitos funcionais e não funcionais.
Confiança.
Tópicos Motivação para teste Por que algumas empresas não testam
Professor Sílder Lamas Vecchi
Teste de software Professor: Sílder Lamas Vecchi.
Faculdade de Ciências Sociais de Aplicadas de Petrolina – FACAPE
Adélia Barros Requisitos Adélia Barros
Qualidade de Software Aula 2
Professor: Rogério Lopes Disciplina: Engenharia de Software II Fortium Sistemas da Informação Engenharia de Software II.
Análise e Projeto de Sistemas
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Testes – visão geral Vanilson Burégio.
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
MANUTENÇÃO DE SOFTWARE
Introdução aos conceitos de Teste de Software
REDUNDÂNCIA POR SOFTWARE
Estudo de Caso: Técnicas de Teste como parte do Ciclo de Desenvolvimento de Software Aline Pacheco Patric Ribeiro Diego Kreutz.
Prof.Alfredo Parteli Gomes
Introdução a Computação Trabalho Final PUC Minas – São gabriel
Qualidade de Software Aula 2 / 2014/1
Análise e Projeto de Sistemas
Introdução à Qualidade
Prof. Alexandre Vasconcelos
REQUIREMENTS DEVELOPMENT DESENVOLVIMENTO DE REQUISITOS
Engenharia de Software com o RUP - Workflow de Testes Parte I
Engenharia de Software
Otimizando sua TI, maximizando seus negócios
Introdução e Fundamentos Engenharia de Requisitos
Processo de Aquisição Adilson de Almeida Cezar Meriguetti
TESTES DE SOFTWARE Qualidade de software Professores: Juliano Bedin Juliano Bedin Sara Priscila Dutkwicz Leandro Bovi.
O Processo de desenvolvimento de software
Marcio de Carvalho Victorino Processo Unificado. Unidade VI: Teste.
The Avengers Testers Team. Diraci Junior Trindade da Silva Analista de Qualidade CWI Software Coordenador do GUTS-rs
Teste de Software Conceitos iniciais.
Engenharia de Software
Qualidade de Software Aula 4
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Gestão de defeitos.
Introdução a Teste de Software
Processo de Desenvolvimento de Software – PDS C Construção - PAS
Qualidade no Desenvolvimento de Software Wolley W. Silva Baseado nas notas de aula dos professores Tatuo e Daisy.
Automação de Testes de Software
Modelagem de Processos de Negócio
Capítulo 10 – Qualidade de Produtos de Software Escrito por: Renata Araújo Vírginia Chalegre Apresentado por: Cleice.
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 5
Engenharia de Software
Engenharia de Software
POLITICAS DE SEGURANÇA
Processo e Qualidade.
Qualidade de Produtos de Software
Prof. Sidney Galeote. 2 www. prasabermais. com  Visão Geral sobre a dimensão de qualidade “performance”  Custo da qualidade  Como a performance deve.
Sobre a Prime Control A Prime Control é um Centro de Excelência em Qualidade de Software. Nossa missão é desenvolver, aperfeiçoar e realizar serviços.
Engenharia de Software
ISO9001:2000 para Software Professor: Alexandre Vasconcelos Equipe: Amanda Pimentel Börje Karlsson Danielly Karine Erika Pessoa Jorge Cavalcanti Jose Edson.
Introdução – ISO Conceitos relacionados a Norma NBR ISO/IEC 12207; Procedimentos de ciclo de vida e desenvolvimento de software; Objetivos e a estrutura.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
TESTES DE SOFTWARE – AULA 1 Prof. Me. Ronnison Reges Vidal
CMMI Capability Maturity Model Integration
O Processo Unificado (PU). 2 O que é o Processo Unificado (PU)? É um modelo de processo de software baseado no modelo incremental, visando a construção.
Sistemas de Informações Sistemas Informações Empresariais 11. Administração de Sistemas Márcio Aurélio Ribeiro Moreira
Transcrição da apresentação:

TSDD Teste de segurança durante o desenvolvimento

Introdução Com a fusão da Internet, é possível que pessoas de vários lugares do mundo possam explorar vulnerabilidades dos sistemas com mais facilidade e rapidez. Neste trabalho serão apresentados quais são os requisitos necessários para a segurança dos sistemas e quais testes podem ser executados durante a fase de desenvolvimento para garantir que tais requisitos sejam atendidos.

Requisitos de Segurança em Desenvolvimento O desafio de se construir softwares menos suscetíveis a falhas de seguranças é um objetivo cada vez mais perseguido pelos desenvolvedores. Com base na norma ISO/IEC15408 (Common Criteria) podemos definir os requisitos de uma aplicação. Porque proteger: Uma das principais causas de ataques são vulnerabilidades no software. O software deve ser projetado, arquitetado e implementado para ser resistente aos ataques.

Requisitos de Segurança em Desenvolvimento Devemos desenvolver com segurança e garantir a segurança da aplicação desenvolvida.Para isto precisamos de um processo seguro. As pessoas precisam conhecer e usar princípios de segurança. Ferramentas & Ambientes: Devem atender as premissas de segurança. Acordo entre os desenvolvedores e o cliente sobre o que deve ser feito. Confiabilidade.

Requisitos de Segurança em Desenvolvimento Elucidar os riscos do projeto. Definir as fronteiras do sistema. Classifique as informações quanto à segurança. Treine os desenvolvedores para fazer revisões e eliminar vulnerabilidades. Testar o retorno de funções – Sempre que se chamar uma função, seu retorno precisa ser verificado.

Requisitos de Segurança em Desenvolvimento Documentar funções corretamente – A correta documentação da função evita mal-entendido a respeito da interpretação da mesma. Tratar as entradas de dados – Todo dado informado, seja pelo usuário ou outro sistema, deve ser tratado adequadamente, mesmo que se acredite que todas as funções são intrinsecamente seguras.

Testes de segurança Especificar a segurança de forma clara e objetiva. Construir conforme a especificação. Testar para verificar o atendimento da especificação original. Alteração do ambiente. Acréscimos e/ou exclusões desautorizadas. Negligência humana. Entre outras falhas.

A importância da fase de implementação de um software Empregar padrões de codificação e teste.  Empregar ferramentas de teste de segurança incluindo fuzzing. Empregar ferramentas de análise estática de código. Revisar o código.

Testes O que se deseja com o teste? Quando testar? Como definimos qual lógica testar? Como definimos qual dado testar?

Testes de Verificação Verificação de Requisitos: Garantir a qualidade das informações geradas durante o processo de levantamento, análise e especificação de requisitos. Verificação da Modelagem Funcional: Avaliar se todos os requisitos identificados foram incorporados na modelagem funcional. Verificação da Modelagem Interna: Avaliar se os diagramas da modelagem interna traduzem todos os aspectos da modelagem funcional, assim como, analisar a estrutura dos dados. Verificação de Código: Garantir que os códigos fonte obedecem as normas e padrões determinados pela organização.

Testes de Validação Validação de Unidade: Garantir que as diversas unidades do software estão contempladas na totalidade de linhas de código. Validação de Integração: Garantir que os diversos componentes do software não apresentem erros quando integrados. Validação de Funcionalidade: Garantir que não existam diferenças entre os requisitos funcionais e o comportamento do software.

Testes de Validação Validação de Sistemas: Detectar erros de natureza não funcional, certificando-se que o comportamento está de acordo com os requisitos especificados. Seu propósito é testar os requisitos tecnológicos, entre eles: Carga e Stress – determinar o limite máximo de carga e stress que o software poderá suportar; Configuração – identificar e testar as configurações de software e hardware; Segurança – identificar formas de quebra de segurança do software; Desempenho (performance) – determinar se o desempenho em situações normais e de pico estão em conformidade aos requisitos de desempenho especificados; Confiabilidade e disponibilidade – determinar as medidas de confiabilidade e disponibilidade do software; Recuperação – avaliar o comportamento do software após a ocorrência de um erro ou outras condições anormais;

Testes de Validação Validação de Usabilidade: Garantir que os requisitos de usabilidade (acesso, navegação, clareza de informações e terminologia adequada) estejam sendo cumpridos e conforme às especificações. Validação de Aceite: Permitir ao cliente executar testes, validando as categorias de testes aplicadas anteriormente (funcionalidade, usabilidade e sistemas), reduzindo os riscos na implantação em produção. Os métodos de testes são basicamente os seguintes: Método Caixa-Branca – Técnica utilizada para determinar defeitos nas estruturas internas dos programas. Método Caixa-Preta – Técnica utilizada para garantir que os requisitos de negócios estão plenamente satisfeitos.

Conclusão Pode-se concluir que, com a implantação de testes de segurança durante a fase de desenvolvimento, será possível desde o início garantir que o sistema atingirá os requisitos mínimos de segurança, minimizando um esforço maior ao final para correção de falhas do sistema. A engenharia de software seguro pretende apoiar todos que desejam aperfeiçoar os processos de desenvolvimento de software para a obtenção de produtos mais seguros.

Perspectivas futuras Práticas que podem ser adotadas pelas empresas para adotarem produtos mais seguros: Planejamento das etapas de desenvolvimento de software seguro apresentado através da formulação de documentação, para as fases especificadas e comparação desse modelo com outros. Proposição de um novo modelo de ciclo de vida para desenvolvimento de software seguro.

Perspectivas futuras Criação de um framework para apoiar a aplicação dos requisitos funcionais de segurança. Formulação de padrões de desenvolvimento que suportem, se não todos, alguns dos requisitos funcionais de segurança citados. Desenvolvimento de ferramentas de gerência para desenvolvimento de softwares aderentes à norma ISO/IEC 15408. Elaboração de conteúdo pedagógico para capacitação de recursos humanos (desenvolvedores, arquitetos e engenheiros de software) em segurança da informação.

FIM