Quais são as atenuações para todas as vulnerabilidades do top 10 da owasp?
Aqui, é a descrição detalhada dada abaixo que pode ser considerada a fim de assumir todas as vulnerabilidades que estão listadas no OWASP Top 10 e também para satisfazer o entrevistador.
- Prevenir Ataques de Injeção:
- A maneira mais simples de proteger contra a injeção é evitar o acesso a intérpretes externos sempre que possível. Para muitos comandos shell e algumas chamadas de sistema, existem bibliotecas específicas de linguagem que executam as mesmas funções. Usar tais bibliotecas não envolve o interpretador shell do sistema operacional e, portanto, evita um grande número de problemas com comandos shell.
- li> Outra forte proteção contra a injeção de comandos é garantir que a aplicação web execute apenas com os privilégios que ela absolutamente precisa para executar sua função. Portanto, você não deve executar o webserver como root ou acessar um banco de dados como DBADMIN, caso contrário um atacante pode abusar desses privilégios administrativos concedidos à aplicação web. Alguns dos ambientes J2EE permitem o uso do Java sandbox, que pode impedir a execução dos comandos do sistema.
- Building a proper authentication and session management:
- Cuidado e adequado uso de mecanismos de autenticação personalizados ou fora da prateleira e gerenciamento de sessão deve reduzir significativamente a probabilidade de um problema nesta área. Definir e documentar a política do seu site com respeito ao gerenciamento seguro das credenciais dos usuários é um bom primeiro passo. Garantir que a sua implementação aplique de forma consistente esta política é fundamental para ter uma autenticação segura e robusta e um mecanismo de gerenciamento de sessão. Algumas áreas críticas incluem::>ol>>li>Controles de mudança de senha>li>Li>O uso da senhaLi>Força da senhaLi>Armazenamento de senhaLi>Proteger credenciais em trânsitoLi>Proteção de ID de sessãoLi>Lista de contasLi>Caching do navegador/ol>>Li>Prevenir o uso de scripts cross-site:melhor maneira de proteger uma aplicação web contra ataques XSS é garantir que sua aplicação execute a validação de todos os cabeçalhos, cookies, strings de consulta, campos de formulário e campos ocultos (i.e., todos os parâmetros) contra uma especificação rigorosa do que deve ser permitido. A validação não deve tentar identificar o conteúdo ativo e removê-lo, filtrá-lo ou higienizá-lo. Existem muitos tipos de conteúdo ativo e muitas maneiras de codificá-lo para contornar filtros para tal conteúdo. Nós recomendamos fortemente uma política de segurança 'positiva' que especifique o que é permitido. Políticas 'negativas' ou baseadas em assinaturas de ataque são difíceis de manter e provavelmente estão incompletas. A codificação de saída fornecida pelo usuário também pode derrotar as vulnerabilidades do XSS, impedindo que scripts inseridos sejam transmitidos aos usuários em uma forma executável. Aplicações podem ganhar proteção significativa contra ataques baseados em javascript ao converter os seguintes caracteres em toda a saída gerada para a codificação apropriada da entidade HTML, como < < > > (( )) #&\ / ' "
- Prevenir referências inseguras a objectos directos:
- >li> A melhor protecção é evitar a exposição de referências a objectos directos aos utilizadores, utilizando um índice, um mapa de referência indirecto ou outro método indirecto que seja fácil de validar. Se uma referência a objetos diretos deve ser usada, certifique-se de que o usuário está autorizado antes de usá-la.
- Estabelecer uma forma padrão de referência a objetos de aplicação é importante:
- Evite expor suas referências a objetos privados aos usuários sempre que possível, tais como chaves primárias ou nomes de arquivos>li>Validar qualquer referência a objetos privados extensivamente com uma abordagem de "aceitar bem conhecido">li>Verificar autorização para todos os objetos referenciados
- Configurar todos os mecanismos de segurança>li>Li>Desligar todos os serviços não utilizadosLi>Configurar funções, permissões, contas, senhasLi>Li>Logging and alerts
- Se a criptografia precisar ser usada, escolha uma biblioteca que tenha sido exposta ao escrutínio público e certifique-se de que não haja vulnerabilidades abertas. Encapsule as funções criptográficas que são utilizadas e reveja o código cuidadosamente. Certifique-se de que segredos, tais como chaves, certificados e senhas, sejam armazenados com segurança. Para dificultar a tarefa de um atacante, o segredo principal deve ser dividido em pelo menos dois locais e montado em tempo de execução. Tais locais podem incluir um arquivo de configuração, um servidor externo ou dentro do próprio código.
- >li>Capturar as regras>li>Label todos os recursos e funções>li>Label todos os usuários
- >li>Prevenir o CSRF requer a inclusão de um token imprevisível no corpo ou URL de cada solicitação HTTP. Tais tokens devem no mínimo ser únicos por sessão do usuário, mas também podem ser únicos por pedido.
- li> A opção preferida é incluir o token único em um campo oculto. Isso faz com que o valor seja enviado no corpo do pedido HTTP, evitando sua inclusão na URL, que está sujeita à exposição.
- O token único também pode ser incluído na própria URL, ou em um parâmetro URL. Entretanto, tal colocação corre o risco de que a URL seja exposta a um atacante, comprometendo assim o token secreto.
- >li>Keep atualize todas as aplicações e componentes de terceiros
- Localize vulnerabilidades em qualquer das versões apropriadas de componentes em Exploit-db, vulndb, CVE, etc.
- Update to other required versions as per the vulnerability mitigations and recommendations.
- Where appropriate, consider adding security wrappers around components to disable unused functionality and/ or secure weak or vulnerable aspects of the component.
- Simply avoid using redirects and forwards.
- If used, don’t involve user parameters in calculating the destination. This can usually be done.
- If destination parameters can’t be avoided, ensure that the supplied value is valid, and authorized for the user.
Hiren Patel (Pune, MH)
Artigos semelhantes
- Eu sonho vividamente todas as noites e consigo lembrar-me delas todas as manhãs. O que é que isto significa?
- Eu perdi todas as minhas fotos da galeria do meu celular Moto G sem saber. Como posso restaurar todas aquelas fotos apagadas?
- Todas as definições no iPhone irão apagar todas as minhas aplicações e contactos?
- Que sistemas operacionais são usados em set-top boxes para televisores?