{"subject_id":"3a3cc48d009981998a6ce563afd98380","topico":"OWASP Top 10; SAST × DAST × IAST × SCA; pentest; CSP, WAF","stems":["Acerca das ferramentas Karma e SonarQube, julgue os itens que se seguem.","Julgue os itens a seguir, relativos a SQL Injection e referência insegura a objetos.","A respeito do desenvolvimento de software seguro, julgue os itens a seguir.","Julgue os itens a seguir, a respeito de segurança da informação, políticas de segurança, classificação de informações e análise de vulnerabilidades.","A respeito dos principais tipos de pentest e de suas características, julgue os próximos itens.","Em referência às principais características de testes de segurança em pipelines de automação de códigos e infraestrutura, julgue os itens seguintes.","Julgue os itens subsequentes, relativos a WebServices, SonarQube.","Em relação a ameaças e vulnerabilidades em aplicações, julgue os itens subsequentes.","Acerca de ameaças e vulnerabilidades em aplicações, julgue os itens a seguir.","Considerando o uso de um WAF (web application firewall) diante de uma aplicação web comum, julgue os itens a seguir.","A respeito do OWASP Top 10 e SAMM, bem como de continuidade de negócios e recuperação de desastres de segurança da informação, julgue os itens a seguir.","A respeito de técnicas de proteção de aplicações web, julgue os itens subsequentes.","No que se refere à segurança da informação, julgue os itens subsecutivos.","A respeito do desenvolvimento seguro de aplicações, frameworks OWASP e testes dinâmicos de aplicações, julgue os itens a seguir.","Julgue os itens subsecutivos, a respeito de técnicas e ferramentas de análise de segurança das aplicações, criptografia e infraestrutura de chaves públicas.","Acerca da segurança de aplicativos web, julgue os itens que se seguem.","Julgue os seguintes itens, a respeito de segurança de aplicativos web.","Julgue os itens seguintes, a respeito das melhores práticas para problemas com componentes vulneráveis ou desatualizados, conforme preconiza o OWASP.","A partir dos conceitos relacionados a OWASP TOP 10, julgue o item a seguir.","A respeito de desenvolvimento de software seguro, julgue os itens que se seguem.","Em relação a qualidade de software e análise estática de código-fonte, julgue os itens subsequentes.","Em relação aos principais tipos de ataques a aplicações web e a sua prevenção, julgue os seguintes itens.","Com relação à análise estática de código, julgue os próximos itens.","Acerca da análise dinâmica de código, julgue os itens a seguir.","No que se refere a OWASP Top 10, julgue os seguintes itens.","Julgue os próximos itens, relativos a testes de penetração e a modelagem de ameaças.","De acordo com o que dispõem os conceitos de segurança da informação, julgue os itens que se seguem.","Julgue os próximos itens, relativos a OWASP Top 10.","Em relação à análise estatística de código fonte e XSLT, julgue os itens seguintes.","Em relação a OWASP Top 10, julgue os itens a seguir.","No que se refere a autenticação e riscos de segurança, julgue os itens subsequentes.","A respeito de autenticação de dois fatores e OWASP Top 10, julgue os itens a seguir.","Julgue os próximos itens, relativos à análise estática de código-fonte.","Julgue os próximos itens, a respeito de questões relacionadas ao desenvolvimento e testes de segurança de aplicações web.","Acerca de TomCat, desenvolvimento seguro de software, refactoring e integração contínua, julgue os próximos itens.","A propósito de ataques a redes e serviços, julgue os próximos itens.","Julgue os seguintes itens, relativos à segurança de aplicativos web.","No que diz respeito à segurança em redes, julgue os próximos itens.","Acerca de análise estática de código-fonte, uma das práticas que verifica a qualidade do código e pode ser realizada antes da execução do software, julgue os próximos itens.","Julgue os itens seguintes, relativos à segurança em Linux."],"questions":[{"id":"b45bcacbc7d9","number":86,"stem":0,"statement":"O SonarQube exige que todo código analisado seja compilado antes da execução da análise estática, mesmo para linguagens interpretadas como Python ou JavaScript.","answer":"E","source":{"slug":"TJ_PA_25_SERVIDOR","ano":2025},"explanation":{"verdict_reason":"A análise estática do SonarQube dispensa compilação para linguagens interpretadas como Python e JavaScript: o analisador trabalha diretamente sobre o código-fonte. A exigência de artefato compilado ou de um build wrapper existe apenas para parte das linguagens compiladas, em que a análise se apoia no bytecode ou na saída do compilador. Estender a exigência a todo código analisado é o que torna o item errado.","distortion_type":"generalizacao","distorted_span":"exige que todo código analisado seja compilado antes da execução da análise estática","corrected_statement":"O SonarQube exige compilação prévia apenas para parte das linguagens compiladas, não para linguagens interpretadas como Python ou JavaScript, cujo código-fonte é analisado diretamente.","concept":"Análise estática não exige compilação em linguagens interpretadas","citation":null,"trap_note":"Estático significa sem executar, não sem compilar. A banca usa a palavra todo para transformar uma exigência parcial e específica em regra universal — é o quantificador que derruba o item, não o resto da frase."}},{"id":"870b386c31b7","number":95,"stem":1,"statement":"A referência insegura a objetos (insecure direct object reference) ocorre quando uma aplicação expõe um identificador de objeto interno, mas valida se o usuário autenticado estiver autorizado a acessá-lo.","answer":"E","source":{"slug":"TELEBRAS_25","ano":2025},"explanation":{"verdict_reason":"A referência insegura a objetos se caracteriza justamente pela ausência da verificação de autorização: a aplicação expõe o identificador interno e atende ao pedido sem conferir se o usuário autenticado pode acessar aquele registro. Se a validação existe e funciona, não há vulnerabilidade — há controle de acesso correto sobre uma referência direta.","distortion_type":"inversao","distorted_span":"mas valida se o usuário autenticado estiver autorizado a acessá-lo","corrected_statement":"A referência insegura a objetos (insecure direct object reference) ocorre quando uma aplicação expõe um identificador de objeto interno, mas não valida se o usuário autenticado está autorizado a acessá-lo.","concept":"IDOR é expor o identificador sem validar a autorização","citation":"OWASP Top 10 (A01:2021 — quebra de controle de acesso)","trap_note":"Expor identificador interno, sozinho, não é vulnerabilidade — o defeito é a validação ausente. Sempre que o item afirmar que a aplicação valida e ainda assim chamar aquilo de falha, a negação foi retirada da frase."}},{"id":"277f433ab73d","number":115,"stem":2,"statement":"Uma prevenção recomendada pelo OWASP Top 10 contra quebra de controle de acesso é a implementação de verificações de autorização nos modelos de domínio que apliquem as restrições de negócios da aplicação.","answer":"C","source":{"slug":"TJ_PA_25_SERVIDOR","ano":2025},"explanation":{"verdict_reason":"A lista de prevenção da categoria de quebra de controle de acesso do OWASP Top 10 inclui expressamente que os requisitos de limite de negócio da aplicação sejam aplicados pelos modelos de domínio. A razão é que a verificação colocada na interface ou no controlador pode ser contornada por requisição direta; colocada no modelo de domínio, ela acompanha a regra de negócio onde quer que a operação seja invocada.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Controle de acesso aplicado no modelo de domínio","citation":"OWASP Top 10 (A01:2021 — quebra de controle de acesso)","trap_note":"Prevenções de controle de acesso giram todas em torno da mesma ideia: negar por padrão e verificar no servidor, o mais perto possível da regra de negócio. Prevenção que dependa de esconder a informação do usuário não é controle de acesso."}},{"id":"7b1d64851516","number":60,"stem":3,"statement":"Considerando que uma organização adota o desenvolvimento de software seguro, o uso de ferramentas de varredura de vulnerabilidades será direcionado especificamente às bibliotecas de software de terceiros utilizadas pela organização.","answer":"E","source":{"slug":"FUNPRESP_24_EXE","ano":2024},"explanation":{"verdict_reason":"Varredura de vulnerabilidade dirigida às bibliotecas de terceiros é apenas uma frente do programa, a análise de composição de software. O desenvolvimento seguro emprega também análise estática sobre o código escrito pela própria equipe, análise dinâmica contra a aplicação em execução e varredura de configuração e de infraestrutura. Reduzir o uso das ferramentas de varredura aos componentes de terceiros deixa de fora o código próprio, que é onde estão injeção, falha de autorização e erro de lógica.","distortion_type":"generalizacao","distorted_span":"será direcionado especificamente às bibliotecas de software de terceiros utilizadas pela organização","corrected_statement":"Considerando que uma organização adota o desenvolvimento de software seguro, o uso de ferramentas de varredura de vulnerabilidades abrangerá tanto o código desenvolvido internamente quanto as bibliotecas de software de terceiros utilizadas pela organização.","concept":"SCA é uma frente da varredura, não toda ela","citation":null,"trap_note":"Quando o item confina uma prática ampla a um único alvo com palavras como especificamente, exclusivamente ou tão somente, verifique o que ficou de fora. Aqui ficou de fora o próprio código da organização."}},{"id":"8272ad06cfb6","number":61,"stem":4,"statement":"No pentest do tipo caixa preta, o pentester utiliza técnicas de ataques variadas contra o ambiente ou a aplicação, a fim de obter algum tipo de acesso que possa comprometer o sistema.","answer":"C","source":{"slug":"MPO_24","ano":2024},"explanation":{"verdict_reason":"No pentest de caixa preta o testador não recebe informação prévia sobre o alvo e, por isso, reproduz a conduta do atacante externo: varre, sonda e experimenta técnicas variadas contra o ambiente ou a aplicação até conseguir algum acesso que comprometa o sistema. O que caracteriza a modalidade é a ausência de conhecimento inicial, não a limitação das técnicas empregadas.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Caixa preta: nenhuma informação prévia, ataque como externo","citation":null,"trap_note":"Caixa preta não significa teste superficial: significa teste sem informação prévia. O custo dela é tempo gasto em reconhecimento e risco de não alcançar partes do sistema que a caixa branca cobriria."}},{"id":"80abadaaf878","number":62,"stem":4,"statement":"No pentest do tipo caixa branca, o pentester tem conhecimento e alguns detalhes do ambiente e(ou) da aplicação a serem testados.","answer":"C","source":{"slug":"MPO_24","ano":2024},"explanation":{"verdict_reason":"O que distingue as modalidades é a quantidade de informação entregue ao testador. Na caixa branca ele recebe conhecimento e detalhes do ambiente e da aplicação — arquitetura, credenciais, código, topologia —, o que permite cobertura mais profunda e sistemática, inclusive de caminhos que dificilmente seriam descobertos de fora.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Caixa branca: testador com conhecimento do ambiente","citation":null,"trap_note":"A mesma escala de caixas vale para pentest e para as técnicas de teste de segurança: caixa branca vê o interior (SAST), caixa preta não vê (DAST), caixa cinza vê em parte (IAST e teste com credenciais de usuário comum)."}},{"id":"a6d6f631d2c1","number":63,"stem":5,"statement":"Testes estáticos (SAST) têm a função de tentar encontrar falhas de segurança no código de uma aplicação após o sistema entrar em produção.","answer":"E","source":{"slug":"MPO_24","ano":2024},"explanation":{"verdict_reason":"O teste estático analisa o código sem executar a aplicação, o que permite exatamente o contrário do descrito: rodar cedo, a cada alteração enviada ao repositório, dentro do pipeline, antes da implantação. É a aplicação do princípio de antecipação — quanto mais tarde o defeito é encontrado, mais caro é corrigi-lo. Quem procura falhas contra o sistema já em execução é o teste dinâmico.","distortion_type":"inversao","distorted_span":"após o sistema entrar em produção","corrected_statement":"Testes estáticos (SAST) têm a função de tentar encontrar falhas de segurança no código de uma aplicação antes de o sistema entrar em produção, ainda durante o desenvolvimento.","concept":"SAST roda cedo, sobre o código, antes da produção","citation":null,"trap_note":"Em pipeline, a posição no tempo identifica a técnica: SAST e SCA no início, DAST e pentest depois de implantado. Item que atrase o estático ou antecipe o dinâmico inverteu o eixo do shift-left."}},{"id":"28adaa80cedd","number":64,"stem":5,"statement":"A lógica difusa é uma das técnicas utilizadas em testes dinâmicos (DAST) para tentar detectar falhas de segurança em binários.","answer":"C","source":{"slug":"MPO_24","ano":2024},"explanation":{"verdict_reason":"A técnica referida é a de entradas difusas, o fuzzing: submeter ao alvo grandes volumes de dados malformados, inesperados ou aleatórios e observar como ele reage. Ela só funciona com o programa rodando, porque o que se observa é a reação em tempo de execução — travamento, exceção não tratada, estouro de buffer —, e por isso pertence ao teste dinâmico e se aplica inclusive a binários, sem acesso ao código-fonte.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Fuzzing é técnica dinâmica sobre o alvo em execução","citation":null,"trap_note":"Fuzzing é o exemplo preferido da banca para caracterizar DAST, porque reúne os dois traços da técnica: alvo em execução e ausência de acesso ao código. Se o item o colocar entre as técnicas estáticas, está trocado."}},{"id":"1db868fd84f4","number":66,"stem":6,"statement":"O sonarQube detecta as vulnerabilidades de segurança no código por meio de DAST (dynamic application security testing), indicando os erros a serem eliminados antes de implantar o aplicativo.","answer":"E","source":{"slug":"MP_GO_24_SERVIDOR","ano":2024},"explanation":{"verdict_reason":"O SonarQube analisa o código-fonte sem executar a aplicação: é ferramenta de teste estático de segurança, SAST. O DAST faz o oposto — ataca a aplicação já em execução, sem acesso ao código, o que é justamente o que o SonarQube não faz. A finalidade descrita, apontar erros antes de implantar o aplicativo, confirma que se trata de análise estática.","distortion_type":"troca_de_termo","distorted_span":"por meio de DAST (dynamic application security testing)","corrected_statement":"O sonarQube detecta as vulnerabilidades de segurança no código por meio de SAST (static application security testing), indicando os erros a serem eliminados antes de implantar o aplicativo.","concept":"SonarQube é SAST, não DAST","citation":null,"trap_note":"A própria frase entrega a resposta quando fala em detectar no código e antes de implantar: sem execução e antes da implantação só existe estático. Ferramenta que precisa da aplicação no ar é DAST — ZAP, Burp, Nikto."}},{"id":"d33bd92a8d0e","number":67,"stem":7,"statement":"A quebra de autenticação é uma falha no mecanismo de controle de acesso, permitindo que usuários acessem recursos ou realizem ações fora de suas permissões; caso ocorra, o limite para o dano pode ser superior, inclusive, aos privilégios concedidos ao perfil de usuário da aplicação que sofreu o ataque.","answer":"E","source":{"slug":"TCE_AC_24","ano":2024},"explanation":{"verdict_reason":"A descrição está inteira correta, mas é de outra categoria: falha no mecanismo de controle de acesso que permite ao usuário atuar fora das permissões, com dano que pode superar os privilégios do perfil atacado, é quebra de controle de acesso. Quebra de autenticação é a falha em estabelecer e manter a identidade — sessão, senha ou chave comprometidas, com o atacante se passando pela vítima.","distortion_type":"troca_de_termo","distorted_span":"A quebra de autenticação","corrected_statement":"A quebra de controle de acesso é uma falha no mecanismo de controle de acesso, permitindo que usuários acessem recursos ou realizem ações fora de suas permissões; caso ocorra, o limite para o dano pode ser superior, inclusive, aos privilégios concedidos ao perfil de usuário da aplicação que sofreu o ataque.","concept":"Controle de acesso é o que você pode; autenticação é quem você é","citation":"OWASP Top 10 (A01:2021 — quebra de controle de acesso)","trap_note":"O par autenticação x controle de acesso é o mais explorado do tópico, nos dois sentidos. Decida pela frase: se ela fala em agir fora das permissões, é controle de acesso; se fala em assumir a identidade de outro, é autenticação."}},{"id":"9fd60746a96a","number":68,"stem":7,"statement":"A adulteração de URL é a forma mais simples de ataque de referência insegura a objetos.","answer":"C","source":{"slug":"TCE_AC_24","ano":2024},"explanation":{"verdict_reason":"A referência insegura a objetos se explora manipulando o identificador que a própria aplicação expõe, e o lugar em que ele aparece mais acessível é a URL. Trocar o valor de um parâmetro na barra de endereço não exige ferramenta, interceptação nem conhecimento do código: é a forma mais simples de verificar se a aplicação valida a autorização sobre o registro pedido.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Adulteração de URL é a exploração mais simples de IDOR","citation":null,"trap_note":"Guarde a dupla: IDOR se explora por adulteração de URL. Quando o item citar passagem de diretório, injeção ou sequestro de sessão como a forma mais simples de explorar IDOR, houve troca de nome."}},{"id":"ffda93c456c5","number":72,"stem":8,"statement":"Considere a seguinte URL. https://prova.com/prova_seguranca?id=1332 Se nenhum outro controle estiver em vigor, um atacante pode simplesmente modificar o valor id para visualizar outros registros da aplicação em questão, sendo esse um exemplo de referência insegura a objetos que leva ao escalonamento horizontal de privilégios.","answer":"C","source":{"slug":"TRF6_24","ano":2024},"explanation":{"verdict_reason":"O identificador do registro está exposto na URL e, sem verificação de autorização, alterá-lo dá acesso a registros de outros usuários — é o caso típico de referência insegura a objetos. Como os registros alcançados pertencem a usuários do mesmo nível de privilégio, e não a um perfil superior, o escalonamento obtido é horizontal.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"IDOR por parâmetro leva a escalonamento horizontal","citation":"OWASP Top 10 (A01:2021 — quebra de controle de acesso)","trap_note":"Horizontal é alcançar dado de outro usuário do mesmo nível; vertical é ganhar poderes de um perfil superior, como o de administrador. A banca troca as duas palavras com frequência em itens de IDOR."}},{"id":"3416d234d3da","number":73,"stem":9,"statement":"Um WAF por assinatura de ataque detecta padrões que podem indicar tráfego malicioso, identificando tipos de solicitação, respostas anômalas do servidor e endereços IP maliciosos conhecidos.","answer":"C","source":{"slug":"TRF6_24","ano":2024},"explanation":{"verdict_reason":"O WAF baseado em assinatura compara o tráfego HTTP com um conjunto de padrões previamente conhecidos como maliciosos. Esses padrões não se limitam ao corpo da requisição: abrangem tipos e formatos de solicitação, respostas anômalas devolvidas pelo servidor e listas de endereços IP reconhecidamente maliciosos. É o modelo oposto ao de detecção por desvio de comportamento esperado.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"WAF por assinatura casa tráfego com padrões conhecidos","citation":null,"trap_note":"Assinatura reconhece o mal conhecido; modelo de comportamento reconhece o desvio do bem conhecido. Essa é a mesma divisão de IDS e antivírus, e vale sempre que o item opuser detecção por assinatura a detecção por anomalia."}},{"id":"0c5107dfd020","number":78,"stem":10,"statement":"De acordo com a NBR ISO/IEC 27002:2013, convém que a verificação dos controles da continuidade da segurança da informação seja realizada fora do âmbito dos testes de mudanças, e, quando possível, é recomendável integrar a verificação dos controles da continuidade da segurança da informação com os testes de recuperação de desastre ou da continuidade de negócios da organização.","answer":"C","source":{"slug":"MPO_24","ano":2024},"explanation":{"verdict_reason":"A norma separa a verificação dos controles de continuidade da segurança da informação dos testes ordinários de mudança, porque o que se quer avaliar é o funcionamento dos controles em situação adversa, e não o efeito de uma alteração pontual. Pela mesma razão ela orienta que, sempre que possível, essa verificação seja integrada aos testes de recuperação de desastre e de continuidade de negócios da organização, que já reproduzem o cenário de interrupção.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Verificação da continuidade da segurança da informação","citation":"ABNT NBR ISO/IEC 27002:2013, seção 17.1.3","trap_note":"Em continuidade, a norma sempre puxa para a integração com os testes de recuperação de desastre e para a periodicidade regular. Item que isole a verificação num teste próprio e descolado, ou que a dispense, vai contra o texto."}},{"id":"8f8c8dc8ae25","number":79,"stem":10,"statement":"De acordo com o OWASP Top 10, para prevenir falhas de registro e monitoramento de segurança, uma das medidas recomendadas aos desenvolvedores é garantir que todas as falhas de login, controle de acesso e validação de entrada no lado do servidor possam ser registradas com contexto de usuário suficiente para a identificação de contas suspeitas ou maliciosas, bem como que possam ser mantidas por tempo suficiente para permitir análise forense posterior.","answer":"C","source":{"slug":"MPO_24","ano":2024},"explanation":{"verdict_reason":"A categoria de falhas de registro e monitoramento se caracteriza por eventos relevantes que não deixam rastro utilizável. Por isso a recomendação do OWASP é que falhas de autenticação, de controle de acesso e de validação de entrada no lado do servidor sejam registradas com contexto de usuário suficiente para identificar contas suspeitas, e que os registros sejam retidos por tempo bastante para permitir análise forense posterior.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Registro com contexto de usuário e retenção para perícia","citation":"OWASP Top 10 (A09:2021 — falhas de registro e monitoramento)","trap_note":"Registro sem contexto e sem retenção equivale a não registrar. Nesta categoria a banca costuma errar pela subtração: log sem identificação do usuário, retenção curta ou monitoramento que não gera alerta."}},{"id":"cde7478dbae3","number":80,"stem":10,"statement":"No contexto da implementação da continuidade de negócios de segurança da informação, de acordo com a NBR ISO/IEC 27002:2013, importa que uma organização disponha de planos documentados e procedimentos de recuperação e resposta desenvolvidos e aprovados, que detalhem como a organização irá gerenciar um evento de interrupção e como manterá a sua segurança da informação em um nível predeterminado, com base nos objetivos de continuidade da segurança da informação aprovados pela direção.","answer":"C","source":{"slug":"MPO_24","ano":2024},"explanation":{"verdict_reason":"A norma trata a continuidade da segurança da informação como algo a ser planejado, documentado e aprovado antes do evento de interrupção. Ela orienta que a organização tenha planos e procedimentos de resposta e de recuperação desenvolvidos e aprovados, detalhando como o evento será gerenciado e como a segurança da informação será mantida em nível predeterminado, tomando por base os objetivos de continuidade aprovados pela direção.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Planos documentados e aprovados de resposta e recuperação","citation":"ABNT NBR ISO/IEC 27002:2013, seção 17.1.2","trap_note":"Documentado, aprovado e com nível predeterminado é a tríade que a norma repete em continuidade. A aprovação pela direção é ponto fixo: item que a dispense ou a transfira para a equipe técnica tende a ser falso."}},{"id":"6ade6cc70500","number":81,"stem":10,"statement":"Em seu mais alto nível, o modelo OWASP SAMM define cinco funções de negócios: governança, design, implementação, verificação e operações.","answer":"C","source":{"slug":"MPO_24","ano":2024},"explanation":{"verdict_reason":"No nível mais alto da sua estrutura, o OWASP SAMM organiza o desenvolvimento seguro em cinco funções de negócio: governança, design, implementação, verificação e operações. Cada uma delas se desdobra em práticas de segurança, que por sua vez são medidas em níveis de maturidade — é essa hierarquia que faz do SAMM um modelo de maturidade de processo, e não uma lista de riscos.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"SAMM: cinco funções de negócio no nível mais alto","citation":"OWASP SAMM","trap_note":"Decore as cinco funções na ordem: governança, design, implementação, verificação e operações. O número cinco e a presença de design são os dois pontos em que a banca mexe."}},{"id":"295ac4dc1807","number":85,"stem":11,"statement":"O armazenamento de credenciais em texto puro no banco de dados é uma prática segura, desde que o acesso ao banco de dados seja bem controlado.","answer":"E","source":{"slug":"TCE_AC_24","ano":2024},"explanation":{"verdict_reason":"Credencial nunca se armazena de forma recuperável. A prática exigida é guardar apenas o resumo criptográfico da senha, com sal e função própria para senha, de modo que nem quem lê o banco recupere o segredo. Controle de acesso ao banco é uma camada adicional, não substituto da cifra: comprometido o banco, o backup ou uma consulta indevida, todas as senhas em texto puro estão perdidas de uma vez.","distortion_type":"inversao","distorted_span":"é uma prática segura, desde que o acesso ao banco de dados seja bem controlado","corrected_statement":"O armazenamento de credenciais em texto puro no banco de dados é uma prática insegura, ainda que o acesso ao banco de dados seja bem controlado.","concept":"Senha se guarda em hash com sal, nunca em texto puro","citation":"OWASP Top 10 (A02:2021 — falhas criptográficas)","trap_note":"A oração condicional desde que é o disfarce mais comum para transformar prática proibida em prática aceitável. Controles compensatórios reduzem risco, mas não convertem armazenamento em claro em prática segura."}},{"id":"8b4f6b84cf7e","number":97,"stem":12,"statement":"Ocorre quebra de autenticação e gerenciamento de sessões quando, por exemplo, um atacante obtém acesso a uma conta bancária, modifica ou exclui informações do sistema ou altera as configurações de segurança, podendo causar perdas financeiras significativas e até mesmo a quebra de confiança da entidade no cliente dono da conta.","answer":"C","source":{"slug":"TCE_AC_24","ano":2024},"explanation":{"verdict_reason":"Quebra de autenticação e de gerenciamento de sessão é exatamente a falha que permite ao atacante assumir a identidade de outro usuário — por senha, chave ou identificador de sessão comprometido. Assumida a conta, ele passa a agir com os poderes do titular: movimenta valores, altera ou apaga informação e mexe em configurações de segurança. O item descreve o efeito típico da categoria e o associa corretamente a ela.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Quebra de autenticação é assumir a identidade da vítima","citation":"OWASP Top 10 (A07:2021 — falhas de identificação e autenticação)","trap_note":"Autenticação responde a quem você é; controle de acesso responde ao que você pode. Se o item fala em roubo de sessão, senha ou chave, é autenticação; se fala em usuário legítimo agindo fora das suas permissões, é controle de acesso."}},{"id":"3ec0652cf604","number":97,"stem":13,"statement":"Aplicar sequências de entradas longas para explorar vulnerabilidades de buffer overflow é um exemplo de teste dinâmico voltado a verificar vulnerabilidades potencialmente exploráveis em um aplicativo em execução.","answer":"C","source":{"slug":"MPO_24","ano":2024},"explanation":{"verdict_reason":"Submeter sequências longas de entrada para provocar estouro de buffer exige a aplicação em execução: o efeito procurado é o comportamento da memória em tempo real, que nenhuma leitura de código produz. Trata-se, portanto, de teste dinâmico, na modalidade de fuzzing, e o objetivo declarado — verificar vulnerabilidade potencialmente explorável em aplicativo em execução — é exatamente o do DAST.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Entradas longas para buffer overflow são teste dinâmico","citation":null,"trap_note":"Se o teste precisa enviar alguma coisa e esperar reação, é dinâmico. Se ele apenas lê o artefato, é estático — e essa pergunta resolve o item sem depender do nome da técnica citada."}},{"id":"53f821aba132","number":98,"stem":12,"statement":"Referências diretas inseguras a objetos, ou IDOR (insecure direct object reference), são vulnerabilidades resultantes de controle de acesso interrompido em aplicativos da Web. Um tipo de ataque é a passagem de diretório, que é a maneira mais simples de explorar uma vulnerabilidade IDOR, bastando simplesmente alterar o valor de um parâmetro na barra de endereço do navegador.","answer":"E","source":{"slug":"TCE_AC_24","ano":2024},"explanation":{"verdict_reason":"A primeira metade define IDOR corretamente. O erro está no nome do ataque: alterar o valor de um parâmetro na barra de endereço é adulteração de URL, e é essa a forma mais simples de explorar uma referência insegura a objetos. Passagem de diretório é outra técnica — manipular o caminho do sistema de arquivos, com sequências como ../, para alcançar arquivos fora do diretório previsto.","distortion_type":"troca_de_termo","distorted_span":"a passagem de diretório, que é a maneira mais simples de explorar uma vulnerabilidade IDOR","corrected_statement":"Referências diretas inseguras a objetos, ou IDOR (insecure direct object reference), são vulnerabilidades resultantes de controle de acesso interrompido em aplicativos da Web. Um tipo de ataque é a adulteração de URL, que é a maneira mais simples de explorar uma vulnerabilidade IDOR, bastando simplesmente alterar o valor de um parâmetro na barra de endereço do navegador.","concept":"Adulteração de URL é a exploração mais simples de IDOR","citation":null,"trap_note":"Quando a descrição não bate com o nome, confie na descrição. Aqui a própria frase entrega o que está sendo feito — alterar um parâmetro na barra de endereço —, e isso é adulteração de URL, não passagem de diretório."}},{"id":"af71cfd5b0c1","number":99,"stem":13,"statement":"O OWASP SAMM, documento de conscientização padrão para desenvolvedores voltado à segurança de aplicações web, descreve os riscos de segurança mais críticos e aponta as principais medidas a serem adotadas pelos desenvolvedores para mitigar esses riscos.","answer":"E","source":{"slug":"MPO_24","ano":2024},"explanation":{"verdict_reason":"A descrição é do OWASP Top 10, que é o documento de conscientização que relaciona os riscos mais críticos e as medidas de mitigação para os desenvolvedores. O SAMM é outra coisa: um modelo de maturidade que avalia e orienta a evolução do processo de desenvolvimento seguro, organizado em cinco funções de negócio — governança, design, implementação, verificação e operações — com práticas e níveis de maturidade.","distortion_type":"troca_de_termo","distorted_span":"O OWASP SAMM","corrected_statement":"O OWASP Top 10, documento de conscientização padrão para desenvolvedores voltado à segurança de aplicações web, descreve os riscos de segurança mais críticos e aponta as principais medidas a serem adotadas pelos desenvolvedores para mitigar esses riscos.","concept":"SAMM é maturidade de processo; Top 10 é lista de riscos","citation":"OWASP SAMM; OWASP Top 10","trap_note":"Top 10 olha o produto e lista riscos; SAMM olha a organização e mede maturidade do processo; ASVS lista requisitos verificáveis. Trocar um pelo outro é o erro institucional mais frequente do tópico."}},{"id":"ea68d25b9edf","number":102,"stem":14,"statement":"SAST (static application security testing), DAST (dynamic application security testing) e SCA (software composition analysis) são técnicas de análise do comportamento dinâmico das aplicações em tempo de execução, com a finalidade de garantir que todos os componentes do software sejam seguros e livres de vulnerabilidades.","answer":"E","source":{"slug":"TRT10_24","ano":2024},"explanation":{"verdict_reason":"Das três técnicas citadas, só o DAST analisa comportamento em tempo de execução. O SAST examina código-fonte, bytecode ou binário sem executar a aplicação, e o SCA nem sequer analisa comportamento: inventaria as dependências de terceiros e as confronta com bases de vulnerabilidades conhecidas. Além disso, nenhuma combinação de ferramentas garante que os componentes estejam livres de vulnerabilidades.","distortion_type":"escopo_ampliado","distorted_span":"são técnicas de análise do comportamento dinâmico das aplicações em tempo de execução","corrected_statement":"SAST (static application security testing), DAST (dynamic application security testing) e SCA (software composition analysis) são técnicas complementares de análise de segurança: a primeira examina o código sem executá-lo, a segunda analisa o comportamento da aplicação em tempo de execução e a terceira verifica os componentes de terceiros utilizados.","concept":"Só o DAST analisa a aplicação em execução","citation":null,"trap_note":"Quando o item enfileira várias siglas e atribui uma única característica a todas, a característica é de uma delas. Aqui a propriedade dinâmica é do DAST e foi esticada sobre SAST e SCA."}},{"id":"dd50512fe15b","number":104,"stem":15,"statement":"O uso de componentes com vulnerabilidades conhecidas é uma das categorias de riscos de segurança do OWASP Top 10 que resulta da desserialização de dados de fontes não confiáveis.","answer":"E","source":{"slug":"TCE_AC_24","ano":2024},"explanation":{"verdict_reason":"O uso de componentes com vulnerabilidades conhecidas é mesmo uma categoria do OWASP Top 10, mas sua causa é outra: empregar biblioteca, framework ou plataforma em versão desatualizada ou com falha já publicada. A desserialização de dados de fontes não confiáveis é categoria distinta, tratada como falha de integridade de software e dados. A causa atribuída não é a que define o risco citado.","distortion_type":"relacao_causal","distorted_span":"que resulta da desserialização de dados de fontes não confiáveis","corrected_statement":"O uso de componentes com vulnerabilidades conhecidas é uma das categorias de riscos de segurança do OWASP Top 10 que resulta do emprego de bibliotecas e plataformas desatualizadas ou com falhas já divulgadas.","concept":"Componentes vulneráveis x desserialização insegura","citation":"OWASP Top 10 (A06:2021 e A08:2021)","trap_note":"A oração explicativa colada a uma categoria verdadeira é o disfarce típico: a primeira metade do item é correta e a causa vem emprestada de outra categoria da mesma lista. Julgue a causa separadamente do nome."}},{"id":"66ec7ce58c63","number":105,"stem":16,"statement":"A análise de vulnerabilidades em aplicações web deve ser realizada apenas durante a fase de desenvolvimento do aplicativo.","answer":"E","source":{"slug":"TCE_AC_24","ano":2024},"explanation":{"verdict_reason":"A análise de vulnerabilidades acompanha todo o ciclo de vida da aplicação e não termina quando o código fica pronto. SAST e SCA atuam no desenvolvimento, DAST e testes de invasão atuam sobre a aplicação já em execução, em homologação e em produção, e a varredura de componentes precisa ser contínua porque uma CVE nova torna vulnerável um componente que ontem estava íntegro. Restringir a análise à fase de desenvolvimento deixa sem cobertura justamente as falhas que só existem em tempo de execução e de configuração.","distortion_type":"generalizacao","distorted_span":"apenas durante a fase de desenvolvimento do aplicativo","corrected_statement":"A análise de vulnerabilidades em aplicações web deve ser realizada de forma contínua, ao longo de todo o ciclo de vida do aplicativo, inclusive após sua entrada em produção.","concept":"Análise de vulnerabilidade é contínua, não só no desenvolvimento","citation":null,"trap_note":"Advérbio de exclusividade — apenas, somente, exclusivamente — amarrando uma prática de segurança a uma única fase do ciclo é quase sempre erro. Segurança de aplicação é distribuída no tempo: cedo o estático, tarde o dinâmico, sempre o inventário de componentes."}},{"id":"c94d89562491","number":105,"stem":15,"statement":"Entre os riscos de segurança incluídos no relatório OWASP Top 10, a quebra de controle de acesso é um ataque contra um aplicativo web que analisa a entrada XML.","answer":"E","source":{"slug":"TCE_AC_24","ano":2024},"explanation":{"verdict_reason":"Ataque contra aplicação que processa entrada XML é o de entidades externas de XML, o XXE, que abusa do processador de XML para ler arquivos do servidor ou alcançar recursos internos. Quebra de controle de acesso é outra categoria: usuário atuando fora das permissões que lhe cabem, independentemente do formato dos dados de entrada.","distortion_type":"troca_de_termo","distorted_span":"a quebra de controle de acesso","corrected_statement":"Entre os riscos de segurança incluídos no relatório OWASP Top 10, a exploração de entidades externas de XML (XXE) é um ataque contra um aplicativo web que analisa a entrada XML.","concept":"Ataque a processador de XML é XXE","citation":"OWASP Top 10 (XXE — A4:2017, absorvido por configuração incorreta em 2021)","trap_note":"Palavras-chave denunciam a categoria: XML remete a XXE; identificador na URL remete a IDOR e controle de acesso; sessão e senha remetem a autenticação; URL buscada pelo servidor remete a SSRF."}},{"id":"c94ea68938c7","number":107,"stem":16,"statement":"A OWASP recomenda que as empresas implementem o OWASP Top 10 como um padrão obrigatório para garantir a segurança de seus aplicativos web.","answer":"E","source":{"slug":"TCE_AC_24","ano":2024},"explanation":{"verdict_reason":"O OWASP Top 10 é, por definição do próprio documento, uma peça de conscientização: a lista dos dez riscos mais críticos de aplicações web, oferecida como ponto de partida. A OWASP não a impõe como padrão obrigatório; o produto que faz esse papel de requisito verificável é o ASVS, e o que mede maturidade de processo é o SAMM. Chamar o Top 10 de padrão obrigatório troca a natureza do documento.","distortion_type":"troca_de_termo","distorted_span":"como um padrão obrigatório","corrected_statement":"A OWASP recomenda que as empresas adotem o OWASP Top 10 como documento de conscientização e ponto de partida para garantir a segurança de seus aplicativos web.","concept":"Top 10 é conscientização; ASVS é o padrão","citation":"OWASP Top 10 (documento de conscientização)","trap_note":"Guarde os quatro produtos da OWASP pelo verbo: o Top 10 você conhece, o ASVS você exige, o SAMM mede como você amadurece, o ZAP é com o que você ataca. A banca troca um pelo outro constantemente."}},{"id":"139883b5cf09","number":107,"stem":17,"statement":"Como exemplo de melhor prática, o OWASP recomenda que os responsáveis por segurança de uma aplicação monitorem continuamente fontes como CVE (common vulnerability and exposures) e NVD (national vulnerability database) em busca de vulnerabilidades nos componentes usados na aplicação.","answer":"C","source":{"slug":"CNJ_24","ano":2024},"explanation":{"verdict_reason":"O componente de terceiros é seguro até o dia em que uma falha nele é publicada — por isso a defesa contra componentes vulneráveis é vigilância continuada, e não uma verificação pontual na escolha da biblioteca. O OWASP recomenda expressamente monitorar de forma contínua fontes como CVE e NVD em busca de vulnerabilidades nos componentes utilizados, complementando o inventário de versões mantido pela análise de composição.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Monitorar CVE e NVD contra componentes vulneráveis","citation":"OWASP Top 10 (A06:2021 — componentes vulneráveis e desatualizados)","trap_note":"CVE e NVD no enunciado apontam para componentes de terceiros e, do lado da ferramenta, para SCA. É a única frente do tópico em que o risco muda sem que uma linha do seu código seja alterada."}},{"id":"3e14866ad38a","number":108,"stem":17,"statement":"Entre os fatores que podem tornar uma aplicação vulnerável estão o sistema operacional, o servidor web/aplicativo, o sistema de gerenciamento de banco de dados (SGBD), as API e todos os componentes, ambientes de tempo de execução e bibliotecas.","answer":"C","source":{"slug":"CNJ_24","ano":2024},"explanation":{"verdict_reason":"A categoria de componentes vulneráveis não se limita às bibliotecas importadas pelo desenvolvedor: ela abrange toda a pilha sobre a qual a aplicação roda. O OWASP enumera justamente sistema operacional, servidor web e de aplicação, sistema de gerenciamento de banco de dados, APIs e todos os componentes, ambientes de tempo de execução e bibliotecas, porque a versão desatualizada de qualquer um deles expõe a aplicação.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Componente vulnerável abrange toda a pilha, não só bibliotecas","citation":"OWASP Top 10 (A06:2021 — componentes vulneráveis e desatualizados)","trap_note":"Aqui a enumeração ampla é o correto, ao contrário do que a intuição de prova sugere. O erro, quando aparece nesta categoria, costuma ser o inverso: restringir a vulnerabilidade às bibliotecas de terceiros."}},{"id":"6b123b24b292","number":116,"stem":18,"statement":"O SSRF (server-side request forgery) só pode ser explorado se o atacante tiver credenciais administrativas no servidor de destino, pois ele depende de permissões elevadas para realizar requisições internas e externas.","answer":"E","source":{"slug":"TRF6_24","ano":2024},"explanation":{"verdict_reason":"No SSRF quem tem privilégio é o servidor, não o atacante. A falha consiste em induzir a aplicação a buscar uma URL escolhida pelo atacante, e a requisição sai com a identidade e a posição de rede do próprio servidor — é justamente por isso que ela alcança recursos internos que o atacante jamais alcançaria de fora. A exploração não exige credencial administrativa alguma; basta um campo que aceite uma URL sem validação.","distortion_type":"generalizacao","distorted_span":"só pode ser explorado se o atacante tiver credenciais administrativas no servidor de destino","corrected_statement":"O SSRF (server-side request forgery) pode ser explorado sem que o atacante tenha credenciais no servidor, pois é a própria aplicação, com seus privilégios de rede, que realiza a requisição interna ou externa.","concept":"SSRF usa o privilégio do servidor, não o do atacante","citation":"OWASP Top 10 (A10:2021 — SSRF)","trap_note":"Construções do tipo só ocorre se, só é explorável quando, depende necessariamente de são gatilho de erro em vulnerabilidade web. A maioria das falhas do Top 10 é explorável por usuário anônimo ou comum — exigir privilégio prévio costuma ser invenção do item."}},{"id":"2b25c51c1088","number":119,"stem":19,"statement":"OWASP Top 10 é uma lista de recomendações de segurança que se restringe à listagem das vulnerabilidades de encontradas em sistemas operacionais.","answer":"E","source":{"slug":"STJ_24","ano":2024},"explanation":{"verdict_reason":"O escopo do OWASP Top 10 é a segurança de aplicações web: ele lista os dez riscos mais críticos desse domínio, como quebra de controle de acesso, falhas criptográficas e injeção. Vulnerabilidade de sistema operacional não é o objeto da lista — quando o sistema operacional aparece, é como um dos componentes cuja configuração ou versão pode tornar a aplicação vulnerável, e não como tema da relação.","distortion_type":"troca_de_termo","distorted_span":"se restringe à listagem das vulnerabilidades de encontradas em sistemas operacionais","corrected_statement":"OWASP Top 10 é uma lista de recomendações de segurança que apresenta os riscos mais críticos encontrados em aplicações web.","concept":"O Top 10 trata de riscos de aplicações web","citation":"OWASP Top 10","trap_note":"Guarde o domínio de cada lista: OWASP Top 10 é aplicação web; CVE e NVD são vulnerabilidades de produtos em geral; CWE é tipo de fraqueza de software. Trocar o domínio é um erro barato de fabricar e fácil de reconhecer."}},{"id":"5e9392a8328a","number":60,"stem":20,"statement":"De acordo com o princípio de clean code, o uso de polimorfismo deve ser evitado, uma vez que esse método dificulta o entendimento e, consequentemente, a manutenção do código.","answer":"E","source":{"slug":"CNMP_23","ano":2023},"explanation":{"verdict_reason":"O clean code recomenda o oposto: substituir cadeias de condicionais e comandos de seleção por polimorfismo, porque a estrutura condicional repetida espalha a mesma decisão por todo o sistema e obriga a alterar vários pontos a cada novo caso. O polimorfismo concentra a variação em um lugar e é apresentado como ferramenta de legibilidade e de manutenção, não como obstáculo a elas.","distortion_type":"inversao","distorted_span":"o uso de polimorfismo deve ser evitado","corrected_statement":"De acordo com o princípio de clean code, o uso de polimorfismo deve ser preferido às cadeias de condicionais, uma vez que esse recurso facilita o entendimento e, consequentemente, a manutenção do código.","concept":"Clean code prefere polimorfismo a cadeias de condicionais","citation":null,"trap_note":"Em itens de clean code, a banca costuma pegar uma recomendação real e inverter o sinal. Antes de julgar, pergunte se a prática citada aumenta ou diminui a repetição e o acoplamento: se diminui, o clean code a recomenda."}},{"id":"d9442dbe6c5e","number":61,"stem":20,"statement":"Uma questão levantada pela ferramenta SonarQube pode ser classificada como wont fix se essa questão resultar de uma avaliação equivocada feita pela ferramenta.","answer":"E","source":{"slug":"CNMP_23","ano":2023},"explanation":{"verdict_reason":"São duas resoluções distintas no SonarQube. Falso positivo é a marcação para quando a ferramenta se enganou e o problema apontado não existe. Won't fix serve para o caso oposto: a questão é real e válida, mas a equipe decide conviver com ela e não corrigi-la. Avaliação equivocada da ferramenta leva a falso positivo.","distortion_type":"troca_de_termo","distorted_span":"classificada como wont fix","corrected_statement":"Uma questão levantada pela ferramenta SonarQube pode ser classificada como falso positivo se essa questão resultar de uma avaliação equivocada feita pela ferramenta.","concept":"SonarQube: falso positivo x won't fix","citation":null,"trap_note":"Pares de rótulos vizinhos dentro de uma mesma ferramenta são alvo fácil. Separe pela pergunta: o problema existe? Se não existe, é falso positivo; se existe e não será corrigido, é won't fix."}},{"id":"e21e5d8428bd","number":67,"stem":21,"statement":"Fuzzing é um tipo de teste de prevenção de ataques que consiste na inserção de poucos dados não aleatórios em uma aplicação web com a expectativa de se obter um código de erro 500.","answer":"E","source":{"slug":"BCB_24","ano":2023},"explanation":{"verdict_reason":"Fuzzing é o contrário do descrito em volume e em natureza dos dados: submete grandes quantidades de entradas inválidas, inesperadas ou aleatórias aos mecanismos de entrada da aplicação, justamente para provocar comportamento não previsto. É uma técnica dinâmica de descoberta de falhas, executada contra a aplicação em funcionamento, e não um mecanismo de prevenção de ataques.","distortion_type":"inversao","distorted_span":"inserção de poucos dados não aleatórios","corrected_statement":"Fuzzing é um tipo de teste dinâmico que consiste na inserção de grandes volumes de dados inválidos ou aleatórios em uma aplicação web com a expectativa de se obter um código de erro 500.","concept":"Fuzzing injeta muitos dados aleatórios e inválidos","citation":null,"trap_note":"A propriedade definidora do fuzzing é o volume de entrada aleatória e malformada. Qualquer item que fale em poucas entradas, entradas válidas ou entradas previamente conhecidas está descrevendo outra coisa."}},{"id":"3aeedac8b988","number":86,"stem":22,"statement":"O processo de análise estática envolve a identificação de problemas na sintaxe do código-fonte.","answer":"C","source":{"slug":"DATAPREV_23","ano":2023},"explanation":{"verdict_reason":"A análise estática examina o texto do programa sem executá-lo, e a primeira camada desse exame é estrutural: verificar se o código está bem formado segundo a gramática da linguagem. A partir daí ela avança para padrões de codificação, complexidade, duplicação e fluxo de dados, mas a identificação de problemas de sintaxe é parte legítima do processo.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Análise estática verifica sintaxe e padrões sem executar","citation":null,"trap_note":"Não confunda o que a estática consegue ver com o que ela consegue provar. Sintaxe, padrão e fluxo de dados ela vê; se aquele caminho é alcançável em produção, ela não sabe — daí o falso positivo."}},{"id":"53f5e3cda29b","number":87,"stem":23,"statement":"Na análise dinâmica, é possível revisar todo o código-fonte sem a necessidade de execução do software.","answer":"E","source":{"slug":"DATAPREV_23","ano":2023},"explanation":{"verdict_reason":"Revisar o código-fonte sem executar o software é a definição de análise estática. A análise dinâmica exige o oposto: o programa em execução, para observar comportamento, consumo, respostas e exceções em tempo real — e por isso só alcança os caminhos que a execução efetivamente percorre, não todo o código.","distortion_type":"troca_de_termo","distorted_span":"Na análise dinâmica","corrected_statement":"Na análise estática, é possível revisar todo o código-fonte sem a necessidade de execução do software.","concept":"Estática revisa sem executar; dinâmica exige execução","citation":null,"trap_note":"Descrição correta assinada com o nome do vizinho é o formato mais comum do tópico. Decida pela pergunta o software está rodando? — se não está, é estática, qualquer que seja o nome que o item deu."}},{"id":"dfb0eb19b43e","number":88,"stem":23,"statement":"Durante a análise dinâmica, é possível identificar exceções que não foram tratadas.","answer":"C","source":{"slug":"DATAPREV_23","ano":2023},"explanation":{"verdict_reason":"Exceção não tratada é um evento de tempo de execução: ela só se manifesta quando o fluxo real atinge a condição não prevista e nada a captura. A análise dinâmica, que observa o programa em funcionamento sob entradas variadas, é precisamente o que expõe esse comportamento — e é o que o fuzzing procura provocar de forma sistemática.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Análise dinâmica revela exceções não tratadas","citation":null,"trap_note":"Defeito que só existe enquanto o programa roda — exceção não tratada, vazamento de memória, condição de corrida, estouro de buffer explorável — é território da análise dinâmica. Defeito visível no texto do programa é da estática."}},{"id":"e90f190c821c","number":89,"stem":24,"statement":"Security misconfiguration indica que a aplicação pode estar vulnerável devido à utilização de contas e senhas default que estão habilitadas e ainda não foram alteradas.","answer":"C","source":{"slug":"DATAPREV_23","ano":2023},"explanation":{"verdict_reason":"Conta e senha padrão que permanecem habilitadas após a instalação são o exemplo canônico de configuração incorreta de segurança: nada foi programado de errado, o que falhou foi o endurecimento do ambiente. A categoria reúne os defeitos de configuração em qualquer nível da pilha — servidor, aplicação, banco, nuvem —, e credenciais padrão estão expressamente entre eles.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Contas e senhas padrão são configuração incorreta","citation":"OWASP Top 10 (A05:2021 — configuração incorreta de segurança)","trap_note":"Pergunte se o defeito está no código ou na forma como o ambiente foi ajustado. Senha padrão, diretório listável, mensagem de erro detalhada e serviço desnecessário habilitado são configuração, não programação."}},{"id":"14456f386b9b","number":90,"stem":25,"statement":"Aplica-se a abordagem de teste de penetração BlackBox quando o grupo de teste não possui nenhuma informação real sobre o alvo e, nesse caso, deve-se começar com a coleta de informações.","answer":"C","source":{"slug":"DATAPREV_23","ano":2023},"explanation":{"verdict_reason":"No pentest de caixa preta o testador não recebe informação prévia sobre o alvo, para simular o atacante externo real. Como ele parte do zero, a primeira etapa é necessariamente a coleta de informações — reconhecimento e varredura —, que constrói o conhecimento sobre a superfície de ataque que na caixa branca já teria sido entregue de antemão.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Caixa preta parte do zero e começa por coleta de informações","citation":null,"trap_note":"A quantidade de informação entregue define o tipo: nenhuma é caixa preta, parcial é caixa cinza, completa é caixa branca. Quanto menos informação, mais tempo o teste gasta em reconhecimento e menor a cobertura alcançada."}},{"id":"5a2f2ad596c2","number":91,"stem":24,"statement":"Cryptographic failures tem como diretiva de prevenção bloquear o acesso a recursos internos de um ambiente, exceto aos recursos que realmente necessitem ser públicos, como websites disponíveis para a Internet.","answer":"E","source":{"slug":"DATAPREV_23","ano":2023},"explanation":{"verdict_reason":"A medida descrita é real, mas pertence a outra categoria: restringir o alcance a recursos internos, deixando públicos apenas os que precisam ser, é controle de exposição de rede e de configuração, associado à prevenção de SSRF e ao endurecimento do ambiente. As diretivas de prevenção de falhas criptográficas são outras — classificar o dado, não armazenar o que é sensível sem necessidade, cifrar em trânsito e em repouso, usar algoritmos fortes e atualizados, aplicar hash com sal em senhas e gerir chaves adequadamente.","distortion_type":"atribuicao_errada","distorted_span":"bloquear o acesso a recursos internos de um ambiente, exceto aos recursos que realmente necessitem ser públicos","corrected_statement":"Cryptographic failures tem como diretiva de prevenção cifrar os dados sensíveis em trânsito e em repouso, com algoritmos fortes e gestão adequada de chaves.","concept":"Prevenção de falhas criptográficas é cifra, não exposição de rede","citation":"OWASP Top 10 (A02:2021 — falhas criptográficas)","trap_note":"Nos itens de Top 10 a prevenção citada quase sempre é verdadeira; o erro está no nome da categoria a que ela foi atribuída. Pergunte de que problema aquela medida protege antes de aceitar a etiqueta."}},{"id":"c572310830be","number":92,"stem":25,"statement":"Um teste de conhecimento pode ser escolhido se o objetivo for testar um novo tipo de ataque ou mesmo se a equipe quiser focar em um host específico da empresa.","answer":"E","source":{"slug":"DATAPREV_23","ano":2023},"explanation":{"verdict_reason":"A situação descrita — provar um tipo novo de ataque ou concentrar o esforço em um host específico — corresponde ao teste direcionado, em que o testador e a equipe interna atuam de forma combinada sobre um alvo previamente definido. Teste de conhecimento não é uma das modalidades de teste de invasão: as classificações usuais são por informação disponível (caixa preta, branca e cinza), por ciência da equipe de defesa (cego e duplo-cego) e por posição do testador (externo e interno).","distortion_type":"troca_de_termo","distorted_span":"Um teste de conhecimento","corrected_statement":"Um teste direcionado pode ser escolhido se o objetivo for testar um novo tipo de ataque ou mesmo se a equipe quiser focar em um host específico da empresa.","concept":"Teste direcionado: alvo definido, equipes atuando juntas","citation":null,"trap_note":"Alvo restrito e objetivo específico apontam para teste direcionado; ausência de informação aponta para caixa preta; desconhecimento da equipe de defesa aponta para duplo-cego. Nome de modalidade que você nunca viu na taxonomia é sinal de termo fabricado."}},{"id":"4a2330df00b9","number":96,"stem":26,"statement":"Uma das diferenças entre DAST e SAST é que enquanto o primeiro é uma abordagem de caixa preta, sem acesso ao código-fonte, o outro, é uma abordagem de caixa branca, que analisa o código fonte durante a fase de desenvolvimento.","answer":"C","source":{"slug":"DATAPREV_23","ano":2023},"explanation":{"verdict_reason":"É exatamente a divisão que define as duas técnicas. O DAST trata a aplicação em execução como caixa preta: envia requisições e observa respostas, sem qualquer acesso ao código. O SAST é caixa branca: percorre o código-fonte durante o desenvolvimento, sem executar o software, e por isso aponta arquivo e linha do defeito.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"DAST é caixa preta; SAST é caixa branca","citation":null,"trap_note":"Este é o eixo do tópico inteiro: SAST lê o código sem executar, DAST ataca a execução sem ver o código, IAST instrumenta e faz as duas e SCA olha as dependências. A banca troca caixa branca por caixa preta entre eles com frequência."}},{"id":"f69d972f713e","number":112,"stem":27,"statement":"De acordo com o descrito para Insecure Design, um design inseguro não pode ser corrigido por uma implementação perfeita, sendo a falta de um perfil de risco empresarial inerente ao software que está sendo desenvolvido um dos fatores que contribuem para um design inseguro.","answer":"C","source":{"slug":"INPI_23","ano":2023},"explanation":{"verdict_reason":"O design inseguro é a categoria dos defeitos que nascem antes da codificação, na ausência de controles projetados. Por isso o documento afirma que um design inseguro não pode ser corrigido por uma implementação perfeita: se o controle nunca foi previsto, não há como escrevê-lo bem. Entre as causas apontadas está exatamente a falta de perfil de risco de negócio do software em desenvolvimento, que é o que dispensaria a equipe de saber que nível de proteção aquele produto exige.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Design inseguro não se corrige com boa implementação","citation":"OWASP Top 10 (A04:2021 — design inseguro)","trap_note":"Separe design inseguro de implementação insegura: o primeiro é controle que não foi previsto, o segundo é controle previsto e mal escrito. Modelagem de ameaças e padrões de projeto seguros atacam o primeiro; revisão de código ataca o segundo."}},{"id":"7bcd9d1fde7b","number":113,"stem":27,"statement":"Quando explorado, o Broken Access Control permite a violação do princípio de menor privilégio, situação em que o acesso que deveria ser concedido para usuários específicos fica disponível para qualquer pessoa.","answer":"C","source":{"slug":"INPI_23","ano":2023},"explanation":{"verdict_reason":"O controle de acesso existe para que cada usuário atue somente dentro das permissões que lhe cabem, o que é a tradução operacional do princípio do menor privilégio. Quando ele é quebrado, o acesso que deveria ficar restrito a determinados perfis passa a ser obtido por quem não deveria tê-lo — inclusive por usuário anônimo. É essa violação que o OWASP descreve na categoria.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Quebra de controle de acesso viola o menor privilégio","citation":"OWASP Top 10 (A01:2021 — quebra de controle de acesso)","trap_note":"Menor privilégio, negar por padrão e verificar no servidor são as três formulações da mesma ideia. Sempre que o item ligar controle de acesso a uma delas, o encaixe tende a estar correto."}},{"id":"f549136e8f27","number":64,"stem":28,"statement":"O SonarQube armazena todos os dados das análises feitas em um projeto, a fim de que seja possível ter a informação a respeito da saúde do projeto ao longo do tempo.","answer":"E","source":{"slug":"PGE_RJ_22","ano":2022},"explanation":{"verdict_reason":"O SonarQube de fato mantém histórico para acompanhar a evolução do projeto, mas não guarda todos os dados de todas as análises: ele executa uma rotina de limpeza que consolida os instantâneos antigos e descarta o excedente, mantendo apenas parte deles por dia, por semana e por mês, além de remover questões encerradas após determinado período. O propósito descrito no item é correto; a afirmação de retenção integral é que não se sustenta.","distortion_type":"generalizacao","distorted_span":"armazena todos os dados das análises feitas em um projeto","corrected_statement":"O SonarQube armazena um histórico das análises feitas em um projeto, submetido a rotinas de limpeza, a fim de que seja possível ter a informação a respeito da saúde do projeto ao longo do tempo.","concept":"SonarQube mantém histórico, sujeito a limpeza automática","citation":null,"trap_note":"Todo, todos, integralmente e indefinidamente aplicados a retenção de dados de ferramenta são bandeira vermelha. Produto que acumula série histórica quase sempre tem política de expurgo, e é nela que a banca apoia o erro."}},{"id":"0ab0fcd3d145","number":69,"stem":29,"statement":"De modo a prevenir falhas de injeção de dados maliciosos, recomenda-se não usar, para o transporte de dados confidenciais, protocolos legados, como FTP e SMTP.","answer":"E","source":{"slug":"BANRISUL_22","ano":2022},"explanation":{"verdict_reason":"A recomendação em si é correta, mas pertence a outra categoria: abandonar protocolos legados como FTP e SMTP no transporte de dados confidenciais é medida contra exposição de dados sensíveis, ou seja, contra falhas criptográficas, porque esses protocolos trafegam sem cifra. A prevenção de injeção é outra: consulta parametrizada, validação da entrada no lado do servidor, escape de caracteres especiais e limitação do volume retornado.","distortion_type":"atribuicao_errada","distorted_span":"De modo a prevenir falhas de injeção de dados maliciosos","corrected_statement":"De modo a prevenir a exposição de dados sensíveis, recomenda-se não usar, para o transporte de dados confidenciais, protocolos legados, como FTP e SMTP.","concept":"Protocolo legado sem cifra é falha criptográfica, não injeção","citation":"OWASP Top 10 (A02:2021 — falhas criptográficas)","trap_note":"O padrão é descrever uma prevenção verdadeira e assiná-la com a categoria errada do Top 10. Pergunte de que problema aquela medida protege: se protege o dado em trânsito, é criptografia; se filtra a entrada antes do interpretador, é injeção."}},{"id":"1df87f3111dc","number":64,"stem":30,"statement":"Quanto aos riscos de segurança derivados da exposição de dados sensíveis contidos na lista OWASP Top 10, é recomendável que o tráfego de dados confidenciais seja criptografado e que o seu armazenamento interno seja feito sem criptografia, de modo a viabilizar as funções de auditoria dos sistemas.","answer":"E","source":{"slug":"SERPRO_21","ano":2021},"explanation":{"verdict_reason":"A proteção de dados sensíveis exige cifra em trânsito e também em repouso: dado confidencial armazenado sem criptografia fica exposto a qualquer acesso indevido ao banco, ao backup ou à mídia. Auditoria não depende de dado em claro — ela se apoia em registros de acesso e trilhas, e a cifra em repouso não a impede. A justificativa oferecida não sustenta a dispensa da criptografia no armazenamento.","distortion_type":"inversao","distorted_span":"o seu armazenamento interno seja feito sem criptografia","corrected_statement":"Quanto aos riscos de segurança derivados da exposição de dados sensíveis contidos na lista OWASP Top 10, é recomendável que o tráfego de dados confidenciais seja criptografado e que o seu armazenamento interno também seja criptografado.","concept":"Dado sensível se cifra em trânsito e em repouso","citation":"OWASP Top 10 (A02:2021 — falhas criptográficas)","trap_note":"Metade certa mais metade invertida é o formato preferido da banca em criptografia. Leia o item até o fim: quase sempre o trânsito aparece protegido para dar credibilidade e o repouso é onde se instala o erro."}},{"id":"558677e6f327","number":132,"stem":31,"statement":"Códigos de verificação de um sistema de autenticação de dois fatores podem ser enviados por email ou gerados por um aplicativo autenticador instalado no dispositivo móvel do usuário.","answer":"C","source":{"slug":"SEFAZ_CE_21","ano":2021},"explanation":{"verdict_reason":"O segundo fator de autenticação é algo que o usuário possui, e esse fator pode ser materializado de várias formas: código enviado por mensagem ou por correio eletrônico, código gerado por aplicativo autenticador no dispositivo móvel, token físico ou chave de segurança. As duas formas citadas são usos correntes e legítimos do segundo fator.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Segundo fator: código enviado ou gerado por autenticador","citation":null,"trap_note":"Item que apenas enumera formas possíveis de um mecanismo tende a ser correto; o erro costuma aparecer quando o enunciado transforma a enumeração em exclusividade — apenas por SMS, somente por aplicativo."}},{"id":"cd07f33218d9","number":133,"stem":31,"statement":"A inadequada configuração de segurança, um dos riscos da OWASP Top 10, pode ocorrer em qualquer nível de serviço de uma aplicação; em razão disso, o uso de scanners e testes automatizados é ineficaz na tarefa de detectar falhas de configuração.","answer":"E","source":{"slug":"SEFAZ_CE_21","ano":2021},"explanation":{"verdict_reason":"A primeira metade está certa: a configuração incorreta de segurança pode ocorrer em qualquer nível da pilha, do sistema operacional ao servidor de aplicação, ao SGBD e aos serviços em nuvem. A conclusão é que inverte a realidade: é exatamente essa categoria em que a varredura automatizada rende mais, porque conta padrão, serviço desnecessário habilitado, diretório listável e cabeçalho ausente são detectáveis por assinatura. O próprio OWASP recomenda processos automatizados de verificação de configuração.","distortion_type":"inversao","distorted_span":"o uso de scanners e testes automatizados é ineficaz na tarefa de detectar falhas de configuração","corrected_statement":"A inadequada configuração de segurança, um dos riscos da OWASP Top 10, pode ocorrer em qualquer nível de serviço de uma aplicação; em razão disso, o uso de scanners e testes automatizados é recomendado na tarefa de detectar falhas de configuração.","concept":"Configuração incorreta é detectável por varredura automatizada","citation":"OWASP Top 10 (A05:2021 — configuração incorreta de segurança)","trap_note":"Inverta a lógica do item: automação acha bem o que é padrão e repetitivo — configuração, componente desatualizado, injeção. O que a automação não acha é falha de lógica de negócio e controle de acesso quebrado, e é aí que entra o teste manual."}},{"id":"e6b1980dd92b","number":64,"stem":32,"statement":"SonarQube, usando o Jenkins, pode realizar análises em branches de códigos PHP e Java, e o resultado dessa análise pode avaliar problemas de qualidade tais como bug, vulnerabilidade e code smell.","answer":"C","source":{"slug":"DPDF_20_ANALISTA","ano":2020},"explanation":{"verdict_reason":"O SonarQube é analisador estático multilinguagem e se integra a orquestradores de integração contínua, entre eles o Jenkins, que dispara a varredura a cada build, inclusive por branch. O resultado é apresentado nas três classificações da ferramenta: bug, vulnerabilidade e code smell. Tanto PHP quanto Java estão entre as linguagens suportadas.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"SonarQube: análise por branch, integrado ao Jenkins","citation":null,"trap_note":"As três classificações do SonarQube são bug, vulnerabilidade e code smell — defeito de funcionamento, defeito de segurança e defeito de manutenibilidade. Item que acrescente ou substitua uma delas costuma ser onde mora o erro."}},{"id":"4628422e15f7","number":81,"stem":33,"statement":"Para que um teste de invasão leve informações úteis à segurança de uma aplicação web, é importante que tal aplicação esteja em um estágio avançado no seu ciclo de desenvolvimento.","answer":"C","source":{"slug":"FUB_18","ano":2018},"explanation":{"verdict_reason":"O teste de invasão ataca a aplicação em funcionamento: precisa de funcionalidades implementadas, ambiente configurado e fluxos completos para que a exploração diga alguma coisa. Aplicado cedo demais, encontra pouco e o achado envelhece antes da entrega, porque o que foi testado ainda vai mudar. O que se antecipa no ciclo é a análise estática e a de composição; o pentest pede maturidade do produto.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Pentest exige aplicação em estágio avançado do ciclo","citation":null,"trap_note":"Separe o que vai para o começo do ciclo do que vai para o fim: SAST e SCA são shift-left; DAST e pentest precisam de sistema pronto para ser atacado. Item que inverta esse posicionamento é falso."}},{"id":"7d4786b3db65","number":97,"stem":34,"statement":"No OWASP ZAP, o active scan pode ser utilizado para varrer vulnerabilidades como quebra de controle de acesso a aplicações web.","answer":"E","source":{"slug":"STJ_18","ano":2018},"explanation":{"verdict_reason":"A varredura ativa do ZAP procura vulnerabilidades enviando ataques conhecidos e comparando as respostas com padrões esperados, o que funciona para falhas técnicas como injeção e problemas de configuração. Vulnerabilidade lógica não tem assinatura: a documentação da ferramenta registra expressamente que falhas como quebra de controle de acesso não são encontradas por varredura ativa nem por qualquer varredura automatizada, exigindo teste de invasão manual.","distortion_type":"escopo_ampliado","distorted_span":"para varrer vulnerabilidades como quebra de controle de acesso a aplicações web","corrected_statement":"No OWASP ZAP, o active scan pode ser utilizado para varrer vulnerabilidades técnicas, como injeção e erros de configuração, mas não encontra falhas lógicas, como quebra de controle de acesso.","concept":"Varredura automatizada não acha falha lógica","citation":"Documentação do OWASP ZAP (Active Scan)","trap_note":"Guarde a fronteira da automação: ela acha injeção, componente desatualizado e erro de configuração; não acha lógica de negócio nem controle de acesso quebrado. É exatamente essa lacuna que justifica o pentest manual."}},{"id":"2769d40f9433","number":60,"stem":35,"statement":"Quando a autenticação e o gerenciamento da sessão de aplicação não são feitos corretamente, ocorre o ataque de referência insegura a objetos, por meio do qual o atacante, ao assumir a identidade da vítima, compromete senhas, chaves e sessões web.","answer":"E","source":{"slug":"TCE_PA_16","ano":2016},"explanation":{"verdict_reason":"A consequência descrita — o atacante assumir a identidade da vítima comprometendo senhas, chaves e sessões — é o efeito da quebra de autenticação e de gerenciamento de sessão, e não da referência insegura a objetos. Esta última é uma falha de autorização: o usuário continua sendo ele mesmo, mas alcança registros de outros por manipulação de identificador. A causa apontada no início do item confirma a categoria certa.","distortion_type":"troca_de_termo","distorted_span":"o ataque de referência insegura a objetos","corrected_statement":"Quando a autenticação e o gerenciamento da sessão de aplicação não são feitos corretamente, ocorre a quebra de autenticação, por meio da qual o atacante, ao assumir a identidade da vítima, compromete senhas, chaves e sessões web.","concept":"Falha de sessão gera quebra de autenticação, não IDOR","citation":"OWASP Top 10 (A07:2021 — falhas de identificação e autenticação)","trap_note":"Quando o item já nomeia a causa, ela decide a categoria: falha de autenticação e de sessão leva a quebra de autenticação; falha de verificação de autorização leva a quebra de controle de acesso, gênero do qual o IDOR é espécie."}},{"id":"140a2676df49","number":65,"stem":36,"statement":"A técnica de fuzzing do OWASP ZAP fornece entradas não válidas para qualquer tipo de mecanismo de entrada.","answer":"C","source":{"slug":"TCE_PA_16","ano":2016},"explanation":{"verdict_reason":"O fuzzer do OWASP ZAP submete cargas inválidas, inesperadas ou aleatórias aos pontos de entrada da aplicação para provocar comportamento não previsto. Ele não se restringe a campos de formulário: pode ser aplicado a qualquer mecanismo de entrada alcançado pela requisição — parâmetros de URL, cabeçalhos, cookies e corpo —, bastando marcar o ponto a ser fuzzado.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Fuzzing do ZAP envia entradas inválidas a qualquer entrada","citation":"Documentação do OWASP ZAP (Fuzzer)","trap_note":"O ZAP tem três modos que a banca mistura: varredura passiva só observa o tráfego, varredura ativa ataca com requisições conhecidas e o fuzzer bombardeia um ponto escolhido com entradas malformadas."}},{"id":"eeae0320ca30","number":78,"stem":37,"statement":"Por padrão, um WAF (web application firewall) é capaz de utilizar as camadas de rede, de transporte e de aplicação da pilha TCP/IP.","answer":"E","source":{"slug":"TCE_PA_16","ano":2016},"explanation":{"verdict_reason":"O WAF é, por definição, um filtro de camada de aplicação: ele entende HTTP, analisa URL, cabeçalhos, parâmetros, cookies e corpo da requisição, e é isso que o distingue do firewall tradicional. Quem trabalha com endereço e porta, nas camadas de rede e de transporte, é o firewall de pacotes. Estender a atuação padrão do WAF às três camadas apaga justamente a diferença que define o equipamento.","distortion_type":"escopo_ampliado","distorted_span":"as camadas de rede, de transporte e de aplicação","corrected_statement":"Por padrão, um WAF (web application firewall) atua na camada de aplicação da pilha TCP/IP.","concept":"WAF opera na camada de aplicação","citation":null,"trap_note":"Camada define o equipamento: filtro de pacotes em rede e transporte, WAF em aplicação. Item que dá ao WAF alcance sobre as camadas inferiores, ou que coloca o firewall tradicional inspecionando conteúdo HTTP, inverte essa divisão."}},{"id":"f1b0ca230ccb","number":94,"stem":38,"statement":"A ferramenta SonarQube permite analisar a qualidade dos códigos-fontes que envolvem linguagens de computador e de dispositivos móveis e abrange categorias como padrões de codificação, testes e identificação de erros.","answer":"C","source":{"slug":"TCE_PA_16","ano":2016},"explanation":{"verdict_reason":"O SonarQube é uma plataforma de análise estática multilinguagem: cobre desde linguagens de uso geral até as empregadas em desenvolvimento móvel, por meio de analisadores específicos. As regras que ele aplica não se limitam a um tipo de defeito — abrangem conformidade com padrões de codificação, cobertura e resultados de testes e identificação de erros, classificados como bug, vulnerabilidade e code smell.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"SonarQube é análise estática multilinguagem de qualidade","citation":null,"trap_note":"Não reduza o SonarQube a ferramenta de segurança: ele mede qualidade em sentido amplo, e a vulnerabilidade é apenas uma das três classificações. O erro típico nesses itens é estreitar o escopo ou trocar estático por dinâmico."}},{"id":"acb81c5bf9fa","number":95,"stem":38,"statement":"De acordo com as práticas de clean code, comentários em um código-fonte servem para compensar um código mal escrito, devendo, portanto, ser evitados.","answer":"E","source":{"slug":"TCE_PA_16","ano":2016},"explanation":{"verdict_reason":"O clean code sustenta exatamente o contrário do que o item apresenta como premissa: comentários não compensam código mal escrito. Quando o trecho está confuso, a resposta prescrita é reescrevê-lo com nomes e estrutura que o expliquem sozinho, não anexar uma explicação. O conselho de evitar comentários existe, mas decorre da falha em se expressar no próprio código — não da função de remendar código ruim.","distortion_type":"inversao","distorted_span":"comentários em um código-fonte servem para compensar um código mal escrito","corrected_statement":"De acordo com as práticas de clean code, comentários em um código-fonte não compensam um código mal escrito, devendo este ser reescrito de modo a dispensá-los.","concept":"Comentário não compensa código ruim; reescreva o código","citation":null,"trap_note":"O clean code trata comentário como falha de expressão, não como recurso de reparo. Item que atribua ao comentário a função de suprir código obscuro inverte a premissa, mesmo quando a conclusão que ele tira parece familiar."}},{"id":"fb952dd8e6ce","number":97,"stem":38,"statement":"As práticas de clean code recomendam que as funções tenham, no máximo, vinte linhas, e até dois níveis de indentação.","answer":"C","source":{"slug":"TCE_PA_16","ano":2016},"explanation":{"verdict_reason":"A recomendação de funções curtas é um dos pontos mais explícitos do clean code: função dificilmente deve chegar a vinte linhas, e o nível de indentação não deve passar de um ou dois. A razão é a mesma nos dois casos — cada nível a mais de aninhamento e cada bloco a mais indicam que a função está fazendo mais de uma coisa e deveria ser extraída em outras funções.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Clean code: funções curtas e pouca indentação","citation":null,"trap_note":"Os números do clean code caem como números: até vinte linhas e dois níveis de indentação. Quando o item mexer nesses valores, é numero_errado; quando mexer na justificativa, costuma ser inversão."}},{"id":"7a894c27836e","number":112,"stem":39,"statement":"O módulo ModSecurity do servidor web Apache oferece proteção contra ataques direcionados a aplicações web e permite o monitoramento e a análise do tráfego HTTP em tempo real, com reduzida ou nenhuma alteração de infraestrutura.","answer":"C","source":{"slug":"TCE_PA_16","ano":2016},"explanation":{"verdict_reason":"O ModSecurity é um firewall de aplicação web implementado como módulo do servidor: carregado dentro do Apache, inspeciona as requisições e respostas HTTP em tempo real e bloqueia ou registra o que casa com suas regras. Por rodar embutido no servidor que já atende a aplicação, dispensa reposicionamento de equipamento ou redesenho de topologia — daí a alteração de infraestrutura reduzida ou nula.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"ModSecurity: WAF embutido no Apache, em tempo real","citation":null,"trap_note":"WAF pode ser módulo do servidor, appliance à frente da aplicação ou serviço em nuvem. Qualquer que seja a forma, o que ele faz é inspecionar HTTP na camada de aplicação — ele mitiga a exploração, mas não corrige o defeito no código."}}]}