Prévia do material em texto
Validação do software: testes de softwares e aplicações de segurança no sistema Professor(a): Luís Otávio Toledo Perin (Especialização) Ciente de que diversas falhas e vulnerabilidades são descobertas a cada dia, temos que o software está exposto a inúmeras situações, principalmente se ele estiver em um ambiente on-line. Considerando o exposto, assinale a alternativa que contém a melhor definição de software seguro: Alternativas: Reduz a probabilidade de um ataque ser bem-sucedido. checkCORRETO Um software 100% on-line e acessível de qualquer lugar. Desenvolvimento focado em padrões do analista. Um software capaz de aguentar tudo. Tem como referência um software sem defeitos. Resolução comentada: o software considerado seguro, ou seja, resistente à invasão, é aquele que reduz a probabilidade de um ataque ser bem-sucedido, e caso este ocorra, que os danos possam ser suavizados, sendo a aplicação menos afetada possível. Código da questão: 58446 2) Muito é dito quanto à segurança de algo, principalmente na concepção de algo lógico, neste caso, do software. Por esse motivo, a engenharia de software tem evoluído continuamente para criar, adaptar e se adequar às normas e métricas do mercado. Por isso, considere as seguintes afirmações e classifique-as em verdadeiras (V) ou falsas (F): ( ) O teste de software não tem o intuito de descobrir falhas. ( ) Testar a segurança do software é importante para prever possíveis ataques. ( ) O sistema deve estar preparado para suportar possíveis invasões. ( ) Os dados não são importantes em um sistema informatizado. ( ) Testar é analisar um programa com a intenção de descobrir erros e defeitos. Assinale a alternativa que contenha a sequência correta: Alternativas: F – V – V – F – V. checkCORRETO F – V – F – F – V. V – V – V– V – V. V – V – F – V – F. V – V – V – F – F. Resolução comentada: a afirmativa I é falsa, já que o princípio do teste de software é justamente o de encontrar falhas no software. A afirmativa II é verdadeira, porque o teste de segurança pode prevenir possíveis ataques. A afirmativa III é verdadeira, porque o sistema deve estar preparado para suportar possíveis invasões, ou seja, isso deve ser previsto. A afirmativa IV é falsa, porque os dados são importantes, diferente do que a questão afirma. Por fim, a afirmativa V é verdadeira, porque o objetivo do teste é justamente o que está exposto na frase, ou seja, descobrir erros e defeitos. Código da questão: 58442 3) Considerando as informações mencionadas anteriormente, associe as colunas: Assinale a alternativa que traz a associação correta entre as duas colunas: Alternativas: I – A; II – B; III – C. I – C; II – B; III – A. I – B; II – C; III – A. I – A; II – C; III – B. I – C; II – A; III – B. checkCORRETO Resolução comentada: sabemos que padrões como a ISO vêm ao encontro da melhoria do processo de concepção do produto software. Neste aspecto, temos que ISO/IEC 15.408 foi a norma implementada com o intuito da melhoria do processo e possui sete níveis para a garantia da segurança. Já o EAL 5 é semiformalmente projetado e testado. Por fim, o EAL 6 também é semiformalmente projetado, testado e verificado. Código da questão: 58430 4) Sabemos que em todo projeto há orçamento, e para projetos de software não é diferente. Neste sentido, devemos estabelecer um ponto de equilíbrio entre o que foi orçado e as atividades envolvidas durante a execução dele, para que um não afete o outro. Mas há um fator que pode comprometer, e muito, a qualidade. Assinale a alternativa correta : Alternativas: Cronograma. checkCORRETO Equipe. Analista. Equipe. Equipe. Resolução comentada: assim como em outros projetos, para a construção de um software, o cronograma é um fator decisivo na qualidade, já que, se for “atropelado”, pode omitir alguma fase do teste, comprometendo, assim, o produto. Código da questão: 58422 5) Sabemos que, para a melhor execução de um conjunto de testes, estes são fracionados em testes menores, ou então divididos. Assinale a alternativa que explique por que isso é necessário: Alternativas: Testes em estágio são considerados mais fáceis de se lidar. checkCORRETO Quanto maior a divisão do teste, melhor ele é. Pois podem ser executados testes diferentes em ambientes diferentes. A divisão pouco importa, bastando apenas executar o teste. Cada fase do teste tem um propósito diferente. Resolução comentada: os testes são divididos em estágios ou separados para que o tratamento e a própria execução aconteçam melhor. Código da questão: 58397 6) Ao longo do tempo, a evolução tem feito inúmeras melhorias em processos e métricas, especialmente quando falamos em tecnologia. Neste sentido, a engenharia de software tem seu papel fundamental, pois: Alternativas: Houve uma melhora na qualidade do software. checkCORRETO O papel do analista deixa de existir. A programação ficou menos complicada. Não é mais necessário documentação do software. O software ficou mais agradável. Resolução comentada: a engenharia fez com que houvesse uma evolução no quesito qualidade de software, deste modo, os padrões e métricas ficaram mais bem acertados. Código da questão: 58391 7) Para aprimorar o modelo de segurança com foco na aplicação e nos resultados para o usuário, a Microsoft, em 2002, traça um modelo denominado SDL (Security Development Lifecycle). Considerando o exposto, analise as afirmativas a seguir: I. Envolve uma série de atividades e produtos com foco no software seguro. II. O SDL propõe modificar a maneira como o software é comumente desenvolvido. III. Não são trabalhados durante a fase de desenvolvimento do software. IV. Baseado na integração de medidas e adição de pontos de verificação. V. São propostas fases que não têm como resultado produtos com alto padrão de segurança. É correto o que se afirma em: Alternativas: II – III – V. I – II – IV. checkCORRETO III – IV – V. I – II – III – IV. I – II. Resolução comentada: a afirmação III é falsa, porque são trabalhados durante a fase de desenvolvimento do software; e a V também é falsa, porque são propostas fases, mas que tenham como resultado produtos com alto padrão de segurança. Código da questão: 58433 8) Sabemos que o mundo está cada vez mais conectado e informatizado e, deste modo, garantir a segurança da aplicação torna-se cada vez mais difícil para engenheiros e desenvolvedores. Mas nem toda invasão ou tentativa dela é oriunda exclusivamente do software, devendo outros fatores serem levados em consideração, como o _________. Escolha a palavra que melhor complete a lacuna: Alternativas: Humano. checkCORRETO Pessoal. Processual. Social. Analítico. Resolução comentada: outro fator que deve ser levado em consideração durante o processo é o humano, já que atos inseguros podem ocorrer de maneira intencional ou não, devendo a segurança do software preferencialmente evitar ou minimizar possíveis ataques ou tentativas deles. Código da questão: 58440 9) Sabemos que, durante os testes de software, várias práticas são executadas, isso para poder tornar a atividade o mais próxima possível da situação real de usabilidade. Por esse motivo, __________ são inseridos no software, a fim de simular sua utilização pelo usuário, e os resultados obtidos são utilizados como parâmetros em busca de anormalidades. Alternativas: Métodos. Anomalias. Dados fictícios. checkCORRETO Processos. Métricas. Resolução comentada: com o intuito de simular o uso real do produto, mas sem disponibilizá-lo de maneira final ao usuário, testes são necessários, sendo inseridos dados fictícios, garantindo, assim, que o teste contemple situaçõesdo usuário. Código da questão: 58402 10) Sabemos que o gerenciamento da segurança para aplicações é de extrema importância para o negócio e para o usuário. Portanto, um software seguro não é sinônimo de algo ____________ , mas sim de possuir resistência à invasão e, consequentemente, _________ a probabilidade de um ataque ser bem-sucedido. Marque a opção que melhor preenche as lacunas: Alternativas: Simples; aumentar. Perfeito; reduzir. checkCORRETO Impreciso; reduzir. Perfeito; aumentar. Objetivo; reduzir. Resolução comentada: o software considerado seguro, ou seja, resistente à invasão, é aquele que reduz a probabilidade de um ataque ser bem-sucedido e, caso ele ocorrer, que os danos possam ser suavizados, sendo a aplicação menos afetada possível. Código da questão: 58441