Pular para o conteúdo principal

Questão de Segurança da Informação — Práticas de Segurança e Ameaças em Programação — FUNDATEC 2023

Segurança da InformaçãoPráticas de Segurança e Ameaças em Programação
Código
qa541646
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Cargo
ANC ( )

Sobre o desenvolvimento de software seguro em uma aplicação web, analise as assertivas abaixo e assinale a alternativa correta.

 

I. Não se deve utilizar Javascript para implementar regras de negócio importantes e essenciais para segurança.

 

II. Filtrar e validar parâmetros no servidor na chegada das requisições para rejeitá-la ou eliminar o risco de SQL Injection.

 

III. As páginas administrativas não devem ser indexadas nos mecanismos de buscas.

 

IV. Manter o servidor atualizado, como Sistema Operacional, Software da web/app server e demais


  1. ATodas estão corretas.
  2. BTodas estão incorretas.
  3. CApenas I está correta.
  4. DApenas I e II estão corretas.
  5. EApenas III e IV estão corretas.
Revelar gabarito e comentário

GabaritoA — Todas estão corretas.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Desenvolvimento de software seguro em aplicações web

Gabarito: letra A. Todas as assertivas (I, II, III e IV) estão corretas, pois descrevem boas práticas fundamentais de segurança no desenvolvimento de aplicações web: não confiar em JavaScript para regras de negócio críticas, validar entradas no servidor contra SQL Injection, impedir a indexação de páginas administrativas e manter o servidor atualizado. Essas práticas estão alinhadas com os princípios de codificação segura e com as recomendações de frameworks como o OWASP.

O desenvolvimento de software seguro é um conjunto de práticas que visa incorporar a segurança em todas as fases do ciclo de vida do software, desde o design até a implantação e manutenção. O objetivo é reduzir vulnerabilidades e mitigar riscos de ataques, protegendo a confidencialidade, integridade e disponibilidade das informações. No contexto de aplicações web, isso envolve uma série de cuidados específicos, pois a aplicação fica exposta a uma vasta gama de ameaças vindas da internet.

Um dos princípios mais importantes é a validação de entradas no servidor. O código JavaScript executado no navegador (client-side) é controlado pelo usuário e pode ser facilmente contornado ou desativado. Portanto, qualquer validação feita apenas no cliente é apenas para melhorar a experiência do usuário, nunca para garantir segurança. A validação e a sanitização de dados devem ser sempre repetidas no servidor, pois é lá que a confiança pode ser estabelecida. Isso é crucial para prevenir ataques como SQL Injection, onde um atacante insere código SQL malicioso em campos de entrada para manipular o banco de dados. A prática recomendada é usar consultas parametrizadas (prepared statements) e validar rigorosamente todos os dados recebidos, rejeitando ou eliminando qualquer entrada que não esteja de acordo com o esperado.

Outra prática essencial é não confiar no JavaScript para implementar regras de negócio importantes para a segurança. Como o código JavaScript é executado no cliente, ele pode ser alterado, depurado ou contornado pelo usuário. Regras como controle de acesso, validação de permissões, cálculos de preços ou qualquer lógica que defina o que um usuário pode ou não fazer devem ser implementadas no servidor, onde o código é controlado pela organização. O JavaScript pode ser usado para melhorar a interface, mas nunca para tomar decisões de segurança.

A proteção de páginas administrativas também é uma boa prática. Páginas de administração contêm funcionalidades sensíveis e devem ser protegidas contra acesso não autorizado. Impedir que essas páginas sejam indexadas por mecanismos de busca (como Google, Bing) reduz a superfície de ataque, pois dificulta que um atacante descubra a URL dessas páginas. Embora a indexação não seja uma medida de segurança forte por si só (o acesso deve ser controlado por autenticação e autorização), ela é uma camada adicional de proteção que evita a exposição desnecessária de informações.

Por fim, manter o servidor atualizado é uma prática fundamental de segurança. Sistemas Operacionais, servidores web (como Apache, Nginx), servidores de aplicação (como Tomcat, JBoss) e todas as bibliotecas e dependências do software devem ser mantidos com as últimas correções de segurança (patches). Vulnerabilidades conhecidas em software desatualizado são um dos principais vetores de ataque. A atualização regular reduz significativamente o risco de exploração de falhas conhecidas.

Essas práticas estão alinhadas com as recomendações de segurança amplamente aceitas, como as do OWASP (Open Web Application Security Project), que lista a injeção (incluindo SQL Injection) e a configuração incorreta de segurança como riscos críticos. A ISO/IEC 27002 também recomenda o ciclo de vida de desenvolvimento seguro, a codificação segura e a gestão de mudanças. A assertiva IV, sobre manter o servidor atualizado, está diretamente relacionada à mitigação de vulnerabilidades conhecidas, um princípio básico de segurança.

A questão é direta e todas as assertivas refletem boas práticas consolidadas. A banca não apresenta uma pegadinha específica, mas sim um conjunto de práticas que, juntas, formam um panorama do que é esperado em um desenvolvimento seguro. O candidato que conhece os princípios de segurança de aplicações web identificará facilmente que todas as assertivas são verdadeiras.

1Regras de negócio críticas
Não usar JavaScript (client-side)
Implementar no servidor
2Validação de entradas
Filtrar no servidor
Rejeitar entradas maliciosas
Prevenir SQL Injection
3Páginas administrativas
Não indexar em buscadores
Reduz superfície de ataque
4Manutenção do servidor
Atualizar SO e softwares
Corrigir vulnerabilidades
Desenvolvimento web seguro
LEVELsoulevel.com.br
Desenvolvimento web seguro: Regras de negócio críticas (Não usar JavaScript (client-side), Implementar no servidor); Validação de entradas (Filtrar no servidor, Rejeitar entradas maliciosas, Prevenir SQL Injection); Páginas administrativas (Não indexar em buscadores, Reduz superfície de ataque); Manutenção do servidor (Atualizar SO e softwares, Corrigir vulnerabilidades)

Item I — ✅ Correto

A assertiva afirma que não se deve usar JavaScript para implementar regras de negócio importantes e essenciais para a segurança. Isso está correto. O JavaScript é executado no lado do cliente (navegador), onde o código é visível e pode ser manipulado pelo usuário. Qualquer regra de segurança implementada apenas em JavaScript pode ser contornada, pois o atacante pode desativar o JavaScript, modificar o código ou enviar requisições diretamente ao servidor, ignorando a interface. Portanto, regras de negócio críticas para a segurança devem ser implementadas no servidor, onde o código é controlado pela aplicação.

Item II — ✅ Correto

A assertiva afirma que se deve filtrar e validar parâmetros no servidor na chegada das requisições para rejeitá-las ou eliminar o risco de SQL Injection. Isso está correto. A validação de entrada no servidor é uma das principais defesas contra SQL Injection. Ao validar e sanitizar os dados recebidos, a aplicação pode rejeitar entradas maliciosas ou neutralizá-las, impedindo que comandos SQL sejam injetados. A prática recomendada é usar consultas parametrizadas, que separam os dados dos comandos SQL, tornando a injeção impossível. A validação no servidor é essencial porque a validação no cliente (JavaScript) pode ser facilmente contornada.

Item III — ✅ Correto

A assertiva afirma que as páginas administrativas não devem ser indexadas nos mecanismos de busca. Isso está correto. Páginas administrativas contêm funcionalidades sensíveis e não devem ser expostas publicamente. Impedir a indexação (por exemplo, usando o arquivo robots.txt ou metatags noindex) dificulta que um atacante descubra a URL dessas páginas, reduzindo a superfície de ataque. Embora a indexação não seja uma medida de segurança forte (o acesso deve ser controlado por autenticação), é uma boa prática de segurança e privacidade.

Item IV — ✅ Correto

A assertiva afirma que se deve manter o servidor atualizado, como Sistema Operacional, Software da web/app server e demais. Isso está correto. Manter o software atualizado é fundamental para corrigir vulnerabilidades conhecidas. Sistemas Operacionais, servidores web, servidores de aplicação e todas as dependências devem receber patches de segurança regularmente. A exploração de vulnerabilidades em software desatualizado é um dos vetores de ataque mais comuns. A atualização regular é uma prática básica e essencial de segurança.

Conclusão: Todas as assertivas (I, II, III e IV) estão corretas. Portanto, a alternativa correta é a letra A.

Gabarito: letra A

Link permanente: /questoes/qa541646