Prévia do material em texto
1 VERIFICANDO O APRENDIZADO - DESENVOLVIMENTO DE SOFTWARE SEGURO Princípios de Software Seguro 1) A noção básica de segurança é um aspecto natural. Em especial, na era em que vivemos, com os grandes avanços da tecnologia e dos algoritmos, os dados, de um modo geral, ganharam grande importância. Nesse sentido, selecione a opção correta a respeito da relação entre os princípios de segurança e software seguro. R: Um software seguro restringe o acesso e manipulação aos dados apenas para quem, de fato, deve ter esses direitos. 2) Uma das consequências da popularização da área de ciência de dados foi a conscientização de que os princípios de segurança da informação devem fazer parte dos softwares. Um desses princípios é o da confidencialidade. Nesse sentido, selecione a opção correta a respeito do princípio da confidencialidade. R: Uma das técnicas usadas para garantir a confidencialidade é a criptografia. 3) É fato que existem diversos fatores que influenciam para obtermos um software seguro. Um desses fatores, talvez o mais fundamental de todos, está relacionado às decisões do projeto do software, ou ainda, do design do software. Nesse sentido, selecione a opção correta a respeito dos elementos de projeto de um software seguro. R: É composto por um conjunto de práticas que implementam os princípios da segurança, como também permitem monitorar o processo de desenvolvimento e operação do software. 4) Uma das formas de mitigar riscos em um software seguro é por meio da implementação da política de privilégio mínimo. Apesar de a ideia ser simples, ela é extremamente efetiva na prática. Nesse sentido, selecione a opção correta a respeito da importância da política de privilégio mínimo para construção de um software seguro. R: Simplifica o gerenciamento das ações que um usuário pode realizar dentro do sistema. 5) Atualmente, é cada vez mais comum utilizarmos componentes de terceiros para construir nossos sistemas. Existem vários motivos que justificam esse comportamento, no entanto também há riscos envolvidos nele. Nesse sentido, selecione a opção correta sobre os riscos de utilizar componentes de terceiros para construirmos um software seguro. R: É fundamental trabalhar com fornecedores confiáveis e que ofereçam manutenções e atualizações periódicas. 6) Garantir que um software seja, de fato, seguro é cada vez mais desafiante. Isso ocorre porque as aplicações estão ficando mais complexas para atender às demandas da sociedade em diversas áreas. Na prática, existem muitas vulnerabilidades conhecidas que podem estar em um sistema e, assim, comprometer a segurança que ele oferece. Nesse sentido, selecione a opção correta a respeito das vulnerabilidades dos componentes de um software. R: Podem estar associadas a decisões de projeto, como a configurações inadequadas. 2 Questões de Implementação Para Software Seguro 7) Um dos primeiros contatos que um usuário tem com um software é com o processo de autenticação. Nas versões mais simples, o usuário precisa fornecer um login e uma senha. Nesse sentido, como esse simples processo pode afetar a segurança de um software? R: Um usuário pode inserir um código malicioso que, se não for tratado, pode causar danos na segurança de todo o sistema. 8) Um software corporativo, normalmente, possui diversas funcionalidades. Por isso, é natural utilizar componentes e bibliotecas de terceiros para evitar consumir tempo e recursos de mão de obra com atividades que não são a finalidade do sistema. Nesse sentido, como se prevenir de inserir vulnerabilidades no software a partir de componentes de terceiros? R: Usando bibliotecas acreditadas pela comunidade de desenvolvimento, baixadas das fontes oficiais e realizando sempre as atualizações sugeridas pelo desenvolvedor. 9) O processamento dos dados torna o uso de sistemas produtivo. Nesse sentido, selecione a alternativa correta a respeito da melhor forma de evitar que o processamento dos dados gere uma vulnerabilidade de segurança. R: Utilizar meios para assegurar que apenas usuários com perfis legítimos possam executar apenas determinadas tarefas. 10) A política do privilégio mínimo é associada aos perfis dos usuários, e não ao usuário especificamente. Nesse sentido, selecione a alternativa que justifica a eficácia da política de privilégio mínimo para garantir que o software seja seguro. R: O gerenciamento de perfis é mais eficiente do que o de indivíduos. Além disso, é possível mensurar os danos que um perfil pode causar. 11) Uma das primeiras boas práticas que aprendemos no desenvolvimento de software é utilizar funções. Selecione a alternativa correta sobre os riscos que uma chamada de função pode ocasionar para construirmos um software seguro. R: Caso a função possua uma vulnerabilidade, todos os processos que fizerem chamada para ela estarão expostos. 12) As APIs nos permitem realizar diversas operações que nos ajudam a potencializar a nossa produtividade, mas também oferecem riscos para segurança do nosso sistema. Selecione a alternativa que apresenta uma forma de mitigarmos os riscos à segurança ao fazer chamadas a APIs. R: Implementar testes de validação dos dados enviados para uma API e dos resultados que ela gerou. 13) A resposta de um sistema é o resultado de várias etapas, que vão desde a validação da entrada dos dados até o processamento deles. Selecione a alternativa correta sobre uma forma de evitar que um resultado sofra alguma corrupção no processo de envio para os usuários. R: Aplicar técnicas que utilizem protocolos seguros para garantir que os resultados sejam criptografados até chegarem aos respectivos usuários legítimos. 14) De modo geral, associamos o uso da criptografia a uma boa prática de segurança. Selecione, porém, a alternativa a respeito de uma situação em que o uso de criptografia pode ocasionar vulnerabilidades de segurança para um software. R: Fazer um mau gerenciamento das chaves de criptografia. 3 Modelagem, Implantação e Verificação de Software seguro 15) Os bugs de software são muitas vezes introduzidos durante a fase de programação e podem possibilitar que um invasor tome o controle do sistema. Esse tipo de bug pode ser classificado como R: vulnerabilidade. 16) Assinale a alternativa que apresenta o nome da parte maliciosa do código carregado juntamente com o restante, que é executado em um ataque bem-sucedido por ocasião da exploração de uma vulnerabilidade de software. R: Payload 17) Qual é a finalidade da primeira etapa da modelagem de ameaças de segurança de software? R: Definir formalmente os objetivos de segurança a serem atingidos. 18) A validação do modelo de ameaças é a última etapa do processo de modelagem de ameaças de software. Assinale a alternativa que apresenta três ações empregadas durante essa etapa. R: Testar contramedidas; resolver problemas; comunicar resultados. 19) Durante a fase de desenvolvimento de software seguro, qual das seguintes práticas é importante para garantir a segurança do código? R: Utilizar bibliotecas seguras. 20) SDL é a sigla em inglês para ciclo de vida de desenvolvimento de software seguro. Assinale a alternativa que melhor descreve a etapa de teste. R: É realizada nos múltiplos estágios da implementação. 21) No contexto da segurança das aplicações de software, existem diversas entidades que se preocupam em fomentar práticas padronizadas para o ciclo de desenvolvimento de software seguro (SDL), seja para seu pessoal interno de desenvolvimento seja para desenvolver a área com estudos, eventos e publicações. Assinale a alternativa que apresenta três importantes órgãos que têm SDL publicado. R: Microsoft - SAFECode - OWASP 22) As normas ISO são importantes fontes de consulta para várias áreas, incluindo negócios, tecnologia, qualidade, meio ambiente, saúde e segurança ocupacional. Essas normas fornecem diretrizes e padrões para ajudar empresas e organizações a melhorar a eficiênciae a eficácia de suas operações. Na área de TI existe uma família de normas que trata de segurança da informação (SI), sendo fonte de consulta obrigatória para profissionais que trabalhem com gestão de SI. Assinale a alternativa que corresponde ao número da família de normas. R: 27000 4 Emprego Devsecops no Ciclo de Vida do Software 23) Assinale a alternativa que apresenta como é reconhecida a disciplina de segurança no modelo tradicional de desenvolvimento de software. R: É identificada como um requisito adicional aos requisitos funcionais das soluções de soft- ware, fazendo os times de implementação enxergarem a disciplina de segurança como uma fase posterior ao desenvolvimento das funcionalidades de negócio, sendo uma preocupação apenas nas fases de testes. 24) Assinale a alternativa de como é reconhecida a disciplina de segurança no modelo DevSecOps de desenvolvimento de software. R: É considerada parte integrante do processo de desenvolvimento do software e permeia por todas as fases de seu ciclo de desenvolvimento, desde a ideação até sua operação e evolução. 25) A automação é uma tecnologia amplamente utilizada no processo de desenvolvimento de software e em outras áreas. Sobre sua definição, podemos afirmar que automação é R: a tecnologia que permite tarefas repetitivas serem efetuadas de maneira automatizada; por exemplo, a realização de testes funcionais e de segurança, compilação de código, publica- ção de artefatos em ambientes etc. 26) A orquestração é um conceito importante na cultura DevOps e DevSecOps. Assinale a alternativa que apresenta a definição correta para orquestração. R: É o conceito que se refere à capacidade de coordenar diferentes ferramentas e processos de automação para criar uma cadeia de eventos continua. 27) A modelagem de ameaças é importante para a implementação da segurança na cultura DevSecOps. Ela pode ser definida como R: uma técnica para identificação e avaliação de possíveis ameaças à segurança em um sistema ou aplicação, que busca um modelo que represente todos os componentes e processos do sistema e permita avaliar as possíveis ameaças em cada etapa.