44
1 MP202 – Segurança da Informação Tipos de Ataques Dezembro de 2003 Alunos: Luiz Carlos Romero RA: 800577 Luiz Yukishigue Kacuta RA: 022523 Viviane Luciana de Oliveira RA: 022540

MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

  • Upload
    dohuong

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

1

MP202 – Segurança da Informação Tipos de Ataques

Dezembro de 2003

Alunos: Luiz Carlos Romero RA: 800577 Luiz Yukishigue Kacuta RA: 022523 Viviane Luciana de Oliveira RA: 022540

Page 2: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

2

Índice

1. Introdução .....................................................................................................................................3

1.1 Motivação.....................................................................................................................................3

1.2 Objetivo deste trabalho.................................................................................................................4

2. Caracterização dos ataques .............................................................................................................5

2.1 Os tipos de atacantes ....................................................................................................................5

2.2 Os pontos explorados ...................................................................................................................6

2.3 O impacto ....................................................................................................................................6

3. Tipos de Ataques ...........................................................................................................................8

3.1 IP Spoofing....................................................................................................................................8

3.1.1 O que é IP Spoofing...................................................................................................................8

3.1.2 Como é feito o IP Spoofing.........................................................................................................8

3.1.2.1 Mudança básica de endereço................................................................................................10

3.1.2.2 Uso de roteamento de origem para interceptar pacotes.........................................................10

3.1.2.3 Exploração da relação de confiança entre máquinas Unix .....................................................11

3.1.3 Medidas Preventivas e/ou Corretivas ........................................................................................11

3.1.4 Casos conhecidos de IP Spoofing..............................................................................................12

3.2 Buffer Overflow ...........................................................................................................................13

3.2.1 O que é Buffer Overflow ..........................................................................................................13

3.2.2 Como é feito o Buffer Overflow ................................................................................................13

3.2.3 Medidas Preventivas e/ou Corretivas ........................................................................................16

3.2.3.1 Por que existem tantos programas vulneráveis? .....................................................................16

3.2.3.2 Detecção e Prevenção ..........................................................................................................16

3.2.3.3 Proteção Contra ataques Buffer Overflow ..............................................................................17

3.2.4 Casos conhecidos de Buffer Overflow .......................................................................................18

3.3 Seqüestro de Sessão (Hijacking Attacks).......................................................................................20

3.3.1 O que é o Sequestro de Sessão ................................................................................................20

3.3.2 Como é feito o Sequestro de Sessão.........................................................................................20

3.3.2.1 Tipos de Sequestro de sessão ................................................................................................20

3.3.2.2 Spoofing versos Hijacking ......................................................................................................21

3.3.2.3 Descrição detalhada de um Sequestro de Sessão...................................................................22

3.3.3 Medidas Preventivas e/ou Corretivas ........................................................................................24

3.4 Denial of service..........................................................................................................................26

3.4.1 O que é o Denial of service ......................................................................................................26

3.4.2 Como é feito o Denial of service...............................................................................................27

3.4.3 Medidas Preventivas e/ou Corretivas ........................................................................................30

3.4.4 Casos conhecidos de Denial of service......................................................................................31

4. Intrusion Detection Systems........................................................................................................33

4.1 Detecção de Incidentes...............................................................................................................33

4.2 Detalhamento do IDS .................................................................................................................34

4.2.1 Características ..........................................................................................................................34

Segundo Localização.........................................................................................................................38

5. Conclusão ....................................................................................................................................42

Page 3: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

3

1. Introdução

1.1 Motivação

Nos últimos anos a explosão da Internet, a popularização dos microcomputadores e os processos de transformação de arquiteturas proprietárias em tecnologias abertas, tornaram o acesso às informações muito mais fácil e rápido. Mas, se por um lado, a facilidade e rapidez do acesso à informação contribuíram para a divulgação acelerada de conhecimentos, por outro lado, houve um crescimento exponencial da falta de segurança sobre a informação.

A conexão de computadores em redes multiplicou as portas de acesso aos sistemas computacionais, multiplicando também a possibilidade da ocorrência de acessos indevidos. Na medida em que se amplia o acesso às informações e mais recursos são disponibilizados aos usuários, aumenta-se a complexidade das redes; quanto mais recursos são utilizados, mais difícil se torna garantir a segurança dos sistemas de informação. Este problema é agravado cada vez mais pela pouca relevância dada ao assunto, e pela diversidade de inovações tecnológicas disponibilizadas aos usuários, que transportam as condições de insegurança de seu ambiente de computação pessoal para a computação corporativa. Tecnicamente uma rede de computadores funciona como elos de uma corrente e a fragilidade da mesma se dá pela possível fragilidade de um único elo mais desprotegido.

Em abril de 2003, o Computer Security Institute (CSI) liberou a estatística anual de estudos de crimes de computador de 2002. Esta estatística, correspondente ao estudo realizado com 503 grandes empresas, e mostra uma tendência crescente de ataques às redes corporativas, conforme os dados apresentados a seguir.

• 90% das empresas (grandes corporações e órgãos do governo americano) analisadas detectaram falhas de segurança no sistema, entre abril 2002 e abril 2003;

• 80% das empresas admitiram ter sofrido perdas financeiras;

• 44% (223 dos entrevistados) que se propuseram a quantificar relataram perdas financeiras no montante de $455.848.000;

• Assim como nos anos anteriores, as perdas financeiras mais significativas ocorreram com o roubo de informações privadas (26 empresas acusaram perdas de $170.827.000) e fraudes financeiras (25 empresas acusaram perdas de $115.753.000).

• Pelo quinto ano consecutivo, a maioria das empresas (74%) citou a conexão Internet como o ponto mais freqüente do ataque.

As estatísticas apontam a possibilidade de ganhos financeiros como uma das razões que levam uma pessoa a atacar uma rede. Quase meio bilhão de dólares foram perdidos somente pelas empresas analisadas. 285 milhões foram perdidos em roubo de informações privadas, ou em fraudes financeiras.

Os dados apresentados acima justificam a importância no estudo desse tema, tanto sob o ponto de vista de entendimento do funcionamento dos ataques mais comuns, bem como sob o aspectos das medidas preventivas e corretivas que poderão ser adotadas no caso de um ataque, evitando que outras empresas incorporem as estatísticas relatadas acima.

O risco que uma organização corre está diretamente relacionado à exploração de vulnerabilidades existentes no ambiente, as quais podem comprometer a integridade, a disponibilidade e confidencialidade das informações. Para evitar este risco, uma organização deve ter mecanismos capazes de identificar os seus pontos vulneráveis.

Page 4: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

4

Não se trata apenas de conhecer algumas ferramentas e técnicas; antes de tudo é necessário que os administradores e profissionais da área de tecnologia tenham em mente que para manter a segurança das informações é necessário direcionar investimentos no aprimoramento dos três elementos básicos: pessoas, processos e tecnologia.

1.2 Objetivo deste trabalho

O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão, Denial of service e Buffer Overflow, atentando para os seguintes aspectos:

- definição do ataque;

- como é executado o ataque;

- medidas preventivas e/ou corretivas; e

- relatos de ataques conhecidos, quando aplicável.

Este trabalho não tem por objetivo abordar o uso de ferramentas ou o desenvolvimento de códigos maliciosos que possibilitem a execução dos ataques acima relacionados.

Em virtude do importante papel que as ferramentas de IDS – Intrusion Detection Systems desempenham atualmente na prevenção e/ou combate aos ataques, dedicamos uma seção especial para conceituação desse dispositivo.

Page 5: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

5

2. Caracterização dos ataques

2.1 Os tipos de atacantes

O termo genérico para identificar quem realiza o ataque em um sistema computacional é hacker. Essa generalização, porém, tem diversas ramificações, pois os ataques aos sistemas apresentam objetivos diferentes e o seu sucesso depende do grau de segurança dos alvos e da conseqüente capacidade do hacker em atacá-los. Isso significa que os sistemas bem protegidos são mais difíceis de serem atacados, o que faz com que uma maior habilidade seja exigida para a concretização dos ataques.

Os hackers, por sua definição original, são aqueles que utilizam seus conhecimentos para invadir sistemas, não com o intuito de causar danos às vítimas, mas sim como um desafio às suas habilidades. Eles invadem os sistemas, capturam ou modificam arquivos para provar sua capacidade e depois compartilham suas proezas com seus colegas. Eles não têm intenção de prejudicar, mas sim de apenas demonstrar que conhecimento é poder. Exímios programadores e conhecedores dos segredos que envolvem as redes e os computadores, eles geralmente não gostam de ser confundidos com crackers.

Com o advento da Internet, porém, os diversos ataques pelo mundo foram atribuídos a hackers , mas eles refutam essa idéia, dizendo que hackers não são crackers. Os crackers são elementos que invadem sistemas para roubar informações e causar danos às vítimas. O termo crackers também é uma denominação utilizada para aqueles que decifram códigos e destroem proteções de software.

Atualmente, no entando, com o crescimento da Internet e a conseqüente facilidade em se obter informações e ferramentas para ataques, a definição de hackers mudou. A própria imprensa mundial tratou de modificar esse conceito. Agora, qualquer incidente de segurança é atribuído a hackers , em seu sentido genérico. A palavra cracker não é mais vista nas reportagens, a não ser como cracker de senhas, que é um software utilizado para descobrir senhas ou decifrar mensagens cifradas.

É importante lembrar porém, que não são apenas os hackers que causam problemas de segurança nos sistemas. Os usuários, autorizados ou não, mesmo sem intenções malévolas, também podem causar danos ou negar serviços de redes, por meio de seus erros e de sua própria ignorância.

Os white hat são também conhecidos como “hackers do bem” ou “hackers ético”, samurais ou sneakers, que utilizam seus conhecimentos para descobrir vulnerabilidades nos sistemas e aplicar correções necessárias, trabalhando de maneira profissional e legal dentro das organizações. Eles vêem a si próprios como guerreiros que protegem os sistemas das organizações contra os hackers.

Uma série de considerações devem ser analisadas antes de serem contratados os serviços de um white hat, como definir os limites de uma simulação de ataque, a fim de evitar que dados confidenciais sejam expostos. Além disso, é recomendável estabelecer em contrato que as informações obtidas permanecerão em sigilo e também garantir que todas as correções sejam implementadas.

Page 6: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

6

2.2 Os pontos explorados

As invasões aos sistemas podem ser executadas por meio da exploração de técnicas que podem ter como base a engenharia social ou invasões técnicas.

Os ataques técnicos podem explorar uma série de condições incluídas a seguir:

- Exploração de vulnerabilidades, que são resultantes de bugs na implementação ou no design de sistemas operacionais, serviços, aplicativos e protocolos como o Internet Controle Message Protocol (ICMP) podem ser explorados em ataques como Smurf e Ping-of-Death. O UDP pode ser explorado pelo Fraggle, enquanto o TCP pode sofrer ataques conhecidos como o SYN Flood, por exemplo.

- Utilização de senhas ineficientes que podem ser obtidas por meio da captura utilizando-se os recursos da rede (packet sniffing). Mesmo quando as senhas são protegidas por criptografia, elas podem ser decifradas por meio de cracking e exploradas em ataques de força bruta.

- O mau uso de ferramentas legítimas que, em vez de serem empregadas para auxiliar no gerenciamento e na administração, são utilizadas pelos hackers para obtenção de informações ilícitas, visando a realização de ataques. Alguns exemplos são (1) o comando nbstat do Windows NT, que fornece informações que podem ser utilizadas para o início de um ataque contra usuários do sistema (identidade do controlador do domínio, nome de Netbios, nomes de usuários), (2) o port scanning, que é utilizado para identificar as portas ativas do sistema e, consequentemente, dos serviços providos por cada porta e (3) o packet sniffing, utilizado normalmente para diagnosticar problemas de rede, que pode ser empregado para capturar pacotes que trafegam pela rede, em busca de informações como senha, informações confidenciais e e-mails.

- Configuração, administração ou manutenção imprópria de sistemas, quando a complexidade na definição de rotas e regras de filtragem do firewall, por exemplo pode introduzir novos pontos de ataque aos sistemas. Outros exemplos são (1) a utilização de configuração padrão que é conhecida por todos, inclusive pelos hackers; (2) a administração preguiçosa, sem a utilização de senhas ou com o uso de senhas ineficientes; (3) a exploração da relação de confiança entre equipamentos, quando o hacker pode chegar ao alvo atacando primeiramente um outro sistema.

- Projeto do sistema ou capacidade de detecção ineficiente, como um sistema de detecção de intrusão que fornece informações falsas, erradas ou exageradas.

As defesas contra todas as possibilidades de ataques têm de ser consideradas primordiais para o bom andamento dos negócios de todas as organizações.

2.3 O impacto

As consequências de um ataque bem sucedido a uma organização podem ser variadas, em geral são sempre negativas:

- Monitoramento não autorizado; - Descoberta e “vazamento” de informações confidencias; - Modificação não autorizada de servidores e das bases de dados da organização. - Negação ou corrupção de serviços; - Fraude ou perdas financeiras; - Imagem prejudicada, perda de confiança e de reputação; - Trabalho extra para a recuperação dos recursos; e - Perda de negócios, clientes e oportunidades.

Page 7: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

7

Um ponto importante é que, após a realização dos ataques, os hackers tentarão encobrir todos os procedimentos realizados por eles. Para isso, podem ser utilizadas técnicas como substituição ou remoção de arquivos de logs, troca de arquivos importantes do sistema para o mascaramento de suas atividades ou a formatação completa do sistema. A forense computacional também é de grande importância na investigação dos responsáveis pelos ataques.

Page 8: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

8

3. Tipos de Ataques

3.1 IP Spoofing

3.1.1 O que é IP Spoofing

O IP spoofing é uma técnica na qual o endereço real do atacante é mascarado, de forma a evitar que ele seja encontrado. Essa técnica é muito utilizada em tentativas de acesso a sistemas nos quais a autenticação tem como base endereços IP, como a utilizada nas relações de confiança em uma rede interna.

Alguns autores, adotam a seguinte definição para spoofing “Este ataque consiste em "mentir" o número IP da máquina, geralmente trocando-o por um número IP qualquer”. Isto pode ser feito através de manipulação direta dos campos do cabeçalho do pacote.

3.1.2 Como é feito o IP Spoofing

A Figura 01 exemplifica uma situação na qual o atacante envia um pacote com o endereço IP alterado para John. John recebe o pacote, entretanto os pacotes enviados por John são encaminhados para o endereço IP listado como o receptor e não para o endereço do atacante. Dessa forma, o atacante pode enviar pacotes para a máquina com o endereço alterado mas, não recebe nenhum pacote de volta. Este ataque é referenciado como um flying blind attack ou ataque em uma única direção, por que somente são enviados pacotes para a vítima. O atacante não recebe nenhum pacote de volta.

Figura 01: Atacante enviando um pacote com o endereço alterado.

Como exemplificado acima, o atacante não enxerga nenhuma resposta da vítima. Dependendo de onde o atacante está localizado, se ele se insere no caminho entre a máquina vítima e a máquina cujo endereço está sendo alterado, ele pode ser capaz de interceptar as respostas, como mostrado na Figura 02.

Page 9: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

9

Figura 02: Exploração IP Spoofing

O IP Spoofing não é exatamente uma forma de ataque, mas sim uma técnica que é utilizada na grande maioria dos ataques, pois ele ajuda a esconder a identidade do atacante.

Através da técnica de IP Spoofing, o hacker consegue atingir os seguintes objetivos:

- Obter acesso à máquinas que confiam no IP que foi falsificado;

- Capturar conexões já existentes (para isto é necessário utilizar-se também de outras técnicas como predizer o número de seqüência) e burlar os filtros de pacotes dos firewalls que bloqueiam o tráfego baseado nos endereços de origem e destino.

A técnica de IP spoofing é também utilizada juntamente com um ataque de negação de serviço, o qual consiste em disparar algum processo que sobrecarregue a máquina ou algo que ela não consiga finalizar. Um bom exemplo de ataque, que junta IP Spoofing com ataque de negação de serviço é o Syn flood.

O perigo maior deste ataque é para serviços baseados no protocolo UDP. Muitos serviços baseados neste protocolo só permitem acesso para determinadas máquinas, explicitamente configuradas pelo administrador. Este é o caso do serviço NFS, que permite o compartilhamento de discos remotos. O serviço NFS é só um exemplo, pois este ataque é válido para qualquer serviço similar. Um atacante pode enviar um pacote UDP para a máquina servidora de NFS como se este viesse de uma máquina cliente, autorizada a gravar em algum diretório. Este pacote pode conter solicitação de criação, remoção e escrita de arquivos. Como a máquina servidora acha que o pacote vem da máquina cliente, por causa do IP de origem falsificado, todas as solicitações serão prontamente atendidas. Este tipo de ataque não pode ser bloqueado sem a existência de um firewall. Logicamente, por ter o IP falso, a máquina do atacante nunca recebe os pacotes de retorno, pois o host atacado retorna os pacotes para o verdadeiro host . Em alguns ataques, isto pode complicar um pouco a vida do atacante, como no caso do sequence number, mas para muitos ataques isto não chega a ser uma limitação, pois em muitos deles o atacante não precisa receber os pacotes de retorno. Um bom exemplo disso, seria o ataque explorando o rlogin para deixar um backdoor no sistema a fim de facilitar acessos futuros.”

Apresentamos abaixo três formas de explorar os ataques de IP Spoofing como se segue:

- Mudança básica de endereço; - Uso de roteamento de origem para interceptar pacotes; e - Exploração da relação de confiança entre máquinas Unix.

Page 10: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

10

3.1.2.1 Mudança básica de endereço

Conforme mencionado anteriormente, o spoofing de um endereço IP consiste em mudar o endereço IP de uma máquina, de forma a ficar igual de uma outra máquina. A forma mais simples de efetuar essa alteração é ir até as configurações da rede e mudar o endereço IP da máquina. Fazendo isto, todos os pacotes que são enviados possuem um endereço IP igual ao endereço que o atacante quer falsificar. Dessa forma, todas as respostas são encaminhadas de volta para o endereço forjado ao invés da máquina do atacante. Este tipo de alteração possui diversas limitações, mas em termos de ataques de denial of service, às vezes é necessário somente um único pacote é capaz de indisponibilizar a máquina.

3.1.2.2 Uso de roteamento de origem para interceptar pacotes

Um dos grandes problemas do spoofing é que o tráfego retorna de volta para o endereço que sofreu spoofing e o atacante nunca visualiza os pacotes devolvidos. O Flying blind é efetivo somente em pequenos ataques. Porém em ataques avançados, o atacante quer enxergar os dois lados da conversação. Um modo de alcançar esse objetivo, é o atacante se inserir no meio do caminho no qual o pacote normalmente irá trafegar. A Internet é muito dinâmica em termos de como o roteamento é feito. Ele pode ser alterado a cada dia, hora ou até mesmo a cada minuto. Entretanto, há um modo de garantir que um pacote adotou um determinado caminho por meio da Internet, e no caso do spoofing, que este caminho passa através da máquina do atacante. É possível fazer isso com o roteamento de origem, o qual é construído dentro do protocolo TCP/IP. O roteamento de origem especifica o caminho que o pacote vai passar. Há dois tipos de roteamento de origem, conforme segue:

- Loose Source Routing (LSR): O remetente especifica uma lista de endereços IP pelos quais o tráfego ou o pacote irá passar, mas ele também poderá ir através de qualquer endereço que ele necessita. Em outras palavras, o remetente não se preocupa sobre o caminho exato que o pacote irá adotar pela rede.

- Strict Source Routing (SRS): O remetente especifica o caminho exato que o pacote deve seguir. Se o caminho exato não pode ser seguido, o pacote é descartado e uma mensagem ICMP é encaminhada para o remetente. Em outras palavras, o remetente sabe exatamente o caminho que o pacote irá seguir, e se por algum motivo o pacote não pode adotar esse caminho, ele não é enviado.

O roteamento de origem possui enormes benefícios para o spoofing. Um atacante envia um pacote para um destino com um endereço que sofreu spoofing, mas especifica um loose source roouting e coloca seu endereço IP na lista. Então, quando o receptor responde, o pacote é enviado de volta para o endereço que sofreu spoofing, porém antes ele passa pela máquina do atacante. Este ataque não é um flying blind, porque o atacante pode ver ambos os lados da conversa.

Alguns pontos imprescindíveis devem ser notados. Primeiramente, o atacante pode querer especificar vários endereços além do seu, desse modo se alguém interceptá-lo, ele pode não atingir com precisão o alvo (a máquina do atacante). Segundo, o strict source routing poderia também ser usado, porém é mais difícil porque o atacante precisa saber o caminho exato que o pacote deve percorrer. Dessa forma, como ambos os modos funcionam, é mais interessante utilizar o loose source routing, visto que ele é mais simples e tem grandes chances de sucesso.

Conforme descrito acima, a utilização de roteamento de origem é um dos modos possíveis do atacante enxergar os dois lados da conversação.

Page 11: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

11

3.1.2.3 Exploração da relação de confiança entre máquinas Unix

Principalmente nos ambientes Unix, as máquinas podem estabelecer relações de confiança entre si. Isto é feito para facilitar a movimentação de uma máquina para outra. Por exemplo, se um desenvolverdor de uma companhia trabalha em cinco servidores Unix, não é interessante, do ponto de vista da conveniência, que ele tenha que se logar constantemente em todos os sistemas. Ao invés disso, é estabelecida uma relação de confiança com outros servidores, o usuário pode se movimentar livremente entre os servidores sem ter que se reautenticar. A relação de confiança utiliza basicamente os endereços IP para autenticação. Do ponto de vista de facilidade, as relações de confiança são realmente muito boas, do ponto de vista de segurança, eles são extremamente perigosos.

Do ponto de vista do spoofing, as relações de confiança são fáceis de serem exploradas. Por exemplo, se um atacante sabe que um servidor A confia em alguém vindo da máquina Y, o qual possui endereço IP 10.10.10.5, o atacante falsifica seu endereço para 10.10.10.5, assim ele terá o acesso permitido nos demais servidores sem que seja solicitada uma senha de acesso, por que o endereço IP é confiável. O problema principal é ainda visualizar as respostas encaminhadas, porque todas as respostas são enviadas de volta para o IP que está sofrendo spoofing, e não para o endereço do atacante.

3.1.3 Medidas Preventivas e/ou Corretivas

Há algumas medidas que uma companhia pode adotar para se proteger contra IP Spoofing. É importante notar que você pode proteger suas máquinas de serem usadas para lançar um ataque spoofing, porém há pouco o que pode ser feito para evitar que seu endereço IP sofra Spoofing. Por exemplo: Há algum modo para evitar que um atacante falsifique seu endereço numa carta que ele envia? Não há nada que você pode fazer para evitar que alguém envie uma carta para outra pessoa e escreva no remetente seu endereço, ao invés do endereço dela. Este é o mesmo problema que ocorre com o IP Spoofing.

Para evitar que um atacante utilize uma máquina para iniciar um ataque spoofing, primeiramente limite quem pode acessar as informações de configuração da máquina.

Para proteger a companhia de ser vítima de um ataque de IP Spoofing, é possível aplicar filtros básicos nos roteadores, a maioria dos roteadores já possuem esses filtros embutidos. A forma mais básica de filtros é não permitir que nenhum pacote que esteja entrando na sua rede proveniente do ambiente externo tenha o mesmo endereço de origem da sua rede interna. Por exemplo, uma organização pode proteger sua rede contra o IP Spoofing de endereços IP da rede interna, por meio da aplicação de filtros, de acordo com as interfaces da rede. Assim, se a rede da organização tem endereços do tipo 100.200.200.0, então, o firewall deve bloquear tentativas de conexão originadas externamente, onde a origem tenha endereços do tipo 100.200.200.0.

Um pacote que se origina dentro da rede interna e está indo para um host interno nunca deve ser direcionado para fora da rede da companhia. Além disso, se um pacote está vindo da Internet, e afirma ter sido originado da sua rede interna, você tem um alto nível de confiança que ele é um pacote falsificado e deve ser derrubado. Este tipo de filtro é conhecido como um filtro ingress e protege a rede da companhia de ter sido vítima de um ataque spoofing. Filtros egress evita alguém utilize os computadores da companhia para lançar um ataque contra outro site. Para executar o filtro egress, seu roteador examina qualquer pacote que está deixando sua rede e assegura que o endereço fonte é um endereço da sua rede local. Se não for, o pacote deve ser descartado, porque isso indica que alguém está usando um endereço falsificado para iniciar um ataque contra outra rede. Qualquer

Page 12: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

12

pacote legítimo que está deixando a rede da companhia deve ter um endereço origem, onde a porção da rede confere com a rede interna. Em relação ao roteamento de origem, o melhor modo de se proteger contra ataques spoofing é desabilitar o roteamento de origem nos roteadores. Há poucos casos onde as pessoas utilizam o roteamento de origem para propósitos legítimos. Por esta razão, é geralmente uma boa idéia bloquear este tipo de tráfego de entrar ou de sair da sua rede. Se o roteador bloqueia todos os trafegos que tenham um roteamento de origem especificados, um atacante não pode iniciar esse tipo de ataque. Nos roteadores CISCO, é possível utilizar o comando IP SOURCE-ROUTE para habilitar ou desabilitar essa função. Outros roteadores possuem comandos similares que podem ser utilizados para desabilitar o roteamento de origem.

Já em relação à proteção contra ataques spoofing envolvendo relação de confiança, a melhor forma é a não utilização. Isto nem sempre é uma solução fácil, porque algumas companhias dependem delas, mas há algumas coisas que podem ser feitas para minimizar a exposição. Primeiro limite quem possui relação de confiança. Ou seja, determine quem realmente necessita ter relação de confiança entre si e restrinja esse recurso a um pequeno número de máquinas.

Segundo, não permita que relações de confiança sejam utilizadas via Internet, na maioria dos casos uma relação de confiança deve ser utizada somente para usuários internos no ambiente interno; existem empresas que estabelecem relações de confiança com máquinas que estão na casa dos indivíduos ou com fornecedores. Isto é extremamente perigoso e deve ser eliminado ou minimizado.

3.1.4 Casos conhecidos de IP Spoofing

O uso mais famoso de falsificação de IP foi utilizado por Kevin Mitnick (1995) para “seqüestrar” a conexão do também hacker Tsutomu Shimomura. Mitnick, forjando estar em uma máquina de Shimomura (alterando o endereço IP), ele invadiu uma máquina na rede de confiança de Shimomura utilizando os serviços de rlogin da máquina vítima.

Page 13: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

13

3.2 Buffer Overflow 3.2.1 O que é Buffer Overflow

O ataque buffer overflow funciona inserindo muitos dados dentro da pilha de memória, o que causa que outra informação que está na pilha seja sobrescrita. Como você pode imaginar, informações importantes, são armazenadas e acessadas a partir das pilhas da memória, por exemplo, todas as informações manipuladas pelo sistema operacional.

Condições de buffer overflow podem geralmente ser usadas para executar códigos arbitrários nos sistemas, sendo considerados, portanto, de alto risco. É interessante notar que grande parte das vulnerabilidades encontradas nos sistemas é referente a buffer overflow, como as que foram reportadas ultimamente em 2003, que envolvem rotinas da biblioteca do Sun RPC, DLL do Windows, ou o servidor de e-mail Sendmail.

De fato, o buffer overflow é o método de ataque mais empregado desde 1997, segundo os boletins do CERT. De acordo com o centro da coordenação, mais da metade dos boletins são relativos a buffer overflows . Além da possibilidade de execução de comandos arbitrários, que é a situação mais grave do problema, o buffer overflow pode resultar em perda ou modificação dos dados, em perda do controle do fluxo de execução do sistema (“segmentation violation”, no Unix, ou “general protection fault”, no Windows) ou em paralisação do sistema.

3.2.2 Como é feito o Buffer Overflow

O buffer overflow se aproveita da forma na qual a informação é armazenada pelos programas de computador. No computador a memória ou RAM é a área onde os dados que estão sendo executados são armazenados ou onde as variáveis que vão ser acessadas pelos programas são mantidas. A memória é volátil, o que significa que quando o computador é desligado, qualquer coisa armazenada na memória é perdida. Em virtude de a memória ser muito rápida, ela é usada para armazenar informações que serão necessárias para a execução de programas.

Em geral, quando um programa chama uma subrotina, as variáveis da função e os ponteiros de retorno de endereço são armazenados em uma estrutura lógica de dados conhecida como pilha. Uma pilha é uma porção da memória que armazena as informações que o programa necessita no momento. As variáveis são dados que os programas utilizam para tomar decisões. Por exemplo, se um programa irá adicionar dois números (x e y), as variáveis são os valores para x e para y. O ponteiro de retorno contém o endereço do ponto no qual o programa deve retornar após a subrotina ter completado a execução.

Em virtude dos sistemas operacionais terem que retornar o controle de volta a chamada do programa quando a subrotina é encerrada, o ponteiro de retorno informa em qual endereço de memória deve retornar. O espaço da variável que é alocada, algumas vezes chamada buffer, é preenchida de trás para frente, do maior endereço para o menor endereço, ou o que é chamado por último, é o primeiro a sair (LIFO). Isto significa que o último elemento que é colocado na pilha é o primeiro elemento que é retirado. Um bom exemplo é um elevador. Quando você entra em um elevador, a última pessoa que entra no elevador, é geralmente a primeira pessoa a sair (isto assumindo que todas as pessoas que entraram sairão no mesmo andar).

A Figura 03 mostra com uma pilha de memória opera.

Page 14: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

14

Figura 03: Operação normal de uma pilha.

Figura 04: Esmagamento de Pilha.

Como você pode ver, a chamada da função ocorre no topo da pilha. Quando o programa chama uma subrotina, a primeira coisa que é colocada na pilha é o ponteiro de retorno. Lembre-se que por causa da LIFO, a primeira coisa a ser colocada na pilha (o ponteiro de retorno) é a última coisa a ser removida da pilha, o que é o que você quer. Depois da subrotina ser executada, a última coisa que deve ser feita é empurrar o ponteiro de retorno fora da pilha, para que ele possa retornar a chamada do programa. Se este ponteiro não for usado, depois que a subrotina encerra a execução, o programa

Page 15: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

15

não terá idéia do que fazer depois. Em seguida, as variáveis são colocadas na pilha em uma order reversa que elas são utilizadas. Neste caso, a variável 02 será utilizada antes da variável 01.

Um ponteiro é uma variável que armazena uma localização na memória. Quando um programa pula para executar outro código, ele utiliza um ponteiro para se lembrar onde a execução do programa foi deixada. Neste caso, quando uma subrotina é chamada, o programa necessita pular e executar o código da subrotina. Se isso fosse feito sem utilizar um ponteiro, ele não teria idéia onde retornar após ele ter encerrado a execução da subrotina. O ponteiro armazena a localização de onde ele deixou a execução para que ele possa retornar para o programa original no lugar correto.

Depois de termos descrito como uma pilha normal funciona, vamos ver o que acontece quando ocorre o buffer overflow.

Quando um programa não checa e não limita a quantidade de dados copiados no espaço atribuído a uma variável, o espaço da variável pode ser estourado. Quando o buffer é estourado, os dados ali alocados vão para espaço da variável vizinha, e eventualmente para o espaço do ponteiro.

Os dados que um atacante envia geralmente consistem em: um código específico da máquina (instruções binárias de baixo nível) para executar um comando; e um novo endereço para o ponteiro de retorno. Este endereço aponta de volta para dentro do espaço de endereço da pilha, fazendo com que o programa execute as instruções do atacante quando ele tenta retornar novamente para a subrotina.

Um ponto chave a ser recordado, é que o código do atacante irá ser executado com os mesmos privilégios que o software que está sendo explorado estiver rodando. Na maioria dos casos, um atacante tenta explorar programas que estejam rodando com contas/perfis privilegiados, como root ou administrador do domínio, o que significa que após ele ter o controle, ele poderá fazer o que quiser. A figura 05 demonstra graficamente como isso ocorre.

Diversos métodos de buffer overflow podem ser explorados, como stack smashing, off-by-one ou frame pointer overwrite buffer overflow, return-into-libc buffer overflow e heap overflow. A Figura 06 exemplifica detalhadamente o funcionamento básico do buffer overflow.

Figura 05: Exemplificação do Buffer Overflow

Na Figura 05, o buffer sem controle do tamanho é explorado. No Passo 01, o ataque é feito com a inserção de uma string grande em uma rotina que não checa os limites do buffer. Com isso, a string

Código de ataque

Stack Frame

Endereço de retorno

Buffer

4

2 –

Modifica o endereço de retorno

3 – Injeta o Código

1 – Ataque Buffer Overflow

Page 16: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

16

ultrapassa o tamanho do buffer, sobrescrevendo as demais áreas da memória. No Passo 02 do exemplo, o endereço de retorno é sobrescrito por um outro endereço, que está incluído na string e aponta para o código do ataque. No Passo 03, o código do ataque é injetado na posição da memória que já foi sobrescrita no Passo 02. No Passo 04, a função pula para o código do ataque injetado, baseado no endereço do retorno que também foi inserido. Com isso, o código injetado pode ser executado.

3.2.3 Medidas Preventivas e/ou Corretivas

3.2.3.1 Por que existem tantos programas vulneráveis?

A principal razão pela qual os programas são vulneráveis é em decorrência de falhas na codificação. Se os desenvolvedores gastassem um tempo extra para codificar software mais robustos, que incluem uma checagem mais rígida dos erros, poucas vulnerabilidades de buffer overflow seriam exploradas.

Uma das principais razões pelas quais não são realizadas checagens de erros adequadas, é que os desenvolvedores assumem determinadas premissas. Eles assumem que sobre determinadas condições a quantidade de memória alocada para uma variável é suficiente.

Isto pode ser verdade, entretanto os atacantes ultrapassam os limites aceitáveis pelos programas, e quando um atacante está testando um sistema para explorar sua vulnerabilidade, ele o utiliza de maneira distinta da normal. Algumas vezes, os programas são lançados, sofrem atualizações e eles funcionam adequadamente por muitos anos, isto porque todas as pessoas utilizam o sistema corretamente.

Por exemplo, o programa Ping foi lançado e utilizado por um grande número de pessoas por mais de 20 anos, e funcionava corretamente conforme sua concepção inicial. Porém, um dia, em 1990, alguém decidiu ver o que aconteceria se fossem enviados pacotes com uma grande quantidade de dados, conseqüência: os sistemas de todos os tipos de diferentes fabricantes vieram a não funcionar. Este ataque é conhecido como o Ping of Death.

Existem inúmeros exemplos de programas que funcionaram corretamente por muitos anos, até que os atacantes decidiram explorar suas vulnerabilidades. Em outros casos, principalmente para programas alvo, a cada versão lançada, os atacantes já tentavam explorar as vulnerabilidades com ataques buffer overflow. Isto é muito comum em sistemas operacionais, e por essa razão são disponibilizados inúmeros releases e patches periodicamente.

Para ilustrar como o buffer overflow funciona, vamos analisar um programa que solicita ao usuário que digite seu primeiro nome e imprima esta informação na tela. Em função da maioria dos usuários não ter o primeiro nome muito extenso foram alocados 50 caracteres para o primeiro nome. Isto é baseado na premissa que nenhum usuário terá um nome maior que 50 caracteres. Esta premissa pode ser verdade, mas somente se todos os usuários utilizarem o sistema de maneira correta. Os programadores necessitam perceber que adotar premissas nos programas é muito perigoso. Para ter programas realmente seguros, os desenvolvedores necessitam inserir checagem de erros em seus programas.

3.2.3.2 Detecção e Prevenção

Os buffer overflows são difíceis de ser detectados e, portanto, a proteção contra eles geralmente é reativa, ou seja, o administrador que sofre um ataque desse tipo deve reportar o incidente a um orgão especializado, como o CERT e o CIAC, e também ao fabricante da aplicação. Após isso, ele deve

Page 17: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

17

aplicar os patches correspondentes, assim que eles estiverem disponíveis. As medidas reativas, em detrimento da ação pró-ativa, serão necessárias até que uma metodologia de programação com um enfoque em segurança seja utilizada pelas empresas de software.

Um dos métodos de programação que permite a atuação do modo pró-ativo é a utilização de localizações aleatórias de buffer de memória, de modo que o hacker não tenha idéia da posição em que deve colocar seu código prejudicial. O primeiro produto a utilizar essa técnica é o SECURED, da Memco.

Outro método é o utilizado pelos sistemas de prevenção de intrusão (Intrusion Prevention System – IPS) baseados em host . Este tópico será abordado em detalhes no item 4.3. Esses tipos de controles fazem o controle do espaço de execução, inspecionando as chamadas ao sistema de acordo com um conjunto de regras definidos que permitem sua execução. Com isso, diversos problemas, entre eles os relacionados ao buffer overflow podem ser minimizados.

3.2.3.3 Proteção Contra ataques Buffer Overflow

As vulnerabilidades de Buffer Overflow são herdadas no código, decorrente de uma checagem de erro pobre ou inexistente. Adicionalmente, qualquer coisa que pode ser feita para proteger contra buffer overflows deve ser feito externamente a aplicação, a menos que tenhamos acesso ao código fonte e possamos recompilar a aplicação corretamente. Em virtude de novas formas de buffer overflow terem aparecido a cada dia, as medidas apresentadas abaixo são algumas maneiras de proteção contra ataques buffer overflow:

- Fechar as portas ou serviços; - Aplicar os patches do fornecedor ou instalar a última versão do software; - Filtrar tráfego específico no firewall; - Testar aplicações chave; e - Executar software com o menor privilégio requerido.

Fechar a porta ou serviço

O modo mais fácil para proteger contra o ataque buffer overflow é remover o software que está vulnerável. Nestes casos onde o software foi instalado por default e não está sendo usado ou não é requerido em um ambiente particular, o software e todas as portas correspondentes e serviços devem ser fechadas ou removidas. A primeira regra de segurança é saber o que está instalado nos seus sistemas e ter a menor quantidade de serviços rodando e portas abertas/ativas necessárias para o sistema operar em um ambiente específico.

Aplicar os patches do fornecedor ou instalar a última versão do software

Na maioria dos casos, pouco tempo depois que uma vulnerabilidade de buffer overflow é anunciada, o fornecedor divulga um patch ou atualiza a nova versão do software. Neste caso, o fornecedor adiciona uma checagem de erro adequada dentro do programa. Este é um dos melhores modos de se proteger contra o buffer overflow. Os outros mecanismos de defesa apresentados ajudam a minimizar os pontos de exposição da companhia, mas eles não resolvem o problema.

Page 18: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

18

Filtrar o tráfego específico no firewall

A maioria das companhias está preocupada com atacantes externos quebrando a segurança da companhia via Internet e comprometendo uma máquina utilizando um ataque de buffer overflow. Neste caso, um mecanismo fácil preventivo é bloquear o tráfego do software vulnerável no firewall. O sistema ainda é vulnerável ao ataque de buffer overflow: entretanto esta medida está somente impedindo os atacantes de escolherem uma máquina e explorá-la. Se uma companhia não possui firewall interno, isto não evita um intruso de iniciar um ataque de buffer overflow contra um sistema específico.

Testar aplicações chave

O melhor modo de se defender contra ataques de buffer overflow é ser proativo. Por que esperar que um atacante descubra uma vulnerabilidade de buffer overflow e comprometa o ambiente, quando é possível testar o software e descobrir isso previamente? Isto não é praticável para todos os software, porque isto levaria muito tempo, mas para aplicações chaves, seria um esforço necessário para descobrir se a aplicação é vulnerável.

Executar o software com o menor privilégio requerido

Executando o software com o menor privilégio requerido, é possível assegurar que qualquer software rodando no sistema está adequadamente configurado. Muitas vezes, principalmente nas máquinas Unix, administradores tem muito a fazer e não possuem tempo para configurar adequadamente o sistema. Neste caso, para conseguir que o sistema esteja funcionando corretamente no menor período de tempo possível, eles simplesmente instalam e configuram as aplicações e processos com privilégio root. Este é um modo rápido e fácil de garantir que o processo estará funcionando, entretanto não assegura que ele terá acesso somente aos recursos que ele necessita. Restringir o acesso é também um modo rápido e fácil de garantir que seu sistema estará pouco vulnerável. Especialmente com os ataques de buffer overflow, é crítico que todos os software sejam adequadamente configurado para rodar com o menor privilégio possível. Deste modo, mesmo se um atacante conseguir explorar o sistema, ele terá o acesso restrito.

3.2.4 Casos conhecidos de Buffer Overflow

Um exemplo da exploração de buffer overflow ocorreu no site de leilões online eBay, que foi invadido em março de 1999, por meio da exploração de uma condição de buffer overflow em um programa com SUID root. O hacker pode instalar, assim, um backdoor que interceptava a digitação do administrador, possibilitando que, userids e senhas, fossem facilmente capturados. Com o acesso de superusuário, o hacker pode realizar qualquer operação no site, como modificar preços dos produtos em leilão, manipular ofertas e propostas, e tudo mais que ele desejasse.

Nesse tipo de ataque, o hacker explora bugs de implementação, nos quais o controle do buffer (memória temporária de armazenamento dos dados) não é feito adequadamente. Assim, o hacker pode enviar mais dados do que o buffer pode manipular, preenchendo o espaço da pilha de memória. Os dados podem ser perdidos ou excluídos e, quando isso, acontece o hacker pode reescrever no espaço interno da pilha do programa, para fazer com que comandos arbitrários sejam executados. Com um código apropriado, é possível obter acesso de superusuário ao sistema.

Qualquer programa pode estar sujeito a falhas de buffer overflow, como os sistemas operacionais (Windows NT, Unix), protocolos (TCP/IP, FTP) e serviços (servidor de e-mail Microsoft Exchange, servidor Web Internet Information Server (IIS), servidor Telnet do BSD). Mesmo os firewalls, como o

Page 19: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

19

Gauntlet, já sofreram com o buffer overflow, que foi descoberto em seu proxy de smap. É interessante notar que as infestações de Code Rede, Code Rede II e Nimda começaram também por meio da exploração de um buffer overflow no IIS.

Tipos de Ataques Buffer Overflow

Apresentamos abaixo alguns ataques típicos de buffer overflow que foram testados no Unix e Windows :

- NetMeeting Buffer Overflow - Outlook Buffer Overflow - Linuxconf Buffer Overflow - ToolTalk Buffer Overflow - IMPAD Buffer Overflow - AOL Instant Messenger Buffer Overflow - AOL Instant Messenger BuddyIcon Buffer Overflow - Windows 2000 ActiveX Control Buffer Overflow - IIS 4.0/5.0 Phone Book Server Buffer Overflow - SQL Server 2000 Extended Stored Procedure Buffer Overflow

Page 20: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

20

3.3 Seqüestro de Sessão (Hijacking Attacks) 3.3.1 O que é o Sequestro de Sessão

Seqüestro de sessão é o processo de tomar posse de uma sessão ativa existente. Os ataques de seqüestro de sessão entre máquinas são os ataques mais complexos dentre os demais e exploram bastante as vulnerabilidades dos protocolos de rede. Neste tipo de ataque, existe uma terceira máquina, entre duas máquinas que estão trocando informações, que irá “seqüestrar” a comunicação. Esta máquina é denominada de “homem no meio”, do inglês, man-in-a-middle.

No ataque de seqüestro de sessão, a máquina seqüestradora irá quebrar a seqüência correta de conexão entre duas máquinas. Para isso é necessário que a máquina atacante utilize técnicas para prever ou bisbilhotar os números de seqüência que são trocados conjuntamente com as informações entre as duas máquinas vítima (os números de seqüência numa conexão TCP). Já com a seqüência da conexão das duas máquinas, a máquina atacante indisponibiliza uma delas por meio de ataques por negação de serviço e passa a enviar pacotes, como se fosse a máquina que foi interrompida, por meio de falsificação de endereço IP de origem. Está seqüestrada a conexão. A máquina atacante pode ter acesso às informações confidenciais que só iriam ser trocadas entre as duas máquinas vítimas.

Uma das principais razões para sequestrar uma sessão é desviar o processo de autenticação e obter acesso a máquina, visto que a conexão já foi autenticada previamente por meio de um userid e senha de acesso.

Sequestrando uma sessão, um atacante pode roubar uma sessão, o que envolve assumir o lugar de um usuário autenticado. Ele também pode monitorar a sessão, assistindo tudo que está acontecendo na sessão. Enquanto está monitorando a sessão, o atacante pode gravar tudo que está acontecendo, e repetí-lo mais tarde. Um atacante pode também assistir uma sessão e periodicamente inserir comandos dentro sessão. O atacante tem controle completo da sessão e ele pode fazer tudo o que ele quiser, o que varia desde ataques passivos a ataques extremamente ativos.

Quando está executando o sequestro de sessão, um atacante se concentra nas aplicações orientadas a sessão. Isto faz sentido, porque se o objetivo de um atacante é ganhar acesso, ele quer assumir uma sessão onde ele possa interagir com a máquina e executar comandos. Qual é o valor de assumir uma sessão HTTP ou DNS se, concentrando em aplicações orientadas a sessão, como o telnet e o ftp, o poder das técnicas de sequestro de sessão aumentam.

3.3.2 Como é feito o Sequestro de Sessão

3.3.2.1 Tipos de Sequestro de sessão

Existem dois tipos básicos de ataques: ativo e passivo. Com um ataque passivo, um atacante sequestra uma sessão e fica monitorando e gravando todo o tráfego que está sendo enviado. Este tipo de ataque é útil para buscar informações sensíveis, como senhas e código fonte. Num ataque ativo, um atacante pode encontrar uma sessão, tomar posse dela e interagir com comandos próprios na conexão.

Existem também ataques híbridos, onde o atacante assiste à sessão por algum tempo e em seguida se torna ativo tomando posse da sessão.

Page 21: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

21

3.3.2.2 Spoofing versos Hijacking

Spoofing and hijacking são similares, mas eles possuem algumas diferenças. Um ataque spoofing é diferente do hijacking no sentido que um atacante não está ativamente assumindo outro usuário offline para executar o ataque. Ao contrário, ele pretende que outro usuário ou máquina obtenha acesso. Enquanto um atacante está fazendo isto, a parte que está sofrendo spoofing pode estar em casa ou em férias, o usuário real não desempenha nenhum papel no ataque. Além disso, o atacante não está ativamente iniciando um ataque contra a sessão de um usuário. Com o hijacking, o atacante está tomando posse de uma sessão existente, o que significa que ele está dependendo de um usuário legítimo para fazer a conexão e autenticação. Então, ele pode tomar conta da sessão. Isto é feito tornado o usuário offline.

Uma das principais diferenças entre os dois tipos de ataques é que o spoofing somente necessita de duas partes, o atacante e a máquina que está sendo atacada, a figura 06 ilustra esse processo.

Figura 06: Um atacante efetuando spoofing com o endereço da vítima chamada Bob.

Como você pode ver, Bob não executa nenhum papel no ataque spoofing. Não há problema se a máquina de Bob está ligada ou até mesmo conectada ou não na rede.

No ponto de vista de um ataque de sequestro de sessão, Bob desempenha um papel ativo.

Figura 07: Exemplo de sequestro de sessão.

Page 22: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

22

Com o sequestro de sessão, Bob tem que estabelecer uma conexão e autenticar a sessão que será sequestrada. Neste caso, Bob deve estar ativo e conectado para o hijacking ter sucesso.

3.3.2.3 Descrição detalhada de um Sequestro de Sessão

Vamos avaliar exatamente o que acontece num Sequestro de Sessão. As principais etapas para executar o sequestro de uma sessão ativa são:

- Definir um alvo; - Encontrar uma sessão ativa; - Executar a predição da seqüência; - Adivinhar os números de seqüência; - Tornar uma das partes offline; e - Assumir a sessão.

Definir um alvo

Isto pode parecer óbvio, mas para sequestrar uma sessão você precisa escolher cuidadosamente um alvo. Há alguns pontos chaves a serem observados quando o atacante estiver escolhendo um alvo. Primeiro, o atacante geralmente deseja que o alvo seja um servidor que possibilite conexões Telnet e FTP. Adicionalmente, do ponto de vista de firewall, o atacante provavelmente quer ter certeza que ele pode conseguir acesso prévio ao alvo antes de experimentar a comunicação por meio do número de seqüência. Por exemplo, se um firewall permite somente certos tipos de endereços passem através do firewall para o servidor, ele pode ser capaz de sequestrar aquela sessão, mas é difícil para executá-lo porque ele pode não poderia acessar o servidor.

Encontrar uma sessão ativa

Os atacantes necessitam ter uma conexão legítima de um usuário para que ela seja seqüestrada. Além disso, contrário a maioria dos ataques, que são executados quando ninguém está utilizando o ambiente, pois desta forma torna-se mais difícil de serem detectados, no seqüestro de sessão, o atacante prefere executá-lo quando há um tráfego muito intenso. Primeiro, porque dessa forma, ele possui diversas conexões para escolher, e segundo, quanto maior o tráfego que estiver ocorrendo, menor é chance que alguém perceba que algo de estranho está ocorrendo. Se somente uma pessoa está conectada, e o usuário percebe algumas interrupções e lentidão, o usuário pode suspeitar, principalmente se não houver muito tráfego na rede. Por outro lado, se há muitas pessoas conectadas, e muito tráfego, as paradas passarão desapercebidas pelo usuário, visto que este pensará que é decorrente do alto nível de tráfego na rede.

Executar a predição da seqüência

Dependendo da sessão que está sendo dominada, e se o atacante pode observar o tráfego antes de sequestrar a sessão, o atacante deve ser capaz de adivinhar o número de seqüência. Isto pode ser fácil ou difícil dependendo do sistema operacional que está sendo utilizado.

Page 23: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

23

Adivinhar o número de seqüência

Para que duas partes se comuniquem, os seguintes itens são necessários: o endereço IP, número das portas, e o número de seqüência. Descobrir o IP e a porta de acesso é razoavelmente fácil; eles estão listados no próprio pacote IP e não mudam durante a sessão. Depois de você conhecer como estes dois endereços estão se comunicando nas duas portas, esta informação permanece a mesma durante a sessão. O número de seqüência, entretanto muda. Além disso, um atacante deve adivinhar com sucesso o número de seqüência. Se o servidor está aguardando o número de sequencia 12345, e um atacante envia um pacote com 55555, o servidor ficará muito confuso e tentará se sincronizar novamente com o sistema original, o que poderá causar uma série de problemas. Por outro lado, se um atacante envia 12345, o servidor aceita o pacote e o processa, o objetivo do atacante foi alcançado. Se o atacante consegue obter um servidor para receber esse pacote alterado e executá-los, então ele terá sequestrado uma sessão com sucesso.

Tornar uma das partes offline

Depois que o atacante conhece o número de seqüência, ele tem que tornar uma das partes offline, então ele poderá assumir a sessão. O modo mais fácil de tornar um computador offline é iniciar um ataque Denial of service contra um sistema, de forma que ele não responda mais. O servidor ainda envia respostas para os sistemas, mas devido o atacante indisponibilizar o sistema, ele não pode responder.

O computador que foi tornado offline é geralmente o computador cliente, porque, idealmente um atacante quer sequestrar uma sessão com um servidor. Se ele está tentando enviar pacotes para o servidor enquando o outro computador também está enviando pacotes, o servidor pode ficar confuso. Esta etapa assume que o atacante está executando um sequestro ativo de sessão. Se ele deseja somente analisar o tráfego, esta etapa é desnecessária. Entretanto na maioria dos casos, um atacante quer assumir uma sessão, dessa forma é necessário tornar o computador offline.

Assumir a sessão

Agora que o atacante possui todas as informações que ele necessita, ele pode iniciar o envio de pacotes para o servidor, por meio de uma sessão. Ele falsifica a origem da informação e o número de seqüência. Se tudo foi feito corretamente, o servidor recebe o pacote e o processa. Lembre-se, com um ataque de sequestro de sessão, o atacante é basicamente um “flying blind” porque ele não recebe nenhum pacote de resposta. Alem disso, é crítico para o atacante predizer o que o servidor fará, para que seus comandos sejam executados. No sentido mais simples, em geral ele quer enviar pacotes para a sessão telnet que cria uma nova conta de acesso no servidor. Deste modo, ele pode voltar a acessar a máquina sempre que ele quiser.

Programas que executam Seqüestro de Sessão

Há vários programas disponíveis que executam Sequestro de Sessão, dentre eles cabe ressaltar:

- Juggernaut - Hunt - TTY Watcher - IP Watcher

Page 24: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

24

3.3.3 Medidas Preventivas e/ou Corretivas

O sequestro de sessão é uma ameaça permanente porque o atacante assume uma conexão legítima. Em outros tipos de ataques, é possível remover a vulnerabilidade e eliminar a ameaça. Infelizmente, neste caso, para eliminar a causa deveríamos proibir qualquer conexão legítima, o que elimina o propósito de ter uma conexão legítima. Isto não é uma opção. A seguir apresentamos algumas opções que devem ser adotadas para minimizar a ameação de sequestro de sessão.

- Utilizar criptografia; - Utilizar um protocolo seguro; - Limitar o número de conexões entrantes; - Minimizar acesso remoto; e - Adotar autenticação forte (menos efetivo)

Utilização de criptografia

Criptografia é provavelmente um dos poucos modos que é possível proteger contra Sequestro de Sessão. Se um atacante não pode ler os dados que são transmitidos, é muito mais difícil efetuar um sequestro de sessão. Um aspecto crucial é ter certeza que o host local não está comprometido. Se um atacante pode comprometer um dos computadores que participam na criptografia, ele pode ler os tráfegos antes destes serem encriptados, porque ele tem acesso à máquina que está executando a encriptação. Se um atacante tem acesso a esta máquina, outros problemas surgirão.

No mínimo, todas as conexões que vem da Internet devem estar criptografadas. Além disso, qualquer conexão crítica onde dados sensíveis são transmitidos devem estar encriptadas. Por exemplo, se um empregado da área financeira necessita acessar remotamente o servidor de contas a pagar, esta conexão deve ser criptografada.

Idealmente, todo o tráfego na rede deveria estar criptografado.

Utilização de um protocolo seguro

É necessário utilizar um protocolo seguro durante o estabelecimento de uma conexão remota.

Limitar o número de conexões entrantes

Limitando o número de conexões vindas da Internet para a rede interna, torna o ambiente interno mais seguro. Isto também auxiliará a minimizar o risco de sequestro de sessao, quanto menor a possibilidade de um atacante chegar a sua rede, menor a possibilidade de uma sessão ser sequestrada.

Minimizar o acesso remoto

O uso das conexões remotas também pode tornar o ambiente vulnerável ao sequestro de conexões. Algumas pessoas argumentam que não existem riscos nesse tipo de conexão, entretanto, algumas conexões remotas podem expor altamente o ambiente interno da companhia.

Autenticação forte

A autenticação forte não elimita ou minimiza o risco de uma sessão ser sequestrada, visto que a sessão, em geral, já está autenticada. Porém caso a conexão possua time-out ela solicitará a

Page 25: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

25

reautenticação em intervalos randômicos de tempo, enquanto a sessão estiver estabelecida. Poucos sistemas adotam esse recurso devido a incoveniência para os usuários legítimos.

Page 26: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

26

3.4 Denial of service 3.4.1 O que é o Denial of service

Os ataques de negação de serviço (Denial of service) fazem com que recursos sejam explorados de maneira agressiva, de modo que usuários legítimos ficam impossibilitados de utilizá-los, por estarem indisponíveis, ou por terem tido sua performance extremamente reduzida.

O Denial of service pode ser executado intencionalmente ou acidentalmente. Ele é causado intencionalmente quando um usuário não autorizado sobrecarrega um recurso; e acidentalmente quando os usuários executam alguma atividade que torna o ambiente indisponível.

Tipos de ataques

Há dois tipos de ataques Denial of service. O primeiro deles envolve danificar um sistema ou a rede. Se um atacante pode enviar a uma vítima dados ou pacotes que ele não está esperando, e isto danifica ou reinicializa o sistema, então em essência, o atacante executou um ataque Denial of service porque ninguém será capaz de acessar os recursos. Do ponto de vista do atacante, o bom desses ataques é que você pode tornar um sistema indisponível com alguns pacotes. Na maioria dos casos, para que o sistema seja restabelecido, é necessária a intervenção do administrador para reinicializar o programa ou tomar alguma outra atitude. Dessa forma, este primeiro tipo de ataque causa um estrago maior porque ele necessita de interação humana para ser corrigido.

O segundo tipo de ataque envolve inundar o sistema ou a rede com muitas informações que ele não pode responder. Por exemplo, se o sistema pode manusear somente 10 pacotes por minuto, e um atacante envia 20 pacotes por minuto, então quando um usuário legítimo tenta se conectar ao sistema, o acesso será negado porque todos os recursos estarão esgotados. Com este ataque, um atacante pode constantemente inundar o sistema com pacotes. Este tipo de ataque requer mais esforço por parte do atacante, pois ele tem que manter a inundação do sistema ativamente. Em alguns casos, este tipo de ataque pode danificar a máquina, entretanto na maioria dos casos, a recuperação necessita de intervenção humana.

Ambos os tipos de ataque podem ser iniciados localmente ou via rede.

Uma técnica típica de Denial of service é o SYN flooding que causa overflow da pilha de memória por meio do envio de um grande número de pedidos de conexão que não podem ser totalmente atendidos e manipulados. Outra técnica é o envio de pacotes específicos que causam a interrupção do serviço, que pode ser exemplificada pelo Smurf. A seguir apresentamos algumas formas como o DOS pode ser explorado pelos atacantes. Os problemas mais recentes que resultam em ataques DOS, envolvem diversas implementações de Lightweight Directory Access Protocol (LDAP) e os ataques distribuídos de DoS, que combinam diversas vulnerabilidades em diferentes tipos de sistemas.

Ataques distribuídos DDOS – Distributed Denial of service

Com um ataque tradicional de Denial of service, uma única máquina inicia o ataque contra uma vítima. Entretanto, em 2000, um novo tipo de ataque foi introduzido – um ataque distribuído de negação de serviço. Neste caso, um atacante separado em várias máquinas, ou coordena com outros atacantes, para lançar um ataque contra uma máquina alvo ou rede ao mesmo tempo. Em virtude de serem diversas máquinas iniciando o ataque, a defesa é muito mais difícil, pois a máquina alvo não está recebendo pacote de uma única máquina, mas de diversas ao mesmo tempo. Além disso, em virtude do ataque estar vindo de um largo intervalo de endereços IP, é muito mais difícil bloqueá-los

Page 27: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

27

Figura 08: Distributed Denial of service

Como demonstrado na figura acima, múltiplos sistemas em todo o mundo estão iniciando um ataque contra uma única vítima. Se os ataque DOS são difíceis de evitar vindos de uma única fonte, muito mais difícil é a proteção contra o DDOS que está vindo de múltiplas máquinas em múltiplas localidades.

3.4.2 Como é feito o Denial of service

O Denial of service pode ser efetuado de diversas formas. Abaixo apresentaremos algumas formas comuns nas quais o DOS é efetuado.

SYN Flooding

Esse ataque explora o mecanismo de estabelecimento de conexões TCP, baseado em handshake em três vias (three way handshake). A característica dos ataques de SYN Flooding é que um grande número de requisições de conexão (pacotes SYN) é enviado, de tal maneira, que o servidor não é capaz de responder a todas elas. A pilha de memória sofre um overflow e as requisições de conexões legítimas são, então, desprezadas. Essa técnica é utilizada em diversos ataques.

Page 28: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

28

Figura 09: Handshake em três vias do TCP e SYN flooding

Os ataques de SYN flooding podem ser evitados comparando-se as taxas de requisições de novas conexões e o número de conexões em aberto. Com isso, mensagens de alerta pré-configuradas podem ser utilizadas quando a taxa chega a um padrão determinado. Um outro modo de evitar o ataque é pelo monitoramento dos números de seqüência dos pacotes, que são enviados na rede, que devem estar dentro de uma faixa esperada, caso eles sejam originários de um atacante específico.

Outros métodos que podem ser utilizados contra os ataque de SYN flooding são: em conexões de baixa velocidades (até 128 kbps), utiliza-se um time-out e uma taxa máxima de conexões semi abertas. Os pacotes são descartados de acordo com esses valores determinados; em conexões de maior velocidade, a melhor solução é desabilitar ou bloquear temporariamente todos os pacotes SYN enviados ao host atacado. Após uma determinada taxa de conexão. Isso mantém o restante do sistema em funcionamento, ao mesmo tempo em que desabilita novas conexões ao host que está sendo atacado.

Fragmentação de pacotes IP

A fragmentação de pacotes está relacionada à Maximum Transfer Unit (MTU) que especifica a quantidade máxima de dados que podem passar em um pacote por um meio físico de rede.

Em uma ambiente com o a Internet, no qual existe uma grande variedade física de redes, definir uma MTU pequena resulta em ineficiência, pois esses pacotes podem passar por uma rede que é capaz de transferir pacotes maiores. Enquanto isso, definir uma MTU grande, maior do que a da rede com MTU mínima tem como resultado a fragmentação desse pacote, uma vez que seus dados não cabem nos pacotes que trafegam por essa rede com a MTU mínima. Os fragmentos resultantes trafegam pela rede, e quando chegam ao seu destino final, são reagrupados com base em off-sets, reconstituindo assim, o pacote original. Todo esse processo de fragmentação e desfragmentação (reagrupamento) é feito de modo automático e transparente para o usuário, de acordo com a definição do protocolo IP.

O fato de o reagrupamento ocorrer somente no destino final, implica em uma série de desvantagens, como a ineficiência, pois algumas redes físicas podem ter uma MTU maior do que os pacotes fragmentados, passando a transmitir pacotes menores que o possível. Outra desvantagem é a perda de pacotes, pois, se um fragmento for perdido, todo o pacote também será perdido. Uma desvantagem ainda maior é a possibilidade de tirar proveito dessa característica para a realização de ataques.

A possibilidade de ataques por meio da fragmentação de pacotes de IP ocorre devido ao modo como a fragmentação e o reagrupamento são implementados. Tipicamente, os sistemas não tentam processar o pacote até que todos os fragmentos sejam recebidos e reagrupados. Isso cria a possibilidade de ocorrer um overflow na pilha TCP quando há o reagrupamento de pacotes maiores que o permitido. O resultado disso são problemas como o travamento do sistemas, caracterizando ataques do tipo Denial of service. Essa característica foi explorada em 1996 pelo Ping of Death.

Cliente

Servidorr

SYN seq = x

SYN seq = y; ACK x+1

ACK y+1

Page 29: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

29

A característica de o reagrupamento ser possível somente no host de destino, de acordo com a especificação do protocolo IP, faz com que o firewall ou o roteador não realize a desfragmentação, o que pode causar problemas peculiares. Um atacante pode, por exemplo, criar um pacote com o primeiro fragmento e especificar uma porta que é permitida pelo firewall, exemplo porta 80. Dessa maneira, o firewall pemite a passagem desse pacote e dos framentos seguintes para o host a ser atacado. Um desses pacotes subseqüentes pode ter o valor de off-set capaz de sobrescrever a parte inicial do pacote IP que especifica a porta TCP. O atacante assim modifica a porta de IP inicial de 80 para 23, por exemplo, para conseguir acesso Telnet ao host a ser atacado.

Assim, os ataques baseados na fragmentação de pacotes IP não podem ser evitados por meio de filtros de pacotes. Os host s que utilizam NAT estático também estão vulneráveis a esses ataques, além dos host s que utilizam NAT dinâmico e que tem uma comunicação ativa com a Internet.

A fragmentação também é utilizada como um método de scanning, como o usado pelo nmap, que envia pacotes de scanning fragmentados, de modo que sua detecção pelo firewall ou pelo IDS torna-se mais difícil.

Smurf e fraggle

O Smurf é um ataque no nível de rede, pelo qual um grande tráfego de pacotes ping (ICMP echo) é enviado para o endereço IP de broadcast da rede, tendo como origem o endereço de IP da vítima (IP Spoofing). Assim, com o broadcast, cada host da rede recebe a requisição de iCMP echo, passando todos eles a responderem para o endereço de origem, que é falsificado. A rede é afetada, pois todos os seus host s respondem à requisição ICMP, passando a atuar como um amplificador. E a vítima, que teve seu endereço IP falsificado, recebe os pacotes de todos esses host s, ficando desabilitada para executar suas funções normais, sofrendo assim uma negação de serviço. O Fraggle é parecido com Smurf, que utiliza pacotes UDP echo ao invés de ICMP echo.

Para evitar ser o intermediário do ataque, ou seu amplificador, o roteador deve ser configurado de modo a não receber ou deixar passar pacotes para endereços de broadcast por meio de suas interfaces de rede. Essa medida, porém, elimina também a possibilidade de utilizar ICMP echo para endereço de broadcast da rede, que é uma ferramenta útil para diagnóstico da rede.

Os host s também podem ser configurados de modo a não responderem a pacotes ICMP echo para o endereço de broadcast. No caso do ataque Fraggle, os pacotes UDP echo e chargen devem ser descartados. Essas medidas também acabam impedindo o diagnóstico da rede, como o que ocorre com a medida anterior.

Alguns equipamentos, como os roteadores da CISCO, possuem mecanismos como o Committed Access Rate (CAR), que pode limitar o tráfego de determinados pacotes a uma determinada banda. Sua utilização para limitar o número de pacotes ICMP echo e echo replay são, assim, interessantes para não compromete completamente a rede. O CAR também pode impedir o ataque de TCP SYN Flooding.

Teardrop e land

O Teardrop é uma ferrametna utilizada para explorar os problemas de fragmentação IP nas implementações do TCP/IP. O land é uma ferramenta empregada para explorar vulnerabilidades TCP/IP, na qual um pacote é construído de modo que o pacote SYN tenha o endereço de origem e a porta iguais ao do destino, ou seja, utilizado o IP spoofing. A solução é criar regras de filtragem para evitar que o IP spoofing de endereços internos da rede.

Page 30: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

30

3.4.3 Medidas Preventivas e/ou Corretivas

Devido ao poder dos ataques DOS e o modo como ele funciona, não há nada que possa ser feito para evitar um ataque DOS completo. Algumas medidas devem ser feitas para minimizar as chances, mas mesmos com medidas adequadas de segurança, a companhia ainda permanece vulnerável. Abaixo apresentamos algumas ações que podem ser feitas para minimizar os ataques DOS.

• Aplicação de filtros; • Design robusto e efetivo; • Limitar a largura de banda; • Manter os sistemas atualizados; • Executar a menor quantidade de serviços; • Permitir somente o tráfego necessário; e • Bloquear o endereço IP.

Aplicação de filtros

O egress filtering é um método que deve ser utilizado para impedir ataque de DOS, para os quais são utilizados endereços IP falsos. O objetivo é impedir que provedores de acesso ou organizações sejam utilizados como pontes de ataque e também que seus usuários realizem ataques externos. Esse método evita ataques de IP spoofing a partir de sua origem e, realmente, é uma medida importante, pois é de responsabilidade do administrador de redes impedir que sua rede seja envolvida em um ataque. O método permite que somente pacotes com endereço de origem igual da rede interna sejam enviados para a rede externa, impedindo que pacotes com endereços falsos passem pela rede. A importância dessa filtragem é cada vez maior quando se pode ver o avanço dos ataques coordenados.

Design robusto e efetivo

A redundância e robustez da infra-estrutura tecnológica são muito importantes quando tratamos de ataques DOS. Se uma companhia possui um site web de missão crítica no qual os usuários têm que se conectar via Internet, e há uma única conexão com um único roteador, e o servidor está rodando em uma única máquina, isto não é uma arquitetura robusta. Neste caso, o atacante pode iniciar um ataque DOS contra o servidor ou o roteador e tornar a aplicação de missão crítica offline.

A quantidade de redundância que uma companhia possui depende da quantidade de dinheiro e tempo que a empresa possui para gastar se protegendo contra ataques DOS. Lembre-se que no ataque DOS um atacante pode indisponibilizar uma máquina ou todos os recursos. Além disso, quanto mais máquinas e conexões a companhia possui, mais difícil é para o atacante efetuar um DOS completamente.

Limitações da largura de banda

Com os ataques DOS, um único protocolo pode usar toda a largura de banda da companhia, e impedir o acesso de usuários legítimos. Um modo de combater isso é limitar a largura de banda baseado no protocolo. Por exemplo, o tráfego da porta 25 pode usar somente 25% da largura de banda, e o tráfego da porta 80 pode usar 50% da largura de banda. É importante ressaltar que nenhuma dessas soluções irá impedir um ataque DOS, apenas minimizar as chances de serem executados completamente com sucesso.

Page 31: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

31

Manter os sistemas atualizados Quando um ataque DOS é descoberto, os fornecedores geralmente identificam rapidamente o problema e disponibilizam um patch. Dessa forma, a companhia deve manter os últimos patches aplicados regularmente, minimizando assim ataques DOS.

Executar a menor quantidade de serviços

Rodando a menor quantidade de serviços em uma máquina ajuda a minimizar as chances de um ataque com sucesso. Se uma máquina possui 20 portas abertas, ele dá ao atacante um vasto intervalo de diferentes ataques que podem ser conduzidos para cada uma das portas.

Permitir somente o tráfego autorizado

O firewall deve permitir somente o tráfego autorizado para dentro e fora da rede. Muitas organizações filtram o tráfego que está chegando mas permitem todo o tráfego que fluem para fora da rede.

Bloquear os endereços IP

Depois que uma companhia sabe que está sendo atacada, ela deve imediatamente tentar identificar o endereço IP do qual o ataque está vindo e bloquear todo o roteamento externo. O problema com isto é que mesmo com o bloqueio para o roteamento externo, o roteador ainda estará inundado com muito tráfego, impedindo que usuários legítimos acessem os sistemas na rede, possibilitando que seus funcionários executem ataques a partir dos recursos internos.

3.4.4 Casos conhecidos de Denial of service

Bugs em serviços, aplicativos e sistemas operacionais

Alguns dos maiores responsáveis pelos ataques de negação de serviços são os próprios desenvolvedores de software. Diversas falhas na implementação e na concepção de serviços, aplicativos, protocolos e sistemas operacionais abrem brechas que podem ser exploradas em ataques contra a organização. Alguns tipos de falhas que oferecem condições de buffer overflow podem ser utilizados para que códigos prejudiciais e arbitrários sejam executados, o que pode resultar em acesso não autorizado aos recursos.

Alguns bugs e condições que podem ser encontrados em software, ser explorados e têm como resultado a negação de serviço ou mesmo o acesso não autorizado ao sistema são:

- Buffer overflows - Condições inesperadas: manipulação errada e incompleta de entradas por meio de diferentes

camadas de códigos, um script Perl que recebe parâmetros pela Web e, se explorado pode fazer com que o sistema operacional execute comandos específicos.

- Entradas não manipuladas: código que não define o que fazer com entradas inválidas e estranhas.

- Format string attack: tipo de ataque a uma aplicação, em que a semântica dos dados é explorada, fazendo com que certas seqüências de caracteres nos dados fornecidos sejam processadas de forma a realizar ações não previstas ou permitidas no âmbito do processo do servidor.

Page 32: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

32

- Race conditions: quando mais de um processo tenta acessar os mesmos dados ao mesmo

tempo, podendo causar, assim confusões e inconsistências nas informações.

Um exemplo de bug pode ser visto na descoberta de uma falha conceitual no Unix, tornando-o vulnerável. Essa falha, que atinge todos os tipos de sistemas Unix, até mesmo o Linux, com exceção do BSD, ocorre quando diversas conexões são feitas , porém sem pedido de requisição. Assim, os diversos serviços (daemons) não podem responder às conexões e a tabela de processo do sistema, que pode trabalhar com um número entre 600 e 1500 processos simultâneos, fica cheia e causa a parada do servidor.

Um outro exemplos de bug pode ser visto no ataque que explora a cache do mapeamento dos objetos utilizados nas Dynamic Link Libraries (DLLs) em sistemas Windows NT. Esses objetos da cache localizam-se no espaço interno de nomes do sistema e são criados com permissões para que o grupo Everyone possa controlá-los totalmente; com isso, é possível substituir esses objetos. Quando um processo é criado, e a DLL está na cache, ela é simplesmente mapeada no espaço do processo, em vez de ser carregada. Assim, é possível que um usuário com privilégios limitados substitua esse objeto da cache e ela seja utilizada por um processo com privilégios de nível mais alto, que executam o código contido nesse “DLL de Tróia”.

O bug envolvendo o Unicode, é um dos que foram utilizados em larga escala na Internet, até mesmo em worms com o NINDA. O perigo das vulnerabilidades-padrão dos sistemas operacionais também deve ser considerado, como as que podem ser encontradas no Solares, no Windows NT e no IRIX.

Page 33: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

33

4. Intrusion Detection Systems

4.1 Detecção de Incidentes

Um incidente ou falha de segurança são eventos causadores de desativação de parte ou todo o ambiente, de acesso desautorizado e invasão aos recursos e informações computacionais de uma instituição, causando crise e prejuízo.

“ É considerada falha de segurança qualquer acesso a sistemas e informações que não é expressamente autorizado, que não seja, feita de forma clara - dentro das normas de conduta dos protocolos de redes definidos- e que não estejam de acordo com as regras estabelecidas dentro da instituição proprietária das informações. E também estabelecida como falha a interrupção dos serviços por motivos não definidos, causadas por pessoas ou máquinas não autorizadas, de forma comum ou não.”

Existem metodologias de resposta à incidentes preocupadas em documentar e levantar provas para descartar ou confirmar a ocorrência; promover acumulação de informações precisas; estabelecer controles de recuperação e tratamento adequados para as provas; minimizar a indisponibilidade dos serviços e da rede; permitir processos civis contra invasores e apresentar relatórios precisos e recomendações. Essas metodologias visam agilizar e organizar uma resposta a incidentes de segurança. Esses incidentes são geralmente complexos, multifacetados e precisam de um ferramental apropriado para o seu diagnóstico. Em geral, as fases de uma metodologia são:

• Preparação pré-incidente: medidas preventivas para minimizar a ocorrência de um incidente.

• Detectores de Incidentes: meios para reconhecer incidentes de segurança ocorridos. • Resposta Inicial: investigação inicial obter provas e confirmar ocorrência do incidente. • Estratégia de Formulação de Resposta: determinar melhor resposta e obter aprovação da

direção. • Duplicação (backup periciais): imagens periciais físicas para coletas de provas. • Investigação: Determinar o que aconteceu, responsável e como evitar sua repetição. • Implementar medidas de segurança: melhorias para proteger ativamente os sistemas

atacados. • Monitoração de Rede: investigar e garantir a segurança. • Recuperação: permitir a operacionalização dos sistemas. • Geração de Relatórios: documentar com precisão a investigação e medidas de segurança

tomadas. • Finalização: analisar os processos conduzidos e registrar as lições aprendidas.

A detecção é a primeira etapa na construção de um sistema de defesa de uma Rede. O investigador pesquisa suspeitas de ocorrência de um incidente. Nessa etapa devem estar construídos e configurados no ambiente como os incidentes serão detectados e com serão registrados para analisar sua ocorrência.

Page 34: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

34

Figura 10

Os incidentes podem ser detectados por diversos mecanismos. Os investigadores devem planejar o registro desses eventos suspeitos nos recursos da sua Rede ( Servidores, Aplicações, Banco de Dados,etc) com grande detalhamento. Algumas preocupações devem surgir como requisito básico do desenvolvimento de Sistemas.

Esses detalhes devem ser registrados numa base de conhecimento para notificar e documentar esse eventos. Esses eventos serão as trilhas para desvendar a ocorrência de intrusão e, portanto, um lista de verificação para futuros incidentes. Com esses dados a equipe definida para a preparação e análise pré-incidente prepara uma resposta inicial a esse suspeita de incidente. Depois, essa ou outra equipe avaliará as circuntâncias e os detalhes relativos ao incidente. Essas circuntâncias serão um fator primordial na determinação exata na resposta do incidente e recuperação dos danos causados.

Abaixo apresentamos algumas informações conceituais referentes ao IDS - Intrusion Detection System, visto que esta ferramenta é muito utilizada na detecção de incidentes.

4.2 Detalhamento do IDS

O Sistema de Detecção de Intrusão (Intrusion Detections System) é um componente essencial num Sistema de Segurança de uma rede. O IDS é um processo de monitoração de eventos de ataques e intrusão ocorridos num sistema de computadores ou na rede, tentativas de corrupção da confiabilidade, integridade, disponibilidade ou transposição da segurança. O Sistema de Detecção de Intruso é aquele que (em software ou hardware) faz este monitoramento, de forma automatizada, tomando decisões aos estímulos gerados pelos fatos ocorridos. O Sistema de Detecção de Intruso é utilizado por instituições como forma complementar para proteção de redes de computadores, monitorando o comportamento da rede ou de uma simples máquina à procura de tentativas de invasão que tenham burlado ou passado por outros mecanismos de rede. No entanto, a sua instalação isolada num ambiente de rede não garante a sua segurança, sendo necessário o uso dos meios comuns de proteção como firewalls, servidores de antivírus, etc.

4.2.1 Características

Um sistema de detecção de intrusão trabalha como uma câmera ou um alarme contra as intrusões, podendo realizar a detecção com base em algum tipo de conhecimento, como assinaturas de ataques, ou em desvios de comportamento. Ao reconhecer os primeiros sinais de um ataque, e por meio de uma resposta coerente, os perigos de um ataque real podem ser minimizados. Além disso, quando um dispositivo do ambiente computacional falha, devido a um erro de configuração ou um erro do usuário, o IDS pode reconhecer os problemas e notificar o responsável. Alguns sistemas, conhecidos como sistema de prevenção de intrusão (Intrusion Prevention System - IPS), tem como objetivo diminuir a quantidade de alarmes falsos e prevenir os ataques.

Page 35: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

35

O IDS é capaz de detectar e alertar os administradores quanto a possíveis ataques ou comportamentos anormais na organização. Informações importantes sobre tentativas de ataques, que não se pode obter normalmente, podem ser conseguidas por meio desses sistemas. Eles podem oferecer subsídios suficientes para que a organização melhore sua proteção contra quaisquer tipos de ataques, principalmente os considerados internos. Esses ‘ataques internos’ podem ser classificados como os ataques executados por usuários internos sejam estes funcionários ou prestadores de serviço.

Outro tipo de ataque que o IDS deve ser capaz de detectar diz respeito aos ataques realizados contra serviços legítimos da DMZ e dos bolsões de segurança, por exemplo, que passam pelo firewall.

4.2.2 Método de Detecção

Os métodos utilizados pelo IDS para detecção de um ataque são o Baseado em Conhecimento (Knowledge-Based Intrusion Detection), também conhecido como Misuse Detection System; e o Baseado em Comportamento (Behavior Based Intrusion Detection), também conhecido como Anomaly Detection System.

Após a análise feita pelo sistema de detecção, os resultados possíveis em um IDS, por exemplo, são:

- Tráfego suspeito detectado (comportamento normal). - Tráfego suspeito não detectado (falso negativo). - Tráfego legítimo que o IDS analisa como sendo suspeito (falso positivo). - Tráfego legítimo que o IDS analisa como sendo legítimo (comportamento normal).

Baseado em Comportamento - Behavior Based Intrusion Detection No tipo de detecção baseado no comportamento, o IDS faz um estudo sobre o comportamento da utilização de recursos, horário da utilização, tipo de aplicações usadas, etc, gerando um padrão de comportamento considerado normal. Os estudos vão desde o uso de CPU, carga de rede e média de uso da memória a horários de conexão, tipo de aplicação para cada usuário e comportamento de utilização dos sistemas. Quando definido um comportamento padrão para o ambiente testado, o IDS passa a comparar todo o uso dos recursos ao estudo prévio, decidindo o que é um mau uso ou ataque.

Por exemplo, para um determinado usuário que possui o hábito de utilizar o sistema somente em horário comercial e executar aplicativos simples como leitores de e-mail e navegadores, entrar no sistema às quatro horas da manhã e compilar uma dezena de programas é um forte indício de uma invasão.

Como podemos observar, nesse tipo de detecção qualquer comportamento suspeito, diferente do padrão, é considerado intrusivo.

A decisão é tomada por meio de uma análise estatística ou heurística, a fim de encontrar possíveis mudanças de comportamento, tais como o súbito aumento de tráfego, utilização da CPU, atividade de disco, logon de usuários, acesso a discos, etc.

O lado negativo dessa abordagem é que o IDS pode gerar falsos negativos (quando o ataque não causa mudanças significativas na medição do tráfego) e um grande número de falsos positivos (bug no sistema de monitoramento, erro no modo de análise da medição ou falta de certeza da verificação de todo o tráfego normal). Para minimizar esses problemas, diversas pesquisas estão em andamento, principalmente com a utilização de redes neurais, lógica fuzzy e inteligência artificial.

Page 36: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

36

Alguns dos projetos que utilizam essa abordagem são Next-Generation Intrusion Detection Expert System (IDES) e Event Monitoring Enabling Responses to Anomalous Live.

Um tipo de IDS com base em comportamento é o baseado em anomalia de protocolo (Protocol Anomaly Detection Based) ou análise de protocolo. Esse tipo de IDS faz a análise do fluxo de pacotes para identificar irregularidades e inconsistências com relação aos padrões específicos de cada protocolo. Os sistemas baseados em anomalia nos protocolos, porém, não são capazes de identificar ataques que não violam protocolos.

As principais vantagens do IDS baseado na análise de protocolos são:

- Não é necessário atualizar assinaturas. - Possibilidade de identificar ataques novos. - Emitem poucos falsos positivos.

As principais desvantagens do IDS baseado na análise de protocolo são:

- Desempenho. - Dificuldade em escrever, entender e adicionar regras. - Não identifica ataques que são feitos de acordo com o protocolo, sem violar o protocolo. - Emitem alertas, porém não provê muitas informações sobre o ataque.

Baseado em Conhecimento - Knowledge-Based Intrusion Detection

A abordagem baseada em algum tipo de conhecimento é a mais empregada pelos IDS, na qual as detecções são realizadas com fundamentos em base de dados com informações sobre ataques conhecidos.

No tipo de detecção baseado no conhecimento, o IDS procura por assinaturas de ataques previamente configuradas, tal como programas de antivírus. Um conjunto de assinaturas representa tipos de conexões e tráfegos, que podem indicar um ataque particular em progresso. O IDS procura por seqüência de ações não aceitáveis ou por seqüência de bits que caracterizam uma assinatura de ataque. Todas as ações que não são reconhecidas pelo conjunto de assinaturas são consideradas aceitáveis.

A taxa de acertos desse tipo de IDS é considerada boa, porém depende da atualização constante dessa base de conhecimentos, que por sua vez, depende do sistema operacional, da versão, da plataforma e da aplicação.

O burgar alarm é um modelo que utiliza o Knowledge-Based Intrusion Detection e faz uma analogia com o uso de um alarme residencial, caso em que o alarme dispara, de acordo com alguns eventos definidos. Assim como o alarme residencial pode ser programado de acordo com uma política (por exemplo, de que ele irá disparar se alguém entrar pela porta dos fundos ou pela janela), o burglar alarm também funciona de acordo com uma política definida, na qual a detecção se baseia no conhecimento da rede e no que não pode ocorrer nessa rede. A idéia é de que o administrador tem o conhecimento da rede e o hacker não, de modo que assim ele pode definir o momento em que o alarme deve ser disparado. Esse tipo de metodologia é mais rápido e não gera tantos “falsos positivos”, em comparação com o método Baseado em Comportamento. Seu ponto fraco é que ele pode ser enganado por meio de técnicas como a inserção de espaços em branco no stream de dados do ataque.

Page 37: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

37

Outro ponto negativo é o alto recurso de computação exigido, que é dificultado quando se realiza um ataque distribuído coordenado, no qual a análise em tempo real de todos os pacotes (em grande número) pode ficar comprometida. Soluções como realizar análises em dados já capturados previamente, como pacotes da rede ou logs, reduz a necessidade de recursos computacionais; porém a detecção não é feita em tempo real.

4.2.3 Arquitetura

A arquitetura de um IDS está ligada à forma como seus componentes funcionais encontram-se arranjados em relação uns aos outros. Os fatores que mais influenciam na arquitetura de um IDS são a localização e o alvo.

Segundo o Alvo Na divisão da arquitetura do IDS segundo o alvo, o fator analisado é a fonte de dados que será trabalhada. Existem três tipos de IDS:

- Baseado na máquina (host -based): O IDS captura informações em um computador individual, fazendo uma análise profunda e precisa sobre o tipo de ataque, os estragos feitos, usuários envolvidos e processos comprometidos. O monitoramento do sistema é feito com base em informações de arquivos de logs ou de agentes de auditoria. Este tipo de IDS pode ser capaz de monitorar acessos e alterações em importantes arquivos do sistema, modificações nos privilégios dos usuários, processos dos sistema, programas que estão sendo executados, uso de CPU, dentre outros.

Todavia, fica restrito a máquina em que está instalado. São utilizados como fonte de pesquisa os arquivos de auditorias de sistemas e os arquivos de registros (syslog). As vantagens do IDS baseado na máquina são:

- detecção de ataques que nenhuma outra arquitetura poderia detectar; - pode operar em ambientes de rede criptografados; - não há problemas onde as máquinas são interligadas com switches.

As desvantagens: - são difíceis de monitorar, pois necessitam que seja configurada cada máquina a ser

monitorada; - por fazer parte da máquina atacada, pode ser atacado e desabilitado; - não detecta eventos de rede que não são diretamente direcionados a sua máquina; - por utilizar os arquivos de auditoria do Sistema Operacional, é necessário bastante

espaço de disco para tais arquivos; e - utilizam recursos computacionais da máquina que protegem.

- Baseado na rede (network-based): O IDS captura as informações diretamente da rede, fazendo a análise de todos os pacotes que trafegam em determinados protocolos. Podem funcionar de forma “invisível”, ou seja, sem endereço IP válido na rede que monitora e também pode ter mais de um dispositivo de rede (sensores). As vantagens do IDS baseado na rede são:

- poucos IDSs podem monitorar uma rede de computadores ampla; - o impacto no funcionamento da rede é nulo ou quase nulo, pois é utilizada uma

máquina exclusiva para o IDS; - podem ser altamente seguros contra ataques, pois podem ser configurados de forma

“invisível”.

Page 38: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

38

As desvantagens são:

- podem falhar e até mesmo não funcionar em ambientes com muito tráfego de rede ou que estão em velocidades altas, pois não acompanham a velocidade do tráfego de informações;

- não funcionam em ambientes onde a rede é interligada por switches; - não pode operar em ambientes de rede criptografados; e - IDS baseado na rede não consegue informar se o ataque foi ou não efetuado com

sucesso.

- Baseado na aplicação (application-based): Particularidade do IDS baseado na máquina, o IDS baseado na aplicação monitora eventos entre software e usuários a procura de mau uso de sistemas. Geralmente utiliza arquivos de registros de transações (transaction logs) das máquinas à procura de invasões e ataques.

As vantagens do IDS baseado na aplicação são: - pode monitorar atividades entre usuários e aplicações, verificando má atividade de certos

usuários;e - pode operar em ambientes criptografados, pois trabalham com arquivos de transação que

estão em formato decriptado.

As desvantagens são: - pode ser mais vulnerável do que o IDS baseado em máquina, pois os arquivos de

transação de aplicações não são tão bem protegidos como arquivos de sistema;e - somente detecta problemas de aplicações de usuários, sem habilidades de

monitoramento de Cavalos de Tróia24, ataques, invasões e similares.

Segundo Localização

O segundo aspecto que também é muito importante para a arquitetura do IDS é onde e como estarão distribuídos os componentes de um IDS.

O módulo de captura, análise e alerta de um IDS podem estar todos separados em várias máquinas na rede ou todos reunidos somente em uma máquina. As estruturas centralizadas têm a vantagem de facilidade de instalação configuração, operação e ganho de desempenho. A simplicidade de manutenção e desenvolvimento garante vantagens em relação às demais arquiteturas, porém a complexidade dos sistemas atuais aliada à diversidade e dimensões da maioria das instalações computacionais, requer que sejam utilizadas soluções descentralizadas.

Os sistemas de proteção de redes de computadores requerem redundâncias para a tolerância às falhas ocasionando em maior segurança. Este fator leva a instalação de uma arquitetura descentralizada com módulos separados e independentes trocando informações entre si e garantindo esta redundância.

O uso de tal arquitetura, no entanto, leva à complexidade na troca de informações entre os módulos, problemas como algoritmos criptográficos, protocolos de autenticação, técnicas de detecção de falhas, assinatura digital e a própria troca de informações entre os componentes, elevando os problemas de controle do uso das redes e desempenho da aplicação.

Os sistemas híbridos são configurados de forma a fazer a interação entre sistemas com arquitetura centralizada e distribuída, tirando proveito das vantagens individuais de cada um e selecionando a

Page 39: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

39

melhor solução para cada sub-rede dentro de uma rede corporativa e ampla. Os IDS podem se dividir, segundo a localização, em três formas:

- controle centralizado; - parcialmente distribuído, onde são utilizados sistemas distribuídos e centralizados

reportando hierarquicamente a um componente principal; - totalmente distribuído.

4.2.4 Comportamento Pós-detecção

Quando descoberta a informação do evento, o IDS necessita tomar uma decisão. O comportamento do IDS diante de um evento (variando entre ataques, tentativas, etc.) é conhecido como Resposta ao Evento e é dividido em resposta passiva ou resposta ativa.

Ativo As respostas ativas a uma informação de uma ação são ações automatizadas exercidas pelo IDS na busca de coleta de informações adicionais sobre o ataque, mudança do ambiente de rede na qual o atacante tenta invadir, ações contra o invasor, dentre outras.

Os Sistemas de Detecção de Intruso mais “inteligentes” tomam uma série de ações no momento da invasão, onde são guardadas todas as informações sobre os passos tomados pelo atacante, estados dos sistemas e da rede; re-configuração de firewalls e roteadores para prevenção de novos ataques; envio de pacotes TCP para reinício de conexão e ações contra o atacante, como varredura de portas e outras medidas host is (este último bastante perigoso e desaconselhado por motivos de falhas na detecção, ilegalidade da ação e ataques a redes e usuários inocentes).

Page 40: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

40

Passivo As respostas passivas são mais comuns em IDS e finaliza o processo de captura, análise e alerta de intrusão. Utilizadas apenas para informação de intrusão, para ações posteriores de outros sistemas ou intervenção humana, as respostas passivas podem ser alarmes e notificações, em arquivos de sistema, e-mail, pager, snmp traps25, etc.

4.3 Intrusion Prevention System (IPS)

Os sistemas de detecção de intrusão funcionam como um sniffer, capturando e analisando a comunicação do segmento de rede, possuem alguns problemas, como o fluxo de pacotes fragmentados, não confiáveis e que chegam foram de ordem. Algumas técnicas que podem ser utilizadas para resolver esses problemas são:

IP de-fragmentation: combinar os fragmentos em pacotes. TCP reassembly: recolocar os segmentos TCP na ordem inicial, eliminando dados duplicados e overlapping. Flow tracking: identificar os fluxos e associá-los com uma sessão única de comunicação. Normalização: interpretação e manipulação de representações codificadas e caracteres especiais na reconstrução das mensagens.

Assim, os sistemas que utilizam essas técnicas são baseados em estados, pois tomam decisões levando em consideração o estado dos pacotes a serem analisados. O funcionamento do Network Intrusion Detection System em modo passivo, apenas escutando o tráfego, resulta também em outros incovenientes, pois, atuando de modo passivo, o sistema não pode controlar o tráfego, ignorando, modificando, atrasando ou injetando novos pacotes na rede capazes de defender o ambiente. Isso faz com que a operação inline seja importante para eliminar a maioria dos problemas de evasão existentes em IDS baseado em rede.

A operação inline difere da operação passiva na forma de captura do tráfego do segmento de rede. O IDS que opera em modo passivo captura o tráfego do segmento de rede, enquanto o IDS que opera em modo inline possui um posicionamento como a de um firewall, onde todo o tráfego da rede passa pelo sistema. Essa característica torna o IDS inline capaz não apenas de detectar os ataques, mas também de prevení-los, pois os pacotes do ataque não chegam aos servidores. Esses sistemas que operam em modo inline são chamados de sistemas de prevenção de intrusão – IPS. O IDS que opera em modo inline pode ser caracterizado como IPS baseado em rede, pois existem os IPS baseados em host .

A diferença entre os dois modos de operação (passivo e inline) torna-se clara, pois a operação em modo passivo faz com que o IDS seja capaz de detectar ataques, porém não capaz de prevenir os ataques. Os IDS passivos, na realidade, possuem alguma forma de reação, normalmente com o envio de mensagens “TCP reset” ou enviando mensagens de reconfiguração de regras de firewall ou de roteadores.

Os IDS inline possuem a capacidade de enviar mensagens de “drop” de conexões, o que faz com que as conexões não cheguem ao seu destino, pois elas são silenciosamente perdidas, como acontece com os firewalls. O uso de “reset” permite que os atacantes obtenham informações na mensagem que podem ser relevantes para os ataques, como o número de host s entre ele e o servidor, via análise do campo Time to Live (TTL) do pacote TCP.

Além disso, o pacote “reset” recebido pode fazer com que o atacante perceba a existência de um IDS na rede da organização, pois a conexão é encerrada, com o atacante recebendo essa mensagem, e

Page 41: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

41

não “perdida”. Como o atacante recebe essa mensagem de “reset”, existe ainda a possibilidade de que ele altere sua pilha de protocolos para que esses pacotes não sejam recebidos, de modo que a conexão continua ativa.

Outro problema da utilização de pacotes “reset” é que alguns ataques baseados em um único pacote não são afetados. Nesse caso, quando o pacote de término da conexão é enviado, o ataque já aconteceu. Mesmo em ataques que usam mais de um pacote, pode existir o atraso no envio do “ reset”, o que pode fazer com que esse pacote chegue após a realização do ataque. Além disso, problemas referentes ao número de seqüência fazem com que uma condição de corrida possa existir, resultando em uma grande quantidade de pacotes “reset”, que pode degradar o desempenho da rede.

Assim os IDS que operam em modo inline, no qual todos os pacotes passam pelo sistema, são também conhecidos como IPS baseado em rede. Outro tipo de IPS baseado em host pode operar de acordo com as seguintes abordagens.

- Abordagem heurística, com detecção via redes neurais. - Abordagam baseada em sandbox, no qual uma área do sistema tem o acesso restringindo,

alarmando quando uma ação viola os limites dessa área. - Abordagem baseada no kernel, onde o acesso ao kernel é controlado pelo IDS, prevenindo a

execução de chamadas maliciosas ao sistema.

Um IPS com abordagem baseada no kernel pode controlar os acessos ao sistema de arquivo, aos arquivos de configuração e aos registros do sistema. Além disso, ele pode controlar os pacotes de rede e também o espaço de execução, minimizando os problemas de ataques de buffer overflow.

Os sistemas de prevenção de intrusão baseados em host funcionam integrados ao kernel do host , inspecionando as chamadas ao sistema de acordo com um conjunto de regras definidas, rejeitando problemas de buffer overflow, system calls ilegítimos, mudanças em registros e vírus, worms, cavalos de Tróia, rootkits e backdoors. Em vez de assinaturas, eles identificam comportamentos suspeitos.

As premissas dos sistemas de prevenção de instrusão são:

- todos os comandos devem passar pelo kernel para o sistema de prevenção, antes de serem executados.

- todos os comandos possuem objetivos similares: privilégios de administrador, modificação de registros ou de arquivos do sistema, execução de buffer overflow, etc.

Dessa maneira, as aplicações são redirecionadas para o sistema de prevenção, que faz a verificação de todas as chamadas. Elas chegam ao kernel do sistema apenas após passar pelas checagens feitas pelo sistema.

Page 42: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

42

5. Conclusão

Não existe sistema totalmente seguro e não existe nenhuma ferramenta que garanta esta segurança. No caso de rede de computadores a vulnerabilidade é muito maior devido a fragilidade apresentada por cada um dos "elos da corrente” ou nós da rede.

Apenas ferramentas, na forma de hardware e software, são insuficientes para oferecer um nível de segurança aceitável para um ambiente corporativo; é necessário que a implementação de segurança considere três perspectivas básicas: tecnologia, políticas e procedimentos e pessoas.

A perspectiva tecnológica deve cuidar dos mecanismos de defesas que visam atender aos requisitos de segurança da informação, na forma de protocolos, assinaturas eletrônicas, criptografia, técnicas e práticas de programação, ferramentas, etc.; a perspectiva de políticas e procedimentos deve contemplar normas e procedimentos relacionados com o controle de acesso às informações, à distribuição de informações sensíveis, aos planos de contingência, aos aspectos legais da guarda das informações, à administração de segurança e auditoria; e a perspectiva pessoas, deve focar a preparação adequada por meio de programas de conscientização e a criação de uma cultura de segurança em seus profissionais.

Somente com a adequada preparação e integração desses três elementos, as organizações passarão a operar em um ambiente um pouco mais seguro.

Page 43: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

43

Bibliografia COLE, Eric; Hackers Beware. New Riders Publishing, 2001 Segurança de Redes. 2002 KING, Todd; Security + Training Guide. QUE. 2003 KLEVINSKY, T. J; LALIBERTE, Scott; GUPTA, Ajay. Hack IT: Security Through Penetration Test. Addison Wesley.2002 MANDIA, Kelvin; PROSISE, Chris. Resposta e Contra-ataque. Campus. 2001 McCARTHEY, Linda. IT Security: Risking the Corporation. Prentice Hall PTR. 2003 NAKAMURA, Emílio Tissato, GEUS, Paulo Lício. Segurança de Redes em ambiente cooperativos. Editora Futura. 2003 SCAMBRAY, Joel, McCLURE, Stuart, KURTZ, George. Hackers Expostos , Segredos e Soluções Para a SCRIMGER, Rob. TCP/IP a Bíblia. Campus. 2002 STALLINGS, William. Networking and Internetworking Security: Principles and Practices. 1995

Page 44: MP202 – Segurança da Informação Tipos de Ataques ... · O objetivo deste trabalho é apresentar uma descrição dos principais tipos de ataque: IP Spoofing, Seqüestro de Sessão,

This document was created with Win2PDF available at http://www.daneprairie.com.The unregistered version of Win2PDF is for evaluation or non-commercial use only.