Questões de Concurso sobre Práticas de programação segura e revisão de código.

 
 
Disciplina 1
Assunto 1
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
44 questões encontradas
Questões por página
20
Mais recentes
 

O processo de identificação e tratamento de problemas de segurança no projeto de aplicações ou sistemas, ou seja, antes que o código seja desenvolvido, é conhecido como:


A

teste de invasão.


B

revisão de código.


C

modelagem de ameaças.


D

gerenciamento de vulnerabilidades.

Durante um projeto de desenvolvimento de uma solução, um desenvolvedor constrói a seguinte função em Python:


def autenticar(usuario, senha):

query = f"SELECT * FROM usuarios WHERE

nome = '{usuario}' AND senha = '{senha}'"

resultado = banco.executar(query)

if resultado:

return "Login bem-sucedido"

else:

return "Credenciais inválidas"


luz dos princípios e boas práticas de código seguro, assinale a alternativa CORRETA.


A

O código está seguro, pois utiliza interpolação de strings para montar a consulta SQL, o que facilita a leitura e evita erros de sintaxe; além disso, o retorno genérico em caso de falha impede vazamento de informações sensíveis.


B

A principal vulnerabilidade está na ausência de criptografia da senha, sendo recomendável aplicar um algoritmo de hash como SHA-1 diretamente na string da senha após armazená-la ou compará-la no banco de dados.


C

O código apresenta risco de injeção de SQL, pois concatena diretamente os parâmetros do usuário na query, de modo que a solução adequada envolve o uso de consultas parametrizadas e o armazenamento de senhas com hash seguro.


D

A revisão de código deve focar apenas na lógica de autenticação e não precisa considerar a forma como a consulta é construída, pois a responsabilidade pela segurança da consulta é do banco de dados.

Considere a situação a seguir.


Um desenvolvedor precisa criar uma função em JavaScript para validar senhas de usuários, garantindo que elas atendam a critérios mínimos de segurança. O código a seguir é a solução proposta para essa tarefa:


Imagem associada para resolução da questão


Em relação ao algoritmo de validação e à lógica de programação em JavaScript, assinale a alternativa correta.


A

A função retorna true apenas se a senha atender a ambos os critérios: ter no mínimo 8 caracteres e conter pelo menos um número.


B

A validação do tamanho da senha (senha.length) é uma verificação desnecessária, pois a expressão regular já garante a segurança.


C

A função retorna true se a senha tiver 8 ou mais caracteres, independentemente de conter ou não um número.


D

A função modifica a string de entrada para inserir um caractere especial, tornando‑a mais segura antes de retorná‑la.

Quanto mais longa a senha, menor a necessidade de se utilizar caracteres especiais, pois o comprimento sozinho garante segurança suficiente.


C

Certo


E

Errado

Na área de segurança da informação, é essencial compreender profundamente o funcionamento interno de sistemas e softwares para identificar vulnerabilidades e desenvolver medidas de proteção adequadas. Este processo, fundamental para a análise de códigos-fonte e protocolos de comunicação, é conhecido como:


A

Engenharia Reversa.


B

Inversão de Engenharia.


C

Decifração de Software.


D

Análise de Software Oculto.


E

Tratamento de Dados.

Na técnica de programação em pares, um dos desenvolvedores escreve o código enquanto o outro revisa, observa e oferece feedback e sugestões. Nesse contexto, assinale a alternativa que apresenta corretamente o papel do desenvolvedor que revisa e observa.


A

Driver.


B

Navigator.


C

Manager.


D

Reviewer.


E

Inspector.

Assinale a opção que indica o procedimento que garante tanto a qualidade quanto a segurança do código em aplicações web.


A

Implementação de Captchas em todas as páginas do aplicativo ignorando a necessidade de revisões de código e testes de penetração.


B

Uso exclusivo de HTTPS para encriptação de dados sem revisões adicionais de código ou práticas de programação segura.


C

Adoção de práticas de programação segura e revisão de código por pares, incluindo testes de segurança específicos como SQL Injection e Cross-Site Scripting (XSS)


D

Realização de testes de estresse em servidores de aplicação regularmente, sem realizar testes de segurança específicos ou revisões de código.


E

Confiança na obfuscação de código como método principal de segurança, evitando testes de penetração sob a premissa de que código difícil de ler é seguro.

Durante uma avaliação de segurança, uma organização identifica que seu sistema de controle de acesso não está adequadamente protegido contra a exploração de vulnerabilidades conhecidas. De acordo com os fundamentos de segurança da informação e com as recomendações das normas ABNT NBR ISO/IEC 27001 e ISO/IEC 27002, a medida adequada para reduzir o risco associado a essas vulnerabilidades e melhorar a segurança do sistema é:


A

Estabelecer um plano de continuidade de negócios para garantir a operação contínua durante incidentes de segurança.


B

Implementar uma política de segurança que defina claramente os requisitos de controle de acesso e autenticação.


C

Realizar atualizações regulares de software e aplicar patches para corrigir vulnerabilidades conhecidas.


D

Realizar treinamentos periódicos com os usuários para aumentar a conscientização sobre segurança da informação.


E

Utilizar criptografia para proteger dados sensíveis em trânsito e em repouso.

Na verificação de software, marque a afirmativa que define o propósito da técnica de revisão de código estática.


A

Executar testes automatizados para verificar a integridade funcional do software


B

Avaliar o desempenho do sistema em condições de carga elevada, antes da execução em produção.


C

Identificar defeitos no código-fonte por meio da análise visual e manual, antes da execução dos testes.


D

Analisar a conformidade do software com os requisitos de usuário, antes da entrega do produto.

A segurança da cadeia de suprimentos de software combina práticas recomendadas de gerenciamento de riscos e cibersegurança para a proteção contra possíveis vulnerabilidades. Dentre as estratégias específicas de desenvolvimento em containers que levam em consideração a segurança da cadeia de suprimentos, é possível atribuir os menores níveis de acesso possíveis a recursos importantes, por meio da(e):


A

Abordagem Zero Trust.


B

Imagens pré-fortalecidas.


C

Prática de GitOps.


D

Assinatura e as verificações.


E

Policy as Code.

Com relação à segurança no desenvolvimento de programação e revisão de código, analise as afirmativas a seguir e assinale (V) para a verdadeira e (F) para a falsa.


( ) O ciclo de vida de desenvolvimento de software (SDLC) pode ser aperfeiçoado pelo uso do framework de desenvolvimento de software seguro (Secure Software Development Framework, SSDF), do NIST Cybersecurity, podendo ser usado por organizações de qualquer setor ou comunidade, independentemente do tamanho ou da sofisticação da segurança cibernética, bem como podendo ser usado para qualquer tipo de desenvolvimento de software, independentemente da tecnologia, plataforma, linguagem de programação ou ambiente operacional.

( ) O uso do Secure Coding Practices Checklist, do Developer Guide e do Offensive Web Testing Framework (OWTF), da Open Web Application Security Project (OWASP), proporciona melhores práticas de programação segura e revisão de código.

( ) O uso do Web Security Testing Guide (WSTG) em conjunto com o Web Application Penetration Checklist, ambos da OWASP, proporcionam a identificação dos mais adequados controles de segurança que devem ser executados, de acordo com as informações do OWASP TOP 10 e WSTG.


As afirmativas são, respectivamente,


A

F, V e F.


B

F, F e V.


C

V, F e V.


D

V, V e V.

A política de segurança da informação adotada em uma organização deve ser periodicamente analisada para se buscar sua adequação e eficiência, assim como deve ser revista para atender a mudanças, por exemplo, nos negócios e em aspectos contratuais, regulamentares e legais.


C

Certo


E

Errado

No que diz respeito à segurança de servidores e sistemas operacionais, é correto afirmar que um procedimento eficaz para garantir a segurança de um sistema operacional em um ambiente corporativo, considerando a proteção contra ameaças, sejam elas internas ou externas, é o de


A

configurar o sistema operacional para permitir a execução de scripts e macros não assinados para facilitar a automação de tarefas administrativas.


B

manter um único ponto de entrada para acesso remoto com autenticação básica e ignorar o uso de criptografia para simplificar a gestão.


C

configurar o sistema para gerar relatórios de eventos para reduzir o volume de dados armazenados, apenas quando um alerta crítico é detectado.


D

desativar serviços e daemons não essenciais, mantendo apenas os que são estritamente necessários para as operações do sistema.


E

implementar uma política de segmentação de rede e aplicar controle de acesso baseado em atributos (ABAC) para restringir o acesso aos recursos do sistema com base em atributos do usuário e contexto.

Uma equipe de desenvolvimento de software está focada em melhorar a qualidade de um aplicativo.


Qual das práticas a seguir é uma recomendação para garantir a qualidade do software?


A

Buscar feedbacks dos usuários e implementar os testes como descritos no digrama de objetos.


B

Realizar testes considerando os cenários descritos no diagrama de classe.


C

Implementar um processo de revisão de código entre os membros da equipe.


D

Priorizar a velocidade de entrega em detrimento da qualidade do código.

Considerando que as revisões de software são como um filtro para a gestão de qualidade, marque V para as afirmativas verdadeiras e F para as falsas.


( ) O principal objetivo de uma Revisão Técnica Formal (RTF) é encontrar erros antes que eles passem para outra atividade de engenharia de software ou sejam liberados para o usuário.

( ) As revisões informais incluem uma reunião informal com a finalidade de revisar um artefato, ou os aspectos orientados a revisões da programação em pares.

( ) As revisões informais caracterizam-se por planejamento e preparação mínimos e poucos registros.

( ) Os testes de mesa e a programação em pares se enquadram na categoria de revisão formal.


A sequência está correta em


A

V, F, F, V.


B

F, V, V, F.


C

F, F, F, V.


D

V, V, V, F.

Considerando as práticas de programação segura e revisão de código, avalie se os itens a seguir são falsos (F) ou verdadeiros (V).


( ) A revisão do código é um método que visa a garantir que as ferramentas de inteligência artificial adotem técnicas de desenvolvimento seguro. Uma regra geral é que um teste de funcionalidade não deve descobrir nenhuma vulnerabilidade em aplicativos relacionadas ao código desenvolvido após o aplicativo ter passado por uma revisão duplo cego adequada do código de segurança.

( ) Todas as revisões de código de segurança são uma combinação de esforço humano e suporte tecnológico. Em uma extremidade é uma pessoa com um editor de texto. No outro extremo da escala está um especialista em segurança com uma ferramenta avançada de análise estática.

( ) As ferramentas de verificação automática de código são boas para avaliar grandes quantidades de código pois podem apontar possíveis problemas, mas um desenvolvedor precisa verificar cada resultado para que se determine se é um problema real e se é realmente explorável e avalie os riscos.


As afirmativas são, respectivamente,


A

V – V – F.


B

V – V – V.


C

V – F – F.


D

F – F – F.


E

F – V – V.

Snort é um sistema de detecção de intrusão de código-fonte aberto, de alto grau de configurabilidade e portabilidade, baseado em estação ou em rede. Ele pode detectar uma variedade de ataques e sondagens, tendo como base um conjunto de regras configurado por um administrador de rede. De acordo com os respectivos componentes lógicos que compõem o Snort, relacione adequadamente as colunas a seguir.

-

1. Decodificador de pacotes.

2. Motor de detecção.

3. Registrador.

4. Alertador.

-

( ) Para cada pacote detectado, um alerta pode ser enviado. A opção de alerta na regra correspondente determina quais informações são incluídas na notificação do evento.

( ) Processa cada pacote capturado para identificar e isolar cabeçalhos de protocolo nas camadas de enlace de dados; rede; transporte; e, aplicação.

( ) Para cada pacote que corresponder à regra, ela especifica quais opções de registro e alerta devem ser adotadas.

( ) Analisa cada pacote tendo como base um conjunto de regras definido para essa configuração do Snort pelo administrador de rede.

-

A sequência está correta em


A

2, 3, 1, 4.


B

4, 1, 3, 2.


C

1, 2, 4, 3.


D

2, 4, 3, 1.

Dentro do paradigma da programação orientada a objetos, destaca-se um princípio fundamental para a organização e a segurança do código. Esse princípio envolve a proteção dos detalhes internos de um objeto, restringindo-se o acesso direto a eles, e é essencial para garantir a integridade e a coesão do sistema. Qual é o termo que representa esse princípio?


A

Encapsulamento.


B

Polimorfismo.


C

Herança.


D

Composição.

A ferramenta SonarQube, diferentemente de outras ferramentas que contêm diversas funcionalidades, é considerada como uma ferramenta objetiva, pelo fato de possuir uma única função: mostrar apenas o que há de errado no código.


C

Certo


E

Errado

   
Gerar simulado