15/10/2013
DICAS - Segurança de Redes
Sniffers (Farejadores)
Por padrão, os computadores (pertencentes à mesma rede) escutam e respondem somente pacotes endereçados a eles. Entretanto, é possível utilizar um software que coloca a interface num estado chamado de modo promíscuo. Nessa condição o computador pode monitorar e capturar os dados trafegados através da rede, não importando o seu destino legítimo.
Os programas responsáveis por capturar os pacotes de rede são chamados Sniffers, Farejadores ou ainda Capturadores de Pacote. Eles exploram o fato do tráfego dos pacotes das aplicações TCP/IP não utilizar nenhum tipo de cifragem nos dados. Dessa maneira um sniffer pode obter nomes de usuários, senhas ou qualquer outra informação transmitida que não esteja criptografada.
A dificuldade no uso de um sniffer é que o atacante precisa instalar o programa em algum ponto estratégico da rede, como entre duas máquinas, (com o tráfego entre elas passando pela máquina com o farejador) ou em uma rede local com a interface de rede em modo promíscuo.
Spoofing (Falsificação de Endereço)
Define-se spoofing como sendo uma técnica utilizada por invasores para conseguirem se autenticar a serviços, ou outras máquinas, falsificando o seu endereço de origem. Ou seja, é uma técnica de ataque contra a autenticidade, uma forma de personificação que consiste em um usuário externo assumir a identidade de um usuário ou computador interno, atuando no seu lugar legítimo.
A técnica de spoofing pode ser utilizada para acessar serviços que são controlados apenas pelo endereço de rede de origem da entidade que irá acessar o recurso específico, como também para evitar que o endereço real de um atacante seja reconhecido durante uma tentativa da invasão.
Essa técnica é utilizada constantemente pelos hackers, sendo que existem várias ferramentas que facilitam o processo de geração de pacotes de rede com endereços falsos.
DoS - Denial-of-Service
Ter as informações acessíveis e prontas para uso representa um objetivo crítico para muitas empresas. No entanto, existem ataques de negação de serviços (DoS – Denial-of-Service Attack), onde o acesso a um sistema/aplicação é interrompido ou impedido, deixando de estar disponível; ou uma aplicação, cujo tempo de execução é crítico, é atrasada ou abortada.
Esse tipo de ataque é um dos mais fáceis de implementar e dos mais difíceis de se evitar. Geralmente usam spoofing para esconder o endereço de origem do ataque. O objetivo é incapacitar um servidor, uma estação ou algum sistema de fornecer os seus serviços para os usuários legítimos. Normalmente o ataque DoS não permite o acesso ou modificação de dados. Usualmente o atacante somente quer inabilitar o uso de um serviço, não corrompê-lo.
Podemos destacar algumas das formas para realização de ataques de negação de serviço:
• Flooding – O atacante envia muitos pacotes de rede em curto período de tempo, de forma que a máquina vítima fique sobrecarregada e comece a descartar pacotes (negar serviços).
• Buffer Overflow – Uma máquina pode negar serviços se algum software ou sistema operacional tiver alguma falha com o processo de alocação de memória e com o limitado tamanho dos buffers usados. Existem ataques que exploram estes problemas de implementação para, inclusive, rodar código executável remotamente na máquina vítima.
• Pacotes Anormais – Algumas implementações do protocolo TCP/IP não consideram o recebimento de pacotes com formato dos seus dados de maneira incorreta, dessa maneira muitas vezes é possível até travar completamente uma máquina ou equipamento remoto enviando pacotes com dados inválidos.
Apesar de geralmente não causarem a perda ou roubo de informações, os ataques DoS são extremamente graves. Um sistema indisponível, quando um usuário autorizado necessita dele, pode resultar em perdas tão graves quanto às causadas pela remoção das informações daquele sistema. Ele ataca diretamente o conceito de disponibilidade, ou seja, significa realizar ações que visem a negação do acesso a um serviço ou informação.
DDoS – Distributed Denial-of-Services
Neste novo enfoque, os ataques não são baseados no uso de um único computador para iniciar um ataque, no lugar são utilizados centenas ou até milhares de computadores desprotegidos e ligados na Internet para lançar coordenadamente o ataque. A tecnologia distribuída não é completamente nova, no entanto, vem amadurecendo e se sofisticando de tal forma que até mesmo vândalos curiosos e sem muito conhecimento técnico podem causar danos sérios.
Seguindo na mesma linha de raciocínio, os ataques Distributed Denial of Service, nada mais são do que o resultado de se conjugar os dois conceitos: negação de serviço e intrusão distribuída. Os ataques DDoS podem ser definidos como ataques DoS diferentes partindo de várias origens, disparados simultânea e coordenadamente sobre um ou mais alvos. De uma maneira simples, são ataques DoS em larga escala.
Os primeiros ataques DDoS documentados surgiram em agosto de 1999, no entanto, esta categoria se firmou como a mais nova ameaça na Internet na semana de 7 a 11 de Fevereiro de 2000, quando vândalos cibernéticos deixaram inoperantes por algumas horas sites como o Yahoo, EBay, Amazon e CNN. Uma semana depois, teve-se notícia de ataques DDoS contra sites brasileiros, tais como: UOL, Globo On e IG, causando com isto uma certa apreensão generalizada.
Para realização de um ataque DDoS são envolvidos os seguintes personagens:
• Atacante: Quem efetivamente coordena o ataque.
• Master: Máquina que recebe os parâmetros para o ataque e comanda os agentes.
• Agente: Máquina que efetivamente concretiza o ataque DoS contra uma ou mais vítimas, conforme for especificado pelo atacante. Geralmente um grande número de máquinas que foram invadidas para ser instalado o programa cliente.
• Vítima: Alvo do ataque. Máquina que é "inundada" por um volume enorme de pacotes, ocasionando um extremo congestionamento da rede e resultando na paralisação dos serviços oferecidos por ela.
Vale ressaltar que, além destes, existem outros dois personagens atuando nos bastidores:
• Daemon: Processo que roda no agente, responsável por receber e executar os comandos enviados pelo cliente.
• Cliente: Aplicação que reside no master e que efetivamente controla os ataques enviando comandos aos daemons.
Os ataques DDoS amplificam o poder de ação dos ataques DoS utilizando computadores comprometidos, os agentes, onde os daemons foram instalados indevidamente devido a vulnerabilidades exploradas pelos atacantes. A partir do momento que o master envia o comando de início para os agentes, o ataque à vítima se inicia em grande escala. Esse tipo de ataque mostra como a segurança de qualquer equipamento à Internet é importante, qualquer host vulnerável pode ser utilizado como recurso para um ataque.
Ataque de Senhas
A utilização de senhas seguras é um dos pontos fundamentais para uma estratégia efetiva de segurança. As senhas garantem que somente as pessoas autorizadas terão acesso a um sistema ou à rede. Infelizmente isso nem sempre é realidade. As senhas geralmente são criadas e implementadas pelos próprios usuários que utilizam os sistemas ou a rede. Palavras, símbolos ou datas fazem com que as senhas tenham algum significado para os usuários, permitindo que eles possam facilmente lembrá-las. Neste ponto é que existe o problema, pois muitos usuários priorizam a conveniência ao invés da segurança. Como resultado, eles escolhem senhas que são relativamente simples. Enquanto isso permite que possam lembrar facilmente das senhas, também facilita o trabalho de quebra dessas senhas por hackers. Em virtude disso, invasores em potencial estão sempre testando as redes e sistemas em busca de falhas para entrar. O modo mais notório e fácil a ser explorado é a utilização de senhas inseguras. A primeira linha de defesa, a utilização de senhas, pode se tornar um dos pontos mais falhos.
Parte da responsabilidade dos administradores de sistemas é garantir que os usuários estejam cientes da necessidade de utilizar senhas seguras. Isto leva a dois objetivos a serem alcançados: primeiro, educar os usuários sobre a importância do uso de senhas seguras; e segundo, implementar medidas que garantam que as senhas escolhidas pelos usuários são efetivamente adequadas. Para alcançar o primeiro objetivo, a educação do usuário é o ponto chave. Já para alcançar o segundo objetivo, é necessário que o administrador de sistemas esteja um passo à frente, descobrindo senhas inseguras antes dos atacantes. Para fazer isso é necessária a utilização das mesmas ferramentas utilizadas pelos atacantes.
Abaixo duas das principais técnicas de ataque a senhas:
• Ataque de Dicionário: Nesse tipo de ataque são utilizadas combinações de palavras, frases, letras, números, símbolos, ou qualquer outro tipo de combinação geralmente que possa ser utilizada na criação das senhas pelos usuários. Os programas responsáveis por realizar essa tarefa trabalham com diversas permutações e combinações sobre essas palavras. Quando alguma dessas combinações se referir à senha, ela é considerada como quebrada (Cracked). Geralmente as senhas estão armazenadas criptografadas utilizando um sistema de criptografia HASH. Dessa maneira os programas utilizam o mesmo algoritmo de criptografia para comparar as combinações com as senhas armazenadas. Em outras palavras, eles adotam a mesma configuração de criptografia das senhas, e então criptografam as palavras do dicionário e comparam com senha.
• Força-Bruta: Enquanto as listas de palavras, ou dicionários, dão ênfase a velocidade, o segundo método de quebra de senhas se baseia simplesmente na repetição. Força-Bruta é uma forma de se descobrir senhas que compara cada combinação e permutação possível de caracteres até achar a senha. Este é um método muito poderoso para descoberta de senhas, no entanto é extremamente lento porque cada combinação consecutiva de caracteres é comparada. Ex: aaa, aab, aac ..... aaA, aaB, aaC... aa0, aa1, aa2, aa3... aba, aca, ada...