O documento discute princípios de segurança na internet, incluindo como a internet foi projetada inicialmente sem considerar segurança e como os ataques se tornaram mais sofisticados ao longo do tempo. Também descreve vários tipos de ataques como negação de serviço, exploração de bugs e protocolos, e mecanismos de defesa como criptografia e filtros de pacotes.
3. 1 – Segurança na Internet (1/2)
• A Internet foi projetada visando fornecer conectividade entre
computadores para uma comunidade restrita de usuários que
confiavam mutuamente entre si.
• Ela não foi projetada para um ambiente comercial, para tráfego de
informações valiosas ou para resistir a ataques mal-intencionados.
• Na década de 80 a primeira solução adotada foi relativamente
simples: incentivar os usuários a escolherem boas senhas, prevenir o
compartilhamento indiscriminado de contas e arquivos e eliminar
os bugs de segurança de programas como sendmail, finger, login,
etc.
3
4. 1 – Segurança na Internet (2/2)
• Na década de 90 os ataques tornaram-se mais
sofisticados e organizados
▫ Senhas e outras informações são capturadas por network sniffers.
Programas para interceptar e registrar os dados em uma rede de
computadores, e eventualmente decodificação e análise do conteúdo.
▫ Computadores são invadidos ou paralisados por ataques do tipo IP
spoofing.
Técnica para mascarar o IP, onde o remetente é um IP falsificado,
fazendo com que um host se passe por outro.
▫ Sessões são desviadas através de connection hijacking.
Consiste em interceptar uma sessão TCP iniciada entre 2 computadores a
fim de desviar a sessão.
▫ Dados são comprometidos pela inserção de informação espúria.
Dados adulterados.
4
5. 1.1 – Principais Vulnerabilidades
• Estas são as vulnerabilidades mais comuns encontradas nos serviços
baseados em TPC/IP que são disponibilizados na Internet:
▫ Má configuração dos serviços.
▫ Serviços não utilizam nenhuma forma de criptografia nos dados a serem
transmitidos.
▫ Serviços utilizam mecanismos de autenticação fáceis de serem
enganados.
▫ Implementação de clientes e servidores dos serviços apresentam bugs.
▫ Serviços são baseados em TCP/IP, sessões podem ser interceptadas.
▫ Alguns serviços são difíceis de serem usados com filtros de pacotes.
5
6. 2 – Ataques
• Um ataque pode ser divido em algumas fases distintas:
1. Selecionar um alvo.
2. Coletar informações sobre o alvo.
3. Lançar um ataque sobre o alvo.
4. Destruir evidências da invasão.
5. Obter senhas de outras contas.
6. Obter acesso root.
7. Instalar ferramentas para capturar senhas.
8. Configurar caminhos secundários de entrada.
9. Encontrar máquinas que confiam na máquina invadida.
10. Utilizar máquina invadida como base para lançar outros
ataques.
6
7. 2.1 – Coleta de Informação
• Os primeiros passos de um ataque referem-se à coleta de
informações sobre o alvo, para posterior determinação de pontos
fracos a serem explorados:
1. Informação sobre o domínio e seus servidores (obtida por whois e
nslookup);
2. Informação sobre números IP utilizados (obtida por nslookup e
traceroute);
3. Informação sobre a arquitetura das máquinas (tipo e modelo de CPU,
sistema operacional);
4. Informação sobre os servidores (versões e plataforma);
5. Informação sobre os serviços de proteção (firewall, redes privadas
(VPNs), mecanismos de controle de acesso (ACL);
6. Informação sobre o acesso remoto (números de telefone, usuários
autorizados);
7. Informação sobre localização (endereço geográfico, conexões à
Internet).
8. Informação sobre usuários (nomes, cargos, funções);
7
8. 2.1.1 – Varredura (Scanning)
• Coleta de informações pode ser reforçada e realizada de forma
automatizada.
• Nesta categoria incluem-se programas que realizam varredura
automática, testando sistematicamente todos os números IP de uma
organização, se as máquinas correspondentes são alcançáveis e que
serviços estão ativos nestas máquinas (quais portas estão
escutando).
• Varredura de portas: testa sistematicamente as portas ativas em
uma determinada máquina, para determinar quais os serviços que
estão disponíveis nesta máquina.
8
10. 2.2.1 – Negação de Serviço (Denial-of-Service) (1/3)
• Um intruso inunda o sistema ou rede com mensagens,
processos ou requisições, de modo que nenhum trabalho
possa ser realizado.
• Isto pode ser obtido de várias maneiras distintas:
▫ Ping of Death: enviando-se um ping com um pacote maior que o
limite de 64 Kbytes. (muito utilizando nos anos 80)
▫ Teardrop: enviando-se pacotes com dados fragmentados
sobrepostos, que são impossíveis de serem reunidos.
▫ Nestea: enviando-se pacotes com dados fragmentados e de
grande tamanho.
10
11. 2.2.1 – Negação de Serviço (Denial-of-Service) (2/3)
▫ Syn Flood: saturando-se um computador com pedidos de conexão
(SYN) que nunca são efetivados.
▫ Smurf Attack: falsificando-se um pedido de ping em broadcast; a
resposta dos demais computadores satura a máquina alvo com
múltiplas respostas.
▫ UDP flood: criando-se um fluxo de dados inúteis entre duas
máquinas.
11
12. 2.2.1 – Negação de Serviço (Denial-of-Service) (3/3)
• É complicado impedir ataques de negação de serviço, pois os
servidores precisam fornecer serviços.
• Assim é necessário que configure os serviços de modo que se
um deles for inundado, o resto do site permaneça operacional,
enquanto o pessoal encarregado tenta encontrar uma solução
para o problema.
12
13. 2.2.2 – Exploração de Bugs
• Uma das maneiras mais comuns de se conseguir acesso em um
sistema é explorar furos de implementação presentes em programas
e sistemas operacionais.
• Como quaisquer outros, programas de comunicação que
implementam segurança possuem bugs.
• A falha de apenas um componente é o suficiente para que o sistema
inteiro seja comprometido por um atacante.
13
14. 2.2.3 – Exploração de Protocolos
• O protocolo TCP/IP representa um risco de segurança.
• Quando foi projetado, não foi levado em consideração o aspecto
segurança.
• Assim, atacantes exploram algumas de suas características para
conseguir acesso não-autorizado.
14
15. 2.2.3.1 – IP Spoofing
• No IP Spoofing, o atacante utiliza o endereço IP de uma máquina
confiável juntamente com algum protocolo que faz autenticação
baseada em endereços.
• Deste modo, este ataque permite que pessoas utilizando qualquer
máquina se passem por usuários legítimos de uma máquina que é
confiável em determinada rede.
15
16. 2.2.3.1 – IP Spoofing
• A ideia básica é estabelecer uma conexão com o alvo, enganando o
handshake¹ inicial do protocolo TCP.
• O principal ponto sequence number attack² é adivinhar o ISN
(Initial Sequence Number) gerado pelo host alvo.
• Daí é necessário retirar de operação a outra máquina (confiável),
inundando a porta com requisições de conexão.
• Isto causará overflow de filas e causará a perda da mensagem do
alvo para a máquina confiável.
16
1 - Processo onde duas máquinas afirmam o reconhecimento de uma a outra e que está pronta para
iniciar a conexão.
2 - O protocolo TCP utiliza uma sequência de números associada aos pacotes para garantir que os
pacotes cheguem ao destino na ordem em que foram enviados.O ataque TCP Sequence Number
Preditiction consiste em “adivinhar” o próximo número de sequência do pacote trafegado e assim
forjar pacotes com a numeração esperada pela máquina alvo.
17. 2.2.3.2 – DNS Spoofing
• Em ataques ao DNS, a ideia básica é subverter o servidor de nomes,
e com isto permitir que máquinas não confiáveis (as do atacante) se
passem por máquinas confiáveis.
• Para lançar este ataque, o intruso deve ter inicialmente controle
sobre o host de servidor de DNS e saber o nome de uma máquina
em quem o alvo confia.
• Com isto altera-se o registro do DNS que mapeia o endereço IP da
máquina confiável para o seu nome, modificando-o para que
contenha o endereço da máquina atacante.
• A partir deste momento o intruso terá livre acesso em serviços que
realizam autenticação baseada em nomes.
17
18. 2.2.3.3 – Source Routing Attack
• Este ataque se utiliza, dos mecanismos de roteamento disponíveis e
da opção loose source route do protocolo IP para induzir a máquina
alvo a acreditar que o ataque é, na realidade, uma operação legítima
proveniente de uma outra máquina confiável.
18
19. 2.2.3.4 – ARP Spoofing
• O protocolo ARP (Address Resolution Protocol) é utilizado para
converter endereços IP em endereços MAC para comutação em
redes com um domínio de broadcast.
• O spoofing ARP consiste em enganar o Switch com o endereço MAC
igual ao de outra máquina e assim receber os pacotes de outra
máquina.
• Essa técnica é pouco usada, porque os cache ARP são atualizados a
cada 5 minutos, deixando o atacante com uma “janela” de ataque
muito restrita.
19
20. • Na grande maioria das redes, os pacotes são transmitidos para todos
os computadores conectados ao mesmo meio físico.
• Um sniffer configura a placa de rede para operar no modo
promíscuo, esta técnica é chamada de sniffing, permitindo que o
atacante possa visualizar todos os pacotes que passam no mesmo
momento em sua rede.
• Caso dados não estejam criptografados, fica fácil encontrar logins e
senhas de usuários.
20
2.2.3.5 – Sniffers
21. 2.2.3.6 – Ataque do dicionário (1/4)
• O ataque do dicionário consiste em que o atacante consegue através
de outro ataque o arquivo de senhas do servidor.
• Se o arquivo estiver descriptografado fica fácil a invasão do servidor
com outros usuários e senhas.
• Logo se o arquivo estiver criptografado pode-se usar a técnica de
ataque ao dicionário, usando-se um software que tenta decifrar
senhas fáceis, e assim sucessivamente até decifrar todas as senhas.
21
22. 2.2.3.6 – Ataque do dicionário (2/4)
• Para encontrar senhas difíceis e dependendo do algoritmo de
criptografia, o atacante pode até desistir por causa da demora, mas
devido à usuários destreinados e que não seguem normas de
segurança, esses provavelmente colocarão senhas fáceis e serão
utilizadas facilmente pelo intruso.
• Por exemplo, você conseguiria decifra o código a seguir?
• e10adc3949ba59abbe56e057f20f883e
22
23. 2.2.3.6 – Ataque do dicionário (3/4)
• Acessem o site:
• http://www.md5decrypt.org/
• Descriptografem o código: e10adc3949ba59abbe56e057f20f883e
23
24. 2.2.3.6 – Ataque do dicionário (4/4)
• O resultado será: 123456!
• Então não adianta criptografia sem uma boa senha!
24
25. 2.2.3.7 – Código Malicioso (1/2)
• O ataque por código malicioso, é feito por programas ou scripts que
são executados por usuários finais sem intenção.
• O usuário é enganado e executa o arquivo anexo à e-mails ou
downloads, o mesmo pode conter código malicioso que abre sua
máquina como alvo fácil para intrusos:
25
26. 2.2.3.7 – Código Malicioso (2/2)
▫ Vírus: pequenos programas que anexam a outros (propagação) e são
programados para causar diversos danos. São encontrados
principalmente em ambientes Windows.
▫ Cavalos de tróia: programas que aparentemente realizam uma
determinada função, mas que na realidade causam danos quando
ativados. Atualmente são disseminados predominantemente através do
correio eletrônico.
▫ Portas dos fundos (backdoors): programas (ou configurações) que
permitem um atacante invadir facilmente um sistema remotamente.
▫ Portas dos fundos de controle remoto: permitem controle total da
máquina do usuário infectado.
26
27. 3 – Mecanismos de Segurança
• Os mecanismos de segurança são ingredientes típicos de redes
seguras. Alguns dos principais mecanismos de segurança são:
27
28. 3.1 – Criptografia de Dados (1/2)
• A criptografia é um processo que mistura os dados para protegê-los
contra a leitura por qualquer pessoa que não o receptor pretendido.
• A informação que trafega na rede, no modo criptografado, é
chamada de dados cifrados e caso contrário é chamado de texto
simples ou texto não formatado.
• Não só tornando as informações difíceis de entender, mas também é
usada para identificar o remetente da mensagem, e autenticação do
remetente.
28
29. 3.1 – Criptografia de Dados (2/2)
• Embora a criptografia seja uma ótima ferramenta de segurança, ela
influencia no desempenho da rede, por isso é necessário identificar
onde realmente ela é necessária, por exemplo: Acesso à web, na rede
interna não é necessário criptografar os dados, logo, uma
comunicação VPN (Virtual Private Network) é indispensável a
criptografia.
• A criptografia tem duas partes:
▫ Algoritmos de criptografia: é um conjunto de instruções para embaralhar
e desembaralhar os dados.
▫ Chave de criptografia: código usado por um algoritmo para embaralhar e
desembaralhar os dados.
• A meta da criptografia é que, mesmo que o algoritmo seja
conhecido, sem a chave apropriada, um intruso não possa
interpretar a mensagem.
29
30. 3.2 – Filtros de Pacotes
• Os filtros de pacotes podem ser configurados em roteadores e
servidores (proxy) para aceitar ou negar pacotes de determinados
endereços ou serviços.
• Os filtros de pacotes ampliam os mecanismos de autenticação e
autorização.
• Eles ajudam a proteger recursos de rede contra uso não autorizado,
furto, destruição e ataques de negação de serviço. (DoS Denial-of-
Service).
• Existem duas normas de filtros de pacotes:
1. Negar tipos específicos de pacotes e aceitar todos os outros.
2. Aceitar tipos específicos de pacotes e negar todos os outros.
30
31. 3.3 – Filtragem de E-mail
• A maioria das ameaças de segurança que existem chegam através de
e-mail.
• Apenas o antivírus não é proteção suficiente. Os vírus podem chegar
por e-mail antes mesmo de seu antivírus estar atualizado. Ou pode
também carregar cavalos de tróia.
• Ainda sim existem alguns programas leitores de e-mail que
executam arquivos anexados sem esperar qualquer comando do
usuário.
• Hoje existem vários softwares que fazem esta proteção de vacinar os
e-mails e inclusive bloquear e-mails com mensagens proibidas.
31
32. 3.4 – Filtragem Web
• Assim como o e-mail, a web também é uma fonte de perigos.
• Arquivos Java, JavaScript, ActiveX e VBScript podem ler e escrever
dados no seu disco rígido e até mesmo na rede.
• Para evitar isso pode-se:
▫ Colocar controle de proxy;
▫ Controle de sites a serem acessados;
▫ Controle do volume de dados para serem trafegados;
▫ Especificar os usuário que podem acessar a net;
▫ Dentre outros;
32