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ção›Prá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
ATodas estão corretas.
BTodas estão incorretas.
CApenas I está correta.
DApenas I e II estão corretas.
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.
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.