Curso de Segurança em Linux e Redes em Geral por Luís Rodrigo de O. Gonçalves - Versão HTML

ATENÇÃO: Esta é apenas uma visualização em HTML e alguns elementos como links e números de página podem estar incorretos.
Faça o download do livro em PDF, ePub, Kindle para obter uma versão completa.
Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

Apostila do Curso de Segurança

Universidade Estácio de Sá

Campus Petrópolis I

Prof. Luís Rodrigo

Versão 0.4

Rascunho

Data: 04.03.2005

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 1 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

Introdução: A Segurança na Internet

Devido ao modo como a Internet foi projetada, ainda hoje, existe uma ausência de mecanismo que garantam a privacidade e autenticação, para as camadas que estão abaixo da aplicação, ou seja, quando da sua criação não houve uma grande preocupação com segurança. Dentre os vários problemas que ainda agravam esta situação podemos destacar:

1) Senhas reutilizadas e não cifradas;

2) Baixo nível de segurança em servidores de Dial-Up (linha discada);

3) Falta de critério de segurança, na criação de contas de usuários;

4) Monitoração e expiração de contas feita de forma ineficiente;

5) Falta de atenção quando a configuração de servidores que executam algum tipo de CGI

(Common Gateway Interface).

Desta forma, jamais execute um servidor web como root, sendo indicado a criação de um usuário

específico para tal ação, como por exemplo o usuário de grupo webserver.

O principal avanço que ocorreu na segurança da WEB nos últimos tempos foi a criação do protocolo SSL (Secure Socket Layer) pelo Netscape, este protocolo usa uma estrutura de três camadas que emprega: 1) Autenticação;

2) Criptografia – RSA e DES;

3) Verificação de integridade – MDS.

Como funciona o processo:

1) Realização do Handshake (Aperto de Mãos) – Definição de uma chave secreta;

2) Início da conexão privada – Mecanismo de criptografia – DES – chave simétrica;

3) Pode haver a autenticação do cliente e do servidor, via RSA – chave assimétrica;

4) Transporte das mensagens – uso do algoritmo de verificação de integridade – uso do SHA,

MDS e etc.

Podemos então perceber claramente que o objetivo deste protocolo de segurança é prover a

privacidade e confiabilidade entre dois programas, buscando estabelecer um processo de negociação e emprego de funções de autenticação mútua.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 2 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

1) Conceitos Básicos

O Termo "Segurança" , segundo a ISO 7498-2, é utilizado para especificar os fatores necessários para minimizar a vulnerabilidades de bens e recursos e está relacionada a necessidades de proteção contra acesso ou manipulação das informações confidenciais e utilização dos recursos de processamento de forma não autorizada.

Da mesma forma "Vulnerabilidade" é utilizada para especificar qualquer fraqueza que pode ser explorada para violar um sistema ou as informações que ele contem.

A necessidade de proteção deve ser definida tendo como base as possíveis “Ameaças” as quais o ambiente está exposto, e deve ser formalizado em um documento oficial denominado Política de Segurança.

1.2) Ameaças e Ataques

Uma "Ameaça" consiste de uma possível violação da segurança de um ambiente ou sistema. As ameaças podem ser classificadas como:

1. Passivas / Ativas;

2. Acidentais / Intencionais;

Um "Ataque" é a materialização de uma ameaça e normalmente pode ocorrer de várias formas diferentes, mas normalmente é realizado através das etapas:

1. Obter informações sobre o alvo - coleta do perfil do alvo;

2. Obter acesso inicial, não privilegiado, ao sistema;

3. Explorar pontos fracos para aumentar o nível de privilégio e expandir o acesso;

4. Executar o ataque propriamente dito;

5. Instalar porta dos fundos (backdoor);

6. Cobrir rastros.

Dentre as técnicas que podem ser utilizadas para proferir um ataque podemos destacar:

1. Phreaking - consiste na má utilização do sistema telefônico, permitindo acesso gratuito e até mesmo interromper seu funcionamento;

2. Discagem de Guerra ou Discagem de Força Bruta: consiste no uso de ferramentas para realizar a discagem seqüencial para um número aleatório de números com o

objetivo de detectar um modem. Uma vez identificado um modem poderia ser utilizado

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 3 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

um ataque de senha para se ter acesso ao sistema;

3. Engenharia social: consiste em se passar por uma outra pessoa com o objetivo de coletar informações para proferir o ataque em sí (coleta de informações privilegiadas);

Recentemente tem-se utilizado principalmente o "e-mail" para a realização desta técnica.

Esta técnica é uma forma incrívelmente eficaz de se reunir informações sobre um dado

ambiente u sistema alvo;

4. Quebra de senha: tem por finalidade obter as senhas de acesso ao sistema, ou de uma conta em especial. As principais técnicas que podem ser empregadas são:

Força bruta;

Dicionário;

Combinação de palavras;

Como não existem senhas 100% seguras é uma questão de tempo até que um software

de quebra de senha consiga descobrir uma senha.

5. Filtragem de Pacote (packet sniffing): almeja a coleta de nomes de usuário e senhas que trafegam de forma não protegida pela rede; e outros tipos de informações

pertinentes para o invasor;

6. Varredura ICMP - Pinging : esta técnica é utilizada para determinar os possíveis alvos para um determinado ataque, mas também pode ser utilizada por Administradores de

Rede para realizar o monitoramento da mesma;

7. Scanner de Portas: consiste na determinação de quais serviços de rede estão ativos nos hospedeiros da rede, bem como da identificação das principais vulnerabilidades a

que estes hospedeiros estão sujeitos. Ao identificar o endereço de um hospedeiro ativo,

o invasor pode utilizar este valor para forjar um ataque sem ser identificado

8. Coleta do Finger Printing de um hospedeiro;

9. Código malicioso (malware): programas desenvolvidos com objetivo de "furto" de informações ou até mesmo danificação dos sistemas.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 4 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

1.2) Os Principais tipos de Ataques

1. Personificação (masquerade): uma entidade faz-se passar por outras;

2. Replay: após uma mensagem ser interceptada ela pode ser transmitida para permitir o acesso de um invasor ao sistema;

3. Modificação de Conteúdo: o conteúdo de uma mensagem alterado de forma furtiva;

4. Ataques Internos: normalmente proferidos por usuários legítimos que realizam operações ilegais; 5. Armadilhas (trapdoor): entidades do sistemas são modificadas para produzir efeitos não autorizados em resposta a determinadas mensagens ou intervalos de tempo;

6. Cavalos de Tróia: entidades que executam funções não autorizadas, como por exemplo um procedimento de "Login" modificado;

7. Recusa de Serviço: tem por objetivo impedir que entidades legitimas realizem suas funções.

Tipo: DoS e DdoS.

8. Spoofing IP - Esta é uma técnica, dita altamente sofisticada, onde uma máquina é autenticada por outra através de Pacotes IP indicando ser uma fonte segura. Dado que um computador “X” pode

manter uma comunicação com um outro computador “Y”, sem a necessidade da constante

verificação de autenticidade. Um hacker pode se disfarçar informando para “X” que sua máquina é

“Y”. Para isto ele deve ser capaz de gerar os números de seqüência que são usados durante o

“Aperto de mãos” entre dois servidores, uma forma de se obter tais números é enviar uma série de solicitações de conexões com “X” e guardar os números gerados.. Com o tempo, o hacker pode

descobrir como ele gera estes números. Descoberto o processo de geração dos números, o

hacker inicia uma conexão informando ser “X”, mas como ele não é a máquina indicada ele age as

“escuras”. Feito a solicitação ele envia um outro pacote com o número de seqüência, e com isto fecha a conexão. Uma vez fechada a conexão o usuário passa a trabalhar em um canal

unidirecional, uma vez que ele não reabrirá os pacotes de resposta. Uma forma de se evitar este tipo de ataque é configurar o roteador para que ele não aceite pacotes internet que simulam

originar-se de um endereço local. Outra forma seria a verificação dos “logs”, e do arquivo de host confiáveis, caso haja uma conexão ativa com algum destes hosts, mas sem que hajam processos

em andamento provavelmente um ataque está em ação.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 5 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

9. Negação de Serviço - Este tipo de ataque tem por objetivo deixar um “recurso” inoperante

“momentaneamente”. Existem basicamente dois tipos de ataques desta categoria o DoS e o

DDoS, este segundo, se baseia no envio de uma grande quantidade de pacotes para um alvo de

forma coordenada a partir de várias origens. Devido a uma fragilidade do TCP (Transmission

Control Protocol) os endereços da origem dos pacotes são normalmente forjados. Sendo que os

tipos mais comuns de DoS se baseiam na prerrogativa que o cliente tem que aceitar a conexão e

na limitação de que um serviço tem que aceitar um número de conexões por vez. Um dos

cuidados que devem ser tomados quando da configuração dos equipamentos de rede é que eles

não possam ser usados como fontes de ataques, bem como contra os ataques propriamente ditos,

uma das formas de se fazer a segunda parte e retirar os serviços que não estão sendo utilizados, outra forma é realizar uma constante verificação do tráfico do site, assim sendo, quando uma

atividade anormal for detectada, uma atitude correspondente deve ser adotada, como por exemplo bloquear um endereço de IP.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 6 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

2) Malware

Desde novembro de 1988, quando Robert Morris lançou seu verme na internet, a mídia apresentou o código malicioso como se fosse um desastre natural, o que não deixa de ser uma verdade, visto seus efeitos e como as pessoas se comportam.

Os vírus, além de serem desastrosos para a produtividade de uma empresa, devido ao seu comportamento epidêmico, ele pode consumir uma sensível parte da largura de banda de uma rede de computadores.

Atualmente existe mais de 40.000 tipos distintos de vírus registrados. Dos vírus conhecidos três se destacam pelo seu poder destrutivo e pelo seu modo de operação. O vírus “Melissa” , desenvolvido por David Smith em 1999, causou um dano total de US$ 80 mil.

O vírus "I love You" causou um dano total

de US$ 10 bilhões e desativou mais de 10.000 empresas, incluindo o Departamento de Defesa Norte Americano (D.O.D).

Um dos motivos de rápida proliferação do Vírus "I love you" foi causada pelo uso do catálogo de endereços do Microsoft Outlook Express, e por explorar a curiosidade do usuário.

Como acontece no mundo real a cura para estas pragas está sempre um passo atrás do seu

desenvolvimento. E atualmente os vírus deixaram de ser um pequeno incomodo, se tornando uma real ameaça para a comunidade comercial.

2.1) Ciclo de Vida do Vírus

- Nascimento;

- Lançamento;

- Proliferação;

- Disparo;

- Ativação;

- Detecção;

- Eliminação;

- Mutação (volta ao primeiro estágio).

Os vírus podem utilizar vários meios de transporte, originalmente os disquetes e os arquivos

baixados de BBS eram a principal fonte, atualmente os e-mails e as redes promíscuas são os dois maiores Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 7 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

grupos de risco de contaminação.

Atualmente, muitos vírus não necessitam que o usuário executem um arquivo anexado, basta abrir o e-mail ou visitar um site que o mesmo é automaticamente acionado.

2.2) Tipos de Vírus

Os principais tipos de vírus são:

1. Vírus de infecção de arquivos - um dos primeiros tipos de vírus. Quando arquivos

infectados eram executados, o vírus era automaticamente executado e se proliferava

para os demais arquivos executáveis existentes no sistema;

2. Vírus do setor de boot - pouco comuns na atualidade, foram uma praga no passado,

eram carregados antes da execução do sistema operacional e contaminavam todos os

demais discos inseridos no sistema. Atualmente este tipo de vírus não causa grandes

danos devido a funcionalidades incorporadas nos sistemas operacionais mais recentes;

3.

Vírus de Macro - usam as linguagens de macro dos programas para infectar seus

arquivos de dados. São Vírus específicos dos programas e atacam principalmente

documentos do Microsoft Word e Microsoft Excel;

4.

Virus de Sript - são escritos utilizando-se de programação script, principalmente

Visual Basic Script e Java Script, normalmente ativos quando um e-mail é aberto ou um

site visitado;

5.

Vírus Criptografado - foi o primeiro resultado da guerra entre desenvolvedores de

vírus e anti-vírus, como as assinaturas dos vírus são normalmente sua forma de

detecção, os vírus começaram a cifrar e embaralhar seus códigos todas as vez que são

executados;

6.

Vírus Polimorfico - são vírus que possuem um sistema ativo de mutação, que não

somente muda o vírus a cada vez que ele replica, mas também muda a rotina que

decifra. Isto cria um vírus muito difícil de se detectar. Um exemplo de vírus desta

categoria é "One Half" , que criptógrafa progressivamente o seu disco rígido, tornando-o impossível de ser lido.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 8 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

2.3) Outros tipos de Malware:

1. Cavalos de Tróia;

2. Vermes - são aplicativos designados para se espalharem pelas redes e se replicarem, são independentes de outros programas aos arquivos, e geralmente causam danos por causa de

sua replicação fora de controle;

3. Código malicioso em Java - esta linguagem normalmente é utilizada na Internet na forma de

“applets” eu são manipuladas pelo browser. A segurança desta linguagem de sua máquina

virtual, contudo é inevitável que alguém usará o Código Java para escrever um programa

malicioso;

4. Código malicioso em Active X – esta “linguagem” é de propriedade da Microsoft e assim como a Java pode ser utilizada para difusão de código malicioso. Contudo, contem assinaturas

digitais que verificam o nome do autor do programa. Depois o browser verifica se você confia

ou não no fornecedor do software. Contudo, jamais permita automaticamente todos os

aplicativos de um dado auto, visto a possibilidade de se falsificar um certificado;

2.4) Tecnologias de antivírus

Existem várias técnicas que podem ser adotadas pelos antivírus, das quais podem-se destacar:

1) Investigação de assinatura;

2) Monitoramento de atividades;

3) Verificação de integridade.

Os Pacotes de Investigação procuram assinaturas e consistem de duas partes:

1) Um banco de dados contendo as assinaturas conhecidas;

2) Software de pesquisa e análise dos arquivos em busca destas assinaturas.

Outra forma de investigação é a “Investigação Heurística” , que procura código suspeito, estes softwares convergem os arquivos para uma área “virtual” do computador – área de quarentena, os executam e testam seu comportamento.

Uma vantagem da Investigação Heurística é que ela pode: pegar novos vírus antes mesmo de Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 9 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

ocorrer uma infecção ou do lançamento do novo arquivo de assinaturas.

Mas os investigadores podem oferecer “falsos positivos”, contudo este problema tem sido gradativamente reduzido.

Os “Monitores de Atividade” observam as ações que estão sendo executadas no computador, e quando ocorre uma ação suspeita, o monitor envia um alerta para o usuário, pedindo que o mesmo aceite ou rejeite a execução do código, o que pode gerar certo nível de inconveniência ao usuário.

Os “Verificadores de Integridade” guarda informações detalhadas sobre os arquivos do computador e setores do sistema. Isso permite que ele possa determinar quando são feitas mudanças e então emitir um alerta ao usuário.

Os softwares antivírus podem ser executados em três locais distintos:

No Desktop – protegendo localmente os dados, mas pode ser facilmente desabilitado pelo usuário;

Nos Servidores – garante maior nível de segurança para os dados da rede, mas podem sobrecarregar a operação do servidor;

Nos Gateways da Rede – evita a entrada e saída de softwares maliciosos da rede. Pode gerar um atraso na comunicação, contudo seu uso é altamente recomendado.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 10 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

3) Problemas de Segurança da WEB

Quando a WEB era formada por páginas estátuas, não havia possibilidade de realização de

comércio, mas mesmo assim já era alvo de ataques de segurança, como por exemplo, a “desfigurarão” do arquivo “index.htlm” .

Apesar de simples, este ataque pode gerar a perda de credibilidade da empresa e a redução da

confiança do usuário.

Outro tipo de ataque que já era comum nesta época era a alteração ilegal dos servidores de “DNS” , que permitem que sites fossem trocados.

Os ataques de DNS não geravam a perda dos dados da página, mas causavam os mesmos danos a

credibilidade e confiança.

Durante estes ataques normalmente os “hackers” utilizam-se da técnica de camuflagem de IP, a qual permite ocultar o endereço de uma outra pessoa durante o ataque.

Com o crescimento da web, os sites de e-commece se tornaram o grande alvo dos hackers, visto

que eles poderiam lucrar de várias formas, principalmente financeiramente.

A desfiguração de Sites é o tipo de ataque mais simples e pode não exigir grandes conhecimentos.

É o mais explorado pelos Script Kiddies. Mesmo sendo um ataque simples, ele causa sérios danos à empresa, independente se o site é hospedado para “terceiros”.

3.1) Ataques de Negação de Serviço

Apesar dos hackers ainda não possuírem uma união, eles trabalham em grupos de forma livremente organizada. Estas características é que tornam este tipo de ataque possível.

O objetivo deste ataque não é causar perda de dados ou acesso ilegal ao sistema. E sim tornar o servidor incapaz de responder aos clientes reais que tentam acessar o site.

Uma das primeiras formas desse tipo de ataque era aplicado contra o sistema telefônico de

determinadas organizações, neste caso, os “hackers” , simplesmente ligavam repetidamente para os números de telefones dos SACs impedindo aos reais cliente o acesso ao serviço.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 11 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

Os hackers podem automatizar estes ataques através dos “Zumbis” que são sistemas previamente comprometidos para um ataque. Este tipo de ataque pode caracterizar um DDOS, no qual o invasor não pode ser diretamente rastreado.

Novos Zumbis são facilmente “alertados”, pois cada vez mais existem pessoas com acesso de

banda larga, nas quais conectam seus computadores de forma protegida para um longo período de tempo.

Dentre as ferramentas utilizadas pelos “hackers” podemos destacar o Tribal Flood Network e o

Trin00.

Tipos de ataque:

1) Ataque Smurf : uma rede com pedidos “Packet Internet Groper” (PING), neste caso a rede é sobrecarregada com uma grande quantidade de pedidos e replicar de ping;

2) Ataque Fraggle : este ataque usa o protocolo UDP – User Datagram Protocol da mesma forma que o ataque smurf;

3) Ataque de Inundação de SYN: cliente e servidor trocam uma série de mensagens a fim de estabelecer uma conexão. O primeiro pacote é o SYN (abreviação

synchroneze – sincronizar).

O nó da rede responde ao cliente com uma mensagem SYN-ACK (synchronize

acknowledgment – confirmação de sincronização).. Durante o ataque o hacker não

envia a confirmação (ACK) deixando o host aguardando com uma conexão meio

alerta.

Quando o host atinge seu limite de conexões, ele passa a recusar quaisquer

conexões que chegarem, incluindo as válidas. Estas conexões alertas irão expiar o

término do ataque e a negação do serviço terminará.

O anonimato de um ataque de Negação de Serviço torna-o um ataque pouco

visível, mas com elevados danos à publicidade e à imagem da empresa.

Apesar de serem fáceis de se gerar, são difíceis de se impedir, a única coisa que

pode ser feita é tornar sua rede mais difícil de atacar e seus computadores de se

tornarem Zumbi.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 12 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

3.2) Estouro de Bufffer

Buffers são áreas de armazenamento temporário.

1) Possui tamanho limitado;

2) Estou de Buffer ocorre quando os dados excedem o limite;

3) Os dados excelentes podem alterar outras regiões de dados, incluindo as instruções do

Programa;

4) Pode ser utilizado para executar código malicioso e abrir acesso ao sistema;

5) Existem em todos os sistemas.

Solução:

1) Validação dos dados antes de serem enviados para o buffer;

2) Pode atrasar as transações e reduzir a largura da banda;

3) A validação deve ser feita, principalmente no servidor.

3.3) Vulnerabilidade no campo do formulário

1) Principalmente nos campos ocultos;

2) Campos podem ser vistos selecionando as opções “EXIBIR/CÓDIGO FONTE”;

3) O hacker pode alterar estes campos antes de submete-los ao site;

4) Formulários com código de sessão também são vulneráveis a este ataque e poderiam

permitir a um hacker apanhar a sessão de um usuário real.

Solução:

1) Todos os dados retornados para um formulário devem ser verificados para o servidor;

2) Incluindo aqueles que o usuário não possui “acesso” direto;

3) Java Script no lado do cliente reduz o problema, mas não resolve, pois pode ser

desabilitado.

3.4) Modificação do arquivo de Cookie

1) Cookies são arquivos texto que guardam as preferências do usuário;

2) São arquivos não cifrados, logo podem ser facilmente alterados por um hacker.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 13 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

3.5) Scripts entre sites

1) Um usuário pode ser atraído a executar um código malicioso contra um site;

2) Pode ocorrer quando um usuário recebe um e-mail com um Hiperlink;

3) Ao clicar no link ele é direcionado ao site com o código malicioso;

4) O servidor web aceita o código pensando ser de um usuário confiável e o executa;

5) Este script poderá fornecer ao hacker informações confidenciais sobre o usuário.

3.6) Vulnerabilidades do Sistema Operacional e das Aplicações

1) Há falhas de segurança em todos os sistemas operacionais e aplicações;

2) Monitorar falhas e aplicar os patches;

3) Fornecedores relutam em publicar os pontos fracos;

4) Configurações mal feitas, portas dos fundos e depurações também podem deixar o site

vulnerável;

5) Programadores também podem deixar comandos de depuração que foram úteis durante o

desenvolvimento, mas agora representa um grande risco.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 14 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

4.) A criptografia e seu uso

A criptografia é a arte/ciência de escrever de forma cifrada/codificada. Ou seja, é o conjunto de técnicas que permite reescrever uma mensagem “clara” de forma incompreensível e permitir que somente o destinatário entenda a mensagem.

A criptografia tem por finalidade garantir a privacidade através do uso de algoritmos que trabalham como funções matemáticas que mapeiam um dado de entrada em uma outra informação na saída, que é na verdade o texto cifrado.

A palavra criptografia vem do grego: krypto = esconder + grafo = escrita/grafia.

A criptoanálise é a ciência de determinar a chave de criptografia ou decifrar as mensagens. A

criptologia é a ciência que combina ambas as anteriores. E o criptanalista pode ser tanto o mocinho quanto o vilão.

Os componentes básicos de uma estrutura de criptografia são:

1) Dado de entrada - texto plano;

2) Função de mapeamento - algoritmo de criptografia;

3) Segredo - chave que cifra e/ou decifra;

4) Dado de saída - texto cifrado.

4.1) Sistema Criptográfico

Estes sistemas podem ser baseados em dois tipos de algoritmos, nos restritos e nos modernos.

Aqueles que se baseiam nos algoritmos modernos podem ser simétricos e assimétricos. Os sistemas simétricos fazem uso de somente uma chave, dai o seu nome, já os sistemas assimétricos fazem uso de duas chaves, a pública e a privada.

4.1.1) Algoritmos restritos

1) O algoritmo é o segredo;

2) Não é muito seguro;

3) São difíceis de se desenvolver e distribuir enquanto continuam secretos;

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 15 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

4.1.2) Esteganografia

Esconder uma mensagem secreta em outra mensagem. Exemplos:

1) Tinta invisível - mensagem publica usando “tinta normal” e a secreta usando tinta “invisível”; 2) Imagem gráfica:

1) Incluir uma mensagem secreta dentro de uma “figura”.;

2) Ou em se cabeçalho de dados.

4.1.3) Cifras de substituição

1) Longo histórico;

2) Substitui cada caráter do texto puro para um outro símbolo na mensagem secreta;

3) As substituições podem ser arbitrárias ou podem ter um padrão determinado, como uma

rotação do alfabeto;

4) São fáceis de descobrir devido aos padrões de letra e freqüência em cada linguagem.

Exemplo: Taquigrafia; Código Morse; American Standart Code For Informatran Interchange

(ASCII).

4.1.4) Cifras de Transposição

1) Mantem o código puro intacto, mas trocam ou misturam a ordem de alguma forma;

2) Uma versão desta técnica é a “Cifra de transposição colunar simples”;

Exemplo de funcionamento:

(1) Definição da cifra original

THIS IS A SIMPLE COLUMNAR TRANSPOSITION CIPHER

(2) Definição do formato da matriz

Frase – 40 caracteres

Grade – 8 colunas

5 linhas

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 16 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

(3) Inserindo dados na grade:

T

H

I

S

I

S

A

S

I

M

P

L

E

C

O

L

U

M

N

A

R

T

R

A

N

S

P

O

S

I

T

I

O

N

C

I

P

H

E

R

(4) Reescrita da cifra = seguindo-se as colunas verticalmente.

TIUNO HMMSN IPNPC SLAOI

IERSP SCTIH AORTE SLAIR

Versões mais sofisticadas usam padrões mais complexos, como ziguezague pela grade.

Como as palavras estão mantendo a mesma freqüência, esta técnica é facilmente detectada

e quebrada.

4.2) Técnicas Modernas de Codificação

1) Usam algoritmos, irrestritos e chaves para manter as informações seguras;

2) Superiores aos sistemas de algoritmo restrito;

3) Muitos possuem anos de resistência à criptoanálise intensa;

4) Muitas pessoas podem usar o mesmo algoritmo, basta mudar a chave;

5) Quando a chave for comprometida basta gerar uma nova;

6) Duas técnicas básicas:

1) Criptografia simétrica;

2) Criptografia assimétrica ou criptografia pública.

7) Muitos sistemas usam ambas as técnicas.

4.2.1 Criptografia Simétrica

1) Conhecido como codificação de chave secreta;

2) Uma mesma chave utilizada para codificar e decodificar;

3) Desta forma, a chave é o segredo.

4) É muito utilizada em conexões seguras para realizar a troca das chaves temporárias;

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 17 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

Exemplo de algoritmos:

1) DES – Data Encyptron Standard;

2) Triple DES;

3) IDEA – International Data Encyption Algorithm;

4) Blowfish;

5) Rot 13

6) RCS.

Estes algoritmos podem ser de dois tipos:

1) Algoritmos de Fluxo – que trabalham com o texto um byte por vez;

2) Algoritmos de Bloco – trabalham sobre blocos de tamanha fixo.

Os sistemas simétricos são mais simples e mais rápidos do que aqueles de chave pública (1.000 vezes mais rápido), mas possui a desvantagem de que dois usuários distintos tenham conhecimento do mesmo segredo (chave). Ambos os usuários são responsáveis pela segurança da chave.

4.2.2 Criptografia para chave pública (assimétrica)

Foi criada em 1976 por dois matemáticos de Stanford, Whitfield Diffie e Martin Hel man. Esta

resolve o problema do uso da chave secreta existente na criptografia simétrica, para tal faz uso de duas chaves (privada - cifra e pública- decifra). Estas duas chaves são diferentes, contudo possuem um relacionamento matemático, todavia não é possível derivar a chave privada a partir da pública e vice-versa, elas se baseiam em números primos, fatoração, logaritmos e outras funções matemáticas. Neste caso, o tamanho da chave é quem determina a eficiência do processo.

O principal deste tipo de criptograma é o RSA criado por Ron L. Rivert, Adi Shamir e Leonard

Adelman, a segurança deste algoritmo se baseia na dificuldade de se fatorar números extensos. Segundo pesquisadores, para desvendar o sistema RSA Data Security usando uma chave de 760 bits, seriam necessários 4.300 computadores e 50 anos.

O uso destas chaves permite o estabelecimento da conexão segura entre duas entidades sem o

prévio conhecimento das chaves. Visto que quando uma entidade “X” precisa enviar uma mensagem para

“Y”, ela usa a chave pública de “Y”, para cifrar a mensagem e somente a entidade “Y” será capaz de decifrar a mensagem, pois “somente” ela conhece a sua chave privada.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 18 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

4.2.3 Criptossistemas Hibridos

Estes sistemas fazem uso do sistema de chave pública apenas para realizarem o envio e troca de chaves, para a transmissão de dados é utilizada a criptografia simétrica e a chave enviada anteriormente. O

Criptossistemas híbridos aproveitam o melhor das duas tecnologias. Um exemplo de sistema híbrido é o implementado pelo protocolo “HTTPS”, largamente usado em e-commerce.

Exemplo de funcionamento .......

4.3) Outros recursos dos criptossistemas

Além da confidenciabilidade, os criptossistemas podem ser estilizados para a autenticação,

verificação de integridade e reconhecimento.

1) Autenticação – permite garantir que uma pessoa é quem realmente afirma ser;

2) Integridade – garante que os dados não foram alterados durante a transmissão;

3) Reconhecimento – garante que o emissor de dados é uma pessoa específica, e que o

destinatário realmente recebeu os dados. Impede o repúdio de informações.

4.3.1)Métodos de segurança que utilizam criptografia

Atualmente a criptografia está sendo largamente utilizada para proteger de várias formas os dados que estão em trânsito pela rede ou armazenados nos discos óticos e magnéticos das máquinas. Dentre os métodos atualmente disponíveis podemos destacar:

4.3.1.1)Função de Hash Unidirecional:

1) Permite verificar a integridade de uma mensagem ou bloco de dados;

2) É um valor exclusivo a mensagem;

3) Serve como impressão digital;

4) A mensagem original não pode ser derivada a partir do Hash

Dentre os algoritmos que fazem uso desta técnica podemos destacar: Secure Hash Algorithm –

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 19 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

1 (SHA – 1), RIPEM, MD5 e HAVAL.

4.3.1.2) Código de Autenticação de mensagem (MACs):

1) Garante a autenticação e integridade dos dados;

2) Hash Unidirecional + chave secreta;

3) Semelhante a criptografia simétrica;

4) Não se preocupam em manter os dados secretos ou sua integridade.

4.3.1.3) Assinaturas Digitais:

Permite que o destinatário de uma mensagem digital possa verificar a autenticidade do seu

remetente. E que a mensagem não foi de forma alguma alterada durante o processo de transferência, visto que uma assinatura digital que tenha sido verificada não pode ser negada, ela fornece um elevado nível de confiança no processo de transações eletrônicas e autenticação de documentos digitais.

O processo das Assinaturas Digitais se baseia na existência de duas chaves, uma pública e uma

privada. Neste caso, o remetente codifica a mensagem utilizando a sua chave privada e somente o usuário que possui a sua chave pública poderá ler a mensagem.

Uma assinatura digital possui as seguintes propriedades:

1. Garante a Autenticidade;

2. Não pode ser forjada;

3. Não é reutilizável;

4. Não pode ser repudiada.

5. Válida certificados;

6. Pode ser utilizada em assinaturas eletrônicas;

7. Autentica, verifica a integridade e faz o reconhecimento de mensagem;

8. Pode ser utilizada como Hash de um documento;

Algoritmos:

1) RSA;

2) Digital Signature Algotithm (DSA);

3) Digital Signature Standard (DSS).

Usa a chave privada para assinar o documento, e o destinatário usa a sua chave pública para

verificar sua assinatura.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 20 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

4.3.1.4) Certificados Digitais:

1) Permite reconhecer/validar certificados emitidos;

2) Verificação das chaves por um terceiro de confiança – autoridades de certificado (CAS);

3) Possuem uma taxa de ativação e validade;

4) Um certificado digital é composto: da chave privada e publica do indivíduo, mais a assinatura da CA.;

5) Autoridades certificadoras: Versign, Inc; Secure Net Technologia;

6) Alguns governos, como Estados Unidos e Brasil, funcionam como certificadores;

7) Algumas instituições possuem sua própria autoridade, para codificação interna de dados.

4.3.1.5) Kerberos:

1) Serviço de autenticação (MIT);

2) Cifras para codificação e autenticação;

3) Constituído de um Banco de Dados de Cifra;

4) Após o login, gera e distribui as chaves de sessão;

5) Quando o autenticador é quebrado todo sistema pode entrar em colapso;

6) Não é indicado para uso entre domínios de segurança.

4.4 ) Principais Tipos de Ataques de Codificação

1) Ataque de texto conhecido - Baseia-se na suposição de uma vasta quantidade de textos cifrados e das mensagens originais, a que a função do especialista, criptoanalista, é descobrir as chaves utilizadas;

2) Ataque adaptativo do texto escolhido (adaptative – choosen – plaintext) – Neste segundo caso, ele submete pequenos conjuntos de dados, obtém o resultado, analisa, fornece um novo conjunto e assim sucessivamente, até que seja capaz de deduzir as chaves.

3) Ataque do texto cifrado escolhido (choosen – cyphertext) – o especialista possui uma vasta gama de mensagem e os equivalentes dados cifrados, mas é capaz de produzir uma mensagem

criptografada específica para ser decifrada e obter o resultado produzido.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 21 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

5) Backup

É através do processo de backup que podemos garantir a segurança de vários tipos de dados. Este processo consiste em realizar uma cópia total ou parcial de forma on-line ou off-line dos dados armazenados nas estações de trabalho e/ou nos servidores de um determinado ambiente.

Contudo, dependendo as características do ambiente e das necessidades presentes do mesmo o

processo de backup pode variar largamente, deste modo, se faz necessário o uso de critérios para determinar a melhor forma para sua realização. Deste os critérios que podem influenciar o processo de backup são:

1. A quantidade de dados a serem protegidos;

2. A freqüência com que os dados devem ser copiados;

3. Tempo de realização do backup e do restore dos dados;

4. A confidencialidade fornecida pelo processo;

5. O custo do processo e o valor das informações;

6. O prejuízo gerado pela perda parcial ou total dos dados.

5.1) Meios de armazenamento:

Definida as necessidades básicas a serem atendidas devemos selecionar um do tipos de

armazenamento, que podem ser: on-line, Próximos e off-line.

As mídias de armazenamento on-line, consiste em discos rígidos ou arrays de discos. Estas mídias fornecem uma disponibilidade em tempo real e são normalmente utilizados para fornecer uma forma altrnativa de armazenamento. Estas mídias não substituem os backups offline;

O armazenamento próximo é formado por “Jukeboxes” óticos e cópias locais, que estão

rapidamente acessíveis, normalmente fazem uso de robos para gerenciarem as mídias fornecendo um acesso rápido aos dados quando o serviço on-line não está disponível;

Já o armazenamento off-line consiste no arquivamento de mídias fora da rede de dados em um local seguro e protegido contra roubo, catástrofes naturais e outros ameças. Sempre que possível as mídias devem ser armazenadas em local geográficamente diferente e fora das instalações comerciais da empresa.

Para a realização deste tipos de backup podem ser utilizadas três tipos de mídias diferentes:

fitas/discos magnéticos, armazenamento ótico e arrays de disco.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 22 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

As fitas magnéticas são as mídias mais comuns, mais baratas utilizadas nos backups off-line, mas por outro lado são as mais lentas e que ocupam um grande espaço. Seus principais tipos são: 8mm, Travan, DLT, DAT e Magstar

O armazenamento ótico é muito popular em ambientes onde a velocidade e a confiabilidade são as maiores preocupações, estes ambientes fazem uso de servidores com jukboxes óticos de alta

disponibilidade que são soluções caras porem muito eficientes.

Os arrays de discos ou simplesmente RAIDs (Redundant Array of Independet Disks) são um

subsistema de discos rígidos que melhoram o desempenho e a tolerância a falhas, uma vez que os dados são gravados em mais de um disco ao mesmo tempo. Estas soluções podem ser tanto implementadas em software quanto em hardware. Neste caso quando uma unidade de disco falha o administrador do sistema pode substitui-la, em alguns casos, sem parar o funcionamento do servidor.

Os principais tipos de RAID são:

RAID 0 : este nível realiza um “join” dos discos, ou seja, ele combina todos os

discos em uma única unidade lógica, útil quando desejamos aumentar a

capacidade de armazenamento de dados;

RAID 1: realiza o espelhamento de um disco em um outro, nesta solução um

dos discos fica inativo, apenas recebendo os dados do disco mestre até que ele

falhe. Este nível oferece uma boa tolerância a falhas, visto que ao ocorrer a

falha de um disco os usuários são automaticamente redirecionados para o

antigo disco escravo;

RAID 3: também implementa um espelhamento só que neste caso três ou mais

unidades de disco são espelhadas em uma outra, este nível também fornece

tolerância a falhas, uma vez que grava os bits de paridade em uma unidade

dedicada e permite que os discos trabalhem em paralelo, fornecendo assim alto

nível de desempenho;

RAID 5: esta faz uso de três unidades, em duas são armazenados os dados e

na terceira os bits de paridade, sendo esta é a solução mais utilizada;

RAID 10: é a combinação do RAID 1 e 0, ou seja, espelhamento e intercalação

entre unidade de disco.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 23 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

A solução de RAID fornece um melhor desempenho e tolerância a falhas, mas de forma alguma

substituir o processo de backup off-line. Vale lembrar que dois ou mais discos podem falhar ao mesmo tempo, perdendo o acesso total aos dados armazenados no array.

Outra solução de proteção aos dados é o HSM (Hierarchical Storage Management), que é um

sistema automatizado para o gerenciamento de dados e espaço em disco, muito utilizado em mainframes.

Esta solução monitora a capacidade das unidades e move os dados para as mídias de armazenamento próximo ou offline, mais lentas.

O HSM pode mover os dados segundo sua idade, freqüência de uso ou baseado em outros critérios, permitindo deste modo uma migração de dados automática. Esta solução é relativamente cara e difícil de ser implementada.

Já as SANS (Storage Area Networks) ligam diretamente os servidores de dados as unidade de

armazenamento, graças ao uso de um canal de fibra (fiberchannel), permite uma conexão de alta velocidade e implementa uma subrede de armazenamento, com isto libera a rede de produção do peso do backup de dados e economiza largura de banda . Além disto oferecem alta velocidade, confiabilidade e gerenciamento centralizado.

Por outro lado as NAS (Network Attached Storage) funcionam de forma semelhante aos servidores

de arquivos, visto que estão conectados diretamente a rede ethernet e possuem sistemas operacionais embutidos nos equipamentos. Esta estrutura é uma alternativa a inclusão de unidades de dados nos servidores. Para garantir a segurança dos dados estes equipamentos implementas um dos níveis de RAID

estudados anteriormente, mas backups de grades volumes de dados podem afetar a velocidade da rede.

Esta solução é relativamente barata, simples e possui grande compatibilidade entre fornecedores.

5.2 ) Tipos de backup quanto ao período de execução e volume de dados

Dependendo de sua periodicidade o processo de backup pode ser nomeado como:

Backup Completo: realiza uma cópia de todos os dados para a mídia, não importando

o conteúdo do último backup. Este tipo de backup normalmente possui periodicidade

semanal;

Backup Incremental: salva os arquivos que foram alterados desde o último backup.

Neste processo o novo arquivo é armazenado na mídia e o arquivo original não é

removido da mídia. No processo de restauração devemos ter o último backup completo

e dos os backups incrementais desde então. Este tipo de backup possui periodicidade

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 24 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

diária ou menor;

Backup Delta: Só faz a cópia dos dados reais que foram modificados nos arquivos, é

um processo de backup mais rápido e que ocupa menos espaço nas mídias de backup,

contudo o processo de restauração é mais lento e complexo. Também possui

periodicidade diária ou menor;

Backup Diferencial: Copia todos os arquivos que foram alterados desde o último

backup completo, por este motivo ocupa mais espaço nas mídias de backup e mais

lento de ser gerado, contudo é mais fácil de recupera-lo, sua execução

preferencialmente deve ser diária ou em intervalo menor. Para restaurar os dados a

partir deste tipo de backup deve-se ter em mãos apenas o último backup completo e o

último backup diferencial

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 25 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

6) Firewal

Várias pesquisas mostraram que a “Internet” é o principal ponto utilizado para realizar invasões. Em 2002, segundo uma pesquisa feita pela módulo, 43% das empresas sofreram algum tipo de ataque ou invasão. Em 2003, esta valor subiu para 77%. E os hackers brasileiros são internacional considerados como os melhores do mundo.

Outro fator importante é que “... quanto mais tempo ficamos conectados à internet, maiores são as chances de sermos invadidos ou infectados por malwares ...”. Isto tudo pois o Ipv4, versão atualmente em uso da pilha de protocolos TCP/IP, não foi projetado para assegurar a integridade das informações e realizar o controle de acesso apropriado. Deste modo, a forma preferida de se violar uma rede tem sido o uso de pequenas falhas na implementação de serviços e protocolos baseados no TCP/IP.

6.1) O papel do Firewal no contexto atual das redes de computadores

A principal função de um firewal é proteger os dados da rede interna, aquela que não está

conectada a internet, de ataques vindos da rede externa, normalmente a internet. Ou seja, tem por objetivo impedir acessos lógicos não autorizados a um determinado ambiente.

Neste modelo, o firewal geralmente é a única máquina diretamente conectada a rede externa, mas cada nó da rede pode e deve ter seu próprio firewal ativo, mas neste caso sua funcionalidade está restrita a proteção local, incluindo possíveis infecções e proliferações de malwares na rede interna.

Outro uso freqüente dos firewal s é ser utilizado para filtrar quem pode acessar máquinas da rede interna a partir da internet, este tipo de filtragem normalmente é baseada no endereço IP a origem da conexão e em alguns casos em seu Mac Adress.

6.2) Histórico

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 26 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

6.3) Tipos de Firewal

Existem várias classificações para os firewal s, contudo as mais comuns são: Filtro de Pacotes, Firewal NAT e Híbridos.

Os filtros de pacotes, realizam o controle de todo fluxo de dados direcionado ao host. Através da análise dos cabeçalhos dos pacotes nos vários níveis da arquitetura de rede são capazes de comparar seus conteúdos com regras de controle de acesso (ACLs) préviamente definidas e então liberar ou não determinado fluxo de dados.

Já um firewal NAT manipula a rota padrão de pacotes que atravessam o kernel do host, ele realiza a tradução dos endereços de origem, de destino e algumas vezes pode inclusive realizar um

redirecionamento de porta. Este firewal pode ser classificado como: SNAT, DNAT e Masquerading.

Um firewal SNAT normalmente é utilizado para fornecer acesso a uma rede privada apartir de um

ou vários endereços IP fixo. Já o Masquerading realiza a mesma função só que sobre endereços . E um firewel baseado em DNAT pode ser utilizado na construção de uma DMZ ou de um cluster de servidores.

O terceiro tipo de firewal seria o híbrido, que é aquele que realiza tanto filtragem de pacote quando redirecionamento (NAT).

Outra forma de classificação dos firewal é quanto sua forma de atuação dentro da pilha RM/OSI, neste caso os firewal s podem ser classificados como de Rede ou Gateways de Aplicativos.

Os Firewal s de nível de Rede são na verdade roteadores com grande capacidade de filtragem de

pacote, permitem que haja uma restrição a nível de endereço, protocolo, número da porta e conteúdo. São fácil implementação, porém quando mal configurados estão sujeitos a ataques do tipo spoofing. Mas a filtragem normalmente impacta o processo de roteamento, de modo que podemos afirmar que: “o

desempenho do roteador é inversamente proporcional ao nível de filtragem imposta”

Já os firewal s gateways de aplicativo, normalmente funcionam como pontes entre duas redes, os pacotes provenientes de fora da rede passam primeiro pelo gateways, que age como um filtro escondendo assim a rede interna.

Todos os tipos de firewal possuem suas limitações, o de nível de rede possui uma visão muito

limitada do que realmente acontece na rede. Já os gateways de aplicativo tem um conhecimento maior sobre a aplicação, porém são soluções específicas para cada aplicativo. Um dos firewal s de aplicativos Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 27 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

mais conhecido é o SQUID, que foi projetado para manipular os protocolos HTTP, HTTPS e FTP.

6.4) IPTABLES: O firewal do Linux

Este software é a quarta geração de firewal no Linux e permite a realização da filtragem dos

pacotes nas sete camadas da RM/OSI, funcionando ainda como um firewal híbrido. As ACL utilizados por ele estão todas armazenadas em memória, processo este que acelera os mecanismos de filtragem e redirecionamento.

O iptables é um dos poucos firewal s em software totalmente implementado no kernel do sistema

operacional, garantindo assim maior nível de segurança a filtragem.

6.4.1) As tabelas o “iptables”

Para facilitar seu funcionamento e sua gerencia o iptables divide as ACLs em tabelas, cada qual com um função específica. As principais tabelas do iptables são:

filter : responsável pela filtragem de todos os pacotes que passam pelo host, não

importando origem e destino;

nat : responsável pelo controle dos pacotes que passam pelo host, mas cuja origem ou

destino não é o mesmo. Esta tabela é utilizada quando desejamos utilizar o iptables para

construir “gateways” de borda.

mangle : permite alterar características específicas do pacote, como por exemplo: o

TOS (Tipo de Serviço) o que permite implementar um sistema simples de QOS

( qualidade de serviço).

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 28 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

6.4.2) Fluxos do “iptables”

O iptables permite manipular vários fluxos dependendo da tabela utilizada, sendo que a tabela “filter”

possui os seguintes:

INPUT : fluxo formado pelos pacotes cujo endereço de destino é o próprio host;

OUTPUT : fluxo dos pacotes originados pelos aplicativos e serviços hospedados no

host;

FORWARD: fluxo composto por todos os pacotes que chegam ao host mas que são

destinados a outra máquina, que normalmente está na rede interna ou na DMZ. Logo

este fluxo é utilizado para permitir a realização do NAT;

A tabela “nat” por sua vez possui os seguintes fluxos:

PREROUTING : que permite realizar alterações nos pacotes antes que eles sejam

roteados;

POSROUTING : permite manipular os pacotes após seu processo de roteamento;

OUTPUT : possibilita o redirecionamento dos pacotes que foram emitidos pelo host;

Já a tabela “mangle” possui os fluxos: PREROUTING E OUTPUT.

6.4.3) Comandos do “iptables”

Para a manipulação das ACLs armazenadas nas suas tabelas o iptables fornece os seguintes

comandos:

-A : adiciona uma nova regra no final da lista de regras de uma dada tabela;

-L : lista todas as regras de uma determinada tabela;

-P : define a política padrão uma tabela, ou seja a regra padrão que será aplicada a um fluxo quando ele passar por todas as demais;

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 29 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

-F : remove todas as regras de uma tabela sem alterar sua política padrão;

-N : cria nova nova “chain” na tabela especificada;

-X : apaga todas as “chains” de uma determinada tabela;

6.4.4) Ações do “iptables”

As ações permitem categorizar melhor as ACLs, fornecendo um tratamento mais detalhado sobre

quais pacotes deverão ser manipulados. As principais ações fornecidas pelo iptables são listadas abaixo:

-p : especifica qual protocolo será manipulado (TCP, UDP ICMP, etc..);

-i : especifica a interface pela qual o pacote deve entrar (eth0, eth1, ppp0, ppp+);

-o : especifica a interface pela qual o pacote deve sair (eth0, eth1, ppp0, ppp+);

-s : informa a origem do pacote, este valor pode ser um endereço ip (192.168.254.15),

pode ser uma classe ip (192.168.254.254/24), pode ser um nome de maquina

(ftp.cyberoots.com.br) ou um domínio ( cyberoots.com.br );

--sport : informa a porta a partir da qual o pacote será enviado, porta de origem;

-d : informa o destino do pacote;

--dport : informa a porta de destino do pacote;

-j : informa o de deve ser feito com o pacote, ou seja o alvo da regra.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 30 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

6.4.5) Alvos da regras

Quando um fluxo se enquadra em todos os quesitos especificados por uma regra, ele poderá entrar na máquina, ser rejeitado ou outras ações poderão ser realizadas, a estas ações damos o nome de alvo da regra ou fluxo. Os principais alvos implementados pelo iptables são:

ACCEPT : permite a entrada ou a saída ou o forward do pacote;

DROP : descarta o pacote, sem comunicar a origem que o mesmo foi rejeitado, ideal

para ocultar a existência do firewal ;

REJECT : descarta o pacote informando a origem que ele foi rejeitado pelo destino;

LOG : registra o pacote em um arquivo de log que pode ser especificado através dos

níveis de log do sistema, mas por default as mensagens são enviadas para o arquivo

“/var/log/messages”;

SNAT : altera o endereço de origem do pacote que atendeu as características

especificadas;

DNAT : altera o endereço de destino do pacote;

REDIRECT : redireciona o pacote para uma porta diferente.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 31 de 71

index-32_1.jpg

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

6.4.5) Exemplos de scripts de Firewal

(a) Firewal para bloquear todo o fluxo de dados só liberando o fluxo na interface lo

#

# definindo as regras padrão

#

iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

#

# liberando a interface lo

#

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

(b) Firewal para liberar o acesso no servidor web aos protocolos http e https:

#

# definindo as regras padrão

#

iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

iptables -P FORWARD DROP

#

# definindo as regras de filtragem ao HTTP e HTTPS

#

iptables -A INPUT -p tcp –dport 80 -j ACCEPT

iptables -A INPUT -p tcp –dport 443 -j ACCEPT

(c) Firewal para liberar o acesso serviço http, para acesso externo ( eth1) e acesso pela intranet (eth0) na porta 8080.

Prof. Luís Rodrigo de O. Gonçalves :: luisrodrigoog@gmail.com :: www.lrodrigo.cjb.net Página 32 de 71

Apostila do Curso de Segurança – DRAF 0.4 - Petrópolis, 5 de Março de 2005

#

# definindo as regras padrão

#

iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

iptables -P FORWARD DROP

#

# definindo as regras de filtragem ao HTTP e HTTPS

#

iptables -A INPUT -p tcp –dport 80 -i eth1 -j ACCEPT

iptables -A INPUT -p tcp –dport 443 -i eth0 -j ACCEPT