Resultados 1 a 6 de 6

Tópico: Hardening

  1. #1

    Hardening

    Hardening é um processo de mapear as ameaças, mitigar os riscos e executar atividades corretivas com foco na infra-estrutura e objetivo principal de torná-la preparada para enfrentar tentativas de ataque.

    Explicando de outra forma: Hardening é o processo de endurecimento do sistema/serviços, tornando este resistente e fortemente preparado para enfrentar ataques diversos.

    Algumas características:
    • Fortalecimento do sistema;
    • Ajustes finos;
    • Procedimentos de segurança pré e pós-instalação.
    Tipos de Hardening:
    • De Sistema;
    • De Serviço;
    • De "Processo".
    Pontos a serem levados em conta num processo de Hardening:
    • Remover ou desabilitar contas de usuários que não estão mais em uso;
    • Remover serviços desnecessários;
    • Limitar o acesso dos usuários;
    • Manter os patches atualizados;
    • Impor uma politica de segurança que obrigue seus usuários a escolherem senhas "fortes".
    Muita gente gosta de falar, quero meu servidor/aplicação o mais seguro possível. Mas vamos parar pra pensar, segurança implica em menos flexibilidade e vice versa!

    Exemplo enxuto: Um usuário tem a flexibilidade e conforto de se logar no servidor da empresa de casa, então todo dia ele levanta, toma o café e nem sempre vai pra empresa pois realiza dos os procedimentos de casa. Mas esta pessoa contrata um "especialista" em segurança e pede a ele para implementar o máximo de segurança em todos os servidores da empresa, no dia seguinte quando tenta logar via ssh descobre que o profissional contratado desativou ssh. Sendo assim conforto e flexibilidade foram para o espaço!

    Como falei este é um exemplo enxuto, pois mecanismos de segurança como autenticação baseada em chaves, limitar o login para IP(s) específicos, etc, poderiam ter sido implementados. Mas para simplificar e exemplificar a questão flexibilidade X segurança, apliquei este exemplo.

    Abaixo irei comentar cada um dos pontos citados anteriormente.
    Remover ou desabilitar contas de usuários que não estão mais em uso
    Isso é algo muito sério, principalmente quando este ponto não é tratado dentro da empresa. Se um usuário não necessita ter acesso a um sistema este não deve possui meios para se logar neste sistema. Vamos a uma história real para exemplificar melhor este ponto.

    João era funcionário de uma empresa de TI, em seu ambiente ele trabalhava com sistemas de missão crítica. Fora da empresa ele não possui conexões com os sistemas interno por nem um meio de conexão (ssh, telnet, vpn, etc), mas esta empresa possuía conexão wi-fi permitindo assim que seus funcionários se conectassem ao sistema por cabo ou por meio sem fio. Mas qual o problema? O sinal da wi-fi conseguia cobri todo o estacionamento e proximidades da empresa. Quando joão foi despedido ficou indignado, pegou seu carro, parou perto da empresa e seu usuário ainda estava ativo no sistema, como ex-funcionário furioso João efetuou login no sistema e começou a causar danos a estrutura computacional desta empresa!
    Remover serviços desnecessários
    Se um serviço não é realmente necessário para aquela aplicação ou tarefa não o mantenha ativo no sistema, recomendo ainda que remove todos os serviços/programas não essenciais para a continuidade do "negócio". Quanto maior for a gama de serviços desnecessários ativos no seu sistema, mais vulnerável você irá se encontrar, isso se deve ao fato de que, com uma maior quantidade de serviços você poderá estar expostos a um grande número de falhas que podem ser utilizadas em beneficio de um invasor.

    Exemplo enxuto
    : Zezinho possui um servidor web, ele possui dois tipos de conexões para com este servidor (ssh e telnet), ou seja, temos ai dois serviços de acesso remoto. O problema é que Zezinho nunca utiliza telnet e ainda sim possui o serviço instalado! Isso é realmente preocupante pois o Telnet é uma forma de conexão que não implementa nem um tipo de segurança e possui diversas falhas conhecidas.

    Limitar o acesso dos usuários
    Não der poder para todo mundo, não corra o risco de confiar de mais e depois receber um "punhal" nas costas. Limite o acesso de usuários a certos diretórios, serviços, etc. Vamos a alguns pontos correlacionados a esta questão:
    • Não permita que qualquer usuário vire o todo poderoso (ROOT);
    • Limite as atividades dos usuários, não deixe que eles acessem ou modifiquem qualquer arquivo;
    • Dê poder somente para aqueles que realmente precisam dele;
    • Limite a utilização de recursos por parte dos usuários, como consumo de disco, ram, etc.
    Exemplo enxuto: Ao instalar um acesso ssh é uma boa pratica você impedir que o usuário realize o login diretamente como root, é extremamente recomendado obrigar este a se logar primeiramente como usuário comum e depois se tornar root caso tenha permissão para isso. "Em geral isso é feito para que um atacante fique no escuro, poi primeiro ele terá que descobri quais usuários existem no sistema, logo em seguida terá que tentar conseguir acesso à conta de cada um e verificar se este possui acesso root"!
    Manter os patches atualizados
    Atualizações devem sempre ser executadas! Correções de "bugs" são efetuadas por meio de atualizações, então deixe sempre todas as instancias do seu sistema atualizadas com as soluções mais recentes. Eu recomendo que primeiramente realizem estas atualizações em um ambiente de "teste" para somente depois implementar em um ambiente de produção.

    Exemplo enxuto
    : A versão 1 do protocolo estava em larga utilização quando se descobriu ser insegura. Descobriu-se também que até a versão 2 era suscetível a ataques de temporização estatística, conforme Song (2001 apud Cheswick; Bellovin; Rubin, 2003, p.158). Esta técnica de temporização estatística está relacionada ao fato do SSH acomodar os tamanhos de blocos dos sistemas de criptografia, a versão 2 do protocolo arredonda cada pacote a um limite de oito bytes. Em resumo aqueles que utilizam as versões antigas citadas neste exemplo, encontram-se vulneráveis a um ataque. Sobre este assunto leia mais em: http://www.vivaolinux.com.br/artigo/...s-para-invasao

    Impor uma politica de segurança que obrigue seus usuários a escolherem senhas "fortes"
    Infelizmente muita gente costuma definir senhas fracas para qualquer sistema ou aplicação que queiram utilizar, isso facilita que indivíduos mal intencionados adivinhem a senha ou realizem ataques de dicionário. Pode parecer brincadeira mas muita gente costuma utilizar número de telefone, datas e outros derivados como uma solução de senha, algo que não deve ser levado adiante ou encorajado.

    Tente definir senhas aleatórias com no minimo 8 caracteres, letras maiúsculas/minusculas, números e símbolos. Logo abaixo apresento três soluções, em PHP, Linux, Windows e online:

    Gerador de senha aleatória em PHP:
    Código:
    <?php
    while ($n < 8) {
     $caracteres = 'abcdxywzABCDZYWZ0123456789-=)(*&$#@';
     $senha = strlen($caracteres)-1;
     $password = null;
       for($i=0; $i < 8; $i++) { 
       $password .= $caracteres{mt_rand(0, $senha)}; 
       }
     echo $password . "<br />";
    $n++;
    }
    ?>
    Gerador de senha aleatória (pwgen) para ambiente GNU/Linux:
    O primeiro passo é instalar o pwgen:
    # aptitude install pwgen
    Se você utilizar somente o comando abaixo irá gerar senhas de 8 caracteres:
    $ pwgen -y
    Para especificar o número de caracteres basta adicionar o parâmetro (-n quantidade_de_caracteres):
    $ pwgen -y -n 16

    Segue dois geradores de senha aleatória para ambiente Windows:
    Password tools bundle (http://www.baixaki.com.br/download/p...ols-bundle.htm)
    Password Inventor (http://www.baixaki.com.br/download/p...d-inventor.htm)

    Segue link para dois geradores de senha aleatória online:
    http://www.basfas.com.br/on-line/gerador-de-senhas
    http://www.meuscript.com.br/gerador-de-senhas

    Fonte: http://fabiojanio.blogspot.com/2012/01/hardening.html
    Assinatura: Fábio Jânio Administrador e mantenedor do Projeto Segurança Digital (www.segurancadigital.info - www.twitter.com/_SegDigital)

  2. #2
    Wannabe Avatar de kaao1001
    Data de Ingresso
    Dec 2011
    Localização
    %AppData%
    Posts
    467
    Lí e começo e não conhecia esse termo ^^

    Vlw por compartilhar

    NÃO RESPONDO PERGUNTAS POR PM!
    Se quiser uma ajuda minha, me indique o tópico com a sua duvida.

  3. #3
    Moderador Avatar de eduardu0
    Data de Ingresso
    Feb 2007
    Posts
    979
    Fala Fábio. Beleza?

    Simplesmente muito bem abordado! Parabéns pelo tutorial.

    Vale a pena ressaltar que isso é só a pontinha do iceberg, quem realmente administra servidores, deve ter isso na ponta da lingua, e muito mais!

    Uma das falhas que mais vejo é todo mundo utilizando o ROOT sem ter noção do perigo que isso representa.
    Pense em uma frase bonita.

  4. #4
    Citação Postado originalmente por eduardu0 Ver Post
    Fala Fábio. Beleza?

    Simplesmente muito bem abordado! Parabéns pelo tutorial.

    Vale a pena ressaltar que isso é só a pontinha do iceberg, quem realmente administra servidores, deve ter isso na ponta da lingua, e muito mais!

    Uma das falhas que mais vejo é todo mundo utilizando o ROOT sem ter noção do perigo que isso representa.
    Tudo na paz. Nossa já vi o pessoal utilizar o ROOT para escrever um texto no nano (quando um usuário comum poderia o fazer).
    Em uma matéria posterior este tema será abordado mais a fundo!
    Assinatura: Fábio Jânio Administrador e mantenedor do Projeto Segurança Digital (www.segurancadigital.info - www.twitter.com/_SegDigital)

  5. #5
    Citação Postado originalmente por eduardu0 Ver Post
    Fala Fábio. Beleza?

    Simplesmente muito bem abordado! Parabéns pelo tutorial.

    Vale a pena ressaltar que isso é só a pontinha do iceberg, quem realmente administra servidores, deve ter isso na ponta da lingua, e muito mais!

    Uma das falhas que mais vejo é todo mundo utilizando o ROOT sem ter noção do perigo que isso representa.
    Exatamente,utilizar root nos *nix e Administrador no Windows realmente é algo que acontece e bastante gente não tem nem noção.
    MP Com dúvidas e pedidos de ajudas serão IGNORADAS
    "Mentes fracas não pensam,corpos fracos não lutam."

    Microsoft Technology Associate: Software Development Fundamentals (C#
    )

  6. #6
    Citação Postado originalmente por R0Dr1g0. Ver Post
    Exatamente,utilizar root nos *nix e Administrador no Windows realmente é algo que acontece e bastante gente não tem nem noção.
    Se o sistema operacional tivesse a capacidade de expressar sua opinião em palavras com certeza ele falaria algo como "O usuário é meu maior problema". rsrs
    Assinatura: Fábio Jânio Administrador e mantenedor do Projeto Segurança Digital (www.segurancadigital.info - www.twitter.com/_SegDigital)

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •