SóProvas


ID
1774528
Banca
ESAF
Órgão
ESAF
Ano
2015
Provas
Disciplina
Engenharia de Software
Assuntos

O SDL (Security Development Lifecycle), processo de desenvolvimento de software com segurança proposto pela Microsoft, segue, em geral, um fluxo composto pelas fases de treinamento, requisitos, design, implementação, verificação, lançamento e resposta. Na fase de implementação são recomendados os seguintes elementos do SDL, exceto:

Alternativas
Comentários

  • "Os elementos do SDL que são aplicados na fase de implementação são:

    -> Aplicar padrões de codificação e teste. Os padrões de codificação ajudam os desenvolvedores a evitar a introdução de falhas que podem levar a vulnerabilidades de segurança. Por exemplo, a utilização de construções de manipulação de seqüências e de buffer mais consistentes e seguras pode ajudar a evitar a introdução de vulnerabilidades de saturação do buffer. As práticas recomendadas e os padrões de testes ajudam a garantir que os testes se concentrem na detecção de possíveis vulnerabilidades de segurança e não apenas na operação correta de funções e recursos do software.

     

    ->Aplicar ferramentas de testes de segurança, incluindo ferramentas de difusão. A "difusão" oferece entradas estruturadas mas inválidas para APIs (interfaces de programação de aplicativo) de software e interfaces de rede, de forma a maximizar a probabilidade de detectar erros que podem levar a vulnerabilidades de software.

     

    ->Aplicar ferramentas de verificação de código de análise estática. As ferramentas podem detectar alguns tipos de falhas de código que resultam em vulnerabilidades, incluindo saturações do buffer, de números inteiros e variáveis não inicializadas. A Microsoft fez um investimento importante no desenvolvimento dessas ferramentas (as duas que têm sido mais usadas são conhecidas como PREfix e PREfast) e as aperfeiçoa continuamente conforme novos tipos de falhas de código e vulnerabilidades de software são descobertos.

     

    ->Realizar revisões de código. As revisões de código complementam os testes e as ferramentas automatizadas; para isso, elas aplicam os esforços de desenvolvedores treinados no examine do código-fonte e na detecção e remoção de possíveis vulnerabilidades de segurança. Elas são uma etapa essencial no processo de remoção de vulnerabilidades de segurança do software durante o processo de desenvolvimento."

     

    Gabarito: D)
    Questão retirada de:
    https://msdn.microsoft.com/pt-br/library/ms995349.aspx

  • Questão desatualizada... A letra D e E seriam a resposta correta hoje em dia.

     

     

  • Gabarito D

    A implementação consiste na produção de código executável, usando-se uma ou mais linguagens de programação, sejam elas interpretadas ou compiladas. É preciso empregar técnicas de programação defensiva para desenvolver código que resista ao ataque de usuários hackers. A forma mais comum de garantir que será produzido código seguro é por meio de aderência ao uso de padrões de codificação que reduzem a ocorrência de vulnerabilidades de código, chamados padrões de codificação segura, e da verificação de que os programadores a estão adotando. Tais padrões tendem a evitar a injeção de código e outros ataques. Também se recomenda, para verificação, o uso de ferramentas de análise estática de código, que identificam formas de codificação propensas à introdução de vulnerabilidades. De outra forma, a melhor estratégia é confiar na capacidade dos técnicos e reforçar a disciplina boa técnica de programação defensiva e codificação segura, que emprega técnicas anteriormente pouco usadas na prática.

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Análise dinâmica ocorre na fase de Verificação.

    Fonte: Curso de Engenharia de Software - Prof. Diego Carvalho

  • Ferramentas de Verificação de Código de Análise Dinâmica, como o DAST (Dynamic Application Security Testing), consideram o software em operação, ou seja, em uso. Dessa forma, aparecem na fase de Verificação.