Como evitar ataques de dia zero


21

Tradicionalmente, todos os programas antivírus e sistemas IPS funcionam usando técnicas baseadas em assinaturas. No entanto, isso não ajuda muito a impedir ataques de dia zero .

Portanto, o que pode ser feito para evitar ataques de dia zero?


1
Além dos pontos na resposta que sugeri abaixo, mesmo se você executar algum software com uma exploração de dia zero. Se você não executar esse sistema na Internet pública, não estará diretamente vulnerável. Portanto, os firewalls são seus amigos e, se você realmente deseja executar algum software de risco de segurança novo, pode configurá-lo em outra rede na nuvem, onde pode ser hackeado e não afetar outros sistemas.
Tom H

As ameaças desconhecidas e de um dia são exatamente o motivo pelo qual as heurísticas são usadas em qualquer software antivírus / anti-malware que vale o nome. Infelizmente, as heurísticas geralmente são desativadas devido ao impacto no desempenho.
John Gardeniers

0days é apenas uma categoria, cada membro dessa categoria é muito diferente do outro. Você não pode ter uma abordagem em que considere implementar a segurança nos dias 0. É a qualidade do seu sistema de segurança que, no final, fará a diferença entre uma invasão furtiva bem-sucedida e uma exploração não útil ou uma exploração detectada. Como alguém disse, concentre-se na detecção e no tempo de resposta rápido. Monitore cada sistema, tráfego e mantenha-se atualizado com as atualizações de segurança. É um trabalho de período integral, ou pelo menos deveria ser.
Aki 23/05

Provavelmente, também obter algumas boas respostas aqui - security.stackexchange.com
Bratch

linux em todos os lugares. sem janelas. pergunte ao google.
Neil McGuigan

Respostas:


37

Eu acho que você reconhece uma interessante verdade sys-admin, que é que

a menos que você possa reduzir a probabilidade de ser hackeado para zero , eventualmente , em algum momento, você será hackeado .

Essa é apenas uma verdade básica da matemática e da probabilidade, que para qualquer probabilidade diferente de zero de um evento. O evento finalmente acontece ...

Portanto, as 2 regras de ouro para reduzir o impacto desse evento "eventualmente hackeado" são essas;

  1. O princípio do menor privilégio

    Você deve configurar os serviços para serem executados como um usuário com os menos direitos possíveis necessários para concluir as tarefas do serviço. Isso pode conter um hacker mesmo depois de invadir uma máquina.

    Por exemplo, é muito provável que um hacker invadir um sistema usando uma exploração de dia zero do serviço do servidor da web Apache seja limitado apenas à memória do sistema e aos recursos de arquivo que podem ser acessados ​​por esse processo. O hacker seria capaz de baixar seus arquivos de origem html e php e provavelmente examinaria seu banco de dados mysql, mas eles não deveriam conseguir obter root ou estender sua intrusão além dos arquivos acessíveis pelo apache.

    Muitas instalações padrão de servidor da Web Apache criam o usuário e o grupo 'apache' por padrão e você pode configurar facilmente o arquivo de configuração principal do Apache (httpd.conf) para executar o apache usando esses grupos.

  2. O princípio da separação de privilégios

    Se o seu site precisar apenas de acesso somente leitura ao banco de dados, crie uma conta que tenha apenas permissões somente leitura e somente para esse banco de dados.

    O SElinux é uma boa opção para criar contexto de segurança, o app-armor é outra ferramenta. Bastille foi uma escolha anterior para o endurecimento.

    Reduza a consequência de qualquer ataque, separando o poder do serviço que foi comprometido em sua própria "Caixa".

Regras de prata também são boas.

Use as ferramentas disponíveis. (É altamente improvável que você possa fazer o mesmo que os especialistas em segurança, portanto, use seus talentos para se proteger.)

  1. a criptografia de chave pública fornece excelente segurança. use-o. em toda parte.
  2. os usuários são idiotas, reforçam a complexidade da senha
  3. Entenda por que você está fazendo exceções às regras acima. revise suas exceções regularmente.
  4. responsabilizar alguém por falhas. mantém você alerta.

Eu acho que isso é verdade - por definição, não há muito que você possa fazer para impedir uma exploração de um dia. Se você possui um software vulnerável, possui um software vulnerável - portanto, o único curso de ação é reduzir qualquer impacto e atacar a superfície. Excelente argumento sobre firewalls, embora tenha em mente que uma exploração de 0 dia para o MS Outlook pode ser enviada por e-mail, por exemplo.
Dan

2
Sim, ponto de vista sobre os produtos de correio MS. Mas existem analogias com firewalls para o correio, por exemplo, qualquer pessoa com todos os VBScript, ActiveX, extensões de tipo OLE desactivados teria perdido toda a hackers completamente, felizmente sem saber da carnificina ... ;-)
Tom H

1
+1, mas digitou a regra de prata 1 "Quem pensa que seu problema pode ser resolvido usando criptografia, não entende seu problema e não entende criptografia". - Needham / Lampson;)
Amendoim

@ Amendoim Eu gosto de chave pública porque evita o uso de senhas. Após a intrusão teórica, não há necessidade de redefinir senhas porque, não há senhas para redefinir e apenas a chave pública está comprometida. Até mesmo um banco de dados de senha com hash pode ser usado para verificar contas offline ou de crack.
Tom H

@ TomH Meu comentário foi irônico :) Interessante, então no seu sistema, presumivelmente, o servidor envia ao cliente um dado não + outros dados para assinar e o cliente usa um nome de usuário + os dados assinados para fazer login?
Amendoim

16

Lista de permissões, não coloque na lista negra

Você está descrevendo uma abordagem da lista negra. Uma abordagem da lista de desbloqueio seria muito mais segura.

Um clube exclusivo nunca tentará listar todos que não podem entrar; eles listam todos os que podem entrar e excluem os que não estão na lista.

Da mesma forma, tentar listar tudo o que não deve acessar uma máquina está condenado. Restringir o acesso a uma pequena lista de programas / endereços IP / usuários seria mais eficaz.

Obviamente, como qualquer outra coisa, isso envolve algumas trocas. Especificamente, uma lista de permissões é extremamente inconveniente e requer manutenção constante.

Para ir ainda mais longe na troca, você pode obter grande segurança desconectando a máquina da rede.


+1 Este é um ótimo complemento para a resposta de Tom H.
Chad Harrison

1
O perigo está em um conjunto de regras que cresce para um tamanho em que não pode ser entendido, mantido, explicado, auditado. O que é mortal.
Rackandboneman 23/05

11

A detecção é mais fácil (e mais confiável) do que a prevenção

Por definição, você não pode impedir um ataque de dia zero. Como outros já apontaram, você pode fazer muito para reduzir o impacto de um ataque de dia zero, e deveria, mas esse não é o fim da história.

Deixe-me salientar que, além disso, você deve dedicar recursos para detectar quando um ataque ocorreu, o que o atacante fez e como o atacante o fez. O registro abrangente e seguro de todas as atividades que um hacker pode realizar facilitará a detecção de um ataque e, mais importante, determinará o dano causado e a correção necessária para recuperar o ataque.

Em muitos contextos de serviços financeiros, o custo da segurança em termos de atrasos e custos indiretos na execução de transações é tão alto que faz mais sentido concentrar os recursos na detecção e reversão de transações fraudulentas, em vez de tomar medidas extensivas projetadas para evitá-las em primeiro lugar. . A teoria é que nenhuma quantidade de medidas será 100% eficaz, portanto os mecanismos de detecção e reversão precisam ser construídos de qualquer maneira. Além disso, essa abordagem resistiu ao teste do tempo.


1
+1 Sim, eu acho que você pode não responder se você não sabe a sua aconteceu ... dada outra oportunidade para responder, eu teria provavelmente preso em algo sobre SANS 6 passos ...
Tom H

+1, muito verdadeiro. A prevenção exigiria auditoria. E a auditoria não pode provar que um sistema não tem nenhuma falha.
Aki

@ Tom, você sempre pode editar sua resposta.
Old Pro

4

Zero dia não significa que a assinatura não seja conhecida. Isso significa que não há patch disponível para os usuários do software, que fecha a vulnerabilidade. Portanto, o IPS é útil para proteger contra a exploração de vulnerabilidades de dia zero. Mas você não deve confiar apenas nisso. Crie e siga uma política de segurança sólida, proteja seus servidores, atualize o software e sempre tenha um 'Plano B'


3

Grsecurity ou SELinux são bons para ajudar a evitar ataques de 0 dia, fortalecendo o kernel.

Citação do site "Somente o grsecurity fornece proteção contra ameaças de dia zero e outras ameaças avançadas que adquirem um tempo valioso para os administradores, enquanto as correções de vulnerabilidades passam para distribuições e testes de produção".


2

Se você estiver usando o Apache, módulos como mod_security podem ajudar a evitar vetores de ataque comuns. Com mod_security você pode

  • bloquear pedidos parecidos com ataques de injeção SQL
  • bloquear clientes cujos endereços IP estão na lista negra em alguns RBL
  • redirecione a solicitação para outro local se as condições definidas forem atendidas
  • bloquear solicitações com base no país do cliente
  • detectar e bloquear bots maliciosos comuns automaticamente

... e muito, muito mais. Obviamente, usando um módulo complexo como o mod_security, é bem possível também bloquear seus clientes reais, e no lado do servidor o mod_security adiciona alguma sobrecarga.

Também é obrigatório manter o software do servidor atualizado e garantir que você desabilitou todos os módulos e daemon que você não usará.

Políticas rígidas de firewall são essenciais e, em muitos casos, aprimoramentos adicionais de segurança, como SELinux ou grsecurity, podem interromper o ataque.

Mas, o que quer que você faça, os bandidos são muito pacientes, muito criativos e muito habilidosos. Tenha um plano detalhado do que fazer quando for invadido.


1

Eu gostaria de adicionar algumas regras de bronze:

  1. Se exposto, não execute o que não precisa ser executado.

  2. Não faça de você um alvo digno de um ataque direcionado e dedicado.

  3. A proteção contra qualquer ataque direcionado possível é muitas vezes antieconômica / impraticável. Verifique quem pode ter um interesse sério em quebrar o quê e comece por aí.

  4. Considerar "minimizar as informações disponíveis externamente" e "abandonar os padrões conhecidos" como nada mais que segurança pela obscuridade (geralmente mal interpretado como "inútil" em oposição a "uma camada que por si só é insuficiente") e omiti-lo é uma arrogância perigosa. Uma fechadura que pode ser trancada na porta não mantém o ladrão fora, mas provavelmente impede o lobo.


1

Uma máquina inchada com um enorme conjunto de segurança geralmente transforma PCs medíocres em dinossauros e Núcleos quad em computadores antigos comuns. Eu consertei o suficiente (milhares) para entender que isso é verdade. Se você entende que nada é 100% de segurança e o custo do desempenho cai exponencialmente como segurança, enquanto a probabilidade de infecção cai apenas de maneira linear. A maioria dos resultados quando parei de analisar as comparações foi de 90% no máximo em um teste do mundo real de milhares de riscos, o que significa que 10% das infecções não foram detectadas ou muito tarde. enquanto a latência do PC aumentou de 200 a 900%. A OSX tem uma situação ideal em que essencial não é melhor em segurança, mas os riscos de ataque foram menores devido ao fato de serem alvos menores, com apenas 4% de participação de mercado em produtos que não são de telefone / almofada em 2010. Isso mudará, mas não mudarei minha filosofia de manter meu sistema operacional limpo, enxuto e mesquinho. Eu faço o mesmo para XP e Win7. Eu tenho um arsenal muito alto de ferramentas de reparo, mas preciso apenas de um aplicativo para corrigir todos que são infectados e leva apenas de 10 a 20 minutos, não horas ou dias.

Meus métodos que funcionam;

  1. Eduque os usuários, não clique em avisos de segurança, a menos que você realmente saiba o que eles são, em oposição às centenas de ROgues que são cópias em carbono de bons alertas. Quem não pode ser treinado facilmente obtém contas de não administrador e navegadores de caixa de areia com java e JS desativados. Mas se eu habilitá-lo para eles, não se preocupe, apenas 15 a 20 minutos para restaurar ou reparar.

    1. A Restauração do sistema é boa, mas tem muitas limitações, uma delas é que os itens na pasta Documentos e nas pastas Temp. Do usuário são protegidos, onde os drivers não autorizados podem ser instalados e inicializados e infectá-lo na próxima inicialização.

    2. O UAC é útil para muitas coisas, mas é uma PITA que eu nunca uso e confio em ferramentas melhores para detectar startups e / ou novos processos, incluindo, entre outros;

      • O Winpatrol.com ainda é o melhor investimento que fiz para segurança e ainda é gratuito para outros. Abrange 80% dos problemas em que as startups são adicionadas antes da execução e podem ser detectadas, desativadas ou excluídas pelo prompt do usuário. No entanto, se você é do tipo ansioso, que não pode tomar decisões, tome uma pílula ou apenas use o Windows Defender . Não é o melhor para cobertura, mas um dos mais altos para a relação bang / buck. Pretensão / perda de desempenho ou aumento da taxa de latência.

      • O utilitário de inicialização de Mike Lin é o interceptador mais leve de startups armazenadas em mais de uma dúzia de locais do registro

      • O Script Guard é um interceptador de scripts útil para scripts infantis

      • O ProcessGuard é um programa antigo e extinto que funciona como um firewall para qualquer novo executável, mas o impede de ser aprovado, no entanto, é seguro e enxuto depois que você aceita uma fonte confiável ou ignora ou bloqueia uma fonte não confiável.

      • Um complemento da Blacklist para o seu navegador é bom como a Web of trust (WOT) , mas o Chrome parte disso é incluído de maneira semelhante, mas em menor grau.

      • uma lista negra pode obter enorme para arquivos HOSTS e se você usar isso (> 1 MB é enorme quando digitalizado no 4KB pedaços a cada 10 minutos., Mas se o fizer, eu recomendo disabing serviço de cache DNS para reduzir as varreduras periódicas redunant por cada aplicativo que está ativo com privies de firewall.

      • Desative a indexação de arquivos se você realmente não usá-lo para email e outras coisas, porque ele gera seu conjunto de antivírus para verificar todos os arquivos acessados ​​todas as vezes, repetidas vezes ... que redundante.

Alguns podem ter uma exceção a essa lista parcial, mas economizo tempo protegendo meu PC e operando em um ambiente enxuto. Auditorias regulares para confirmar que minha segurança é realizada à noite comprovam que minha prática sem preocupações é justificada. Ainda tenho mil logs do HJT, logs do combofix.txt e do Runscanner para apoiar minhas opiniões sobre curas e melhor equilíbrio entre segurança e desempenho.

  • Evite o download / instalação descuidado de arquivos de mídia do exe ou do Windows que possam executar avisos (por exemplo, WMA, .WMV), ao contrário de .mp3 ou .avi.

  • Evite todos os botões direcionados a anúncios para baixar ou atualizar sua segurança, o que pode distrair sua atenção para a atualização gratuita em agregadores de download como o hippo dot com .. cnet não é ruim. Tenha muito cuidado. Alguns sites usam anúncios de terceiros e não têm controle de conteúdo.

  • Eu documentei um exemplo perfeito em uma apresentação em powerpoint de 10 páginas, se alguém estiver interessado, pergunte. Quão fácil ignorar o anúncio acima pode infectá-lo.

Tudo por agora.

Tony Stewart EE desde 1975.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.