# data[].attributes.body
CWE-117 Improper Output Neutralization for Logs

CWE-223 Omission of Security-relevant Information

CWE-532 Insertion of Sensitive Information into Log File

CWE-778 Insufficient Logging

# data[].attributes.body
Garantir toda a validação de login, controle de acesso e entrada do lado do servidor falhas podem ser registradas com contexto de usuário suficiente para identificar contas suspeitas ou maliciosas e mantidas por tempo suficiente para permitir análise de acessos quando ocorrer um evento indesejado.

Certificar que os logs sejam feitos em um formato de facil gerenciamento.

Garantir que os dados de log estejam codificados corretamente para evitar injeções ou ataques aos sistemas de registro ou monitoramento.

Garantir que as transações de alto valor tenham uma trilha de auditoria com integridade controles para evitar adulteração ou exclusão, como somente anexo tabelas de banco de dados ou similares.

As equipes de DevSecOps devem estabelecer monitoramento e alerta efetivos de modo que atividades suspeitas sejam detectadas e respondidas a Rapidamente.

Estabelecer ou adotar um plano de resposta e recuperação de incidentes, como Instituto Nacional de Padrões e Tecnologia (NIST) 800-61r2 ou posterior.

# data[].attributes.body
Afeta :

Integridade
Confidencialidade
Disponibilidade
Não-repúdio

invasor pode inserir entradas falsas no arquivo de log

Arquivos de log forjados ou corrompidos podem ser usados para cobrir os rastros de um invasor

o invasor pode tornar o arquivo inutilizável corrompendo o formato do arquivo ou injetando caracteres inesperados

# data[].attributes.body
Uma grande companhia aérea indiana teve uma violação de dados envolvendo mais de dez anos de dados pessoais de milhões de passageiros, incluindo dados de passaporte e cartão de crédito. A violação de dados ocorreu em um fornecedor de hospedagem de nuvem terceirizado, que notificou a companhia aérea violação depois de algum tempo.

# data[].attributes.body
Security Logging and Monitoring Failures

São vulnerabilidades de segurança que podem ocorrer quando um sistema ou aplicativo não registra ou monitora eventos de segurança corretamente. Isso pode permitir que os invasores obtenham acesso não autorizado a sistemas e dados sem detecção.

# data[].attributes.body
São listadas diversas delas, tais quais as -

CWE-345 : Verificação insuficiente de autenticação de dados

CWE-915 : Modificação imprópria controlada de atributos dos objetos dinamicamente determinados

CWE-502 : Desserialização de dados não confiáveis

CWE-494 : Download de códigos sem a verificação de integridade

# data[].attributes.body
Dados não confiáveis: levando em conta que existiu uma quebra no bom funcionamento do sistema, os dados colhidos podem ter alterações que impactam diretamente na análise e, caso exista, em um aprendizado de máquina, podendo trazer prejuízos financeiros e decisões erradas em grande escala.

Quebra do CID: por conta dessas falhas o sistema pode ficar indisponível, com certeza não estará íntegro e levantará dúvidas sobre se é confiável.

Interrupção de serviços: as paradas do sistema ou interrupções de serviço impactam operações comerciais e a experiência do usuário.

# data[].attributes.body
Certifique-se que as dependências são oficiais e assine caso necessário

Utilizar ferramentas que verifiquem os componentes para descobrir se possuem alguma vulnerabilidade comum, um exemplo de ferramenta é a OWASP Dependecy Check

Fazer revisões no código de tempos em tempos para assegurar que ele não foi modificado e garantir mais segurança

Ter certeza que o pipeline de integração contínua (CI/CD) tenha a configuração e controle de acesso adequado para garantir a integridade do código

Garantir que os dados serializados que não forem criptografados não sejam enviados para qualquer um, apenas para aqueles que são de extrema confiança. Além disso, antes de enviar para qualquer um que seja, é necessário passar por uma verificação de integridade

# data[].attributes.body
Há casos em que roteadores domésticos não verificam suas atualizações, o que faz desse firmware um alvo fácil para os hackers controlarem o roteador a seu bem entender. Essa questão não é facilmente revertida, visto que para isso seria necessário esperar uma atualização futura do firmware, o que deixa o sistema violável.

# data[].attributes.body
Estão relacionados ao código e infraestrutura que não protegem contra violações de integridade, por exemplo, quando um app depende de plugins, bibliotecas, repositórios e redes de entrega (CDNs) que não é confiável.

Um pipeline de integração contínua (CI/CD) falho possibilita o acesso indevido que pode vir a comprometer o sistema.

Além disso, existem muitos aplicativos que possuem a ferramenta de atualização automática, no qual pode ser prejudicial pela falta de verificação e integridade da mesma.

Os malfeitores podem enviar suas próprias modificações que podem se espalhar por esses apps que foram atualizados automaticamente, ocasionado pela falha de codificação

# data[].attributes.headline
A07 - Falha de Identificação e Autenticação | Thiago e Vinicius

# data[].attributes.subject
A07 - Falha de Identificação e Autenticação | Thiago e Vinicius

# data[].attributes.body
Definição

Um dos três principios da segurança é a Confidencialidade, a falha de autenticação fere gravemente esse principio.

Exemplo 1:

O preenchimento de credenciais, que consiste no uso de listas de senhas conhecidas, é um ataque comum. Suponha que um aplicativo não implemente proteção automatizada contra ameaças ou preenchimento de credenciais. Nesse caso, o aplicativo pode ser usado como um oráculo de senhas para determinar se as credenciais são válidas.

Exemplo 2:

Os tempos limite da sessão do aplicativo não estão definidos corretamente. Um usuário usa um computador público para acessar um aplicativo. Em vez de selecionar "sair", o usuário simplesmente fecha a aba do navegador e sai. Uma hora depois, um atacante usa o mesmo navegador, e o usuário ainda está autenticado.

Consequências:

Permite que agentes não autorizados realizem ações colocando os ativos em risco.

Prevenção:

Sempre que possível, implemente a autenticação multifator para evitar preenchimento automatizado de credenciais, força bruta e credenciais roubadas

Certifique-se de que o registro, a recuperação de credenciais e os caminhos da API sejam protegido contra ataques de enumeração de contas usando a mesma mensagens para todos os resultados.

Use um gerenciador de sessão integrado, seguro do lado do servidor que gere um novo ID de sessão aleatória com alta entropia após o login. Identificador de sessão não deve estar na URL, deve ser armazenado com segurança e invalidado após o logout.

Limite ou atrase cada vez mais as tentativas de login com falha, mas tome cuidado para não criar um cenário de negação de serviço. Registrar todas as falhas e alertar os administradores quando o preenchimento de credenciais, força bruta ou outros ataques são detectados.

CWEs relacionadas:

# data[].attributes.body
Manter Dependências Atualizadas: Monitorar e atualizar regularmente bibliotecas e frameworks para suas versões mais recentes.

Auditorias de Segurança Regulares: Realizar auditorias de segurança periódicas e testes de penetração para identificar componentes vulneráveis e avaliar o risco.

# data[].attributes.body
Vazamento de Dados Sensíveis: Dados pessoais ou financeiros dos usuários podem ser expostos a atacantes, resultando em roubo de identidade ou fraudes.

Execução Remota de Código (RCE): Atacantes podem executar comandos arbitrários no servidor, o que pode comprometer completamente a aplicação e a infraestrutura.

Danos à Reputação: A exploração de vulnerabilidades pode resultar em perda de confiança dos clientes e danos à reputação da empresa.

# data[].attributes.body
Exemplo 1: Laravel

Vulnerabilidade: CVE-2021-3129

Descrição: Uma vulnerabilidade de execução remota de código no Laravel que poderia ser explorada por meio do deserialization flaw.

Impacto: Laravel é um framework PHP muito utilizado para desenvolvimento de aplicações web, e essa vulnerabilidade teve um impacto significativo em muitas aplicações.

Exemplo 2: Bootstrap

Vulnerabilidade: CVE-2019-8331

Descrição: Uma vulnerabilidade de XSS (Cross-Site Scripting) no Bootstrap, que poderia permitir a execução de scripts maliciosos em navegadores dos usuários.

Impacto: Bootstrap é amplamente utilizado para desenvolvimento front-end, e essa vulnerabilidade poderia afetar muitos sites e aplicações.

# data[].attributes.body
A vulnerabilidade "Componente Desatualizado e Vulnerável" refere-se ao uso de bibliotecas, frameworks ou outros componentes de software que não estão atualizados e contêm falhas de segurança conhecidas. Essas falhas podem ser exploradas por atacantes para comprometer a integridade, a confidencialidade e a disponibilidade das aplicações.

# data[].attributes.body
CWE-1104: Usar um Componente com Vulnerabilidades Conhecidas.

CWE-937: Uso de Bibliotecas Vulneráveis em um Produto.

# data[].attributes.body
Matheus Possenti e Luan Cenci

---

Definição da vulnerabilidade:

Falta de Proteção de Segurança: Vulnerabilidades podem surgir se a aplicação não tiver proteções adequadas em qualquer parte de sua stack tecnológica ou se as permissões dos serviços em nuvem forem configuradas incorretamente.

Recursos Desnecessários: Ativar ou instalar recursos supérfluos, como portas, serviços, páginas, contas ou privilégios desnecessários, pode aumentar o risco de ataques.

Contas Padrão Não Modificadas: A presença de contas padrão com senhas inalteradas pode facilitar acessos não autorizados.

Revelação de Informações em Erros: Tratamentos de erro que expõem stack traces ou outras informações detalhadas podem fornecer pistas para potenciais atacantes.

Desabilitação de Recursos de Segurança em Sistemas Atualizados: Não utilizar ou configurar inadequadamente os recursos de segurança disponíveis em sistemas atualizados pode comprometer a proteção.

Configurações de Segurança Inadequadas: Falhas na configuração de segurança em servidores de aplicações, frameworks, bibliotecas e bancos de dados podem deixar a aplicação vulnerável.

Falta de Cabeçalhos ou Diretivas de Segurança: A ausência de cabeçalhos ou diretivas de segurança corretos do servidor pode expor a aplicação a riscos.

Software Desatualizado ou Vulnerável: Utilizar software desatualizado ou conhecido por suas vulnerabilidades aumenta significativamente o risco de segurança.

Exemplos práticos

web.file:

O seguinte código possui a configuração de debug setada como true, habilitando o navegador a visualizar e mostrar as informações de debug

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation
defaultLanguage="c#"
debug="true"
/>
...
</system.web>
</configuration>

dotenv

Esse erro é um exemplo clássico de uma configuração incorreta de segurança porque o arquivo .env geralmente contém informações sensíveis, como chaves de API, senhas e segredos de banco de dados.

Incluir essas informações em um repositório público pode expor seu aplicativo a riscos significativos, como acesso não autorizado a contas de serviços, bancos de dados e outros recursos críticos. É essencial garantir que arquivos como .env sejam sempre adicionados ao .gitignore para evitar que sejam acidentalmente carregados em repositórios públicos.

Diretórios do servidor

No cenário descrito, a listagem de diretórios no servidor não foi desabilitada, permitindo que um invasor navegue livremente e visualize os conteúdos dos diretórios. Aproveitando-se dessa configuração inadequada, o invasor consegue acessar e baixar arquivos de classes Java compiladas. Posteriormente, ele descompila esses arquivos para realizar engenharia reversa no código, o que lhe permite analisar a estrutura e o funcionamento do aplicativo. Durante essa análise, o invasor identifica uma vulnerabilidade crítica de controle de acesso, que poderia ser explorada para comprometer ainda mais a segurança do aplicativo.

Formas de prevenir

Processo de Proteção Repetível: Estabeleça um método padronizado para configurar ambientes de forma segura e consistente, utilizando credenciais distintas para desenvolvimento, controle de qualidade e produção, visando facilitar a implantação e a segurança operacional.

Plataforma Mínima: Adote uma abordagem minimalista removendo ou não instalando componentes desnecessários para reduzir a superfície de ataque e simplificar a manutenção.

Revisão e Atualização de Configurações: Implemente revisões regulares e um processo de gerenciamento de patches para atualizar segurança, incluindo a revisão de permissões de armazenamento em nuvem, para manter o sistema seguro contra vulnerabilidades conhecidas.

Arquitetura de Aplicação Segmentada: Utilize segmentação, conteinerização e grupos de segurança em nuvem para criar barreiras de segurança efetivas entre diferentes componentes ou locatários da aplicação.

Diretivas de Segurança para Clientes: Envie configurações de segurança, como Security Headers, aos clientes para reforçar a proteção contra invasões.

Verificação Automatizada de Configurações: Desenvolva um processo automatizado para verificar continuamente a eficácia das configurações de segurança em todos os ambientes, garantindo a integridade e a proteção dos sistemas.

Lista dos CWEs Mapeados

CWE-2 7PK - Environment

CWE-11 ASP.NET Misconfiguration: Creating Debug Binary

CWE-13 ASP.NET Misconfiguration: Password in Configuration File

CWE-15 External Control of System or Configuration Setting

CWE-16 Configuration

CWE-260 Password in Configuration File

# data[].attributes.body
CWE-209: Geração de Mensagem de Erro Contendo Informações Confidenciais, CWE-256: Armazenamento Desprotegido de Credenciais, CWE-501: Violação de Limites de Confiança e CWE-522: Credenciais Insuficientemente Protegidas

# data[].attributes.body
O site de comércio eletrônico de uma rede de varejo não tem proteção contra bots executados por cambistas que compram placas de vídeo de última geração para revender sites de leilão. Isso cria uma publicidade terrível para os fabricantes de placas de vídeo e proprietários de redes de varejo, além de sofrer com os entusiastas que não podem obter essas placas a qualquer preço. O design anti-bot cuidadoso e as regras de lógica de domínio, como compras feitas dentro de alguns segundos de disponibilidade, podem identificar compras não autênticas e rejeitar tais transações.

# data[].attributes.body
Um fluxo de trabalho de recuperação de credencial pode incluir "perguntas e respostas". Perguntas e respostas não podem ser consideradas evidências de identidade, pois mais de uma pessoa pode saber as respostas.

# data[].attributes.body
Utilizando um ciclo de vida de desenvolvimento seguro com projeção de controles relacionados à segurança e privacidade.

Estabelecendo e usando bibliotecas de padrões de projeto seguros ou componentes de paved road prontos para usar.

Usando Modelagem de Ameaças para autenticação crítica, controle de acesso, lógica de negócios e fluxos de chaves.

Integrando verificações de plausibilidade em cada camada da sua aplicação.

Separando as camadas de nível no sistema e nas camadas de rede, dependendo das necessidades de exposição e proteção.

Separando os tenants de maneira robusta por design em todas as camadas.

Limitando o consumo de recursos por usuário ou serviço.

# data[].attributes.body
Aumento da Exposição à Ameaças

Exposição de Dados Sensíveis

Falhas de Confidencialidade, Integridade e Disponibilidade

Impacto na Reputação

Multas e Penalidades Legais

Problemas de Compatibilidade e Interoperabilidade

# data[].attributes.body
É uma falha fundamental na arquitetura e nos controles de segurança de uma aplicação. Se refere à causa raiz que torna possíveis várias vulnerabilidades. É como uma estrutura de um prédio que é tão ruim que torna ele suscetível à rachaduras e outros danos.

# data[].attributes.body
Integrantes: Heloisa e Dyeizon

# data[].attributes.body
1. Vazamento de Dados Sensíveis: Acesso a informações confidenciais, violando a privacidade e podendo levar a consequências legais.

1. Comprometimento do Sistema: Controle do sistema por atacantes, instalação de malware e acesso a recursos restritos.

2. Danos à Reputação: Perda de confiança de clientes e parceiros devido à exposição pública da vulnerabilidade.

3. Perda de Dados: Exclusão de arquivos ou bancos de dados, resultando na perda irreparável de dados.

4. Interrupção de Serviços: Afeta a disponibilidade de sistemas e serviços importantes.

5. Acesso Não Autorizado: Permite atividades ilícitas, como espionagem industrial ou fraudes.

6. Implicações Legais e Financeiras: Possíveis multas, sanções e ações judiciais devido ao comprometimento de dados.

# data[].attributes.body
CWE-78 é uma vulnerabilidade que permite que invasores executem comandos não autorizados do sistema operacional, resultando em possíveis acessos a dados sensíveis, execução de códigos maliciosos e danos ao sistema, como exclusão de arquivos críticos.

CWE-79, ou XSS (Cross-Site Scripting), ocorre quando um aplicativo web inclui dados não confiáveis em uma página web sem neutralizá-los, permitindo a execução de scripts maliciosos no navegador da vítima. Existem três tipos principais de XSS:

1. Reflected XSS: O script é refletido para a vítima via uma URL manipulada, comum em esquemas de phishing.

2. Stored XSS: O script é armazenado em um banco de dados e executado por usuários que acessam a página.

3. DOM-based XSS: A injeção ocorre no lado do cliente, manipulando o DOM sem interação com o servidor.

# data[].attributes.body
Exemplo 1: Um aplicativo usa dados não confiáveis na construção da seguinte chamada SQL vulnerável:

String query = "SELECT \* FROM accounts WHERE custID='" Exemplo 2: Da mesma forma, a confiança cega em frameworks de aplicações pode resultar em consultas que ainda são vulneráveis (por exemplo, Hibernate Query Language (HQL)):

Query HQLQuery = session.createQuery("FROM accounts WHERE custID='" + request.getParameter("id") + "'");

# data[].attributes.body
1. Uso de API Segura: Utilizar APIs que não envolvem o interpretador diretamente, como interfaces parametrizadas ou ORMs.

1. Validação de Entrada: Implementar validação de entrada positiva (safelist) do lado do servidor.

2. Escape de Caracteres Especiais: Escapar adequadamente os caracteres especiais em consultas dinâmicas.

3. Limitação de Resultados: Utilizar cláusulas como LIMIT em consultas SQL para restringir a quantidade de dados retornados.

# data[].attributes.body
Aplicações são vulneráveis a ataques de injeção devido à falta de validação de dados, uso de consultas dinâmicas não parametrizadas e utilização de dados hostis em parâmetros de pesquisa ou comandos. As injeções mais comuns incluem SQL, NoSQL, comandos OS, ORM, LDAP, EL e OGNL. Para detectar essas vulnerabilidades, recomenda-se a revisão de código-fonte e o uso de ferramentas de teste de segurança, como SAST, DAST e IAST, no pipeline de CI/CD para identificar falhas antes da implantação na produção.

# data[].attributes.body
Matheus e Chrismene

# data[].attributes.body
Definição:

Falhas de criptografia ocorrem quando dados sensíveis, como senhas, números de cartão de crédito, registros de saúde, informações pessoais e segredos empresariais, não são protegidos adequadamente durante a transmissão ou armazenamento. Essas falhas podem resultar do uso de algoritmos ou protocolos criptográficos antigos ou fracos, chaves criptográficas padrão ou mal gerenciadas etc...

Exemplos:

Um site que não utiliza TLS para todas as páginas ou usa criptografia fraca pode ser alvo de ataques. Um invasor pode monitorar o tráfego de rede, rebaixar conexões de HTTPS para HTTP, roubar cookies de sessão e acessar ou modificar dados privados do usuário. O atacante também pode alterar dados transportados, como os detalhes de uma transferência de dinheiro.

Um aplicativo que criptografa números de cartão de crédito em um banco de dados pode ter vulnerabilidades. Mesmo que os dados sejam criptografados, uma falha de injeção de SQL pode explorar a descriptografia automática e recuperar os números em texto claro.

# data[].attributes.body
Controle de Acesso Baseado em Funções (RBAC): Atribua permissões com base nas funções dos usuários para garantir acesso adequado.

Validação no Lado do Servidor: Verifique permissões no servidor, não confie apenas nas verificações do lado do cliente.

Verificação de Acesso em Cada Recurso: Proteja todas as rotas e recursos com verificações de acesso apropriadas.

Uso de Políticas de Segurança Estritas: Aplique políticas rigorosas e listas de controle de acesso (ACLs) para definir permissões detalhadas.

Minimização de Privilégios: Restrinja privilégios a apenas o necessário para reduzir o impacto de compromissos.

Auditoria e Monitoramento: Implemente logging e monitoramento para rastrear e responder a acessos e alterações.

Teste de Segurança: Realize testes regulares para identificar e corrigir falhas de controle de acesso.

Autenticação e Autorização Rigorosas: Use métodos fortes para validar identidade e garantir permissões adequadas.

# data[].attributes.body
Senhas Fracas: Senhas facilmente adivinháveis ou não complexas.

Controle de Acesso Baseado em Papel Mal Implementado: Permissões inadequadas baseadas no papel do usuário.

Escalada de Privilégios: Obtenção de privilégios elevados indevidamente.

Autenticação de Múltiplos Fatores Ausente: Falta de autenticação adicional além da senha.

Injeção de URL ou Manipulação de Parâmetros: Alteração de URLs ou parâmetros para acessar recursos não autorizados.

# data[].attributes.body
Exposição de Dados Sensíveis: Acesso não autorizado a informações confidenciais.

Comprometimento de Sistemas: Instalação de malware e comprometimento de sistemas.

Dano à Reputação: Perda de confiança de clientes e parceiros.

Impactos Legais e Financeiros: Penalidades e processos por violação de dados.

Interrupção de Operações: Interrupções nos serviços e operações da organização.

# data[].attributes.body
Broken Access Control:

Definição

A vulnerabilidade de Controle de Acesso Quebrado refere-se a falhas em sistemas que gerenciam a autorização e autenticação, permitindo que atacantes obtenham acesso não autorizado a recursos, dados ou sistemas.

# data[].attributes.headline
A10 - Iarla / Server-Side Request Forgery

# data[].attributes.subject
A10 - Iarla / Server-Side Request Forgery

# data[].attributes.headline
A01 - Quebra de controle de Acesso (Bruno Marcon)

# data[].attributes.subject
A01 - Quebra de controle de Acesso (Bruno Marcon)

# data[].attributes.body
Essa categoria contempla uma série de vulnerabilidades e ameaças que tem relação direta com autenticação e controle de acesso. Tais vulnerabilidades levam a acessos não autorizados, contribuindo negativamente na utilização de aplicações.

Um dos exemplos que podemos citar seria "Privilégios Elevados", Em resumo um usuário comum pode ter acesso a áreas restritas, as quais não poderia visualizar. Essa falha tem relação direta com um problema na autenticação, fato esse que deve receber mais atenção por parte de desenvolvedores, com a utilização de tokens, limitação de sessões, entre outros.

Outra "subcategoria" que merece uma grande atenção é "Escalação de Privilégios"

onde por meio dessa subcategoria o invasor consegue elevar suas credencias de acesso a um nível de administrador. Essa falha pode ser fatal, pois com acesso ADM, invasores podem levar a aplicação ao colapso, podendo alterar configurações vitais para o funcionamento da aplicação.

A maneira correta de adequar a aplicação, para prevenir esses problemas citados a cima é estar em conformidade com o NIST, que é conhecido por suas instruções para segurança de sistemas de informação.

Em sintese, desenvolver uma aplicação levando as normas presentes no NIST é de suma importância para segurança da mesma.

CWE - 22, CWE - 23 , CWE - 275 são exemplos de CWE que tem relação com o tema abordado.