seguranÇa computacional

59
Curso de Pós-Graduação “Lato Sensu” (Especialização) a Distância Administração em Redes Linux SEGURANÇA COMPUTACIONAL 2 a Edição Joaquim Quinteiro Uchôa Universidade Federal de Lavras – UFLA Fundação de Apoio ao Ensino, Pesquisa e Extensão – FAEPE Lavras – MG

Upload: arl-ufla

Post on 22-Mar-2016

291 views

Category:

Documents


7 download

DESCRIPTION

APOSTILA SEGURANÇA COMPUTACIONAL

TRANSCRIPT

Page 1: SEGURANÇA COMPUTACIONAL

Curso de Poacutes-GraduaccedilatildeoldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia

Administraccedilatildeo em Redes Linux

SEGURANCcedilA COMPUTACIONAL

2a Ediccedilatildeo

Joaquim Quinteiro Uchocirca

Universidade Federal de Lavras ndash UFLAFundaccedilatildeo de Apoio ao Ensino Pesquisa e Extensatildeo ndash FAEPE

Lavras ndash MG

PARCERIAUFLA ndash Universidade Federal de LavrasFAEPE ndash Fundaccedilatildeo de Apoio ao Ensino Pesquisa e Extensatildeo

REITORAntocircnio Nazareno Guimaratildees Mendes

VICE-REITORRicardo Pereira Reis

DIRETOR DA EDITORAMarco Antocircnio Rezende Alvarenga

PROacute-REITOR DE POacuteS-GRADUACcedilAtildeOJoel Augusto Muniz

PROacute-REITOR ADJUNTO DE POacuteS-GRADUACcedilAtildeO ldquoLATO SENSUrdquoMarcelo Silva de Oliveira

COORDENADORA DO CURSOKaacutetia Cilene Amaral Uchocirca

PRESIDENTE DO CONSELHO DELIBERATIVO DA FAEPEEdson Ampeacutelio Pozza

EDITORACcedilAtildeOGrupo Ginux (httpwwwginuxuflabr)

IMPRESSAtildeOGraacutefica UniversitaacuteriaUFLA

Ficha Catalograacutefica preparada pela Divisatildeo de Processos Teacutecnicosda Biblioteca Central da UFLA

Uchocirca Joaquim QuinteiroSeguranccedila Computacional Joaquim Quinteiro Uchocirca - - 2ed Lavras

UFLAFAEPE 200559 p il - Curso de Poacutes-Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a

Distacircncia Administraccedilatildeo em Redes Linux

Bibliografia

1 Seguranccedila Computacional 2 Criptografia 3 Detecccedilatildeo de Intru-sos 4 Firewall 5 Gerenciamento de Usuaacuterios I Uchocirca J Q II UniversidadeFederal de Lavras III Fundaccedilatildeo de Apoio ao Ensino Pesquisa e Extensatildeo IVTiacutetulo

CDD-0058-00016425

Nenhuma parte desta publicaccedilatildeo pode ser reproduzida por qualquermeio ou forma sem a preacutevia autorizaccedilatildeo

SUMAacuteRIO

1 Introduccedilatildeo 7

2 Conceitos Baacutesicos 921 Comentaacuterios Iniciais 9

211 Poliacuteticas de Seguranccedila e Poliacuteticas de Uso 1022 Crime Virtual 1223 Ataques Mais Comuns 13

3 Uso de Criptografia 1731 Conceitos Baacutesicos 1732 Algoritmos Criptograacuteficos 1833 Protocolos Criptograacuteficos 1934 Criptografia e Seguranccedila Computacional 20

4 Seguranccedila por Controle de Acesso 2341 Comentaacuterios Iniciais 2342 Seguranccedila Fiacutesica e Backups 2343 O Uso de TCP-Wrappers 2444 Uso de Firewalls ou Proxies 2745 Configuraccedilatildeo Segura de Serviccedilos 30

5 Administraccedilatildeo Segura de Usuaacuterios 3351 Uso do PAM (Pluggable Authentication Modules) 3352 Protegendo Contas de Usuaacuterios 3853 Seguranccedila no Sistema de Arquivos 3954 Comentaacuterios Finais 42

6 Prevenccedilatildeo e Detecccedilatildeo de Intrusos 4361 Comentaacuterios Iniciais 4362 Verificaccedilatildeo dos Registros (Logs) 4463 Evitando Exploits 4764 Uso de Ferramentas de Varredura 4865 Verificadores de Integridade de Arquivos 5166 Detectores Ativos de Intrusatildeo 51

7 Conclusatildeo 55

Referecircncias Bibliograacuteficas 57

LISTA DE FIGURAS

31 Processos Criptograacuteficos 1732 Conceito de VPN 22

41 Uso de TCP-Wrappers 2542 Exemplo de Arquivo etchostsdeny 2643 Exemplo de Arquivo etchostsallow 2644 Exemplo de Arquivo etcxinetdconf 2745 Exemplo de Arquivo etcxinetddfinger 2746 Uso de Firewall 2847 Trecho do Arquivo etcservices 2948 Exemplo de Configuraccedilatildeo do iptables 30

51 Exemplo de Arquivo etcpamdsu 3452 Exemplo de Arquivo etcpamdchsh 3553 Exemplo de Arquivo etcsecurityaccessconf 3554 Exemplo de Arquivo etcsecuritytimeconf 3655 Exemplo de Arquivo etcsecuritylimitsconf 3756 Execuccedilatildeo do Comando ulimit-a 39

61 Exemplo de Uso do Comando last 4562 Exemplo de Uso do Comando lastlog 4663 Exemplo de Alerta do logwatch 4764 Vulnerabilidades Encontradas pelo SARA 4965 Deltalhamento da Vulnerabilidade no SARA 5066 Exemplo de Registro do Snort 53

LISTA DE TABELAS

31 Opccedilotildees Mais Usadas do gpg 21

51 Recursos Limitados pelo pam_limits 3752 Atributos de Arquivos 41

1INTRODUCcedilAtildeO

Este texto tem por principal objetivo instruir o seu leitor nos conceitos baacutesicos relativosagrave seguranccedila em redes de computadores sob o enfoque do sistema operacional LinuxEsses conceitos incluem os passos baacutesicos necessaacuterios agrave administraccedilatildeo segura de umservidor Linux mas natildeo somente Observe que ao processo de gerenciamento de umservidor daacute-se o nome de administraccedilatildeo de serviccedilos ou administraccedilatildeo de redes jaacuteabordados em (UCHOcircA SIMEONE SICA 2003)

O administrador de redes moderno natildeo pode relegar esse assunto a um segundoplano Com a evoluccedilatildeo das redes de computadores o nuacutemero de invasotildees tem crescidoassustadoramente Isso aumentou natildeo somente a necessidade de seguranccedila como tam-beacutem a necessidade de privacidade por parte dos sistemas e dos usuaacuterios Assim existeuma grande necessidade do administrador estar em constante atualizaccedilatildeo quanto agrave utiliza-ccedilatildeo de procedimentos para aumentar o niacutevel de seguranccedila dos sistemas computacionaissob seu domiacutenio

Como forma de subsidiar o leitor de uma fundamentaccedilatildeo teoacuterica sobre o assuntoo Capiacutetulo 2 apresenta uma discussatildeo sobre poliacuteticas de seguranccedila e poliacuteticas de usoAleacutem disso esse capiacutetulo aborda as questotildees legais envolvendo seguranccedila incluiacutendo-seo conceito de crime virtual Jaacute o Capiacutetulo 3 apresenta os conceitos baacutesicos de criptogra-fia apresentando a diferenciaccedilatildeo entre protocolo e algoritmo de criptografia Utilizando-seteacutecnicas criptograacuteficas esse capiacutetulo mostra ainda como fazer transporte seguro de dados

Seguranccedila por controle de acesso eacute abordada no Capiacutetulo 4 Entre outras teacutecnicasesse capiacutetulo orienta o leitor sobre o uso dos TCP-wrappers e firewall Jaacute teacutecnicas deadministraccedilatildeo segura de usuaacuterios satildeo vistas no Capiacutetulo 5 incluiacutendo-se o uso do PAMsudo e quotas em disco Por sua vez meacutetodos de prevenccedilatildeo e detecccedilatildeo de intrusos satildeoapresentados no Capiacutetulo 6

Este texto foi escrito pensando em um usuaacuterio intermediaacuterio do sistema operacionalLinux (ou equivalente) Ele foi produzido principalmente a partir da experiecircncia adquiridapelos autores em administraccedilatildeo de laboratoacuterios e uso de diversos sistemas operacionaisEssa experiecircncia em administraccedilatildeo de sistemas foi enriquecida pela leitura de diversos ma-teriais destacando-se principalmente (NEMETH et al 1995) (NEMETH et al 2001) (STAN-

8 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FIELD SMITH 2001) (WIRZENIUS OJA STAFFORD 2001) (FRAMPTON 1999) (MANN MIT-

CHELL 2000) (ANONYMOUS 2000) (KIRCH DAWSON 2000) (HATCH LEE KURTZ 2002)(SCHNEIER 1996) A essas referecircncias devem ser acrescidos vaacuterios Howtos1 disponibili-zados pela The Linux Documentation Project 2 Entre esses Howtos destacam-se (FENZI2002) (BURGISS 2002a) e (BURGISS 2002b) Eacute importante comentar que este texto eacute ape-nas uma apostila anterior denominada ldquoSeguranccedila em Redes e Criptografiardquo deste mesmoautor (UCHOcircA 2003)

Joaquim Quinteiro Uchocirca autor deste texto eacute licenciado em Matemaacutetica pela Univer-sidade Federal de Mato Grosso (UFMT) com mestrado em Ciecircncia da Computaccedilatildeo pelaUniversidade Federal de Satildeo Carlos (UFSCar) Antes de adotar o Linux em 1998 jaacute haviatrabalhado com Solaris MS-DOS (lembram-se do CISNE) e OS2 passando obviamentepelos Windows 20 Windows 31 (e 311) e Windows 95 Segundo amigos ele jaacute superou otrauma do uso desses trecircs uacuteltimos SOs() apesar de ter desenvolvido aversatildeo a alguns ti-pos de janelas Foi o responsaacutevel pela instalaccedilatildeo do primeiro laboratoacuterio baseado em Linuxna UFLA e um dos maiores disseminadores desse sistema operacional na universidadeProfessor da UFLA desde 1997 atua principalmente nas aacutereas de Teoria da Computaccedilatildeo eInteligecircncia Artificial

O autor espera que a escrita desta obra contribua para disseminar ainda mais o usode Linux no Brasil bem como para um ambiente computacional mais seguro desejando umbom aprendizado ao leitor

1Um Howto eacute um pequeno guia que ensina um usuaacuterio a configurar um serviccedilo ou fazer uma dada tarefa2The Linux Documentation Project httpwwwtldporg A traduccedilatildeo de parte dos documentos

desse projeto podem ser encontrados em httpbrtldporg

2CONCEITOS BAacuteSICOS

21 COMENTAacuteRIOS INICIAIS

O que eacute seguranccedila computacional Esse termo eacute muito utilizado atualmente massem uma consciecircncia exata a que ele se refere Isso ocorre principalmente porque esseconceito eacute relativo ao ambiente em que eacute utilizado O que eacute seguro para uma instituiccedilatildeopode natildeo o ser para outra Assim eacute preciso estar atento a qual siginificado o termo estaacutesendo utilizado

Dada a relatividade do termo eacute preciso refletir sobre quais itens devem ser levados emconta ao se abordar a questatildeo da seguranccedila computacional Em geral eacute possiacutevel destacaros seguintes elementos de um ambiente computacional sob o ponto de vista da seguranccedila

Confianccedila eacute possiacutevel confiar na disponibilidade do sistema os dados armazenados vatildeoestar acessiacuteveis quando forem necessaacuterios os mecanismos de backups satildeo sufici-entes para garantir que as informaccedilotildees armazenadas possam ser recuperadas comfacilidade em caso de problemas

Integridade os dados recuperados satildeo confiaacuteveis como garantir que as informaccedilotildeesnatildeo foram alteradas na fonte ou no traacutefego de dados como garantir que o que foiacessado eacute idecircntico ao que foi armazenado

Confidencialidade como certificar que os dados soacute podem ser acessados por quem dedireito como garantir a privacidade dos usuaacuterios e dos dados como impedir aespionagem de informaccedilotildees

Essas questotildees iratildeo chamar a necessidade do administrador estar refletindo ldquoo queeacute seguranccedila computacional em meu ambienterdquo A essa questatildeo logo viraacute outra talvez demaior importacircncia qual o item mais importante para a seguranccedila computacional

bull firewalls

bull backups

bull anti-sniffers

bull tunelamento e criptografia

10 EDITORA - UFLAFAEPE - Seguranccedila Computacional

A resposta a essa pergunta eacute extremamente simples o elemento mais importantepara se garantir seguranccedila em uma rede de computadores eacute o estabelecimento de umapoliacutetica de seguranccedila Enquanto a instituiccedilatildeo natildeo define o que eacute mais importante para oestabelecimento da seguranccedila computacional em seu ambiente as atitudes satildeo tomadassem a devida consciecircncia e sem garantir um miacutenimo desejaacutevel de seguranccedila

Uma Poliacutetica de Seguranccedila incorpora os resultados de uma anaacutelise de riscoem um plano que providencia procedimentos para gerenciar um ambiente com-putacional Em particular ela fornece ao administrador do sistema linhas ope-racionais para o ambiente tais como regras para o gerenciamento de contas deusuaacuterios procedimentos de instalaccedilatildeo de sistemas

(MANN MITCHELL 2000)

Uma poliacutetica de seguranccedila eacute um conjunto de leis regras e praacuteticas que re-gulam como uma organizaccedilatildeo gerencia protege e distribui suas informaccedilotildees erecursos Um dado sistema eacute considerado seguro em relaccedilatildeo a uma poliacutetica deseguranccedila caso garanta o cumprimento das leis regras e praacuteticas definidas nessapoliacutetica

(SOARES LEMOS COLCHER 1995)

Eacute a poliacutetica de seguranccedila que vai deixar claro o que deve ter acesso restrito e o quepode ser liberado sem problemas Eacute ela que define quais satildeo os itens que precisam serpreservados bem como quais satildeo as pessoas que tem acesso a determinados recursosSem uma poliacutetica de seguranccedila clara natildeo se sabe o que vai se proteger nem porque ouqual a melhor forma

Uma boa poliacutetica de seguranccedila iraacute definir por exemplo como seraacute estabelecida apoliacutetica de uso Essa poliacutetica de uso eacute responsaacutevel por deixar claro o que o usuaacuterio podee natildeo pode fazer com determinados recursos Em geral tal poliacutetica eacute um documento a serassinado pelo usuaacuterio em questatildeo

211 Poliacuteticas de Seguranccedila e Poliacuteticas de Uso

Eacute inuacutetil elaborar uma poliacutetica de seguranccedila que sirva apenas de enfeite na paredeAssim uma poliacutetica de seguranccedila deve possuir as seguintes caracteriacutesticas

bull ser implementaacutevel atraveacutes de procedimentos de administraccedilatildeo de sistema regrasde uso ou outros meacutetodos apropriados

bull ser reforccedilada com ferramentas de seguranccedila e sanccedilotildees

bull definir claramente as aacutereas de responsabilidade para usuaacuterios e administradoresdo sistema

Conceitos Baacutesicos 11

Dessa maneira atentando-se para essas diretrizes eacute possiacutevel elaborar uma poliacuteticade seguranccedila vaacutelida para o ambiente em questatildeo Aleacutem disso eacute imprescindiacutevel que apoliacutetica de seguranccedila atente-se para os seguintes itens

Seguranccedila fiacutesica como os equipamentos da instituiccedilatildeo em questatildeo seratildeo protegidosComo garantir a integridade fiacutesica dos dados Como garantir que natildeo haveraacute acessofiacutesico a dados que deveriam estar protegidos Esse item eacute mais importante do que seimagina de nada adianta senhas de BIOS ou ultra-elaboradas se qualquer funcionaacute-rio receacutem demitido pode roubar o HD do servidor para vender ao concorrente

Seguranccedila loacutegica como garantir integridade loacutegica dos dados Como os dados da ins-tituiccedilatildeo em questatildeo seratildeo protegidos Como garantir que natildeo haveraacute acesso loacutegicoindevido a dados Quais satildeo os dados mais importantes Os casos de invasotildeestem-se tornado cada vez mais frequumlentes e eacute imprescindiacutevel estar atento a isso

Privacidade o que fazer para proteger a privacidade dos usuaacuterios A instituiccedilatildeo iraacute pro-teger essa privacidade Observe que a instituiccedilatildeo deve estar atenta aos aspectoslegais dessa questatildeo

Legalidade de Software como garantir um bom uso dos recursos impedindo a piratariaA responsabilidade pelos aplicativos instalados eacute de quem da empresa do usuaacuterioIsso precisa estar claro

Em geral quando se trata de seguranccedila computacional deve-se adotar a poliacutetica domenor privileacutegio ou seja liberar apenas os recursos necessaacuterios ao usuaacuterio Observe queem alguns ambientes essa eacute uma questatildeo altamente subjetiva Mas deve-se sempre terem mente que o que natildeo eacute expressamente permitido deve ser proibido

Aleacutem disso eacute imprescindiacutevel que o administrador pratique vigilacircncia e perseveranccedilaassumindo sempre que os mal-intencionados sabem mais que ele Tenha em mente quea adoccedilatildeo de uma poliacutetica de seguranccedila iraacute na maioria das vezes implicar em perda deperformance ou conveniecircncia do usuaacuterio Alguns serviccedilos devem ser evitados e isso geraproblemas para usuaacuterios mais inexperientes Aleacutem disso o traacutefego criptografado ocupamaior largura de banda diminuindo a velocidade de transmissatildeo de dados Assim deve-sepesar os proacutes e contras de qualquer atitude envolvendo seguranccedila antes de implementaacute-la

Em termos praacuteticos como eacute expressa a poliacutetica de seguranccedila O leitor deve estarpensando em documentos impressos Entretanto natildeo se deve esquecer que a poliacutetica natildeoeacute apenas papel ela envolve leis regras e praacuteticas Dependendo do ambiente eacute oacutebvioa necessidade de documentaccedilatildeo mas isso natildeo eacute a uacutenica forma de criar uma poliacutetica deseguranccedila

Em geral a poliacutetica de seguranccedila documentada da maior parte das instituiccedilotildees con-siste das normas de uso dos recursos e uma poliacutetica de uso A poliacutetica de uso eacute um docu-mento que deixa claro o que o usuaacuterio pode e natildeo pode fazer com os recursos dentro da

12 EDITORA - UFLAFAEPE - Seguranccedila Computacional

instituiccedilatildeo Para garantir validade juriacutedica desse documento eacute imprescindiacutevel a sua valida-ccedilatildeo pela assinatura do usuaacuterio ou em contrato coletivo de trabalho

22 CRIME VIRTUAL

Outra questatildeo fundamental que estaacute relacionada agrave questatildeo da seguranccedila computacio-nal eacute o conceito de crime virtual Nesse sentido eacute imprescindiacutevel distinguir ao menos emtermos praacuteticos os conceitos de crime de computador e crime por computador Essadistinccedilatildeo permite compreender melhor quais tipos de crime satildeo cobertos pela lei e quaisnatildeo o satildeo

Assim crime por computadores satildeo os crimes tradicionais cometidos por meios com-putacionais Dessa maneira por exemplo tipificam-se o roubo ou o assassinato por compu-tador O leitor atento pode estar um pouco assustado agora imaginando como poderia serpossiacutevel um assassinato por computador esquecendo-se que o assassino poderia invadir osistema computacional de um hospital por exemplo e alterar a medicaccedilatildeo de um pacientepara doses fortes de substacircncias a que ele tenha alergia

Eacute comum portanto a ocorrecircncia de crimes tradicionais efetuados por computadorsem que o autor desses crimes esteja atento ao fato de estar cometendo um crime jaacuteprevisto na lei tradicional O envio de determinados tipos de SPAMs por exemplo jaacute estaacuteprevisto na lei e pode render detenccedilatildeo de 3 meses a 1 ano de detenccedilatildeo ou multa conformeo Art 146 do Coacutedigo Penal (BRASIL 1940) Enviar e-mail com ameaccedila de agressatildeo poderender pena de 1 a 6 meses de detenccedilatildeo ou multa de acordo com o Art 147 Assimobserve que apenas modificou-se o meio o crime continua tipificado De forma semelhantesatildeo tipificados crimes de invasatildeo de privacidade envio de viacuterus de computador pedofiliaou montagem de sites com receitas de bombas ou similares

Por outro lado existem aqueles crimes que soacute existem no ambiente computacionalnatildeo existindo equivalente no ambiente natildeo tecnoloacutegico satildeo os crimes de computadorNesse contexto por exemplo o Brasil natildeo tem uma legislaccedilatildeo contra invasatildeo de sitesQuando o invasor natildeo faz uso de informaccedilotildees obtidas com essa invasatildeo (o que poderiacaracterizar espionagem industrial) ou natildeo faz alteraccedilotildees dos dados (o que poderia carac-terizar crime de dano vandalismo ou pichaccedilatildeo) fica difiacutecil caracterizar a invasatildeo como umacontravenccedilatildeo penal

Alguns paiacuteses possuem legislaccedilatildeo forte a esse respeito como eacute o caso dos EUA eda China No Brasil paraiacuteso dos invasores essa discussatildeo estaacute apenas no iniacutecio Mesmoassim o administrador que teve seus sistemas invadidos deve verificar os mecanismoslegais a que pode recorrer de forma a punir os autores da faccedilanha

Nesse contexto inclusive cabe chamar a atenccedilatildeo para os movimentos Hackers e Ci-berativismo Cabe tambeacutem chamar a atenccedilatildeo para o fato que o termo hacker natildeo costuma

Conceitos Baacutesicos 13

ser utilizado com sentido negativo em meio tecnoloacutegico Nesse ambiente utiliza-se o termocracker para os hackers que invadem sistemas com finalidades iliacutecitas Na cultura geralentretanto o termo hacker eacute tomado de forma indistinta geralmente com significado pejo-rativo para invasor Para uma abordagem mais formal sobre essa discussatildeo ver (UCHOcircA2003)

23 ATAQUES MAIS COMUNS

Como um servidor encontra-se geralmente acessiacutevel via internet e em tempo integralele eacute mais suscetiacutevel a ataques de todos os tipos e formas que uma estaccedilatildeo de trabalhoDependendo de sua configuraccedilatildeo entretanto eacute possiacutevel tornaacute-lo tatildeo ou mais seguro queestaccedilotildees de trabalho com acesso miacutenimo agrave internet Com a finalidade de melhor situar oleitor segue-se uma relaccedilatildeo dos principais tipos de ataque e termos correlatos

Footprinting Por footprinting entende-se a tarefa de coletar informaccedilotildees sobre um sis-tema alvo Essa coleta eacute feita por vias tradicionais e puacuteblicas como uso do comandofinger leitura de paacuteginas do site para obter dados interessantes etc Geralmenteo invasor iraacute verificar quem eacute o responsaacutevel pela admnisitraccedilatildeo do sistema uma vezque invadida a conta desse usuaacuterio eacute possiacutevel obter dados mais significativos

Scanning Um scanner eacute um utilitaacuterio que verifica vulnerabilidades Pode ser um scannerde sistema quando checa vulnerabilidades na maacutequina local (erros no etcpasswdpermissatildeo incorreta de arquivos etc) ou pode ser um scanner de rede quando fazvarredura de portas de redes verificando quais estatildeo abertas e principalmente quaisestatildeo mais vulneraacuteveis O objetivo principal desse tipo de ataque eacute descobrir falhas deseguranccedila devido a bugs em serviccedilos de rede ou ausecircncia de proteccedilatildeo para serviccedilosinternos

Sniffers Principalmente dentro de uma rede fiacutesica onde eacute facilitada um ataque muito uti-lizado eacute a espionagem eletrocircnica com o uso de sniffer Um sniffer eacute um aplicativoque fica ldquoescutandordquo todos os pacotes de dados que trafegam por uma dada placa derede Eacute importante observar que em vaacuterias topologias de rede um pacote passa porvaacuterias placas entre a origem e o destino Aleacutem disso cabe observar que para queinterceptar mensagens destinadas agrave outras maacutequinas a estaccedilatildeo deve colocar suainterface de rede em ldquomodo promiacutescuordquo1 Esse ataque objetiva principalmente a cap-tura de senhas de usuaacuterios internos uma vez que isso facilita ao invasor a entrada nosistema para detecccedilatildeo de vulnerabilidades Outro objetivo desse ataque eacute a capturade informaccedilotildees confidenciais em tracircnsito na rede

1Por ldquomodo promiacutescuordquo entende-se a configuraccedilatildeo de uma interface de rede em que ela captura natildeoapenas os pacotes de rede direcionados a ela mas tambeacutem os destinados a outras estaccedilotildees em um mesmosegmento de rede

14 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Spoofing Por spoofing entende-se a tarefa de fazer uma maacutequina se passar por outraforjando por exemplo pacotes IPs Em geral o usuaacuterio iraacute tentar bloquear o enviode pacotes de dados de uma maacutequina tentando se passar por ela Uma conexatildeoSSH com um maacutequina usando spoof iria acusar o ataque do Man-In-The-Middle jaacutecomentado em (UCHOcircA SIMEONE SICA 2003) Caso o administrador use transportecriptografado de dados e senhas e esteja atento agraves chaves utilizadas esse ataquedificilmente iraacute comprometer a integridade dos dados e serviccedilos

Denial of Service (DoS) Pouca atenccedilatildeo tinha sido dado aos ataques de negaccedilatildeo de ser-viccedilo ateacute a derrubada de servidores importantes como Amazon Yahoo e mesmo UOLComo pode ser subentendido o DoS eacute um ataque que busca derrubar um serviccediloou mesmo um servidor inteiro Ultimamente tem sido utilizado do DDoS (DistributedDoS) onde um atacante utiliza vaacuterias maacutequinas ldquozumbisrdquo para enviar inuacutemeras requi-siccedilotildees ao mesmo tempo e de forma sincronizada a um dado servidor Isso acabapor ou consumir grande parte da largura de banda de rede ou sobrecarregar um dadodaemon derrubando-o Mais recentemente pode-se comentar o caso do viacuterus doApache que fazia com que um dado servidor Web ficasse enviando grande quanti-dade de dados pela rede conduzindo o traacutefego de rede a uma lentidatildeo insuportaacutevel

Coacutedigo Malicioso Coacutedigo malicioso como o nome jaacute sugere eacute um software criado com fi-nalidades mal intencionadas Nessa categoria incluem-se os coacutedigos natildeo autorizados(geralmente contidos dentro de um programa legiacutetimo) que efetuam accedilotildees desconhe-cidas e natildeo desejadas pelo usuaacuterio Tambeacutem satildeo incluiacutedos nessa categoria os pro-gramas legiacutetimos que foram alterados para efetuar accedilotildees natildeo desejadas pelo usuaacuterioOutro tipo de coacutedigo malicioso satildeo aqueles que destroem dados sem a intenccedilatildeo dousuaacuterio Alguns tipos de coacutedigo maliciosos merecem destaque

bull Cavalos de Troacuteia Um cavalo de troacuteia ou trojan horse ou apenas trojan eacute umprograma de computador alterado com finalidades iliacutecitas Por exemplo umatacante poderia substituir o binlogin para natildeo soacute autenticar usuaacuterioscomo tambeacutem armazenar essas senhas em um arquivo oculto

bull Viacuterus Viacuterus satildeo semelhantes a trojans dado que efetua accedilatildeo natildeo desejadapelo usuaacuterio Uma das diferenccedilas reside no fato que o viacuterus uma vez ativadoiraacute infectar outros arquivos locais A grosso modo viacuterus natildeo podem infectarmaacutequinas externas sem o auxiacutelio de uma pessoa

bull Vermes Um verme eacute um programa que pode infectar tanto a maacutequina localquanto maacutequinas remotas geralmente utilizando falhas de protocolos servi-ccedilos ou aplicativos

Como observado por (HATCH LEE KURTZ 2002) a maior parte dos programas per-niciosos existentes satildeo hiacutebridos dessas trecircs categorias Como exemplo tem-se oMelissa que era um cavalo de troacuteia (se passava por um e-mail que o usuaacuterio estivesse

Conceitos Baacutesicos 15

esperando) um viacuterus (infectava todos os arquivos locais de processamento de texto)e um verme (usava uma falha do Outlook para se propagar a todos os usuaacuterios naagenda de endereccedilos do usuaacuterio) Observe que no senso comum viacuterus e verme satildeogeralmente tomados com um uacutenico significado sendo usado apenas o termo ldquoviacuterusrdquoPor exemplo o viacuterus do Apache era a bem da verdade um verme (se propagavaa outras maacutequinas usando o Apache) mas como natildeo infectava outros arquivos noservidor natildeo poderia ser considerado necessariamente um viacuterusUm tipo de trojan extremamente perigoso satildeo os rootkits Como o nome sugereum rootkit eacute um aplicativo (ou um conjunto de aplicativos) com o objetivo de garantirpoderes de root ao invasor Geralmente consiste de aplicativos alterados a funcionarde forma especial pelo usuaacuterio ou versotildees alteradas do proacuteprio kernel

Exploits Exploits satildeo programas criados para explorar falhas advindas principalmente debugs nos daemons de serviccedilos Entre as falhas mais exploradas encontram-se bufferoverflow que consiste em estourar o buffer de entrada de um servidor forccedilando-o aestourar sua memoacuteria devolvendo um shell para o invasor

Ataques de Senhas Esse tipo de ataque consiste em tentar descobrir a senha de um oumais usuaacuterios por forccedila bruta ou usando teacutecnicas heuriacutesticas Em geral o invasor tentaobter uma coacutepia das senhas e efetuar um ataque de dicionaacuterio utilizando variaccedilotildeesde palavras em uma dada lista (o dicionaacuterio) tenta-se confrontar a senha do usuaacuteriocom essas variaccedilotildees ateacute descobrir uma que permita o acesso

Uma observaccedilatildeo final eacute que determinados ataques satildeo a bem da verdade tambeacutemferramentas de seguranccedila Assim por exemplo um scanner pode ser utilizado para verificarem que pontos um sistema estaacute vulneraacutevel Um programa de ataque de senha pode serutilizado para checar se os usuaacuterios natildeo estatildeo utilizando senhas faacuteceis o que facilitariauma invasatildeo Aleacutem disso alguns sistemas poderosos de detecccedilatildeo de intrusos satildeo tambeacutemsniffers Sniffers tambeacutem costumam ser utilizados para detectar problemas em uma rede

16 EDITORA - UFLAFAEPE - Seguranccedila Computacional

3USO DE CRIPTOGRAFIA

31 CONCEITOS BAacuteSICOS

A raacutepida evoluccedilatildeo das comunicaccedilotildees eletrocircnicas suscitou uma seacuterie de necessidadespara que se evitassem problemas de espionagem Entre essas necessidades destaca-seo uso de sistemas criptograacuteficos Mesmo em ambientes de telefonia celular por exemplo ouso de criptografia eacute cada vez mais utilizado

Como definido em (SCHNEIER 1996) a criptografia eacute a arte e ciecircncia de manter men-sagens seguras Ela envolve dois processos 1) criptografar (ou cifrar) uma mensagem Mtransformando-a em um texto cifrado C e 2) posteriormente decifrar (ou decriptografar) Cobtendo novamente a mensagem M como ilustrado na Figura 31

Decriptaccedilatildeoou

Decifragem

Encriptaccedilatildeoou

Cifragem

Mensagem (M) Mensagem (M)Texto Cifrado (C)

Figura 31 Processos Criptograacuteficos

A criptografia possui estrita relaccedilatildeo com a criptoanaacutelise arte e ciecircncia de quebrarmensagens cifradas O ramo da Matemaacutetica envolvendo criptografia e criptoanaacutelise eacute cha-mado de criptologia Como bem observado em (SCHNEIER 1996) modernos criptoloacutegosprecisam ter domiacutenio em Matemaacutetica Teoacuterica uma vez que eacute sobre ela que se sustenta acriptologia atual

O uso da criptografia eacute antigo sendo comuns o seu uso em guerras mesmo desde oimpeacuterio romano Esse uso era principalmente para manter a confidencialidade da mensa-gem garantindo que apenas emissor e receptor pudessem interpretaacute-la De certa maneiraa computaccedilatildeo foi fortemente financiada durante a Segunda Guerra Mundial para invenccedilatildeode dispositivos que pudessem decodificar as mensagens dos alematildees Desse esforccedilo in-clusive participou Alan Turing um dos mais importantes teoacutericos da Computaccedilatildeo e um dospais da Inteligecircncia Artificial

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 2: SEGURANÇA COMPUTACIONAL

PARCERIAUFLA ndash Universidade Federal de LavrasFAEPE ndash Fundaccedilatildeo de Apoio ao Ensino Pesquisa e Extensatildeo

REITORAntocircnio Nazareno Guimaratildees Mendes

VICE-REITORRicardo Pereira Reis

DIRETOR DA EDITORAMarco Antocircnio Rezende Alvarenga

PROacute-REITOR DE POacuteS-GRADUACcedilAtildeOJoel Augusto Muniz

PROacute-REITOR ADJUNTO DE POacuteS-GRADUACcedilAtildeO ldquoLATO SENSUrdquoMarcelo Silva de Oliveira

COORDENADORA DO CURSOKaacutetia Cilene Amaral Uchocirca

PRESIDENTE DO CONSELHO DELIBERATIVO DA FAEPEEdson Ampeacutelio Pozza

EDITORACcedilAtildeOGrupo Ginux (httpwwwginuxuflabr)

IMPRESSAtildeOGraacutefica UniversitaacuteriaUFLA

Ficha Catalograacutefica preparada pela Divisatildeo de Processos Teacutecnicosda Biblioteca Central da UFLA

Uchocirca Joaquim QuinteiroSeguranccedila Computacional Joaquim Quinteiro Uchocirca - - 2ed Lavras

UFLAFAEPE 200559 p il - Curso de Poacutes-Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a

Distacircncia Administraccedilatildeo em Redes Linux

Bibliografia

1 Seguranccedila Computacional 2 Criptografia 3 Detecccedilatildeo de Intru-sos 4 Firewall 5 Gerenciamento de Usuaacuterios I Uchocirca J Q II UniversidadeFederal de Lavras III Fundaccedilatildeo de Apoio ao Ensino Pesquisa e Extensatildeo IVTiacutetulo

CDD-0058-00016425

Nenhuma parte desta publicaccedilatildeo pode ser reproduzida por qualquermeio ou forma sem a preacutevia autorizaccedilatildeo

SUMAacuteRIO

1 Introduccedilatildeo 7

2 Conceitos Baacutesicos 921 Comentaacuterios Iniciais 9

211 Poliacuteticas de Seguranccedila e Poliacuteticas de Uso 1022 Crime Virtual 1223 Ataques Mais Comuns 13

3 Uso de Criptografia 1731 Conceitos Baacutesicos 1732 Algoritmos Criptograacuteficos 1833 Protocolos Criptograacuteficos 1934 Criptografia e Seguranccedila Computacional 20

4 Seguranccedila por Controle de Acesso 2341 Comentaacuterios Iniciais 2342 Seguranccedila Fiacutesica e Backups 2343 O Uso de TCP-Wrappers 2444 Uso de Firewalls ou Proxies 2745 Configuraccedilatildeo Segura de Serviccedilos 30

5 Administraccedilatildeo Segura de Usuaacuterios 3351 Uso do PAM (Pluggable Authentication Modules) 3352 Protegendo Contas de Usuaacuterios 3853 Seguranccedila no Sistema de Arquivos 3954 Comentaacuterios Finais 42

6 Prevenccedilatildeo e Detecccedilatildeo de Intrusos 4361 Comentaacuterios Iniciais 4362 Verificaccedilatildeo dos Registros (Logs) 4463 Evitando Exploits 4764 Uso de Ferramentas de Varredura 4865 Verificadores de Integridade de Arquivos 5166 Detectores Ativos de Intrusatildeo 51

7 Conclusatildeo 55

Referecircncias Bibliograacuteficas 57

LISTA DE FIGURAS

31 Processos Criptograacuteficos 1732 Conceito de VPN 22

41 Uso de TCP-Wrappers 2542 Exemplo de Arquivo etchostsdeny 2643 Exemplo de Arquivo etchostsallow 2644 Exemplo de Arquivo etcxinetdconf 2745 Exemplo de Arquivo etcxinetddfinger 2746 Uso de Firewall 2847 Trecho do Arquivo etcservices 2948 Exemplo de Configuraccedilatildeo do iptables 30

51 Exemplo de Arquivo etcpamdsu 3452 Exemplo de Arquivo etcpamdchsh 3553 Exemplo de Arquivo etcsecurityaccessconf 3554 Exemplo de Arquivo etcsecuritytimeconf 3655 Exemplo de Arquivo etcsecuritylimitsconf 3756 Execuccedilatildeo do Comando ulimit-a 39

61 Exemplo de Uso do Comando last 4562 Exemplo de Uso do Comando lastlog 4663 Exemplo de Alerta do logwatch 4764 Vulnerabilidades Encontradas pelo SARA 4965 Deltalhamento da Vulnerabilidade no SARA 5066 Exemplo de Registro do Snort 53

LISTA DE TABELAS

31 Opccedilotildees Mais Usadas do gpg 21

51 Recursos Limitados pelo pam_limits 3752 Atributos de Arquivos 41

1INTRODUCcedilAtildeO

Este texto tem por principal objetivo instruir o seu leitor nos conceitos baacutesicos relativosagrave seguranccedila em redes de computadores sob o enfoque do sistema operacional LinuxEsses conceitos incluem os passos baacutesicos necessaacuterios agrave administraccedilatildeo segura de umservidor Linux mas natildeo somente Observe que ao processo de gerenciamento de umservidor daacute-se o nome de administraccedilatildeo de serviccedilos ou administraccedilatildeo de redes jaacuteabordados em (UCHOcircA SIMEONE SICA 2003)

O administrador de redes moderno natildeo pode relegar esse assunto a um segundoplano Com a evoluccedilatildeo das redes de computadores o nuacutemero de invasotildees tem crescidoassustadoramente Isso aumentou natildeo somente a necessidade de seguranccedila como tam-beacutem a necessidade de privacidade por parte dos sistemas e dos usuaacuterios Assim existeuma grande necessidade do administrador estar em constante atualizaccedilatildeo quanto agrave utiliza-ccedilatildeo de procedimentos para aumentar o niacutevel de seguranccedila dos sistemas computacionaissob seu domiacutenio

Como forma de subsidiar o leitor de uma fundamentaccedilatildeo teoacuterica sobre o assuntoo Capiacutetulo 2 apresenta uma discussatildeo sobre poliacuteticas de seguranccedila e poliacuteticas de usoAleacutem disso esse capiacutetulo aborda as questotildees legais envolvendo seguranccedila incluiacutendo-seo conceito de crime virtual Jaacute o Capiacutetulo 3 apresenta os conceitos baacutesicos de criptogra-fia apresentando a diferenciaccedilatildeo entre protocolo e algoritmo de criptografia Utilizando-seteacutecnicas criptograacuteficas esse capiacutetulo mostra ainda como fazer transporte seguro de dados

Seguranccedila por controle de acesso eacute abordada no Capiacutetulo 4 Entre outras teacutecnicasesse capiacutetulo orienta o leitor sobre o uso dos TCP-wrappers e firewall Jaacute teacutecnicas deadministraccedilatildeo segura de usuaacuterios satildeo vistas no Capiacutetulo 5 incluiacutendo-se o uso do PAMsudo e quotas em disco Por sua vez meacutetodos de prevenccedilatildeo e detecccedilatildeo de intrusos satildeoapresentados no Capiacutetulo 6

Este texto foi escrito pensando em um usuaacuterio intermediaacuterio do sistema operacionalLinux (ou equivalente) Ele foi produzido principalmente a partir da experiecircncia adquiridapelos autores em administraccedilatildeo de laboratoacuterios e uso de diversos sistemas operacionaisEssa experiecircncia em administraccedilatildeo de sistemas foi enriquecida pela leitura de diversos ma-teriais destacando-se principalmente (NEMETH et al 1995) (NEMETH et al 2001) (STAN-

8 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FIELD SMITH 2001) (WIRZENIUS OJA STAFFORD 2001) (FRAMPTON 1999) (MANN MIT-

CHELL 2000) (ANONYMOUS 2000) (KIRCH DAWSON 2000) (HATCH LEE KURTZ 2002)(SCHNEIER 1996) A essas referecircncias devem ser acrescidos vaacuterios Howtos1 disponibili-zados pela The Linux Documentation Project 2 Entre esses Howtos destacam-se (FENZI2002) (BURGISS 2002a) e (BURGISS 2002b) Eacute importante comentar que este texto eacute ape-nas uma apostila anterior denominada ldquoSeguranccedila em Redes e Criptografiardquo deste mesmoautor (UCHOcircA 2003)

Joaquim Quinteiro Uchocirca autor deste texto eacute licenciado em Matemaacutetica pela Univer-sidade Federal de Mato Grosso (UFMT) com mestrado em Ciecircncia da Computaccedilatildeo pelaUniversidade Federal de Satildeo Carlos (UFSCar) Antes de adotar o Linux em 1998 jaacute haviatrabalhado com Solaris MS-DOS (lembram-se do CISNE) e OS2 passando obviamentepelos Windows 20 Windows 31 (e 311) e Windows 95 Segundo amigos ele jaacute superou otrauma do uso desses trecircs uacuteltimos SOs() apesar de ter desenvolvido aversatildeo a alguns ti-pos de janelas Foi o responsaacutevel pela instalaccedilatildeo do primeiro laboratoacuterio baseado em Linuxna UFLA e um dos maiores disseminadores desse sistema operacional na universidadeProfessor da UFLA desde 1997 atua principalmente nas aacutereas de Teoria da Computaccedilatildeo eInteligecircncia Artificial

O autor espera que a escrita desta obra contribua para disseminar ainda mais o usode Linux no Brasil bem como para um ambiente computacional mais seguro desejando umbom aprendizado ao leitor

1Um Howto eacute um pequeno guia que ensina um usuaacuterio a configurar um serviccedilo ou fazer uma dada tarefa2The Linux Documentation Project httpwwwtldporg A traduccedilatildeo de parte dos documentos

desse projeto podem ser encontrados em httpbrtldporg

2CONCEITOS BAacuteSICOS

21 COMENTAacuteRIOS INICIAIS

O que eacute seguranccedila computacional Esse termo eacute muito utilizado atualmente massem uma consciecircncia exata a que ele se refere Isso ocorre principalmente porque esseconceito eacute relativo ao ambiente em que eacute utilizado O que eacute seguro para uma instituiccedilatildeopode natildeo o ser para outra Assim eacute preciso estar atento a qual siginificado o termo estaacutesendo utilizado

Dada a relatividade do termo eacute preciso refletir sobre quais itens devem ser levados emconta ao se abordar a questatildeo da seguranccedila computacional Em geral eacute possiacutevel destacaros seguintes elementos de um ambiente computacional sob o ponto de vista da seguranccedila

Confianccedila eacute possiacutevel confiar na disponibilidade do sistema os dados armazenados vatildeoestar acessiacuteveis quando forem necessaacuterios os mecanismos de backups satildeo sufici-entes para garantir que as informaccedilotildees armazenadas possam ser recuperadas comfacilidade em caso de problemas

Integridade os dados recuperados satildeo confiaacuteveis como garantir que as informaccedilotildeesnatildeo foram alteradas na fonte ou no traacutefego de dados como garantir que o que foiacessado eacute idecircntico ao que foi armazenado

Confidencialidade como certificar que os dados soacute podem ser acessados por quem dedireito como garantir a privacidade dos usuaacuterios e dos dados como impedir aespionagem de informaccedilotildees

Essas questotildees iratildeo chamar a necessidade do administrador estar refletindo ldquoo queeacute seguranccedila computacional em meu ambienterdquo A essa questatildeo logo viraacute outra talvez demaior importacircncia qual o item mais importante para a seguranccedila computacional

bull firewalls

bull backups

bull anti-sniffers

bull tunelamento e criptografia

10 EDITORA - UFLAFAEPE - Seguranccedila Computacional

A resposta a essa pergunta eacute extremamente simples o elemento mais importantepara se garantir seguranccedila em uma rede de computadores eacute o estabelecimento de umapoliacutetica de seguranccedila Enquanto a instituiccedilatildeo natildeo define o que eacute mais importante para oestabelecimento da seguranccedila computacional em seu ambiente as atitudes satildeo tomadassem a devida consciecircncia e sem garantir um miacutenimo desejaacutevel de seguranccedila

Uma Poliacutetica de Seguranccedila incorpora os resultados de uma anaacutelise de riscoem um plano que providencia procedimentos para gerenciar um ambiente com-putacional Em particular ela fornece ao administrador do sistema linhas ope-racionais para o ambiente tais como regras para o gerenciamento de contas deusuaacuterios procedimentos de instalaccedilatildeo de sistemas

(MANN MITCHELL 2000)

Uma poliacutetica de seguranccedila eacute um conjunto de leis regras e praacuteticas que re-gulam como uma organizaccedilatildeo gerencia protege e distribui suas informaccedilotildees erecursos Um dado sistema eacute considerado seguro em relaccedilatildeo a uma poliacutetica deseguranccedila caso garanta o cumprimento das leis regras e praacuteticas definidas nessapoliacutetica

(SOARES LEMOS COLCHER 1995)

Eacute a poliacutetica de seguranccedila que vai deixar claro o que deve ter acesso restrito e o quepode ser liberado sem problemas Eacute ela que define quais satildeo os itens que precisam serpreservados bem como quais satildeo as pessoas que tem acesso a determinados recursosSem uma poliacutetica de seguranccedila clara natildeo se sabe o que vai se proteger nem porque ouqual a melhor forma

Uma boa poliacutetica de seguranccedila iraacute definir por exemplo como seraacute estabelecida apoliacutetica de uso Essa poliacutetica de uso eacute responsaacutevel por deixar claro o que o usuaacuterio podee natildeo pode fazer com determinados recursos Em geral tal poliacutetica eacute um documento a serassinado pelo usuaacuterio em questatildeo

211 Poliacuteticas de Seguranccedila e Poliacuteticas de Uso

Eacute inuacutetil elaborar uma poliacutetica de seguranccedila que sirva apenas de enfeite na paredeAssim uma poliacutetica de seguranccedila deve possuir as seguintes caracteriacutesticas

bull ser implementaacutevel atraveacutes de procedimentos de administraccedilatildeo de sistema regrasde uso ou outros meacutetodos apropriados

bull ser reforccedilada com ferramentas de seguranccedila e sanccedilotildees

bull definir claramente as aacutereas de responsabilidade para usuaacuterios e administradoresdo sistema

Conceitos Baacutesicos 11

Dessa maneira atentando-se para essas diretrizes eacute possiacutevel elaborar uma poliacuteticade seguranccedila vaacutelida para o ambiente em questatildeo Aleacutem disso eacute imprescindiacutevel que apoliacutetica de seguranccedila atente-se para os seguintes itens

Seguranccedila fiacutesica como os equipamentos da instituiccedilatildeo em questatildeo seratildeo protegidosComo garantir a integridade fiacutesica dos dados Como garantir que natildeo haveraacute acessofiacutesico a dados que deveriam estar protegidos Esse item eacute mais importante do que seimagina de nada adianta senhas de BIOS ou ultra-elaboradas se qualquer funcionaacute-rio receacutem demitido pode roubar o HD do servidor para vender ao concorrente

Seguranccedila loacutegica como garantir integridade loacutegica dos dados Como os dados da ins-tituiccedilatildeo em questatildeo seratildeo protegidos Como garantir que natildeo haveraacute acesso loacutegicoindevido a dados Quais satildeo os dados mais importantes Os casos de invasotildeestem-se tornado cada vez mais frequumlentes e eacute imprescindiacutevel estar atento a isso

Privacidade o que fazer para proteger a privacidade dos usuaacuterios A instituiccedilatildeo iraacute pro-teger essa privacidade Observe que a instituiccedilatildeo deve estar atenta aos aspectoslegais dessa questatildeo

Legalidade de Software como garantir um bom uso dos recursos impedindo a piratariaA responsabilidade pelos aplicativos instalados eacute de quem da empresa do usuaacuterioIsso precisa estar claro

Em geral quando se trata de seguranccedila computacional deve-se adotar a poliacutetica domenor privileacutegio ou seja liberar apenas os recursos necessaacuterios ao usuaacuterio Observe queem alguns ambientes essa eacute uma questatildeo altamente subjetiva Mas deve-se sempre terem mente que o que natildeo eacute expressamente permitido deve ser proibido

Aleacutem disso eacute imprescindiacutevel que o administrador pratique vigilacircncia e perseveranccedilaassumindo sempre que os mal-intencionados sabem mais que ele Tenha em mente quea adoccedilatildeo de uma poliacutetica de seguranccedila iraacute na maioria das vezes implicar em perda deperformance ou conveniecircncia do usuaacuterio Alguns serviccedilos devem ser evitados e isso geraproblemas para usuaacuterios mais inexperientes Aleacutem disso o traacutefego criptografado ocupamaior largura de banda diminuindo a velocidade de transmissatildeo de dados Assim deve-sepesar os proacutes e contras de qualquer atitude envolvendo seguranccedila antes de implementaacute-la

Em termos praacuteticos como eacute expressa a poliacutetica de seguranccedila O leitor deve estarpensando em documentos impressos Entretanto natildeo se deve esquecer que a poliacutetica natildeoeacute apenas papel ela envolve leis regras e praacuteticas Dependendo do ambiente eacute oacutebvioa necessidade de documentaccedilatildeo mas isso natildeo eacute a uacutenica forma de criar uma poliacutetica deseguranccedila

Em geral a poliacutetica de seguranccedila documentada da maior parte das instituiccedilotildees con-siste das normas de uso dos recursos e uma poliacutetica de uso A poliacutetica de uso eacute um docu-mento que deixa claro o que o usuaacuterio pode e natildeo pode fazer com os recursos dentro da

12 EDITORA - UFLAFAEPE - Seguranccedila Computacional

instituiccedilatildeo Para garantir validade juriacutedica desse documento eacute imprescindiacutevel a sua valida-ccedilatildeo pela assinatura do usuaacuterio ou em contrato coletivo de trabalho

22 CRIME VIRTUAL

Outra questatildeo fundamental que estaacute relacionada agrave questatildeo da seguranccedila computacio-nal eacute o conceito de crime virtual Nesse sentido eacute imprescindiacutevel distinguir ao menos emtermos praacuteticos os conceitos de crime de computador e crime por computador Essadistinccedilatildeo permite compreender melhor quais tipos de crime satildeo cobertos pela lei e quaisnatildeo o satildeo

Assim crime por computadores satildeo os crimes tradicionais cometidos por meios com-putacionais Dessa maneira por exemplo tipificam-se o roubo ou o assassinato por compu-tador O leitor atento pode estar um pouco assustado agora imaginando como poderia serpossiacutevel um assassinato por computador esquecendo-se que o assassino poderia invadir osistema computacional de um hospital por exemplo e alterar a medicaccedilatildeo de um pacientepara doses fortes de substacircncias a que ele tenha alergia

Eacute comum portanto a ocorrecircncia de crimes tradicionais efetuados por computadorsem que o autor desses crimes esteja atento ao fato de estar cometendo um crime jaacuteprevisto na lei tradicional O envio de determinados tipos de SPAMs por exemplo jaacute estaacuteprevisto na lei e pode render detenccedilatildeo de 3 meses a 1 ano de detenccedilatildeo ou multa conformeo Art 146 do Coacutedigo Penal (BRASIL 1940) Enviar e-mail com ameaccedila de agressatildeo poderender pena de 1 a 6 meses de detenccedilatildeo ou multa de acordo com o Art 147 Assimobserve que apenas modificou-se o meio o crime continua tipificado De forma semelhantesatildeo tipificados crimes de invasatildeo de privacidade envio de viacuterus de computador pedofiliaou montagem de sites com receitas de bombas ou similares

Por outro lado existem aqueles crimes que soacute existem no ambiente computacionalnatildeo existindo equivalente no ambiente natildeo tecnoloacutegico satildeo os crimes de computadorNesse contexto por exemplo o Brasil natildeo tem uma legislaccedilatildeo contra invasatildeo de sitesQuando o invasor natildeo faz uso de informaccedilotildees obtidas com essa invasatildeo (o que poderiacaracterizar espionagem industrial) ou natildeo faz alteraccedilotildees dos dados (o que poderia carac-terizar crime de dano vandalismo ou pichaccedilatildeo) fica difiacutecil caracterizar a invasatildeo como umacontravenccedilatildeo penal

Alguns paiacuteses possuem legislaccedilatildeo forte a esse respeito como eacute o caso dos EUA eda China No Brasil paraiacuteso dos invasores essa discussatildeo estaacute apenas no iniacutecio Mesmoassim o administrador que teve seus sistemas invadidos deve verificar os mecanismoslegais a que pode recorrer de forma a punir os autores da faccedilanha

Nesse contexto inclusive cabe chamar a atenccedilatildeo para os movimentos Hackers e Ci-berativismo Cabe tambeacutem chamar a atenccedilatildeo para o fato que o termo hacker natildeo costuma

Conceitos Baacutesicos 13

ser utilizado com sentido negativo em meio tecnoloacutegico Nesse ambiente utiliza-se o termocracker para os hackers que invadem sistemas com finalidades iliacutecitas Na cultura geralentretanto o termo hacker eacute tomado de forma indistinta geralmente com significado pejo-rativo para invasor Para uma abordagem mais formal sobre essa discussatildeo ver (UCHOcircA2003)

23 ATAQUES MAIS COMUNS

Como um servidor encontra-se geralmente acessiacutevel via internet e em tempo integralele eacute mais suscetiacutevel a ataques de todos os tipos e formas que uma estaccedilatildeo de trabalhoDependendo de sua configuraccedilatildeo entretanto eacute possiacutevel tornaacute-lo tatildeo ou mais seguro queestaccedilotildees de trabalho com acesso miacutenimo agrave internet Com a finalidade de melhor situar oleitor segue-se uma relaccedilatildeo dos principais tipos de ataque e termos correlatos

Footprinting Por footprinting entende-se a tarefa de coletar informaccedilotildees sobre um sis-tema alvo Essa coleta eacute feita por vias tradicionais e puacuteblicas como uso do comandofinger leitura de paacuteginas do site para obter dados interessantes etc Geralmenteo invasor iraacute verificar quem eacute o responsaacutevel pela admnisitraccedilatildeo do sistema uma vezque invadida a conta desse usuaacuterio eacute possiacutevel obter dados mais significativos

Scanning Um scanner eacute um utilitaacuterio que verifica vulnerabilidades Pode ser um scannerde sistema quando checa vulnerabilidades na maacutequina local (erros no etcpasswdpermissatildeo incorreta de arquivos etc) ou pode ser um scanner de rede quando fazvarredura de portas de redes verificando quais estatildeo abertas e principalmente quaisestatildeo mais vulneraacuteveis O objetivo principal desse tipo de ataque eacute descobrir falhas deseguranccedila devido a bugs em serviccedilos de rede ou ausecircncia de proteccedilatildeo para serviccedilosinternos

Sniffers Principalmente dentro de uma rede fiacutesica onde eacute facilitada um ataque muito uti-lizado eacute a espionagem eletrocircnica com o uso de sniffer Um sniffer eacute um aplicativoque fica ldquoescutandordquo todos os pacotes de dados que trafegam por uma dada placa derede Eacute importante observar que em vaacuterias topologias de rede um pacote passa porvaacuterias placas entre a origem e o destino Aleacutem disso cabe observar que para queinterceptar mensagens destinadas agrave outras maacutequinas a estaccedilatildeo deve colocar suainterface de rede em ldquomodo promiacutescuordquo1 Esse ataque objetiva principalmente a cap-tura de senhas de usuaacuterios internos uma vez que isso facilita ao invasor a entrada nosistema para detecccedilatildeo de vulnerabilidades Outro objetivo desse ataque eacute a capturade informaccedilotildees confidenciais em tracircnsito na rede

1Por ldquomodo promiacutescuordquo entende-se a configuraccedilatildeo de uma interface de rede em que ela captura natildeoapenas os pacotes de rede direcionados a ela mas tambeacutem os destinados a outras estaccedilotildees em um mesmosegmento de rede

14 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Spoofing Por spoofing entende-se a tarefa de fazer uma maacutequina se passar por outraforjando por exemplo pacotes IPs Em geral o usuaacuterio iraacute tentar bloquear o enviode pacotes de dados de uma maacutequina tentando se passar por ela Uma conexatildeoSSH com um maacutequina usando spoof iria acusar o ataque do Man-In-The-Middle jaacutecomentado em (UCHOcircA SIMEONE SICA 2003) Caso o administrador use transportecriptografado de dados e senhas e esteja atento agraves chaves utilizadas esse ataquedificilmente iraacute comprometer a integridade dos dados e serviccedilos

Denial of Service (DoS) Pouca atenccedilatildeo tinha sido dado aos ataques de negaccedilatildeo de ser-viccedilo ateacute a derrubada de servidores importantes como Amazon Yahoo e mesmo UOLComo pode ser subentendido o DoS eacute um ataque que busca derrubar um serviccediloou mesmo um servidor inteiro Ultimamente tem sido utilizado do DDoS (DistributedDoS) onde um atacante utiliza vaacuterias maacutequinas ldquozumbisrdquo para enviar inuacutemeras requi-siccedilotildees ao mesmo tempo e de forma sincronizada a um dado servidor Isso acabapor ou consumir grande parte da largura de banda de rede ou sobrecarregar um dadodaemon derrubando-o Mais recentemente pode-se comentar o caso do viacuterus doApache que fazia com que um dado servidor Web ficasse enviando grande quanti-dade de dados pela rede conduzindo o traacutefego de rede a uma lentidatildeo insuportaacutevel

Coacutedigo Malicioso Coacutedigo malicioso como o nome jaacute sugere eacute um software criado com fi-nalidades mal intencionadas Nessa categoria incluem-se os coacutedigos natildeo autorizados(geralmente contidos dentro de um programa legiacutetimo) que efetuam accedilotildees desconhe-cidas e natildeo desejadas pelo usuaacuterio Tambeacutem satildeo incluiacutedos nessa categoria os pro-gramas legiacutetimos que foram alterados para efetuar accedilotildees natildeo desejadas pelo usuaacuterioOutro tipo de coacutedigo malicioso satildeo aqueles que destroem dados sem a intenccedilatildeo dousuaacuterio Alguns tipos de coacutedigo maliciosos merecem destaque

bull Cavalos de Troacuteia Um cavalo de troacuteia ou trojan horse ou apenas trojan eacute umprograma de computador alterado com finalidades iliacutecitas Por exemplo umatacante poderia substituir o binlogin para natildeo soacute autenticar usuaacuterioscomo tambeacutem armazenar essas senhas em um arquivo oculto

bull Viacuterus Viacuterus satildeo semelhantes a trojans dado que efetua accedilatildeo natildeo desejadapelo usuaacuterio Uma das diferenccedilas reside no fato que o viacuterus uma vez ativadoiraacute infectar outros arquivos locais A grosso modo viacuterus natildeo podem infectarmaacutequinas externas sem o auxiacutelio de uma pessoa

bull Vermes Um verme eacute um programa que pode infectar tanto a maacutequina localquanto maacutequinas remotas geralmente utilizando falhas de protocolos servi-ccedilos ou aplicativos

Como observado por (HATCH LEE KURTZ 2002) a maior parte dos programas per-niciosos existentes satildeo hiacutebridos dessas trecircs categorias Como exemplo tem-se oMelissa que era um cavalo de troacuteia (se passava por um e-mail que o usuaacuterio estivesse

Conceitos Baacutesicos 15

esperando) um viacuterus (infectava todos os arquivos locais de processamento de texto)e um verme (usava uma falha do Outlook para se propagar a todos os usuaacuterios naagenda de endereccedilos do usuaacuterio) Observe que no senso comum viacuterus e verme satildeogeralmente tomados com um uacutenico significado sendo usado apenas o termo ldquoviacuterusrdquoPor exemplo o viacuterus do Apache era a bem da verdade um verme (se propagavaa outras maacutequinas usando o Apache) mas como natildeo infectava outros arquivos noservidor natildeo poderia ser considerado necessariamente um viacuterusUm tipo de trojan extremamente perigoso satildeo os rootkits Como o nome sugereum rootkit eacute um aplicativo (ou um conjunto de aplicativos) com o objetivo de garantirpoderes de root ao invasor Geralmente consiste de aplicativos alterados a funcionarde forma especial pelo usuaacuterio ou versotildees alteradas do proacuteprio kernel

Exploits Exploits satildeo programas criados para explorar falhas advindas principalmente debugs nos daemons de serviccedilos Entre as falhas mais exploradas encontram-se bufferoverflow que consiste em estourar o buffer de entrada de um servidor forccedilando-o aestourar sua memoacuteria devolvendo um shell para o invasor

Ataques de Senhas Esse tipo de ataque consiste em tentar descobrir a senha de um oumais usuaacuterios por forccedila bruta ou usando teacutecnicas heuriacutesticas Em geral o invasor tentaobter uma coacutepia das senhas e efetuar um ataque de dicionaacuterio utilizando variaccedilotildeesde palavras em uma dada lista (o dicionaacuterio) tenta-se confrontar a senha do usuaacuteriocom essas variaccedilotildees ateacute descobrir uma que permita o acesso

Uma observaccedilatildeo final eacute que determinados ataques satildeo a bem da verdade tambeacutemferramentas de seguranccedila Assim por exemplo um scanner pode ser utilizado para verificarem que pontos um sistema estaacute vulneraacutevel Um programa de ataque de senha pode serutilizado para checar se os usuaacuterios natildeo estatildeo utilizando senhas faacuteceis o que facilitariauma invasatildeo Aleacutem disso alguns sistemas poderosos de detecccedilatildeo de intrusos satildeo tambeacutemsniffers Sniffers tambeacutem costumam ser utilizados para detectar problemas em uma rede

16 EDITORA - UFLAFAEPE - Seguranccedila Computacional

3USO DE CRIPTOGRAFIA

31 CONCEITOS BAacuteSICOS

A raacutepida evoluccedilatildeo das comunicaccedilotildees eletrocircnicas suscitou uma seacuterie de necessidadespara que se evitassem problemas de espionagem Entre essas necessidades destaca-seo uso de sistemas criptograacuteficos Mesmo em ambientes de telefonia celular por exemplo ouso de criptografia eacute cada vez mais utilizado

Como definido em (SCHNEIER 1996) a criptografia eacute a arte e ciecircncia de manter men-sagens seguras Ela envolve dois processos 1) criptografar (ou cifrar) uma mensagem Mtransformando-a em um texto cifrado C e 2) posteriormente decifrar (ou decriptografar) Cobtendo novamente a mensagem M como ilustrado na Figura 31

Decriptaccedilatildeoou

Decifragem

Encriptaccedilatildeoou

Cifragem

Mensagem (M) Mensagem (M)Texto Cifrado (C)

Figura 31 Processos Criptograacuteficos

A criptografia possui estrita relaccedilatildeo com a criptoanaacutelise arte e ciecircncia de quebrarmensagens cifradas O ramo da Matemaacutetica envolvendo criptografia e criptoanaacutelise eacute cha-mado de criptologia Como bem observado em (SCHNEIER 1996) modernos criptoloacutegosprecisam ter domiacutenio em Matemaacutetica Teoacuterica uma vez que eacute sobre ela que se sustenta acriptologia atual

O uso da criptografia eacute antigo sendo comuns o seu uso em guerras mesmo desde oimpeacuterio romano Esse uso era principalmente para manter a confidencialidade da mensa-gem garantindo que apenas emissor e receptor pudessem interpretaacute-la De certa maneiraa computaccedilatildeo foi fortemente financiada durante a Segunda Guerra Mundial para invenccedilatildeode dispositivos que pudessem decodificar as mensagens dos alematildees Desse esforccedilo in-clusive participou Alan Turing um dos mais importantes teoacutericos da Computaccedilatildeo e um dospais da Inteligecircncia Artificial

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 3: SEGURANÇA COMPUTACIONAL

SUMAacuteRIO

1 Introduccedilatildeo 7

2 Conceitos Baacutesicos 921 Comentaacuterios Iniciais 9

211 Poliacuteticas de Seguranccedila e Poliacuteticas de Uso 1022 Crime Virtual 1223 Ataques Mais Comuns 13

3 Uso de Criptografia 1731 Conceitos Baacutesicos 1732 Algoritmos Criptograacuteficos 1833 Protocolos Criptograacuteficos 1934 Criptografia e Seguranccedila Computacional 20

4 Seguranccedila por Controle de Acesso 2341 Comentaacuterios Iniciais 2342 Seguranccedila Fiacutesica e Backups 2343 O Uso de TCP-Wrappers 2444 Uso de Firewalls ou Proxies 2745 Configuraccedilatildeo Segura de Serviccedilos 30

5 Administraccedilatildeo Segura de Usuaacuterios 3351 Uso do PAM (Pluggable Authentication Modules) 3352 Protegendo Contas de Usuaacuterios 3853 Seguranccedila no Sistema de Arquivos 3954 Comentaacuterios Finais 42

6 Prevenccedilatildeo e Detecccedilatildeo de Intrusos 4361 Comentaacuterios Iniciais 4362 Verificaccedilatildeo dos Registros (Logs) 4463 Evitando Exploits 4764 Uso de Ferramentas de Varredura 4865 Verificadores de Integridade de Arquivos 5166 Detectores Ativos de Intrusatildeo 51

7 Conclusatildeo 55

Referecircncias Bibliograacuteficas 57

LISTA DE FIGURAS

31 Processos Criptograacuteficos 1732 Conceito de VPN 22

41 Uso de TCP-Wrappers 2542 Exemplo de Arquivo etchostsdeny 2643 Exemplo de Arquivo etchostsallow 2644 Exemplo de Arquivo etcxinetdconf 2745 Exemplo de Arquivo etcxinetddfinger 2746 Uso de Firewall 2847 Trecho do Arquivo etcservices 2948 Exemplo de Configuraccedilatildeo do iptables 30

51 Exemplo de Arquivo etcpamdsu 3452 Exemplo de Arquivo etcpamdchsh 3553 Exemplo de Arquivo etcsecurityaccessconf 3554 Exemplo de Arquivo etcsecuritytimeconf 3655 Exemplo de Arquivo etcsecuritylimitsconf 3756 Execuccedilatildeo do Comando ulimit-a 39

61 Exemplo de Uso do Comando last 4562 Exemplo de Uso do Comando lastlog 4663 Exemplo de Alerta do logwatch 4764 Vulnerabilidades Encontradas pelo SARA 4965 Deltalhamento da Vulnerabilidade no SARA 5066 Exemplo de Registro do Snort 53

LISTA DE TABELAS

31 Opccedilotildees Mais Usadas do gpg 21

51 Recursos Limitados pelo pam_limits 3752 Atributos de Arquivos 41

1INTRODUCcedilAtildeO

Este texto tem por principal objetivo instruir o seu leitor nos conceitos baacutesicos relativosagrave seguranccedila em redes de computadores sob o enfoque do sistema operacional LinuxEsses conceitos incluem os passos baacutesicos necessaacuterios agrave administraccedilatildeo segura de umservidor Linux mas natildeo somente Observe que ao processo de gerenciamento de umservidor daacute-se o nome de administraccedilatildeo de serviccedilos ou administraccedilatildeo de redes jaacuteabordados em (UCHOcircA SIMEONE SICA 2003)

O administrador de redes moderno natildeo pode relegar esse assunto a um segundoplano Com a evoluccedilatildeo das redes de computadores o nuacutemero de invasotildees tem crescidoassustadoramente Isso aumentou natildeo somente a necessidade de seguranccedila como tam-beacutem a necessidade de privacidade por parte dos sistemas e dos usuaacuterios Assim existeuma grande necessidade do administrador estar em constante atualizaccedilatildeo quanto agrave utiliza-ccedilatildeo de procedimentos para aumentar o niacutevel de seguranccedila dos sistemas computacionaissob seu domiacutenio

Como forma de subsidiar o leitor de uma fundamentaccedilatildeo teoacuterica sobre o assuntoo Capiacutetulo 2 apresenta uma discussatildeo sobre poliacuteticas de seguranccedila e poliacuteticas de usoAleacutem disso esse capiacutetulo aborda as questotildees legais envolvendo seguranccedila incluiacutendo-seo conceito de crime virtual Jaacute o Capiacutetulo 3 apresenta os conceitos baacutesicos de criptogra-fia apresentando a diferenciaccedilatildeo entre protocolo e algoritmo de criptografia Utilizando-seteacutecnicas criptograacuteficas esse capiacutetulo mostra ainda como fazer transporte seguro de dados

Seguranccedila por controle de acesso eacute abordada no Capiacutetulo 4 Entre outras teacutecnicasesse capiacutetulo orienta o leitor sobre o uso dos TCP-wrappers e firewall Jaacute teacutecnicas deadministraccedilatildeo segura de usuaacuterios satildeo vistas no Capiacutetulo 5 incluiacutendo-se o uso do PAMsudo e quotas em disco Por sua vez meacutetodos de prevenccedilatildeo e detecccedilatildeo de intrusos satildeoapresentados no Capiacutetulo 6

Este texto foi escrito pensando em um usuaacuterio intermediaacuterio do sistema operacionalLinux (ou equivalente) Ele foi produzido principalmente a partir da experiecircncia adquiridapelos autores em administraccedilatildeo de laboratoacuterios e uso de diversos sistemas operacionaisEssa experiecircncia em administraccedilatildeo de sistemas foi enriquecida pela leitura de diversos ma-teriais destacando-se principalmente (NEMETH et al 1995) (NEMETH et al 2001) (STAN-

8 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FIELD SMITH 2001) (WIRZENIUS OJA STAFFORD 2001) (FRAMPTON 1999) (MANN MIT-

CHELL 2000) (ANONYMOUS 2000) (KIRCH DAWSON 2000) (HATCH LEE KURTZ 2002)(SCHNEIER 1996) A essas referecircncias devem ser acrescidos vaacuterios Howtos1 disponibili-zados pela The Linux Documentation Project 2 Entre esses Howtos destacam-se (FENZI2002) (BURGISS 2002a) e (BURGISS 2002b) Eacute importante comentar que este texto eacute ape-nas uma apostila anterior denominada ldquoSeguranccedila em Redes e Criptografiardquo deste mesmoautor (UCHOcircA 2003)

Joaquim Quinteiro Uchocirca autor deste texto eacute licenciado em Matemaacutetica pela Univer-sidade Federal de Mato Grosso (UFMT) com mestrado em Ciecircncia da Computaccedilatildeo pelaUniversidade Federal de Satildeo Carlos (UFSCar) Antes de adotar o Linux em 1998 jaacute haviatrabalhado com Solaris MS-DOS (lembram-se do CISNE) e OS2 passando obviamentepelos Windows 20 Windows 31 (e 311) e Windows 95 Segundo amigos ele jaacute superou otrauma do uso desses trecircs uacuteltimos SOs() apesar de ter desenvolvido aversatildeo a alguns ti-pos de janelas Foi o responsaacutevel pela instalaccedilatildeo do primeiro laboratoacuterio baseado em Linuxna UFLA e um dos maiores disseminadores desse sistema operacional na universidadeProfessor da UFLA desde 1997 atua principalmente nas aacutereas de Teoria da Computaccedilatildeo eInteligecircncia Artificial

O autor espera que a escrita desta obra contribua para disseminar ainda mais o usode Linux no Brasil bem como para um ambiente computacional mais seguro desejando umbom aprendizado ao leitor

1Um Howto eacute um pequeno guia que ensina um usuaacuterio a configurar um serviccedilo ou fazer uma dada tarefa2The Linux Documentation Project httpwwwtldporg A traduccedilatildeo de parte dos documentos

desse projeto podem ser encontrados em httpbrtldporg

2CONCEITOS BAacuteSICOS

21 COMENTAacuteRIOS INICIAIS

O que eacute seguranccedila computacional Esse termo eacute muito utilizado atualmente massem uma consciecircncia exata a que ele se refere Isso ocorre principalmente porque esseconceito eacute relativo ao ambiente em que eacute utilizado O que eacute seguro para uma instituiccedilatildeopode natildeo o ser para outra Assim eacute preciso estar atento a qual siginificado o termo estaacutesendo utilizado

Dada a relatividade do termo eacute preciso refletir sobre quais itens devem ser levados emconta ao se abordar a questatildeo da seguranccedila computacional Em geral eacute possiacutevel destacaros seguintes elementos de um ambiente computacional sob o ponto de vista da seguranccedila

Confianccedila eacute possiacutevel confiar na disponibilidade do sistema os dados armazenados vatildeoestar acessiacuteveis quando forem necessaacuterios os mecanismos de backups satildeo sufici-entes para garantir que as informaccedilotildees armazenadas possam ser recuperadas comfacilidade em caso de problemas

Integridade os dados recuperados satildeo confiaacuteveis como garantir que as informaccedilotildeesnatildeo foram alteradas na fonte ou no traacutefego de dados como garantir que o que foiacessado eacute idecircntico ao que foi armazenado

Confidencialidade como certificar que os dados soacute podem ser acessados por quem dedireito como garantir a privacidade dos usuaacuterios e dos dados como impedir aespionagem de informaccedilotildees

Essas questotildees iratildeo chamar a necessidade do administrador estar refletindo ldquoo queeacute seguranccedila computacional em meu ambienterdquo A essa questatildeo logo viraacute outra talvez demaior importacircncia qual o item mais importante para a seguranccedila computacional

bull firewalls

bull backups

bull anti-sniffers

bull tunelamento e criptografia

10 EDITORA - UFLAFAEPE - Seguranccedila Computacional

A resposta a essa pergunta eacute extremamente simples o elemento mais importantepara se garantir seguranccedila em uma rede de computadores eacute o estabelecimento de umapoliacutetica de seguranccedila Enquanto a instituiccedilatildeo natildeo define o que eacute mais importante para oestabelecimento da seguranccedila computacional em seu ambiente as atitudes satildeo tomadassem a devida consciecircncia e sem garantir um miacutenimo desejaacutevel de seguranccedila

Uma Poliacutetica de Seguranccedila incorpora os resultados de uma anaacutelise de riscoem um plano que providencia procedimentos para gerenciar um ambiente com-putacional Em particular ela fornece ao administrador do sistema linhas ope-racionais para o ambiente tais como regras para o gerenciamento de contas deusuaacuterios procedimentos de instalaccedilatildeo de sistemas

(MANN MITCHELL 2000)

Uma poliacutetica de seguranccedila eacute um conjunto de leis regras e praacuteticas que re-gulam como uma organizaccedilatildeo gerencia protege e distribui suas informaccedilotildees erecursos Um dado sistema eacute considerado seguro em relaccedilatildeo a uma poliacutetica deseguranccedila caso garanta o cumprimento das leis regras e praacuteticas definidas nessapoliacutetica

(SOARES LEMOS COLCHER 1995)

Eacute a poliacutetica de seguranccedila que vai deixar claro o que deve ter acesso restrito e o quepode ser liberado sem problemas Eacute ela que define quais satildeo os itens que precisam serpreservados bem como quais satildeo as pessoas que tem acesso a determinados recursosSem uma poliacutetica de seguranccedila clara natildeo se sabe o que vai se proteger nem porque ouqual a melhor forma

Uma boa poliacutetica de seguranccedila iraacute definir por exemplo como seraacute estabelecida apoliacutetica de uso Essa poliacutetica de uso eacute responsaacutevel por deixar claro o que o usuaacuterio podee natildeo pode fazer com determinados recursos Em geral tal poliacutetica eacute um documento a serassinado pelo usuaacuterio em questatildeo

211 Poliacuteticas de Seguranccedila e Poliacuteticas de Uso

Eacute inuacutetil elaborar uma poliacutetica de seguranccedila que sirva apenas de enfeite na paredeAssim uma poliacutetica de seguranccedila deve possuir as seguintes caracteriacutesticas

bull ser implementaacutevel atraveacutes de procedimentos de administraccedilatildeo de sistema regrasde uso ou outros meacutetodos apropriados

bull ser reforccedilada com ferramentas de seguranccedila e sanccedilotildees

bull definir claramente as aacutereas de responsabilidade para usuaacuterios e administradoresdo sistema

Conceitos Baacutesicos 11

Dessa maneira atentando-se para essas diretrizes eacute possiacutevel elaborar uma poliacuteticade seguranccedila vaacutelida para o ambiente em questatildeo Aleacutem disso eacute imprescindiacutevel que apoliacutetica de seguranccedila atente-se para os seguintes itens

Seguranccedila fiacutesica como os equipamentos da instituiccedilatildeo em questatildeo seratildeo protegidosComo garantir a integridade fiacutesica dos dados Como garantir que natildeo haveraacute acessofiacutesico a dados que deveriam estar protegidos Esse item eacute mais importante do que seimagina de nada adianta senhas de BIOS ou ultra-elaboradas se qualquer funcionaacute-rio receacutem demitido pode roubar o HD do servidor para vender ao concorrente

Seguranccedila loacutegica como garantir integridade loacutegica dos dados Como os dados da ins-tituiccedilatildeo em questatildeo seratildeo protegidos Como garantir que natildeo haveraacute acesso loacutegicoindevido a dados Quais satildeo os dados mais importantes Os casos de invasotildeestem-se tornado cada vez mais frequumlentes e eacute imprescindiacutevel estar atento a isso

Privacidade o que fazer para proteger a privacidade dos usuaacuterios A instituiccedilatildeo iraacute pro-teger essa privacidade Observe que a instituiccedilatildeo deve estar atenta aos aspectoslegais dessa questatildeo

Legalidade de Software como garantir um bom uso dos recursos impedindo a piratariaA responsabilidade pelos aplicativos instalados eacute de quem da empresa do usuaacuterioIsso precisa estar claro

Em geral quando se trata de seguranccedila computacional deve-se adotar a poliacutetica domenor privileacutegio ou seja liberar apenas os recursos necessaacuterios ao usuaacuterio Observe queem alguns ambientes essa eacute uma questatildeo altamente subjetiva Mas deve-se sempre terem mente que o que natildeo eacute expressamente permitido deve ser proibido

Aleacutem disso eacute imprescindiacutevel que o administrador pratique vigilacircncia e perseveranccedilaassumindo sempre que os mal-intencionados sabem mais que ele Tenha em mente quea adoccedilatildeo de uma poliacutetica de seguranccedila iraacute na maioria das vezes implicar em perda deperformance ou conveniecircncia do usuaacuterio Alguns serviccedilos devem ser evitados e isso geraproblemas para usuaacuterios mais inexperientes Aleacutem disso o traacutefego criptografado ocupamaior largura de banda diminuindo a velocidade de transmissatildeo de dados Assim deve-sepesar os proacutes e contras de qualquer atitude envolvendo seguranccedila antes de implementaacute-la

Em termos praacuteticos como eacute expressa a poliacutetica de seguranccedila O leitor deve estarpensando em documentos impressos Entretanto natildeo se deve esquecer que a poliacutetica natildeoeacute apenas papel ela envolve leis regras e praacuteticas Dependendo do ambiente eacute oacutebvioa necessidade de documentaccedilatildeo mas isso natildeo eacute a uacutenica forma de criar uma poliacutetica deseguranccedila

Em geral a poliacutetica de seguranccedila documentada da maior parte das instituiccedilotildees con-siste das normas de uso dos recursos e uma poliacutetica de uso A poliacutetica de uso eacute um docu-mento que deixa claro o que o usuaacuterio pode e natildeo pode fazer com os recursos dentro da

12 EDITORA - UFLAFAEPE - Seguranccedila Computacional

instituiccedilatildeo Para garantir validade juriacutedica desse documento eacute imprescindiacutevel a sua valida-ccedilatildeo pela assinatura do usuaacuterio ou em contrato coletivo de trabalho

22 CRIME VIRTUAL

Outra questatildeo fundamental que estaacute relacionada agrave questatildeo da seguranccedila computacio-nal eacute o conceito de crime virtual Nesse sentido eacute imprescindiacutevel distinguir ao menos emtermos praacuteticos os conceitos de crime de computador e crime por computador Essadistinccedilatildeo permite compreender melhor quais tipos de crime satildeo cobertos pela lei e quaisnatildeo o satildeo

Assim crime por computadores satildeo os crimes tradicionais cometidos por meios com-putacionais Dessa maneira por exemplo tipificam-se o roubo ou o assassinato por compu-tador O leitor atento pode estar um pouco assustado agora imaginando como poderia serpossiacutevel um assassinato por computador esquecendo-se que o assassino poderia invadir osistema computacional de um hospital por exemplo e alterar a medicaccedilatildeo de um pacientepara doses fortes de substacircncias a que ele tenha alergia

Eacute comum portanto a ocorrecircncia de crimes tradicionais efetuados por computadorsem que o autor desses crimes esteja atento ao fato de estar cometendo um crime jaacuteprevisto na lei tradicional O envio de determinados tipos de SPAMs por exemplo jaacute estaacuteprevisto na lei e pode render detenccedilatildeo de 3 meses a 1 ano de detenccedilatildeo ou multa conformeo Art 146 do Coacutedigo Penal (BRASIL 1940) Enviar e-mail com ameaccedila de agressatildeo poderender pena de 1 a 6 meses de detenccedilatildeo ou multa de acordo com o Art 147 Assimobserve que apenas modificou-se o meio o crime continua tipificado De forma semelhantesatildeo tipificados crimes de invasatildeo de privacidade envio de viacuterus de computador pedofiliaou montagem de sites com receitas de bombas ou similares

Por outro lado existem aqueles crimes que soacute existem no ambiente computacionalnatildeo existindo equivalente no ambiente natildeo tecnoloacutegico satildeo os crimes de computadorNesse contexto por exemplo o Brasil natildeo tem uma legislaccedilatildeo contra invasatildeo de sitesQuando o invasor natildeo faz uso de informaccedilotildees obtidas com essa invasatildeo (o que poderiacaracterizar espionagem industrial) ou natildeo faz alteraccedilotildees dos dados (o que poderia carac-terizar crime de dano vandalismo ou pichaccedilatildeo) fica difiacutecil caracterizar a invasatildeo como umacontravenccedilatildeo penal

Alguns paiacuteses possuem legislaccedilatildeo forte a esse respeito como eacute o caso dos EUA eda China No Brasil paraiacuteso dos invasores essa discussatildeo estaacute apenas no iniacutecio Mesmoassim o administrador que teve seus sistemas invadidos deve verificar os mecanismoslegais a que pode recorrer de forma a punir os autores da faccedilanha

Nesse contexto inclusive cabe chamar a atenccedilatildeo para os movimentos Hackers e Ci-berativismo Cabe tambeacutem chamar a atenccedilatildeo para o fato que o termo hacker natildeo costuma

Conceitos Baacutesicos 13

ser utilizado com sentido negativo em meio tecnoloacutegico Nesse ambiente utiliza-se o termocracker para os hackers que invadem sistemas com finalidades iliacutecitas Na cultura geralentretanto o termo hacker eacute tomado de forma indistinta geralmente com significado pejo-rativo para invasor Para uma abordagem mais formal sobre essa discussatildeo ver (UCHOcircA2003)

23 ATAQUES MAIS COMUNS

Como um servidor encontra-se geralmente acessiacutevel via internet e em tempo integralele eacute mais suscetiacutevel a ataques de todos os tipos e formas que uma estaccedilatildeo de trabalhoDependendo de sua configuraccedilatildeo entretanto eacute possiacutevel tornaacute-lo tatildeo ou mais seguro queestaccedilotildees de trabalho com acesso miacutenimo agrave internet Com a finalidade de melhor situar oleitor segue-se uma relaccedilatildeo dos principais tipos de ataque e termos correlatos

Footprinting Por footprinting entende-se a tarefa de coletar informaccedilotildees sobre um sis-tema alvo Essa coleta eacute feita por vias tradicionais e puacuteblicas como uso do comandofinger leitura de paacuteginas do site para obter dados interessantes etc Geralmenteo invasor iraacute verificar quem eacute o responsaacutevel pela admnisitraccedilatildeo do sistema uma vezque invadida a conta desse usuaacuterio eacute possiacutevel obter dados mais significativos

Scanning Um scanner eacute um utilitaacuterio que verifica vulnerabilidades Pode ser um scannerde sistema quando checa vulnerabilidades na maacutequina local (erros no etcpasswdpermissatildeo incorreta de arquivos etc) ou pode ser um scanner de rede quando fazvarredura de portas de redes verificando quais estatildeo abertas e principalmente quaisestatildeo mais vulneraacuteveis O objetivo principal desse tipo de ataque eacute descobrir falhas deseguranccedila devido a bugs em serviccedilos de rede ou ausecircncia de proteccedilatildeo para serviccedilosinternos

Sniffers Principalmente dentro de uma rede fiacutesica onde eacute facilitada um ataque muito uti-lizado eacute a espionagem eletrocircnica com o uso de sniffer Um sniffer eacute um aplicativoque fica ldquoescutandordquo todos os pacotes de dados que trafegam por uma dada placa derede Eacute importante observar que em vaacuterias topologias de rede um pacote passa porvaacuterias placas entre a origem e o destino Aleacutem disso cabe observar que para queinterceptar mensagens destinadas agrave outras maacutequinas a estaccedilatildeo deve colocar suainterface de rede em ldquomodo promiacutescuordquo1 Esse ataque objetiva principalmente a cap-tura de senhas de usuaacuterios internos uma vez que isso facilita ao invasor a entrada nosistema para detecccedilatildeo de vulnerabilidades Outro objetivo desse ataque eacute a capturade informaccedilotildees confidenciais em tracircnsito na rede

1Por ldquomodo promiacutescuordquo entende-se a configuraccedilatildeo de uma interface de rede em que ela captura natildeoapenas os pacotes de rede direcionados a ela mas tambeacutem os destinados a outras estaccedilotildees em um mesmosegmento de rede

14 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Spoofing Por spoofing entende-se a tarefa de fazer uma maacutequina se passar por outraforjando por exemplo pacotes IPs Em geral o usuaacuterio iraacute tentar bloquear o enviode pacotes de dados de uma maacutequina tentando se passar por ela Uma conexatildeoSSH com um maacutequina usando spoof iria acusar o ataque do Man-In-The-Middle jaacutecomentado em (UCHOcircA SIMEONE SICA 2003) Caso o administrador use transportecriptografado de dados e senhas e esteja atento agraves chaves utilizadas esse ataquedificilmente iraacute comprometer a integridade dos dados e serviccedilos

Denial of Service (DoS) Pouca atenccedilatildeo tinha sido dado aos ataques de negaccedilatildeo de ser-viccedilo ateacute a derrubada de servidores importantes como Amazon Yahoo e mesmo UOLComo pode ser subentendido o DoS eacute um ataque que busca derrubar um serviccediloou mesmo um servidor inteiro Ultimamente tem sido utilizado do DDoS (DistributedDoS) onde um atacante utiliza vaacuterias maacutequinas ldquozumbisrdquo para enviar inuacutemeras requi-siccedilotildees ao mesmo tempo e de forma sincronizada a um dado servidor Isso acabapor ou consumir grande parte da largura de banda de rede ou sobrecarregar um dadodaemon derrubando-o Mais recentemente pode-se comentar o caso do viacuterus doApache que fazia com que um dado servidor Web ficasse enviando grande quanti-dade de dados pela rede conduzindo o traacutefego de rede a uma lentidatildeo insuportaacutevel

Coacutedigo Malicioso Coacutedigo malicioso como o nome jaacute sugere eacute um software criado com fi-nalidades mal intencionadas Nessa categoria incluem-se os coacutedigos natildeo autorizados(geralmente contidos dentro de um programa legiacutetimo) que efetuam accedilotildees desconhe-cidas e natildeo desejadas pelo usuaacuterio Tambeacutem satildeo incluiacutedos nessa categoria os pro-gramas legiacutetimos que foram alterados para efetuar accedilotildees natildeo desejadas pelo usuaacuterioOutro tipo de coacutedigo malicioso satildeo aqueles que destroem dados sem a intenccedilatildeo dousuaacuterio Alguns tipos de coacutedigo maliciosos merecem destaque

bull Cavalos de Troacuteia Um cavalo de troacuteia ou trojan horse ou apenas trojan eacute umprograma de computador alterado com finalidades iliacutecitas Por exemplo umatacante poderia substituir o binlogin para natildeo soacute autenticar usuaacuterioscomo tambeacutem armazenar essas senhas em um arquivo oculto

bull Viacuterus Viacuterus satildeo semelhantes a trojans dado que efetua accedilatildeo natildeo desejadapelo usuaacuterio Uma das diferenccedilas reside no fato que o viacuterus uma vez ativadoiraacute infectar outros arquivos locais A grosso modo viacuterus natildeo podem infectarmaacutequinas externas sem o auxiacutelio de uma pessoa

bull Vermes Um verme eacute um programa que pode infectar tanto a maacutequina localquanto maacutequinas remotas geralmente utilizando falhas de protocolos servi-ccedilos ou aplicativos

Como observado por (HATCH LEE KURTZ 2002) a maior parte dos programas per-niciosos existentes satildeo hiacutebridos dessas trecircs categorias Como exemplo tem-se oMelissa que era um cavalo de troacuteia (se passava por um e-mail que o usuaacuterio estivesse

Conceitos Baacutesicos 15

esperando) um viacuterus (infectava todos os arquivos locais de processamento de texto)e um verme (usava uma falha do Outlook para se propagar a todos os usuaacuterios naagenda de endereccedilos do usuaacuterio) Observe que no senso comum viacuterus e verme satildeogeralmente tomados com um uacutenico significado sendo usado apenas o termo ldquoviacuterusrdquoPor exemplo o viacuterus do Apache era a bem da verdade um verme (se propagavaa outras maacutequinas usando o Apache) mas como natildeo infectava outros arquivos noservidor natildeo poderia ser considerado necessariamente um viacuterusUm tipo de trojan extremamente perigoso satildeo os rootkits Como o nome sugereum rootkit eacute um aplicativo (ou um conjunto de aplicativos) com o objetivo de garantirpoderes de root ao invasor Geralmente consiste de aplicativos alterados a funcionarde forma especial pelo usuaacuterio ou versotildees alteradas do proacuteprio kernel

Exploits Exploits satildeo programas criados para explorar falhas advindas principalmente debugs nos daemons de serviccedilos Entre as falhas mais exploradas encontram-se bufferoverflow que consiste em estourar o buffer de entrada de um servidor forccedilando-o aestourar sua memoacuteria devolvendo um shell para o invasor

Ataques de Senhas Esse tipo de ataque consiste em tentar descobrir a senha de um oumais usuaacuterios por forccedila bruta ou usando teacutecnicas heuriacutesticas Em geral o invasor tentaobter uma coacutepia das senhas e efetuar um ataque de dicionaacuterio utilizando variaccedilotildeesde palavras em uma dada lista (o dicionaacuterio) tenta-se confrontar a senha do usuaacuteriocom essas variaccedilotildees ateacute descobrir uma que permita o acesso

Uma observaccedilatildeo final eacute que determinados ataques satildeo a bem da verdade tambeacutemferramentas de seguranccedila Assim por exemplo um scanner pode ser utilizado para verificarem que pontos um sistema estaacute vulneraacutevel Um programa de ataque de senha pode serutilizado para checar se os usuaacuterios natildeo estatildeo utilizando senhas faacuteceis o que facilitariauma invasatildeo Aleacutem disso alguns sistemas poderosos de detecccedilatildeo de intrusos satildeo tambeacutemsniffers Sniffers tambeacutem costumam ser utilizados para detectar problemas em uma rede

16 EDITORA - UFLAFAEPE - Seguranccedila Computacional

3USO DE CRIPTOGRAFIA

31 CONCEITOS BAacuteSICOS

A raacutepida evoluccedilatildeo das comunicaccedilotildees eletrocircnicas suscitou uma seacuterie de necessidadespara que se evitassem problemas de espionagem Entre essas necessidades destaca-seo uso de sistemas criptograacuteficos Mesmo em ambientes de telefonia celular por exemplo ouso de criptografia eacute cada vez mais utilizado

Como definido em (SCHNEIER 1996) a criptografia eacute a arte e ciecircncia de manter men-sagens seguras Ela envolve dois processos 1) criptografar (ou cifrar) uma mensagem Mtransformando-a em um texto cifrado C e 2) posteriormente decifrar (ou decriptografar) Cobtendo novamente a mensagem M como ilustrado na Figura 31

Decriptaccedilatildeoou

Decifragem

Encriptaccedilatildeoou

Cifragem

Mensagem (M) Mensagem (M)Texto Cifrado (C)

Figura 31 Processos Criptograacuteficos

A criptografia possui estrita relaccedilatildeo com a criptoanaacutelise arte e ciecircncia de quebrarmensagens cifradas O ramo da Matemaacutetica envolvendo criptografia e criptoanaacutelise eacute cha-mado de criptologia Como bem observado em (SCHNEIER 1996) modernos criptoloacutegosprecisam ter domiacutenio em Matemaacutetica Teoacuterica uma vez que eacute sobre ela que se sustenta acriptologia atual

O uso da criptografia eacute antigo sendo comuns o seu uso em guerras mesmo desde oimpeacuterio romano Esse uso era principalmente para manter a confidencialidade da mensa-gem garantindo que apenas emissor e receptor pudessem interpretaacute-la De certa maneiraa computaccedilatildeo foi fortemente financiada durante a Segunda Guerra Mundial para invenccedilatildeode dispositivos que pudessem decodificar as mensagens dos alematildees Desse esforccedilo in-clusive participou Alan Turing um dos mais importantes teoacutericos da Computaccedilatildeo e um dospais da Inteligecircncia Artificial

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 4: SEGURANÇA COMPUTACIONAL

LISTA DE FIGURAS

31 Processos Criptograacuteficos 1732 Conceito de VPN 22

41 Uso de TCP-Wrappers 2542 Exemplo de Arquivo etchostsdeny 2643 Exemplo de Arquivo etchostsallow 2644 Exemplo de Arquivo etcxinetdconf 2745 Exemplo de Arquivo etcxinetddfinger 2746 Uso de Firewall 2847 Trecho do Arquivo etcservices 2948 Exemplo de Configuraccedilatildeo do iptables 30

51 Exemplo de Arquivo etcpamdsu 3452 Exemplo de Arquivo etcpamdchsh 3553 Exemplo de Arquivo etcsecurityaccessconf 3554 Exemplo de Arquivo etcsecuritytimeconf 3655 Exemplo de Arquivo etcsecuritylimitsconf 3756 Execuccedilatildeo do Comando ulimit-a 39

61 Exemplo de Uso do Comando last 4562 Exemplo de Uso do Comando lastlog 4663 Exemplo de Alerta do logwatch 4764 Vulnerabilidades Encontradas pelo SARA 4965 Deltalhamento da Vulnerabilidade no SARA 5066 Exemplo de Registro do Snort 53

LISTA DE TABELAS

31 Opccedilotildees Mais Usadas do gpg 21

51 Recursos Limitados pelo pam_limits 3752 Atributos de Arquivos 41

1INTRODUCcedilAtildeO

Este texto tem por principal objetivo instruir o seu leitor nos conceitos baacutesicos relativosagrave seguranccedila em redes de computadores sob o enfoque do sistema operacional LinuxEsses conceitos incluem os passos baacutesicos necessaacuterios agrave administraccedilatildeo segura de umservidor Linux mas natildeo somente Observe que ao processo de gerenciamento de umservidor daacute-se o nome de administraccedilatildeo de serviccedilos ou administraccedilatildeo de redes jaacuteabordados em (UCHOcircA SIMEONE SICA 2003)

O administrador de redes moderno natildeo pode relegar esse assunto a um segundoplano Com a evoluccedilatildeo das redes de computadores o nuacutemero de invasotildees tem crescidoassustadoramente Isso aumentou natildeo somente a necessidade de seguranccedila como tam-beacutem a necessidade de privacidade por parte dos sistemas e dos usuaacuterios Assim existeuma grande necessidade do administrador estar em constante atualizaccedilatildeo quanto agrave utiliza-ccedilatildeo de procedimentos para aumentar o niacutevel de seguranccedila dos sistemas computacionaissob seu domiacutenio

Como forma de subsidiar o leitor de uma fundamentaccedilatildeo teoacuterica sobre o assuntoo Capiacutetulo 2 apresenta uma discussatildeo sobre poliacuteticas de seguranccedila e poliacuteticas de usoAleacutem disso esse capiacutetulo aborda as questotildees legais envolvendo seguranccedila incluiacutendo-seo conceito de crime virtual Jaacute o Capiacutetulo 3 apresenta os conceitos baacutesicos de criptogra-fia apresentando a diferenciaccedilatildeo entre protocolo e algoritmo de criptografia Utilizando-seteacutecnicas criptograacuteficas esse capiacutetulo mostra ainda como fazer transporte seguro de dados

Seguranccedila por controle de acesso eacute abordada no Capiacutetulo 4 Entre outras teacutecnicasesse capiacutetulo orienta o leitor sobre o uso dos TCP-wrappers e firewall Jaacute teacutecnicas deadministraccedilatildeo segura de usuaacuterios satildeo vistas no Capiacutetulo 5 incluiacutendo-se o uso do PAMsudo e quotas em disco Por sua vez meacutetodos de prevenccedilatildeo e detecccedilatildeo de intrusos satildeoapresentados no Capiacutetulo 6

Este texto foi escrito pensando em um usuaacuterio intermediaacuterio do sistema operacionalLinux (ou equivalente) Ele foi produzido principalmente a partir da experiecircncia adquiridapelos autores em administraccedilatildeo de laboratoacuterios e uso de diversos sistemas operacionaisEssa experiecircncia em administraccedilatildeo de sistemas foi enriquecida pela leitura de diversos ma-teriais destacando-se principalmente (NEMETH et al 1995) (NEMETH et al 2001) (STAN-

8 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FIELD SMITH 2001) (WIRZENIUS OJA STAFFORD 2001) (FRAMPTON 1999) (MANN MIT-

CHELL 2000) (ANONYMOUS 2000) (KIRCH DAWSON 2000) (HATCH LEE KURTZ 2002)(SCHNEIER 1996) A essas referecircncias devem ser acrescidos vaacuterios Howtos1 disponibili-zados pela The Linux Documentation Project 2 Entre esses Howtos destacam-se (FENZI2002) (BURGISS 2002a) e (BURGISS 2002b) Eacute importante comentar que este texto eacute ape-nas uma apostila anterior denominada ldquoSeguranccedila em Redes e Criptografiardquo deste mesmoautor (UCHOcircA 2003)

Joaquim Quinteiro Uchocirca autor deste texto eacute licenciado em Matemaacutetica pela Univer-sidade Federal de Mato Grosso (UFMT) com mestrado em Ciecircncia da Computaccedilatildeo pelaUniversidade Federal de Satildeo Carlos (UFSCar) Antes de adotar o Linux em 1998 jaacute haviatrabalhado com Solaris MS-DOS (lembram-se do CISNE) e OS2 passando obviamentepelos Windows 20 Windows 31 (e 311) e Windows 95 Segundo amigos ele jaacute superou otrauma do uso desses trecircs uacuteltimos SOs() apesar de ter desenvolvido aversatildeo a alguns ti-pos de janelas Foi o responsaacutevel pela instalaccedilatildeo do primeiro laboratoacuterio baseado em Linuxna UFLA e um dos maiores disseminadores desse sistema operacional na universidadeProfessor da UFLA desde 1997 atua principalmente nas aacutereas de Teoria da Computaccedilatildeo eInteligecircncia Artificial

O autor espera que a escrita desta obra contribua para disseminar ainda mais o usode Linux no Brasil bem como para um ambiente computacional mais seguro desejando umbom aprendizado ao leitor

1Um Howto eacute um pequeno guia que ensina um usuaacuterio a configurar um serviccedilo ou fazer uma dada tarefa2The Linux Documentation Project httpwwwtldporg A traduccedilatildeo de parte dos documentos

desse projeto podem ser encontrados em httpbrtldporg

2CONCEITOS BAacuteSICOS

21 COMENTAacuteRIOS INICIAIS

O que eacute seguranccedila computacional Esse termo eacute muito utilizado atualmente massem uma consciecircncia exata a que ele se refere Isso ocorre principalmente porque esseconceito eacute relativo ao ambiente em que eacute utilizado O que eacute seguro para uma instituiccedilatildeopode natildeo o ser para outra Assim eacute preciso estar atento a qual siginificado o termo estaacutesendo utilizado

Dada a relatividade do termo eacute preciso refletir sobre quais itens devem ser levados emconta ao se abordar a questatildeo da seguranccedila computacional Em geral eacute possiacutevel destacaros seguintes elementos de um ambiente computacional sob o ponto de vista da seguranccedila

Confianccedila eacute possiacutevel confiar na disponibilidade do sistema os dados armazenados vatildeoestar acessiacuteveis quando forem necessaacuterios os mecanismos de backups satildeo sufici-entes para garantir que as informaccedilotildees armazenadas possam ser recuperadas comfacilidade em caso de problemas

Integridade os dados recuperados satildeo confiaacuteveis como garantir que as informaccedilotildeesnatildeo foram alteradas na fonte ou no traacutefego de dados como garantir que o que foiacessado eacute idecircntico ao que foi armazenado

Confidencialidade como certificar que os dados soacute podem ser acessados por quem dedireito como garantir a privacidade dos usuaacuterios e dos dados como impedir aespionagem de informaccedilotildees

Essas questotildees iratildeo chamar a necessidade do administrador estar refletindo ldquoo queeacute seguranccedila computacional em meu ambienterdquo A essa questatildeo logo viraacute outra talvez demaior importacircncia qual o item mais importante para a seguranccedila computacional

bull firewalls

bull backups

bull anti-sniffers

bull tunelamento e criptografia

10 EDITORA - UFLAFAEPE - Seguranccedila Computacional

A resposta a essa pergunta eacute extremamente simples o elemento mais importantepara se garantir seguranccedila em uma rede de computadores eacute o estabelecimento de umapoliacutetica de seguranccedila Enquanto a instituiccedilatildeo natildeo define o que eacute mais importante para oestabelecimento da seguranccedila computacional em seu ambiente as atitudes satildeo tomadassem a devida consciecircncia e sem garantir um miacutenimo desejaacutevel de seguranccedila

Uma Poliacutetica de Seguranccedila incorpora os resultados de uma anaacutelise de riscoem um plano que providencia procedimentos para gerenciar um ambiente com-putacional Em particular ela fornece ao administrador do sistema linhas ope-racionais para o ambiente tais como regras para o gerenciamento de contas deusuaacuterios procedimentos de instalaccedilatildeo de sistemas

(MANN MITCHELL 2000)

Uma poliacutetica de seguranccedila eacute um conjunto de leis regras e praacuteticas que re-gulam como uma organizaccedilatildeo gerencia protege e distribui suas informaccedilotildees erecursos Um dado sistema eacute considerado seguro em relaccedilatildeo a uma poliacutetica deseguranccedila caso garanta o cumprimento das leis regras e praacuteticas definidas nessapoliacutetica

(SOARES LEMOS COLCHER 1995)

Eacute a poliacutetica de seguranccedila que vai deixar claro o que deve ter acesso restrito e o quepode ser liberado sem problemas Eacute ela que define quais satildeo os itens que precisam serpreservados bem como quais satildeo as pessoas que tem acesso a determinados recursosSem uma poliacutetica de seguranccedila clara natildeo se sabe o que vai se proteger nem porque ouqual a melhor forma

Uma boa poliacutetica de seguranccedila iraacute definir por exemplo como seraacute estabelecida apoliacutetica de uso Essa poliacutetica de uso eacute responsaacutevel por deixar claro o que o usuaacuterio podee natildeo pode fazer com determinados recursos Em geral tal poliacutetica eacute um documento a serassinado pelo usuaacuterio em questatildeo

211 Poliacuteticas de Seguranccedila e Poliacuteticas de Uso

Eacute inuacutetil elaborar uma poliacutetica de seguranccedila que sirva apenas de enfeite na paredeAssim uma poliacutetica de seguranccedila deve possuir as seguintes caracteriacutesticas

bull ser implementaacutevel atraveacutes de procedimentos de administraccedilatildeo de sistema regrasde uso ou outros meacutetodos apropriados

bull ser reforccedilada com ferramentas de seguranccedila e sanccedilotildees

bull definir claramente as aacutereas de responsabilidade para usuaacuterios e administradoresdo sistema

Conceitos Baacutesicos 11

Dessa maneira atentando-se para essas diretrizes eacute possiacutevel elaborar uma poliacuteticade seguranccedila vaacutelida para o ambiente em questatildeo Aleacutem disso eacute imprescindiacutevel que apoliacutetica de seguranccedila atente-se para os seguintes itens

Seguranccedila fiacutesica como os equipamentos da instituiccedilatildeo em questatildeo seratildeo protegidosComo garantir a integridade fiacutesica dos dados Como garantir que natildeo haveraacute acessofiacutesico a dados que deveriam estar protegidos Esse item eacute mais importante do que seimagina de nada adianta senhas de BIOS ou ultra-elaboradas se qualquer funcionaacute-rio receacutem demitido pode roubar o HD do servidor para vender ao concorrente

Seguranccedila loacutegica como garantir integridade loacutegica dos dados Como os dados da ins-tituiccedilatildeo em questatildeo seratildeo protegidos Como garantir que natildeo haveraacute acesso loacutegicoindevido a dados Quais satildeo os dados mais importantes Os casos de invasotildeestem-se tornado cada vez mais frequumlentes e eacute imprescindiacutevel estar atento a isso

Privacidade o que fazer para proteger a privacidade dos usuaacuterios A instituiccedilatildeo iraacute pro-teger essa privacidade Observe que a instituiccedilatildeo deve estar atenta aos aspectoslegais dessa questatildeo

Legalidade de Software como garantir um bom uso dos recursos impedindo a piratariaA responsabilidade pelos aplicativos instalados eacute de quem da empresa do usuaacuterioIsso precisa estar claro

Em geral quando se trata de seguranccedila computacional deve-se adotar a poliacutetica domenor privileacutegio ou seja liberar apenas os recursos necessaacuterios ao usuaacuterio Observe queem alguns ambientes essa eacute uma questatildeo altamente subjetiva Mas deve-se sempre terem mente que o que natildeo eacute expressamente permitido deve ser proibido

Aleacutem disso eacute imprescindiacutevel que o administrador pratique vigilacircncia e perseveranccedilaassumindo sempre que os mal-intencionados sabem mais que ele Tenha em mente quea adoccedilatildeo de uma poliacutetica de seguranccedila iraacute na maioria das vezes implicar em perda deperformance ou conveniecircncia do usuaacuterio Alguns serviccedilos devem ser evitados e isso geraproblemas para usuaacuterios mais inexperientes Aleacutem disso o traacutefego criptografado ocupamaior largura de banda diminuindo a velocidade de transmissatildeo de dados Assim deve-sepesar os proacutes e contras de qualquer atitude envolvendo seguranccedila antes de implementaacute-la

Em termos praacuteticos como eacute expressa a poliacutetica de seguranccedila O leitor deve estarpensando em documentos impressos Entretanto natildeo se deve esquecer que a poliacutetica natildeoeacute apenas papel ela envolve leis regras e praacuteticas Dependendo do ambiente eacute oacutebvioa necessidade de documentaccedilatildeo mas isso natildeo eacute a uacutenica forma de criar uma poliacutetica deseguranccedila

Em geral a poliacutetica de seguranccedila documentada da maior parte das instituiccedilotildees con-siste das normas de uso dos recursos e uma poliacutetica de uso A poliacutetica de uso eacute um docu-mento que deixa claro o que o usuaacuterio pode e natildeo pode fazer com os recursos dentro da

12 EDITORA - UFLAFAEPE - Seguranccedila Computacional

instituiccedilatildeo Para garantir validade juriacutedica desse documento eacute imprescindiacutevel a sua valida-ccedilatildeo pela assinatura do usuaacuterio ou em contrato coletivo de trabalho

22 CRIME VIRTUAL

Outra questatildeo fundamental que estaacute relacionada agrave questatildeo da seguranccedila computacio-nal eacute o conceito de crime virtual Nesse sentido eacute imprescindiacutevel distinguir ao menos emtermos praacuteticos os conceitos de crime de computador e crime por computador Essadistinccedilatildeo permite compreender melhor quais tipos de crime satildeo cobertos pela lei e quaisnatildeo o satildeo

Assim crime por computadores satildeo os crimes tradicionais cometidos por meios com-putacionais Dessa maneira por exemplo tipificam-se o roubo ou o assassinato por compu-tador O leitor atento pode estar um pouco assustado agora imaginando como poderia serpossiacutevel um assassinato por computador esquecendo-se que o assassino poderia invadir osistema computacional de um hospital por exemplo e alterar a medicaccedilatildeo de um pacientepara doses fortes de substacircncias a que ele tenha alergia

Eacute comum portanto a ocorrecircncia de crimes tradicionais efetuados por computadorsem que o autor desses crimes esteja atento ao fato de estar cometendo um crime jaacuteprevisto na lei tradicional O envio de determinados tipos de SPAMs por exemplo jaacute estaacuteprevisto na lei e pode render detenccedilatildeo de 3 meses a 1 ano de detenccedilatildeo ou multa conformeo Art 146 do Coacutedigo Penal (BRASIL 1940) Enviar e-mail com ameaccedila de agressatildeo poderender pena de 1 a 6 meses de detenccedilatildeo ou multa de acordo com o Art 147 Assimobserve que apenas modificou-se o meio o crime continua tipificado De forma semelhantesatildeo tipificados crimes de invasatildeo de privacidade envio de viacuterus de computador pedofiliaou montagem de sites com receitas de bombas ou similares

Por outro lado existem aqueles crimes que soacute existem no ambiente computacionalnatildeo existindo equivalente no ambiente natildeo tecnoloacutegico satildeo os crimes de computadorNesse contexto por exemplo o Brasil natildeo tem uma legislaccedilatildeo contra invasatildeo de sitesQuando o invasor natildeo faz uso de informaccedilotildees obtidas com essa invasatildeo (o que poderiacaracterizar espionagem industrial) ou natildeo faz alteraccedilotildees dos dados (o que poderia carac-terizar crime de dano vandalismo ou pichaccedilatildeo) fica difiacutecil caracterizar a invasatildeo como umacontravenccedilatildeo penal

Alguns paiacuteses possuem legislaccedilatildeo forte a esse respeito como eacute o caso dos EUA eda China No Brasil paraiacuteso dos invasores essa discussatildeo estaacute apenas no iniacutecio Mesmoassim o administrador que teve seus sistemas invadidos deve verificar os mecanismoslegais a que pode recorrer de forma a punir os autores da faccedilanha

Nesse contexto inclusive cabe chamar a atenccedilatildeo para os movimentos Hackers e Ci-berativismo Cabe tambeacutem chamar a atenccedilatildeo para o fato que o termo hacker natildeo costuma

Conceitos Baacutesicos 13

ser utilizado com sentido negativo em meio tecnoloacutegico Nesse ambiente utiliza-se o termocracker para os hackers que invadem sistemas com finalidades iliacutecitas Na cultura geralentretanto o termo hacker eacute tomado de forma indistinta geralmente com significado pejo-rativo para invasor Para uma abordagem mais formal sobre essa discussatildeo ver (UCHOcircA2003)

23 ATAQUES MAIS COMUNS

Como um servidor encontra-se geralmente acessiacutevel via internet e em tempo integralele eacute mais suscetiacutevel a ataques de todos os tipos e formas que uma estaccedilatildeo de trabalhoDependendo de sua configuraccedilatildeo entretanto eacute possiacutevel tornaacute-lo tatildeo ou mais seguro queestaccedilotildees de trabalho com acesso miacutenimo agrave internet Com a finalidade de melhor situar oleitor segue-se uma relaccedilatildeo dos principais tipos de ataque e termos correlatos

Footprinting Por footprinting entende-se a tarefa de coletar informaccedilotildees sobre um sis-tema alvo Essa coleta eacute feita por vias tradicionais e puacuteblicas como uso do comandofinger leitura de paacuteginas do site para obter dados interessantes etc Geralmenteo invasor iraacute verificar quem eacute o responsaacutevel pela admnisitraccedilatildeo do sistema uma vezque invadida a conta desse usuaacuterio eacute possiacutevel obter dados mais significativos

Scanning Um scanner eacute um utilitaacuterio que verifica vulnerabilidades Pode ser um scannerde sistema quando checa vulnerabilidades na maacutequina local (erros no etcpasswdpermissatildeo incorreta de arquivos etc) ou pode ser um scanner de rede quando fazvarredura de portas de redes verificando quais estatildeo abertas e principalmente quaisestatildeo mais vulneraacuteveis O objetivo principal desse tipo de ataque eacute descobrir falhas deseguranccedila devido a bugs em serviccedilos de rede ou ausecircncia de proteccedilatildeo para serviccedilosinternos

Sniffers Principalmente dentro de uma rede fiacutesica onde eacute facilitada um ataque muito uti-lizado eacute a espionagem eletrocircnica com o uso de sniffer Um sniffer eacute um aplicativoque fica ldquoescutandordquo todos os pacotes de dados que trafegam por uma dada placa derede Eacute importante observar que em vaacuterias topologias de rede um pacote passa porvaacuterias placas entre a origem e o destino Aleacutem disso cabe observar que para queinterceptar mensagens destinadas agrave outras maacutequinas a estaccedilatildeo deve colocar suainterface de rede em ldquomodo promiacutescuordquo1 Esse ataque objetiva principalmente a cap-tura de senhas de usuaacuterios internos uma vez que isso facilita ao invasor a entrada nosistema para detecccedilatildeo de vulnerabilidades Outro objetivo desse ataque eacute a capturade informaccedilotildees confidenciais em tracircnsito na rede

1Por ldquomodo promiacutescuordquo entende-se a configuraccedilatildeo de uma interface de rede em que ela captura natildeoapenas os pacotes de rede direcionados a ela mas tambeacutem os destinados a outras estaccedilotildees em um mesmosegmento de rede

14 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Spoofing Por spoofing entende-se a tarefa de fazer uma maacutequina se passar por outraforjando por exemplo pacotes IPs Em geral o usuaacuterio iraacute tentar bloquear o enviode pacotes de dados de uma maacutequina tentando se passar por ela Uma conexatildeoSSH com um maacutequina usando spoof iria acusar o ataque do Man-In-The-Middle jaacutecomentado em (UCHOcircA SIMEONE SICA 2003) Caso o administrador use transportecriptografado de dados e senhas e esteja atento agraves chaves utilizadas esse ataquedificilmente iraacute comprometer a integridade dos dados e serviccedilos

Denial of Service (DoS) Pouca atenccedilatildeo tinha sido dado aos ataques de negaccedilatildeo de ser-viccedilo ateacute a derrubada de servidores importantes como Amazon Yahoo e mesmo UOLComo pode ser subentendido o DoS eacute um ataque que busca derrubar um serviccediloou mesmo um servidor inteiro Ultimamente tem sido utilizado do DDoS (DistributedDoS) onde um atacante utiliza vaacuterias maacutequinas ldquozumbisrdquo para enviar inuacutemeras requi-siccedilotildees ao mesmo tempo e de forma sincronizada a um dado servidor Isso acabapor ou consumir grande parte da largura de banda de rede ou sobrecarregar um dadodaemon derrubando-o Mais recentemente pode-se comentar o caso do viacuterus doApache que fazia com que um dado servidor Web ficasse enviando grande quanti-dade de dados pela rede conduzindo o traacutefego de rede a uma lentidatildeo insuportaacutevel

Coacutedigo Malicioso Coacutedigo malicioso como o nome jaacute sugere eacute um software criado com fi-nalidades mal intencionadas Nessa categoria incluem-se os coacutedigos natildeo autorizados(geralmente contidos dentro de um programa legiacutetimo) que efetuam accedilotildees desconhe-cidas e natildeo desejadas pelo usuaacuterio Tambeacutem satildeo incluiacutedos nessa categoria os pro-gramas legiacutetimos que foram alterados para efetuar accedilotildees natildeo desejadas pelo usuaacuterioOutro tipo de coacutedigo malicioso satildeo aqueles que destroem dados sem a intenccedilatildeo dousuaacuterio Alguns tipos de coacutedigo maliciosos merecem destaque

bull Cavalos de Troacuteia Um cavalo de troacuteia ou trojan horse ou apenas trojan eacute umprograma de computador alterado com finalidades iliacutecitas Por exemplo umatacante poderia substituir o binlogin para natildeo soacute autenticar usuaacuterioscomo tambeacutem armazenar essas senhas em um arquivo oculto

bull Viacuterus Viacuterus satildeo semelhantes a trojans dado que efetua accedilatildeo natildeo desejadapelo usuaacuterio Uma das diferenccedilas reside no fato que o viacuterus uma vez ativadoiraacute infectar outros arquivos locais A grosso modo viacuterus natildeo podem infectarmaacutequinas externas sem o auxiacutelio de uma pessoa

bull Vermes Um verme eacute um programa que pode infectar tanto a maacutequina localquanto maacutequinas remotas geralmente utilizando falhas de protocolos servi-ccedilos ou aplicativos

Como observado por (HATCH LEE KURTZ 2002) a maior parte dos programas per-niciosos existentes satildeo hiacutebridos dessas trecircs categorias Como exemplo tem-se oMelissa que era um cavalo de troacuteia (se passava por um e-mail que o usuaacuterio estivesse

Conceitos Baacutesicos 15

esperando) um viacuterus (infectava todos os arquivos locais de processamento de texto)e um verme (usava uma falha do Outlook para se propagar a todos os usuaacuterios naagenda de endereccedilos do usuaacuterio) Observe que no senso comum viacuterus e verme satildeogeralmente tomados com um uacutenico significado sendo usado apenas o termo ldquoviacuterusrdquoPor exemplo o viacuterus do Apache era a bem da verdade um verme (se propagavaa outras maacutequinas usando o Apache) mas como natildeo infectava outros arquivos noservidor natildeo poderia ser considerado necessariamente um viacuterusUm tipo de trojan extremamente perigoso satildeo os rootkits Como o nome sugereum rootkit eacute um aplicativo (ou um conjunto de aplicativos) com o objetivo de garantirpoderes de root ao invasor Geralmente consiste de aplicativos alterados a funcionarde forma especial pelo usuaacuterio ou versotildees alteradas do proacuteprio kernel

Exploits Exploits satildeo programas criados para explorar falhas advindas principalmente debugs nos daemons de serviccedilos Entre as falhas mais exploradas encontram-se bufferoverflow que consiste em estourar o buffer de entrada de um servidor forccedilando-o aestourar sua memoacuteria devolvendo um shell para o invasor

Ataques de Senhas Esse tipo de ataque consiste em tentar descobrir a senha de um oumais usuaacuterios por forccedila bruta ou usando teacutecnicas heuriacutesticas Em geral o invasor tentaobter uma coacutepia das senhas e efetuar um ataque de dicionaacuterio utilizando variaccedilotildeesde palavras em uma dada lista (o dicionaacuterio) tenta-se confrontar a senha do usuaacuteriocom essas variaccedilotildees ateacute descobrir uma que permita o acesso

Uma observaccedilatildeo final eacute que determinados ataques satildeo a bem da verdade tambeacutemferramentas de seguranccedila Assim por exemplo um scanner pode ser utilizado para verificarem que pontos um sistema estaacute vulneraacutevel Um programa de ataque de senha pode serutilizado para checar se os usuaacuterios natildeo estatildeo utilizando senhas faacuteceis o que facilitariauma invasatildeo Aleacutem disso alguns sistemas poderosos de detecccedilatildeo de intrusos satildeo tambeacutemsniffers Sniffers tambeacutem costumam ser utilizados para detectar problemas em uma rede

16 EDITORA - UFLAFAEPE - Seguranccedila Computacional

3USO DE CRIPTOGRAFIA

31 CONCEITOS BAacuteSICOS

A raacutepida evoluccedilatildeo das comunicaccedilotildees eletrocircnicas suscitou uma seacuterie de necessidadespara que se evitassem problemas de espionagem Entre essas necessidades destaca-seo uso de sistemas criptograacuteficos Mesmo em ambientes de telefonia celular por exemplo ouso de criptografia eacute cada vez mais utilizado

Como definido em (SCHNEIER 1996) a criptografia eacute a arte e ciecircncia de manter men-sagens seguras Ela envolve dois processos 1) criptografar (ou cifrar) uma mensagem Mtransformando-a em um texto cifrado C e 2) posteriormente decifrar (ou decriptografar) Cobtendo novamente a mensagem M como ilustrado na Figura 31

Decriptaccedilatildeoou

Decifragem

Encriptaccedilatildeoou

Cifragem

Mensagem (M) Mensagem (M)Texto Cifrado (C)

Figura 31 Processos Criptograacuteficos

A criptografia possui estrita relaccedilatildeo com a criptoanaacutelise arte e ciecircncia de quebrarmensagens cifradas O ramo da Matemaacutetica envolvendo criptografia e criptoanaacutelise eacute cha-mado de criptologia Como bem observado em (SCHNEIER 1996) modernos criptoloacutegosprecisam ter domiacutenio em Matemaacutetica Teoacuterica uma vez que eacute sobre ela que se sustenta acriptologia atual

O uso da criptografia eacute antigo sendo comuns o seu uso em guerras mesmo desde oimpeacuterio romano Esse uso era principalmente para manter a confidencialidade da mensa-gem garantindo que apenas emissor e receptor pudessem interpretaacute-la De certa maneiraa computaccedilatildeo foi fortemente financiada durante a Segunda Guerra Mundial para invenccedilatildeode dispositivos que pudessem decodificar as mensagens dos alematildees Desse esforccedilo in-clusive participou Alan Turing um dos mais importantes teoacutericos da Computaccedilatildeo e um dospais da Inteligecircncia Artificial

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 5: SEGURANÇA COMPUTACIONAL

LISTA DE TABELAS

31 Opccedilotildees Mais Usadas do gpg 21

51 Recursos Limitados pelo pam_limits 3752 Atributos de Arquivos 41

1INTRODUCcedilAtildeO

Este texto tem por principal objetivo instruir o seu leitor nos conceitos baacutesicos relativosagrave seguranccedila em redes de computadores sob o enfoque do sistema operacional LinuxEsses conceitos incluem os passos baacutesicos necessaacuterios agrave administraccedilatildeo segura de umservidor Linux mas natildeo somente Observe que ao processo de gerenciamento de umservidor daacute-se o nome de administraccedilatildeo de serviccedilos ou administraccedilatildeo de redes jaacuteabordados em (UCHOcircA SIMEONE SICA 2003)

O administrador de redes moderno natildeo pode relegar esse assunto a um segundoplano Com a evoluccedilatildeo das redes de computadores o nuacutemero de invasotildees tem crescidoassustadoramente Isso aumentou natildeo somente a necessidade de seguranccedila como tam-beacutem a necessidade de privacidade por parte dos sistemas e dos usuaacuterios Assim existeuma grande necessidade do administrador estar em constante atualizaccedilatildeo quanto agrave utiliza-ccedilatildeo de procedimentos para aumentar o niacutevel de seguranccedila dos sistemas computacionaissob seu domiacutenio

Como forma de subsidiar o leitor de uma fundamentaccedilatildeo teoacuterica sobre o assuntoo Capiacutetulo 2 apresenta uma discussatildeo sobre poliacuteticas de seguranccedila e poliacuteticas de usoAleacutem disso esse capiacutetulo aborda as questotildees legais envolvendo seguranccedila incluiacutendo-seo conceito de crime virtual Jaacute o Capiacutetulo 3 apresenta os conceitos baacutesicos de criptogra-fia apresentando a diferenciaccedilatildeo entre protocolo e algoritmo de criptografia Utilizando-seteacutecnicas criptograacuteficas esse capiacutetulo mostra ainda como fazer transporte seguro de dados

Seguranccedila por controle de acesso eacute abordada no Capiacutetulo 4 Entre outras teacutecnicasesse capiacutetulo orienta o leitor sobre o uso dos TCP-wrappers e firewall Jaacute teacutecnicas deadministraccedilatildeo segura de usuaacuterios satildeo vistas no Capiacutetulo 5 incluiacutendo-se o uso do PAMsudo e quotas em disco Por sua vez meacutetodos de prevenccedilatildeo e detecccedilatildeo de intrusos satildeoapresentados no Capiacutetulo 6

Este texto foi escrito pensando em um usuaacuterio intermediaacuterio do sistema operacionalLinux (ou equivalente) Ele foi produzido principalmente a partir da experiecircncia adquiridapelos autores em administraccedilatildeo de laboratoacuterios e uso de diversos sistemas operacionaisEssa experiecircncia em administraccedilatildeo de sistemas foi enriquecida pela leitura de diversos ma-teriais destacando-se principalmente (NEMETH et al 1995) (NEMETH et al 2001) (STAN-

8 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FIELD SMITH 2001) (WIRZENIUS OJA STAFFORD 2001) (FRAMPTON 1999) (MANN MIT-

CHELL 2000) (ANONYMOUS 2000) (KIRCH DAWSON 2000) (HATCH LEE KURTZ 2002)(SCHNEIER 1996) A essas referecircncias devem ser acrescidos vaacuterios Howtos1 disponibili-zados pela The Linux Documentation Project 2 Entre esses Howtos destacam-se (FENZI2002) (BURGISS 2002a) e (BURGISS 2002b) Eacute importante comentar que este texto eacute ape-nas uma apostila anterior denominada ldquoSeguranccedila em Redes e Criptografiardquo deste mesmoautor (UCHOcircA 2003)

Joaquim Quinteiro Uchocirca autor deste texto eacute licenciado em Matemaacutetica pela Univer-sidade Federal de Mato Grosso (UFMT) com mestrado em Ciecircncia da Computaccedilatildeo pelaUniversidade Federal de Satildeo Carlos (UFSCar) Antes de adotar o Linux em 1998 jaacute haviatrabalhado com Solaris MS-DOS (lembram-se do CISNE) e OS2 passando obviamentepelos Windows 20 Windows 31 (e 311) e Windows 95 Segundo amigos ele jaacute superou otrauma do uso desses trecircs uacuteltimos SOs() apesar de ter desenvolvido aversatildeo a alguns ti-pos de janelas Foi o responsaacutevel pela instalaccedilatildeo do primeiro laboratoacuterio baseado em Linuxna UFLA e um dos maiores disseminadores desse sistema operacional na universidadeProfessor da UFLA desde 1997 atua principalmente nas aacutereas de Teoria da Computaccedilatildeo eInteligecircncia Artificial

O autor espera que a escrita desta obra contribua para disseminar ainda mais o usode Linux no Brasil bem como para um ambiente computacional mais seguro desejando umbom aprendizado ao leitor

1Um Howto eacute um pequeno guia que ensina um usuaacuterio a configurar um serviccedilo ou fazer uma dada tarefa2The Linux Documentation Project httpwwwtldporg A traduccedilatildeo de parte dos documentos

desse projeto podem ser encontrados em httpbrtldporg

2CONCEITOS BAacuteSICOS

21 COMENTAacuteRIOS INICIAIS

O que eacute seguranccedila computacional Esse termo eacute muito utilizado atualmente massem uma consciecircncia exata a que ele se refere Isso ocorre principalmente porque esseconceito eacute relativo ao ambiente em que eacute utilizado O que eacute seguro para uma instituiccedilatildeopode natildeo o ser para outra Assim eacute preciso estar atento a qual siginificado o termo estaacutesendo utilizado

Dada a relatividade do termo eacute preciso refletir sobre quais itens devem ser levados emconta ao se abordar a questatildeo da seguranccedila computacional Em geral eacute possiacutevel destacaros seguintes elementos de um ambiente computacional sob o ponto de vista da seguranccedila

Confianccedila eacute possiacutevel confiar na disponibilidade do sistema os dados armazenados vatildeoestar acessiacuteveis quando forem necessaacuterios os mecanismos de backups satildeo sufici-entes para garantir que as informaccedilotildees armazenadas possam ser recuperadas comfacilidade em caso de problemas

Integridade os dados recuperados satildeo confiaacuteveis como garantir que as informaccedilotildeesnatildeo foram alteradas na fonte ou no traacutefego de dados como garantir que o que foiacessado eacute idecircntico ao que foi armazenado

Confidencialidade como certificar que os dados soacute podem ser acessados por quem dedireito como garantir a privacidade dos usuaacuterios e dos dados como impedir aespionagem de informaccedilotildees

Essas questotildees iratildeo chamar a necessidade do administrador estar refletindo ldquoo queeacute seguranccedila computacional em meu ambienterdquo A essa questatildeo logo viraacute outra talvez demaior importacircncia qual o item mais importante para a seguranccedila computacional

bull firewalls

bull backups

bull anti-sniffers

bull tunelamento e criptografia

10 EDITORA - UFLAFAEPE - Seguranccedila Computacional

A resposta a essa pergunta eacute extremamente simples o elemento mais importantepara se garantir seguranccedila em uma rede de computadores eacute o estabelecimento de umapoliacutetica de seguranccedila Enquanto a instituiccedilatildeo natildeo define o que eacute mais importante para oestabelecimento da seguranccedila computacional em seu ambiente as atitudes satildeo tomadassem a devida consciecircncia e sem garantir um miacutenimo desejaacutevel de seguranccedila

Uma Poliacutetica de Seguranccedila incorpora os resultados de uma anaacutelise de riscoem um plano que providencia procedimentos para gerenciar um ambiente com-putacional Em particular ela fornece ao administrador do sistema linhas ope-racionais para o ambiente tais como regras para o gerenciamento de contas deusuaacuterios procedimentos de instalaccedilatildeo de sistemas

(MANN MITCHELL 2000)

Uma poliacutetica de seguranccedila eacute um conjunto de leis regras e praacuteticas que re-gulam como uma organizaccedilatildeo gerencia protege e distribui suas informaccedilotildees erecursos Um dado sistema eacute considerado seguro em relaccedilatildeo a uma poliacutetica deseguranccedila caso garanta o cumprimento das leis regras e praacuteticas definidas nessapoliacutetica

(SOARES LEMOS COLCHER 1995)

Eacute a poliacutetica de seguranccedila que vai deixar claro o que deve ter acesso restrito e o quepode ser liberado sem problemas Eacute ela que define quais satildeo os itens que precisam serpreservados bem como quais satildeo as pessoas que tem acesso a determinados recursosSem uma poliacutetica de seguranccedila clara natildeo se sabe o que vai se proteger nem porque ouqual a melhor forma

Uma boa poliacutetica de seguranccedila iraacute definir por exemplo como seraacute estabelecida apoliacutetica de uso Essa poliacutetica de uso eacute responsaacutevel por deixar claro o que o usuaacuterio podee natildeo pode fazer com determinados recursos Em geral tal poliacutetica eacute um documento a serassinado pelo usuaacuterio em questatildeo

211 Poliacuteticas de Seguranccedila e Poliacuteticas de Uso

Eacute inuacutetil elaborar uma poliacutetica de seguranccedila que sirva apenas de enfeite na paredeAssim uma poliacutetica de seguranccedila deve possuir as seguintes caracteriacutesticas

bull ser implementaacutevel atraveacutes de procedimentos de administraccedilatildeo de sistema regrasde uso ou outros meacutetodos apropriados

bull ser reforccedilada com ferramentas de seguranccedila e sanccedilotildees

bull definir claramente as aacutereas de responsabilidade para usuaacuterios e administradoresdo sistema

Conceitos Baacutesicos 11

Dessa maneira atentando-se para essas diretrizes eacute possiacutevel elaborar uma poliacuteticade seguranccedila vaacutelida para o ambiente em questatildeo Aleacutem disso eacute imprescindiacutevel que apoliacutetica de seguranccedila atente-se para os seguintes itens

Seguranccedila fiacutesica como os equipamentos da instituiccedilatildeo em questatildeo seratildeo protegidosComo garantir a integridade fiacutesica dos dados Como garantir que natildeo haveraacute acessofiacutesico a dados que deveriam estar protegidos Esse item eacute mais importante do que seimagina de nada adianta senhas de BIOS ou ultra-elaboradas se qualquer funcionaacute-rio receacutem demitido pode roubar o HD do servidor para vender ao concorrente

Seguranccedila loacutegica como garantir integridade loacutegica dos dados Como os dados da ins-tituiccedilatildeo em questatildeo seratildeo protegidos Como garantir que natildeo haveraacute acesso loacutegicoindevido a dados Quais satildeo os dados mais importantes Os casos de invasotildeestem-se tornado cada vez mais frequumlentes e eacute imprescindiacutevel estar atento a isso

Privacidade o que fazer para proteger a privacidade dos usuaacuterios A instituiccedilatildeo iraacute pro-teger essa privacidade Observe que a instituiccedilatildeo deve estar atenta aos aspectoslegais dessa questatildeo

Legalidade de Software como garantir um bom uso dos recursos impedindo a piratariaA responsabilidade pelos aplicativos instalados eacute de quem da empresa do usuaacuterioIsso precisa estar claro

Em geral quando se trata de seguranccedila computacional deve-se adotar a poliacutetica domenor privileacutegio ou seja liberar apenas os recursos necessaacuterios ao usuaacuterio Observe queem alguns ambientes essa eacute uma questatildeo altamente subjetiva Mas deve-se sempre terem mente que o que natildeo eacute expressamente permitido deve ser proibido

Aleacutem disso eacute imprescindiacutevel que o administrador pratique vigilacircncia e perseveranccedilaassumindo sempre que os mal-intencionados sabem mais que ele Tenha em mente quea adoccedilatildeo de uma poliacutetica de seguranccedila iraacute na maioria das vezes implicar em perda deperformance ou conveniecircncia do usuaacuterio Alguns serviccedilos devem ser evitados e isso geraproblemas para usuaacuterios mais inexperientes Aleacutem disso o traacutefego criptografado ocupamaior largura de banda diminuindo a velocidade de transmissatildeo de dados Assim deve-sepesar os proacutes e contras de qualquer atitude envolvendo seguranccedila antes de implementaacute-la

Em termos praacuteticos como eacute expressa a poliacutetica de seguranccedila O leitor deve estarpensando em documentos impressos Entretanto natildeo se deve esquecer que a poliacutetica natildeoeacute apenas papel ela envolve leis regras e praacuteticas Dependendo do ambiente eacute oacutebvioa necessidade de documentaccedilatildeo mas isso natildeo eacute a uacutenica forma de criar uma poliacutetica deseguranccedila

Em geral a poliacutetica de seguranccedila documentada da maior parte das instituiccedilotildees con-siste das normas de uso dos recursos e uma poliacutetica de uso A poliacutetica de uso eacute um docu-mento que deixa claro o que o usuaacuterio pode e natildeo pode fazer com os recursos dentro da

12 EDITORA - UFLAFAEPE - Seguranccedila Computacional

instituiccedilatildeo Para garantir validade juriacutedica desse documento eacute imprescindiacutevel a sua valida-ccedilatildeo pela assinatura do usuaacuterio ou em contrato coletivo de trabalho

22 CRIME VIRTUAL

Outra questatildeo fundamental que estaacute relacionada agrave questatildeo da seguranccedila computacio-nal eacute o conceito de crime virtual Nesse sentido eacute imprescindiacutevel distinguir ao menos emtermos praacuteticos os conceitos de crime de computador e crime por computador Essadistinccedilatildeo permite compreender melhor quais tipos de crime satildeo cobertos pela lei e quaisnatildeo o satildeo

Assim crime por computadores satildeo os crimes tradicionais cometidos por meios com-putacionais Dessa maneira por exemplo tipificam-se o roubo ou o assassinato por compu-tador O leitor atento pode estar um pouco assustado agora imaginando como poderia serpossiacutevel um assassinato por computador esquecendo-se que o assassino poderia invadir osistema computacional de um hospital por exemplo e alterar a medicaccedilatildeo de um pacientepara doses fortes de substacircncias a que ele tenha alergia

Eacute comum portanto a ocorrecircncia de crimes tradicionais efetuados por computadorsem que o autor desses crimes esteja atento ao fato de estar cometendo um crime jaacuteprevisto na lei tradicional O envio de determinados tipos de SPAMs por exemplo jaacute estaacuteprevisto na lei e pode render detenccedilatildeo de 3 meses a 1 ano de detenccedilatildeo ou multa conformeo Art 146 do Coacutedigo Penal (BRASIL 1940) Enviar e-mail com ameaccedila de agressatildeo poderender pena de 1 a 6 meses de detenccedilatildeo ou multa de acordo com o Art 147 Assimobserve que apenas modificou-se o meio o crime continua tipificado De forma semelhantesatildeo tipificados crimes de invasatildeo de privacidade envio de viacuterus de computador pedofiliaou montagem de sites com receitas de bombas ou similares

Por outro lado existem aqueles crimes que soacute existem no ambiente computacionalnatildeo existindo equivalente no ambiente natildeo tecnoloacutegico satildeo os crimes de computadorNesse contexto por exemplo o Brasil natildeo tem uma legislaccedilatildeo contra invasatildeo de sitesQuando o invasor natildeo faz uso de informaccedilotildees obtidas com essa invasatildeo (o que poderiacaracterizar espionagem industrial) ou natildeo faz alteraccedilotildees dos dados (o que poderia carac-terizar crime de dano vandalismo ou pichaccedilatildeo) fica difiacutecil caracterizar a invasatildeo como umacontravenccedilatildeo penal

Alguns paiacuteses possuem legislaccedilatildeo forte a esse respeito como eacute o caso dos EUA eda China No Brasil paraiacuteso dos invasores essa discussatildeo estaacute apenas no iniacutecio Mesmoassim o administrador que teve seus sistemas invadidos deve verificar os mecanismoslegais a que pode recorrer de forma a punir os autores da faccedilanha

Nesse contexto inclusive cabe chamar a atenccedilatildeo para os movimentos Hackers e Ci-berativismo Cabe tambeacutem chamar a atenccedilatildeo para o fato que o termo hacker natildeo costuma

Conceitos Baacutesicos 13

ser utilizado com sentido negativo em meio tecnoloacutegico Nesse ambiente utiliza-se o termocracker para os hackers que invadem sistemas com finalidades iliacutecitas Na cultura geralentretanto o termo hacker eacute tomado de forma indistinta geralmente com significado pejo-rativo para invasor Para uma abordagem mais formal sobre essa discussatildeo ver (UCHOcircA2003)

23 ATAQUES MAIS COMUNS

Como um servidor encontra-se geralmente acessiacutevel via internet e em tempo integralele eacute mais suscetiacutevel a ataques de todos os tipos e formas que uma estaccedilatildeo de trabalhoDependendo de sua configuraccedilatildeo entretanto eacute possiacutevel tornaacute-lo tatildeo ou mais seguro queestaccedilotildees de trabalho com acesso miacutenimo agrave internet Com a finalidade de melhor situar oleitor segue-se uma relaccedilatildeo dos principais tipos de ataque e termos correlatos

Footprinting Por footprinting entende-se a tarefa de coletar informaccedilotildees sobre um sis-tema alvo Essa coleta eacute feita por vias tradicionais e puacuteblicas como uso do comandofinger leitura de paacuteginas do site para obter dados interessantes etc Geralmenteo invasor iraacute verificar quem eacute o responsaacutevel pela admnisitraccedilatildeo do sistema uma vezque invadida a conta desse usuaacuterio eacute possiacutevel obter dados mais significativos

Scanning Um scanner eacute um utilitaacuterio que verifica vulnerabilidades Pode ser um scannerde sistema quando checa vulnerabilidades na maacutequina local (erros no etcpasswdpermissatildeo incorreta de arquivos etc) ou pode ser um scanner de rede quando fazvarredura de portas de redes verificando quais estatildeo abertas e principalmente quaisestatildeo mais vulneraacuteveis O objetivo principal desse tipo de ataque eacute descobrir falhas deseguranccedila devido a bugs em serviccedilos de rede ou ausecircncia de proteccedilatildeo para serviccedilosinternos

Sniffers Principalmente dentro de uma rede fiacutesica onde eacute facilitada um ataque muito uti-lizado eacute a espionagem eletrocircnica com o uso de sniffer Um sniffer eacute um aplicativoque fica ldquoescutandordquo todos os pacotes de dados que trafegam por uma dada placa derede Eacute importante observar que em vaacuterias topologias de rede um pacote passa porvaacuterias placas entre a origem e o destino Aleacutem disso cabe observar que para queinterceptar mensagens destinadas agrave outras maacutequinas a estaccedilatildeo deve colocar suainterface de rede em ldquomodo promiacutescuordquo1 Esse ataque objetiva principalmente a cap-tura de senhas de usuaacuterios internos uma vez que isso facilita ao invasor a entrada nosistema para detecccedilatildeo de vulnerabilidades Outro objetivo desse ataque eacute a capturade informaccedilotildees confidenciais em tracircnsito na rede

1Por ldquomodo promiacutescuordquo entende-se a configuraccedilatildeo de uma interface de rede em que ela captura natildeoapenas os pacotes de rede direcionados a ela mas tambeacutem os destinados a outras estaccedilotildees em um mesmosegmento de rede

14 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Spoofing Por spoofing entende-se a tarefa de fazer uma maacutequina se passar por outraforjando por exemplo pacotes IPs Em geral o usuaacuterio iraacute tentar bloquear o enviode pacotes de dados de uma maacutequina tentando se passar por ela Uma conexatildeoSSH com um maacutequina usando spoof iria acusar o ataque do Man-In-The-Middle jaacutecomentado em (UCHOcircA SIMEONE SICA 2003) Caso o administrador use transportecriptografado de dados e senhas e esteja atento agraves chaves utilizadas esse ataquedificilmente iraacute comprometer a integridade dos dados e serviccedilos

Denial of Service (DoS) Pouca atenccedilatildeo tinha sido dado aos ataques de negaccedilatildeo de ser-viccedilo ateacute a derrubada de servidores importantes como Amazon Yahoo e mesmo UOLComo pode ser subentendido o DoS eacute um ataque que busca derrubar um serviccediloou mesmo um servidor inteiro Ultimamente tem sido utilizado do DDoS (DistributedDoS) onde um atacante utiliza vaacuterias maacutequinas ldquozumbisrdquo para enviar inuacutemeras requi-siccedilotildees ao mesmo tempo e de forma sincronizada a um dado servidor Isso acabapor ou consumir grande parte da largura de banda de rede ou sobrecarregar um dadodaemon derrubando-o Mais recentemente pode-se comentar o caso do viacuterus doApache que fazia com que um dado servidor Web ficasse enviando grande quanti-dade de dados pela rede conduzindo o traacutefego de rede a uma lentidatildeo insuportaacutevel

Coacutedigo Malicioso Coacutedigo malicioso como o nome jaacute sugere eacute um software criado com fi-nalidades mal intencionadas Nessa categoria incluem-se os coacutedigos natildeo autorizados(geralmente contidos dentro de um programa legiacutetimo) que efetuam accedilotildees desconhe-cidas e natildeo desejadas pelo usuaacuterio Tambeacutem satildeo incluiacutedos nessa categoria os pro-gramas legiacutetimos que foram alterados para efetuar accedilotildees natildeo desejadas pelo usuaacuterioOutro tipo de coacutedigo malicioso satildeo aqueles que destroem dados sem a intenccedilatildeo dousuaacuterio Alguns tipos de coacutedigo maliciosos merecem destaque

bull Cavalos de Troacuteia Um cavalo de troacuteia ou trojan horse ou apenas trojan eacute umprograma de computador alterado com finalidades iliacutecitas Por exemplo umatacante poderia substituir o binlogin para natildeo soacute autenticar usuaacuterioscomo tambeacutem armazenar essas senhas em um arquivo oculto

bull Viacuterus Viacuterus satildeo semelhantes a trojans dado que efetua accedilatildeo natildeo desejadapelo usuaacuterio Uma das diferenccedilas reside no fato que o viacuterus uma vez ativadoiraacute infectar outros arquivos locais A grosso modo viacuterus natildeo podem infectarmaacutequinas externas sem o auxiacutelio de uma pessoa

bull Vermes Um verme eacute um programa que pode infectar tanto a maacutequina localquanto maacutequinas remotas geralmente utilizando falhas de protocolos servi-ccedilos ou aplicativos

Como observado por (HATCH LEE KURTZ 2002) a maior parte dos programas per-niciosos existentes satildeo hiacutebridos dessas trecircs categorias Como exemplo tem-se oMelissa que era um cavalo de troacuteia (se passava por um e-mail que o usuaacuterio estivesse

Conceitos Baacutesicos 15

esperando) um viacuterus (infectava todos os arquivos locais de processamento de texto)e um verme (usava uma falha do Outlook para se propagar a todos os usuaacuterios naagenda de endereccedilos do usuaacuterio) Observe que no senso comum viacuterus e verme satildeogeralmente tomados com um uacutenico significado sendo usado apenas o termo ldquoviacuterusrdquoPor exemplo o viacuterus do Apache era a bem da verdade um verme (se propagavaa outras maacutequinas usando o Apache) mas como natildeo infectava outros arquivos noservidor natildeo poderia ser considerado necessariamente um viacuterusUm tipo de trojan extremamente perigoso satildeo os rootkits Como o nome sugereum rootkit eacute um aplicativo (ou um conjunto de aplicativos) com o objetivo de garantirpoderes de root ao invasor Geralmente consiste de aplicativos alterados a funcionarde forma especial pelo usuaacuterio ou versotildees alteradas do proacuteprio kernel

Exploits Exploits satildeo programas criados para explorar falhas advindas principalmente debugs nos daemons de serviccedilos Entre as falhas mais exploradas encontram-se bufferoverflow que consiste em estourar o buffer de entrada de um servidor forccedilando-o aestourar sua memoacuteria devolvendo um shell para o invasor

Ataques de Senhas Esse tipo de ataque consiste em tentar descobrir a senha de um oumais usuaacuterios por forccedila bruta ou usando teacutecnicas heuriacutesticas Em geral o invasor tentaobter uma coacutepia das senhas e efetuar um ataque de dicionaacuterio utilizando variaccedilotildeesde palavras em uma dada lista (o dicionaacuterio) tenta-se confrontar a senha do usuaacuteriocom essas variaccedilotildees ateacute descobrir uma que permita o acesso

Uma observaccedilatildeo final eacute que determinados ataques satildeo a bem da verdade tambeacutemferramentas de seguranccedila Assim por exemplo um scanner pode ser utilizado para verificarem que pontos um sistema estaacute vulneraacutevel Um programa de ataque de senha pode serutilizado para checar se os usuaacuterios natildeo estatildeo utilizando senhas faacuteceis o que facilitariauma invasatildeo Aleacutem disso alguns sistemas poderosos de detecccedilatildeo de intrusos satildeo tambeacutemsniffers Sniffers tambeacutem costumam ser utilizados para detectar problemas em uma rede

16 EDITORA - UFLAFAEPE - Seguranccedila Computacional

3USO DE CRIPTOGRAFIA

31 CONCEITOS BAacuteSICOS

A raacutepida evoluccedilatildeo das comunicaccedilotildees eletrocircnicas suscitou uma seacuterie de necessidadespara que se evitassem problemas de espionagem Entre essas necessidades destaca-seo uso de sistemas criptograacuteficos Mesmo em ambientes de telefonia celular por exemplo ouso de criptografia eacute cada vez mais utilizado

Como definido em (SCHNEIER 1996) a criptografia eacute a arte e ciecircncia de manter men-sagens seguras Ela envolve dois processos 1) criptografar (ou cifrar) uma mensagem Mtransformando-a em um texto cifrado C e 2) posteriormente decifrar (ou decriptografar) Cobtendo novamente a mensagem M como ilustrado na Figura 31

Decriptaccedilatildeoou

Decifragem

Encriptaccedilatildeoou

Cifragem

Mensagem (M) Mensagem (M)Texto Cifrado (C)

Figura 31 Processos Criptograacuteficos

A criptografia possui estrita relaccedilatildeo com a criptoanaacutelise arte e ciecircncia de quebrarmensagens cifradas O ramo da Matemaacutetica envolvendo criptografia e criptoanaacutelise eacute cha-mado de criptologia Como bem observado em (SCHNEIER 1996) modernos criptoloacutegosprecisam ter domiacutenio em Matemaacutetica Teoacuterica uma vez que eacute sobre ela que se sustenta acriptologia atual

O uso da criptografia eacute antigo sendo comuns o seu uso em guerras mesmo desde oimpeacuterio romano Esse uso era principalmente para manter a confidencialidade da mensa-gem garantindo que apenas emissor e receptor pudessem interpretaacute-la De certa maneiraa computaccedilatildeo foi fortemente financiada durante a Segunda Guerra Mundial para invenccedilatildeode dispositivos que pudessem decodificar as mensagens dos alematildees Desse esforccedilo in-clusive participou Alan Turing um dos mais importantes teoacutericos da Computaccedilatildeo e um dospais da Inteligecircncia Artificial

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 6: SEGURANÇA COMPUTACIONAL

1INTRODUCcedilAtildeO

Este texto tem por principal objetivo instruir o seu leitor nos conceitos baacutesicos relativosagrave seguranccedila em redes de computadores sob o enfoque do sistema operacional LinuxEsses conceitos incluem os passos baacutesicos necessaacuterios agrave administraccedilatildeo segura de umservidor Linux mas natildeo somente Observe que ao processo de gerenciamento de umservidor daacute-se o nome de administraccedilatildeo de serviccedilos ou administraccedilatildeo de redes jaacuteabordados em (UCHOcircA SIMEONE SICA 2003)

O administrador de redes moderno natildeo pode relegar esse assunto a um segundoplano Com a evoluccedilatildeo das redes de computadores o nuacutemero de invasotildees tem crescidoassustadoramente Isso aumentou natildeo somente a necessidade de seguranccedila como tam-beacutem a necessidade de privacidade por parte dos sistemas e dos usuaacuterios Assim existeuma grande necessidade do administrador estar em constante atualizaccedilatildeo quanto agrave utiliza-ccedilatildeo de procedimentos para aumentar o niacutevel de seguranccedila dos sistemas computacionaissob seu domiacutenio

Como forma de subsidiar o leitor de uma fundamentaccedilatildeo teoacuterica sobre o assuntoo Capiacutetulo 2 apresenta uma discussatildeo sobre poliacuteticas de seguranccedila e poliacuteticas de usoAleacutem disso esse capiacutetulo aborda as questotildees legais envolvendo seguranccedila incluiacutendo-seo conceito de crime virtual Jaacute o Capiacutetulo 3 apresenta os conceitos baacutesicos de criptogra-fia apresentando a diferenciaccedilatildeo entre protocolo e algoritmo de criptografia Utilizando-seteacutecnicas criptograacuteficas esse capiacutetulo mostra ainda como fazer transporte seguro de dados

Seguranccedila por controle de acesso eacute abordada no Capiacutetulo 4 Entre outras teacutecnicasesse capiacutetulo orienta o leitor sobre o uso dos TCP-wrappers e firewall Jaacute teacutecnicas deadministraccedilatildeo segura de usuaacuterios satildeo vistas no Capiacutetulo 5 incluiacutendo-se o uso do PAMsudo e quotas em disco Por sua vez meacutetodos de prevenccedilatildeo e detecccedilatildeo de intrusos satildeoapresentados no Capiacutetulo 6

Este texto foi escrito pensando em um usuaacuterio intermediaacuterio do sistema operacionalLinux (ou equivalente) Ele foi produzido principalmente a partir da experiecircncia adquiridapelos autores em administraccedilatildeo de laboratoacuterios e uso de diversos sistemas operacionaisEssa experiecircncia em administraccedilatildeo de sistemas foi enriquecida pela leitura de diversos ma-teriais destacando-se principalmente (NEMETH et al 1995) (NEMETH et al 2001) (STAN-

8 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FIELD SMITH 2001) (WIRZENIUS OJA STAFFORD 2001) (FRAMPTON 1999) (MANN MIT-

CHELL 2000) (ANONYMOUS 2000) (KIRCH DAWSON 2000) (HATCH LEE KURTZ 2002)(SCHNEIER 1996) A essas referecircncias devem ser acrescidos vaacuterios Howtos1 disponibili-zados pela The Linux Documentation Project 2 Entre esses Howtos destacam-se (FENZI2002) (BURGISS 2002a) e (BURGISS 2002b) Eacute importante comentar que este texto eacute ape-nas uma apostila anterior denominada ldquoSeguranccedila em Redes e Criptografiardquo deste mesmoautor (UCHOcircA 2003)

Joaquim Quinteiro Uchocirca autor deste texto eacute licenciado em Matemaacutetica pela Univer-sidade Federal de Mato Grosso (UFMT) com mestrado em Ciecircncia da Computaccedilatildeo pelaUniversidade Federal de Satildeo Carlos (UFSCar) Antes de adotar o Linux em 1998 jaacute haviatrabalhado com Solaris MS-DOS (lembram-se do CISNE) e OS2 passando obviamentepelos Windows 20 Windows 31 (e 311) e Windows 95 Segundo amigos ele jaacute superou otrauma do uso desses trecircs uacuteltimos SOs() apesar de ter desenvolvido aversatildeo a alguns ti-pos de janelas Foi o responsaacutevel pela instalaccedilatildeo do primeiro laboratoacuterio baseado em Linuxna UFLA e um dos maiores disseminadores desse sistema operacional na universidadeProfessor da UFLA desde 1997 atua principalmente nas aacutereas de Teoria da Computaccedilatildeo eInteligecircncia Artificial

O autor espera que a escrita desta obra contribua para disseminar ainda mais o usode Linux no Brasil bem como para um ambiente computacional mais seguro desejando umbom aprendizado ao leitor

1Um Howto eacute um pequeno guia que ensina um usuaacuterio a configurar um serviccedilo ou fazer uma dada tarefa2The Linux Documentation Project httpwwwtldporg A traduccedilatildeo de parte dos documentos

desse projeto podem ser encontrados em httpbrtldporg

2CONCEITOS BAacuteSICOS

21 COMENTAacuteRIOS INICIAIS

O que eacute seguranccedila computacional Esse termo eacute muito utilizado atualmente massem uma consciecircncia exata a que ele se refere Isso ocorre principalmente porque esseconceito eacute relativo ao ambiente em que eacute utilizado O que eacute seguro para uma instituiccedilatildeopode natildeo o ser para outra Assim eacute preciso estar atento a qual siginificado o termo estaacutesendo utilizado

Dada a relatividade do termo eacute preciso refletir sobre quais itens devem ser levados emconta ao se abordar a questatildeo da seguranccedila computacional Em geral eacute possiacutevel destacaros seguintes elementos de um ambiente computacional sob o ponto de vista da seguranccedila

Confianccedila eacute possiacutevel confiar na disponibilidade do sistema os dados armazenados vatildeoestar acessiacuteveis quando forem necessaacuterios os mecanismos de backups satildeo sufici-entes para garantir que as informaccedilotildees armazenadas possam ser recuperadas comfacilidade em caso de problemas

Integridade os dados recuperados satildeo confiaacuteveis como garantir que as informaccedilotildeesnatildeo foram alteradas na fonte ou no traacutefego de dados como garantir que o que foiacessado eacute idecircntico ao que foi armazenado

Confidencialidade como certificar que os dados soacute podem ser acessados por quem dedireito como garantir a privacidade dos usuaacuterios e dos dados como impedir aespionagem de informaccedilotildees

Essas questotildees iratildeo chamar a necessidade do administrador estar refletindo ldquoo queeacute seguranccedila computacional em meu ambienterdquo A essa questatildeo logo viraacute outra talvez demaior importacircncia qual o item mais importante para a seguranccedila computacional

bull firewalls

bull backups

bull anti-sniffers

bull tunelamento e criptografia

10 EDITORA - UFLAFAEPE - Seguranccedila Computacional

A resposta a essa pergunta eacute extremamente simples o elemento mais importantepara se garantir seguranccedila em uma rede de computadores eacute o estabelecimento de umapoliacutetica de seguranccedila Enquanto a instituiccedilatildeo natildeo define o que eacute mais importante para oestabelecimento da seguranccedila computacional em seu ambiente as atitudes satildeo tomadassem a devida consciecircncia e sem garantir um miacutenimo desejaacutevel de seguranccedila

Uma Poliacutetica de Seguranccedila incorpora os resultados de uma anaacutelise de riscoem um plano que providencia procedimentos para gerenciar um ambiente com-putacional Em particular ela fornece ao administrador do sistema linhas ope-racionais para o ambiente tais como regras para o gerenciamento de contas deusuaacuterios procedimentos de instalaccedilatildeo de sistemas

(MANN MITCHELL 2000)

Uma poliacutetica de seguranccedila eacute um conjunto de leis regras e praacuteticas que re-gulam como uma organizaccedilatildeo gerencia protege e distribui suas informaccedilotildees erecursos Um dado sistema eacute considerado seguro em relaccedilatildeo a uma poliacutetica deseguranccedila caso garanta o cumprimento das leis regras e praacuteticas definidas nessapoliacutetica

(SOARES LEMOS COLCHER 1995)

Eacute a poliacutetica de seguranccedila que vai deixar claro o que deve ter acesso restrito e o quepode ser liberado sem problemas Eacute ela que define quais satildeo os itens que precisam serpreservados bem como quais satildeo as pessoas que tem acesso a determinados recursosSem uma poliacutetica de seguranccedila clara natildeo se sabe o que vai se proteger nem porque ouqual a melhor forma

Uma boa poliacutetica de seguranccedila iraacute definir por exemplo como seraacute estabelecida apoliacutetica de uso Essa poliacutetica de uso eacute responsaacutevel por deixar claro o que o usuaacuterio podee natildeo pode fazer com determinados recursos Em geral tal poliacutetica eacute um documento a serassinado pelo usuaacuterio em questatildeo

211 Poliacuteticas de Seguranccedila e Poliacuteticas de Uso

Eacute inuacutetil elaborar uma poliacutetica de seguranccedila que sirva apenas de enfeite na paredeAssim uma poliacutetica de seguranccedila deve possuir as seguintes caracteriacutesticas

bull ser implementaacutevel atraveacutes de procedimentos de administraccedilatildeo de sistema regrasde uso ou outros meacutetodos apropriados

bull ser reforccedilada com ferramentas de seguranccedila e sanccedilotildees

bull definir claramente as aacutereas de responsabilidade para usuaacuterios e administradoresdo sistema

Conceitos Baacutesicos 11

Dessa maneira atentando-se para essas diretrizes eacute possiacutevel elaborar uma poliacuteticade seguranccedila vaacutelida para o ambiente em questatildeo Aleacutem disso eacute imprescindiacutevel que apoliacutetica de seguranccedila atente-se para os seguintes itens

Seguranccedila fiacutesica como os equipamentos da instituiccedilatildeo em questatildeo seratildeo protegidosComo garantir a integridade fiacutesica dos dados Como garantir que natildeo haveraacute acessofiacutesico a dados que deveriam estar protegidos Esse item eacute mais importante do que seimagina de nada adianta senhas de BIOS ou ultra-elaboradas se qualquer funcionaacute-rio receacutem demitido pode roubar o HD do servidor para vender ao concorrente

Seguranccedila loacutegica como garantir integridade loacutegica dos dados Como os dados da ins-tituiccedilatildeo em questatildeo seratildeo protegidos Como garantir que natildeo haveraacute acesso loacutegicoindevido a dados Quais satildeo os dados mais importantes Os casos de invasotildeestem-se tornado cada vez mais frequumlentes e eacute imprescindiacutevel estar atento a isso

Privacidade o que fazer para proteger a privacidade dos usuaacuterios A instituiccedilatildeo iraacute pro-teger essa privacidade Observe que a instituiccedilatildeo deve estar atenta aos aspectoslegais dessa questatildeo

Legalidade de Software como garantir um bom uso dos recursos impedindo a piratariaA responsabilidade pelos aplicativos instalados eacute de quem da empresa do usuaacuterioIsso precisa estar claro

Em geral quando se trata de seguranccedila computacional deve-se adotar a poliacutetica domenor privileacutegio ou seja liberar apenas os recursos necessaacuterios ao usuaacuterio Observe queem alguns ambientes essa eacute uma questatildeo altamente subjetiva Mas deve-se sempre terem mente que o que natildeo eacute expressamente permitido deve ser proibido

Aleacutem disso eacute imprescindiacutevel que o administrador pratique vigilacircncia e perseveranccedilaassumindo sempre que os mal-intencionados sabem mais que ele Tenha em mente quea adoccedilatildeo de uma poliacutetica de seguranccedila iraacute na maioria das vezes implicar em perda deperformance ou conveniecircncia do usuaacuterio Alguns serviccedilos devem ser evitados e isso geraproblemas para usuaacuterios mais inexperientes Aleacutem disso o traacutefego criptografado ocupamaior largura de banda diminuindo a velocidade de transmissatildeo de dados Assim deve-sepesar os proacutes e contras de qualquer atitude envolvendo seguranccedila antes de implementaacute-la

Em termos praacuteticos como eacute expressa a poliacutetica de seguranccedila O leitor deve estarpensando em documentos impressos Entretanto natildeo se deve esquecer que a poliacutetica natildeoeacute apenas papel ela envolve leis regras e praacuteticas Dependendo do ambiente eacute oacutebvioa necessidade de documentaccedilatildeo mas isso natildeo eacute a uacutenica forma de criar uma poliacutetica deseguranccedila

Em geral a poliacutetica de seguranccedila documentada da maior parte das instituiccedilotildees con-siste das normas de uso dos recursos e uma poliacutetica de uso A poliacutetica de uso eacute um docu-mento que deixa claro o que o usuaacuterio pode e natildeo pode fazer com os recursos dentro da

12 EDITORA - UFLAFAEPE - Seguranccedila Computacional

instituiccedilatildeo Para garantir validade juriacutedica desse documento eacute imprescindiacutevel a sua valida-ccedilatildeo pela assinatura do usuaacuterio ou em contrato coletivo de trabalho

22 CRIME VIRTUAL

Outra questatildeo fundamental que estaacute relacionada agrave questatildeo da seguranccedila computacio-nal eacute o conceito de crime virtual Nesse sentido eacute imprescindiacutevel distinguir ao menos emtermos praacuteticos os conceitos de crime de computador e crime por computador Essadistinccedilatildeo permite compreender melhor quais tipos de crime satildeo cobertos pela lei e quaisnatildeo o satildeo

Assim crime por computadores satildeo os crimes tradicionais cometidos por meios com-putacionais Dessa maneira por exemplo tipificam-se o roubo ou o assassinato por compu-tador O leitor atento pode estar um pouco assustado agora imaginando como poderia serpossiacutevel um assassinato por computador esquecendo-se que o assassino poderia invadir osistema computacional de um hospital por exemplo e alterar a medicaccedilatildeo de um pacientepara doses fortes de substacircncias a que ele tenha alergia

Eacute comum portanto a ocorrecircncia de crimes tradicionais efetuados por computadorsem que o autor desses crimes esteja atento ao fato de estar cometendo um crime jaacuteprevisto na lei tradicional O envio de determinados tipos de SPAMs por exemplo jaacute estaacuteprevisto na lei e pode render detenccedilatildeo de 3 meses a 1 ano de detenccedilatildeo ou multa conformeo Art 146 do Coacutedigo Penal (BRASIL 1940) Enviar e-mail com ameaccedila de agressatildeo poderender pena de 1 a 6 meses de detenccedilatildeo ou multa de acordo com o Art 147 Assimobserve que apenas modificou-se o meio o crime continua tipificado De forma semelhantesatildeo tipificados crimes de invasatildeo de privacidade envio de viacuterus de computador pedofiliaou montagem de sites com receitas de bombas ou similares

Por outro lado existem aqueles crimes que soacute existem no ambiente computacionalnatildeo existindo equivalente no ambiente natildeo tecnoloacutegico satildeo os crimes de computadorNesse contexto por exemplo o Brasil natildeo tem uma legislaccedilatildeo contra invasatildeo de sitesQuando o invasor natildeo faz uso de informaccedilotildees obtidas com essa invasatildeo (o que poderiacaracterizar espionagem industrial) ou natildeo faz alteraccedilotildees dos dados (o que poderia carac-terizar crime de dano vandalismo ou pichaccedilatildeo) fica difiacutecil caracterizar a invasatildeo como umacontravenccedilatildeo penal

Alguns paiacuteses possuem legislaccedilatildeo forte a esse respeito como eacute o caso dos EUA eda China No Brasil paraiacuteso dos invasores essa discussatildeo estaacute apenas no iniacutecio Mesmoassim o administrador que teve seus sistemas invadidos deve verificar os mecanismoslegais a que pode recorrer de forma a punir os autores da faccedilanha

Nesse contexto inclusive cabe chamar a atenccedilatildeo para os movimentos Hackers e Ci-berativismo Cabe tambeacutem chamar a atenccedilatildeo para o fato que o termo hacker natildeo costuma

Conceitos Baacutesicos 13

ser utilizado com sentido negativo em meio tecnoloacutegico Nesse ambiente utiliza-se o termocracker para os hackers que invadem sistemas com finalidades iliacutecitas Na cultura geralentretanto o termo hacker eacute tomado de forma indistinta geralmente com significado pejo-rativo para invasor Para uma abordagem mais formal sobre essa discussatildeo ver (UCHOcircA2003)

23 ATAQUES MAIS COMUNS

Como um servidor encontra-se geralmente acessiacutevel via internet e em tempo integralele eacute mais suscetiacutevel a ataques de todos os tipos e formas que uma estaccedilatildeo de trabalhoDependendo de sua configuraccedilatildeo entretanto eacute possiacutevel tornaacute-lo tatildeo ou mais seguro queestaccedilotildees de trabalho com acesso miacutenimo agrave internet Com a finalidade de melhor situar oleitor segue-se uma relaccedilatildeo dos principais tipos de ataque e termos correlatos

Footprinting Por footprinting entende-se a tarefa de coletar informaccedilotildees sobre um sis-tema alvo Essa coleta eacute feita por vias tradicionais e puacuteblicas como uso do comandofinger leitura de paacuteginas do site para obter dados interessantes etc Geralmenteo invasor iraacute verificar quem eacute o responsaacutevel pela admnisitraccedilatildeo do sistema uma vezque invadida a conta desse usuaacuterio eacute possiacutevel obter dados mais significativos

Scanning Um scanner eacute um utilitaacuterio que verifica vulnerabilidades Pode ser um scannerde sistema quando checa vulnerabilidades na maacutequina local (erros no etcpasswdpermissatildeo incorreta de arquivos etc) ou pode ser um scanner de rede quando fazvarredura de portas de redes verificando quais estatildeo abertas e principalmente quaisestatildeo mais vulneraacuteveis O objetivo principal desse tipo de ataque eacute descobrir falhas deseguranccedila devido a bugs em serviccedilos de rede ou ausecircncia de proteccedilatildeo para serviccedilosinternos

Sniffers Principalmente dentro de uma rede fiacutesica onde eacute facilitada um ataque muito uti-lizado eacute a espionagem eletrocircnica com o uso de sniffer Um sniffer eacute um aplicativoque fica ldquoescutandordquo todos os pacotes de dados que trafegam por uma dada placa derede Eacute importante observar que em vaacuterias topologias de rede um pacote passa porvaacuterias placas entre a origem e o destino Aleacutem disso cabe observar que para queinterceptar mensagens destinadas agrave outras maacutequinas a estaccedilatildeo deve colocar suainterface de rede em ldquomodo promiacutescuordquo1 Esse ataque objetiva principalmente a cap-tura de senhas de usuaacuterios internos uma vez que isso facilita ao invasor a entrada nosistema para detecccedilatildeo de vulnerabilidades Outro objetivo desse ataque eacute a capturade informaccedilotildees confidenciais em tracircnsito na rede

1Por ldquomodo promiacutescuordquo entende-se a configuraccedilatildeo de uma interface de rede em que ela captura natildeoapenas os pacotes de rede direcionados a ela mas tambeacutem os destinados a outras estaccedilotildees em um mesmosegmento de rede

14 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Spoofing Por spoofing entende-se a tarefa de fazer uma maacutequina se passar por outraforjando por exemplo pacotes IPs Em geral o usuaacuterio iraacute tentar bloquear o enviode pacotes de dados de uma maacutequina tentando se passar por ela Uma conexatildeoSSH com um maacutequina usando spoof iria acusar o ataque do Man-In-The-Middle jaacutecomentado em (UCHOcircA SIMEONE SICA 2003) Caso o administrador use transportecriptografado de dados e senhas e esteja atento agraves chaves utilizadas esse ataquedificilmente iraacute comprometer a integridade dos dados e serviccedilos

Denial of Service (DoS) Pouca atenccedilatildeo tinha sido dado aos ataques de negaccedilatildeo de ser-viccedilo ateacute a derrubada de servidores importantes como Amazon Yahoo e mesmo UOLComo pode ser subentendido o DoS eacute um ataque que busca derrubar um serviccediloou mesmo um servidor inteiro Ultimamente tem sido utilizado do DDoS (DistributedDoS) onde um atacante utiliza vaacuterias maacutequinas ldquozumbisrdquo para enviar inuacutemeras requi-siccedilotildees ao mesmo tempo e de forma sincronizada a um dado servidor Isso acabapor ou consumir grande parte da largura de banda de rede ou sobrecarregar um dadodaemon derrubando-o Mais recentemente pode-se comentar o caso do viacuterus doApache que fazia com que um dado servidor Web ficasse enviando grande quanti-dade de dados pela rede conduzindo o traacutefego de rede a uma lentidatildeo insuportaacutevel

Coacutedigo Malicioso Coacutedigo malicioso como o nome jaacute sugere eacute um software criado com fi-nalidades mal intencionadas Nessa categoria incluem-se os coacutedigos natildeo autorizados(geralmente contidos dentro de um programa legiacutetimo) que efetuam accedilotildees desconhe-cidas e natildeo desejadas pelo usuaacuterio Tambeacutem satildeo incluiacutedos nessa categoria os pro-gramas legiacutetimos que foram alterados para efetuar accedilotildees natildeo desejadas pelo usuaacuterioOutro tipo de coacutedigo malicioso satildeo aqueles que destroem dados sem a intenccedilatildeo dousuaacuterio Alguns tipos de coacutedigo maliciosos merecem destaque

bull Cavalos de Troacuteia Um cavalo de troacuteia ou trojan horse ou apenas trojan eacute umprograma de computador alterado com finalidades iliacutecitas Por exemplo umatacante poderia substituir o binlogin para natildeo soacute autenticar usuaacuterioscomo tambeacutem armazenar essas senhas em um arquivo oculto

bull Viacuterus Viacuterus satildeo semelhantes a trojans dado que efetua accedilatildeo natildeo desejadapelo usuaacuterio Uma das diferenccedilas reside no fato que o viacuterus uma vez ativadoiraacute infectar outros arquivos locais A grosso modo viacuterus natildeo podem infectarmaacutequinas externas sem o auxiacutelio de uma pessoa

bull Vermes Um verme eacute um programa que pode infectar tanto a maacutequina localquanto maacutequinas remotas geralmente utilizando falhas de protocolos servi-ccedilos ou aplicativos

Como observado por (HATCH LEE KURTZ 2002) a maior parte dos programas per-niciosos existentes satildeo hiacutebridos dessas trecircs categorias Como exemplo tem-se oMelissa que era um cavalo de troacuteia (se passava por um e-mail que o usuaacuterio estivesse

Conceitos Baacutesicos 15

esperando) um viacuterus (infectava todos os arquivos locais de processamento de texto)e um verme (usava uma falha do Outlook para se propagar a todos os usuaacuterios naagenda de endereccedilos do usuaacuterio) Observe que no senso comum viacuterus e verme satildeogeralmente tomados com um uacutenico significado sendo usado apenas o termo ldquoviacuterusrdquoPor exemplo o viacuterus do Apache era a bem da verdade um verme (se propagavaa outras maacutequinas usando o Apache) mas como natildeo infectava outros arquivos noservidor natildeo poderia ser considerado necessariamente um viacuterusUm tipo de trojan extremamente perigoso satildeo os rootkits Como o nome sugereum rootkit eacute um aplicativo (ou um conjunto de aplicativos) com o objetivo de garantirpoderes de root ao invasor Geralmente consiste de aplicativos alterados a funcionarde forma especial pelo usuaacuterio ou versotildees alteradas do proacuteprio kernel

Exploits Exploits satildeo programas criados para explorar falhas advindas principalmente debugs nos daemons de serviccedilos Entre as falhas mais exploradas encontram-se bufferoverflow que consiste em estourar o buffer de entrada de um servidor forccedilando-o aestourar sua memoacuteria devolvendo um shell para o invasor

Ataques de Senhas Esse tipo de ataque consiste em tentar descobrir a senha de um oumais usuaacuterios por forccedila bruta ou usando teacutecnicas heuriacutesticas Em geral o invasor tentaobter uma coacutepia das senhas e efetuar um ataque de dicionaacuterio utilizando variaccedilotildeesde palavras em uma dada lista (o dicionaacuterio) tenta-se confrontar a senha do usuaacuteriocom essas variaccedilotildees ateacute descobrir uma que permita o acesso

Uma observaccedilatildeo final eacute que determinados ataques satildeo a bem da verdade tambeacutemferramentas de seguranccedila Assim por exemplo um scanner pode ser utilizado para verificarem que pontos um sistema estaacute vulneraacutevel Um programa de ataque de senha pode serutilizado para checar se os usuaacuterios natildeo estatildeo utilizando senhas faacuteceis o que facilitariauma invasatildeo Aleacutem disso alguns sistemas poderosos de detecccedilatildeo de intrusos satildeo tambeacutemsniffers Sniffers tambeacutem costumam ser utilizados para detectar problemas em uma rede

16 EDITORA - UFLAFAEPE - Seguranccedila Computacional

3USO DE CRIPTOGRAFIA

31 CONCEITOS BAacuteSICOS

A raacutepida evoluccedilatildeo das comunicaccedilotildees eletrocircnicas suscitou uma seacuterie de necessidadespara que se evitassem problemas de espionagem Entre essas necessidades destaca-seo uso de sistemas criptograacuteficos Mesmo em ambientes de telefonia celular por exemplo ouso de criptografia eacute cada vez mais utilizado

Como definido em (SCHNEIER 1996) a criptografia eacute a arte e ciecircncia de manter men-sagens seguras Ela envolve dois processos 1) criptografar (ou cifrar) uma mensagem Mtransformando-a em um texto cifrado C e 2) posteriormente decifrar (ou decriptografar) Cobtendo novamente a mensagem M como ilustrado na Figura 31

Decriptaccedilatildeoou

Decifragem

Encriptaccedilatildeoou

Cifragem

Mensagem (M) Mensagem (M)Texto Cifrado (C)

Figura 31 Processos Criptograacuteficos

A criptografia possui estrita relaccedilatildeo com a criptoanaacutelise arte e ciecircncia de quebrarmensagens cifradas O ramo da Matemaacutetica envolvendo criptografia e criptoanaacutelise eacute cha-mado de criptologia Como bem observado em (SCHNEIER 1996) modernos criptoloacutegosprecisam ter domiacutenio em Matemaacutetica Teoacuterica uma vez que eacute sobre ela que se sustenta acriptologia atual

O uso da criptografia eacute antigo sendo comuns o seu uso em guerras mesmo desde oimpeacuterio romano Esse uso era principalmente para manter a confidencialidade da mensa-gem garantindo que apenas emissor e receptor pudessem interpretaacute-la De certa maneiraa computaccedilatildeo foi fortemente financiada durante a Segunda Guerra Mundial para invenccedilatildeode dispositivos que pudessem decodificar as mensagens dos alematildees Desse esforccedilo in-clusive participou Alan Turing um dos mais importantes teoacutericos da Computaccedilatildeo e um dospais da Inteligecircncia Artificial

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 7: SEGURANÇA COMPUTACIONAL

8 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FIELD SMITH 2001) (WIRZENIUS OJA STAFFORD 2001) (FRAMPTON 1999) (MANN MIT-

CHELL 2000) (ANONYMOUS 2000) (KIRCH DAWSON 2000) (HATCH LEE KURTZ 2002)(SCHNEIER 1996) A essas referecircncias devem ser acrescidos vaacuterios Howtos1 disponibili-zados pela The Linux Documentation Project 2 Entre esses Howtos destacam-se (FENZI2002) (BURGISS 2002a) e (BURGISS 2002b) Eacute importante comentar que este texto eacute ape-nas uma apostila anterior denominada ldquoSeguranccedila em Redes e Criptografiardquo deste mesmoautor (UCHOcircA 2003)

Joaquim Quinteiro Uchocirca autor deste texto eacute licenciado em Matemaacutetica pela Univer-sidade Federal de Mato Grosso (UFMT) com mestrado em Ciecircncia da Computaccedilatildeo pelaUniversidade Federal de Satildeo Carlos (UFSCar) Antes de adotar o Linux em 1998 jaacute haviatrabalhado com Solaris MS-DOS (lembram-se do CISNE) e OS2 passando obviamentepelos Windows 20 Windows 31 (e 311) e Windows 95 Segundo amigos ele jaacute superou otrauma do uso desses trecircs uacuteltimos SOs() apesar de ter desenvolvido aversatildeo a alguns ti-pos de janelas Foi o responsaacutevel pela instalaccedilatildeo do primeiro laboratoacuterio baseado em Linuxna UFLA e um dos maiores disseminadores desse sistema operacional na universidadeProfessor da UFLA desde 1997 atua principalmente nas aacutereas de Teoria da Computaccedilatildeo eInteligecircncia Artificial

O autor espera que a escrita desta obra contribua para disseminar ainda mais o usode Linux no Brasil bem como para um ambiente computacional mais seguro desejando umbom aprendizado ao leitor

1Um Howto eacute um pequeno guia que ensina um usuaacuterio a configurar um serviccedilo ou fazer uma dada tarefa2The Linux Documentation Project httpwwwtldporg A traduccedilatildeo de parte dos documentos

desse projeto podem ser encontrados em httpbrtldporg

2CONCEITOS BAacuteSICOS

21 COMENTAacuteRIOS INICIAIS

O que eacute seguranccedila computacional Esse termo eacute muito utilizado atualmente massem uma consciecircncia exata a que ele se refere Isso ocorre principalmente porque esseconceito eacute relativo ao ambiente em que eacute utilizado O que eacute seguro para uma instituiccedilatildeopode natildeo o ser para outra Assim eacute preciso estar atento a qual siginificado o termo estaacutesendo utilizado

Dada a relatividade do termo eacute preciso refletir sobre quais itens devem ser levados emconta ao se abordar a questatildeo da seguranccedila computacional Em geral eacute possiacutevel destacaros seguintes elementos de um ambiente computacional sob o ponto de vista da seguranccedila

Confianccedila eacute possiacutevel confiar na disponibilidade do sistema os dados armazenados vatildeoestar acessiacuteveis quando forem necessaacuterios os mecanismos de backups satildeo sufici-entes para garantir que as informaccedilotildees armazenadas possam ser recuperadas comfacilidade em caso de problemas

Integridade os dados recuperados satildeo confiaacuteveis como garantir que as informaccedilotildeesnatildeo foram alteradas na fonte ou no traacutefego de dados como garantir que o que foiacessado eacute idecircntico ao que foi armazenado

Confidencialidade como certificar que os dados soacute podem ser acessados por quem dedireito como garantir a privacidade dos usuaacuterios e dos dados como impedir aespionagem de informaccedilotildees

Essas questotildees iratildeo chamar a necessidade do administrador estar refletindo ldquoo queeacute seguranccedila computacional em meu ambienterdquo A essa questatildeo logo viraacute outra talvez demaior importacircncia qual o item mais importante para a seguranccedila computacional

bull firewalls

bull backups

bull anti-sniffers

bull tunelamento e criptografia

10 EDITORA - UFLAFAEPE - Seguranccedila Computacional

A resposta a essa pergunta eacute extremamente simples o elemento mais importantepara se garantir seguranccedila em uma rede de computadores eacute o estabelecimento de umapoliacutetica de seguranccedila Enquanto a instituiccedilatildeo natildeo define o que eacute mais importante para oestabelecimento da seguranccedila computacional em seu ambiente as atitudes satildeo tomadassem a devida consciecircncia e sem garantir um miacutenimo desejaacutevel de seguranccedila

Uma Poliacutetica de Seguranccedila incorpora os resultados de uma anaacutelise de riscoem um plano que providencia procedimentos para gerenciar um ambiente com-putacional Em particular ela fornece ao administrador do sistema linhas ope-racionais para o ambiente tais como regras para o gerenciamento de contas deusuaacuterios procedimentos de instalaccedilatildeo de sistemas

(MANN MITCHELL 2000)

Uma poliacutetica de seguranccedila eacute um conjunto de leis regras e praacuteticas que re-gulam como uma organizaccedilatildeo gerencia protege e distribui suas informaccedilotildees erecursos Um dado sistema eacute considerado seguro em relaccedilatildeo a uma poliacutetica deseguranccedila caso garanta o cumprimento das leis regras e praacuteticas definidas nessapoliacutetica

(SOARES LEMOS COLCHER 1995)

Eacute a poliacutetica de seguranccedila que vai deixar claro o que deve ter acesso restrito e o quepode ser liberado sem problemas Eacute ela que define quais satildeo os itens que precisam serpreservados bem como quais satildeo as pessoas que tem acesso a determinados recursosSem uma poliacutetica de seguranccedila clara natildeo se sabe o que vai se proteger nem porque ouqual a melhor forma

Uma boa poliacutetica de seguranccedila iraacute definir por exemplo como seraacute estabelecida apoliacutetica de uso Essa poliacutetica de uso eacute responsaacutevel por deixar claro o que o usuaacuterio podee natildeo pode fazer com determinados recursos Em geral tal poliacutetica eacute um documento a serassinado pelo usuaacuterio em questatildeo

211 Poliacuteticas de Seguranccedila e Poliacuteticas de Uso

Eacute inuacutetil elaborar uma poliacutetica de seguranccedila que sirva apenas de enfeite na paredeAssim uma poliacutetica de seguranccedila deve possuir as seguintes caracteriacutesticas

bull ser implementaacutevel atraveacutes de procedimentos de administraccedilatildeo de sistema regrasde uso ou outros meacutetodos apropriados

bull ser reforccedilada com ferramentas de seguranccedila e sanccedilotildees

bull definir claramente as aacutereas de responsabilidade para usuaacuterios e administradoresdo sistema

Conceitos Baacutesicos 11

Dessa maneira atentando-se para essas diretrizes eacute possiacutevel elaborar uma poliacuteticade seguranccedila vaacutelida para o ambiente em questatildeo Aleacutem disso eacute imprescindiacutevel que apoliacutetica de seguranccedila atente-se para os seguintes itens

Seguranccedila fiacutesica como os equipamentos da instituiccedilatildeo em questatildeo seratildeo protegidosComo garantir a integridade fiacutesica dos dados Como garantir que natildeo haveraacute acessofiacutesico a dados que deveriam estar protegidos Esse item eacute mais importante do que seimagina de nada adianta senhas de BIOS ou ultra-elaboradas se qualquer funcionaacute-rio receacutem demitido pode roubar o HD do servidor para vender ao concorrente

Seguranccedila loacutegica como garantir integridade loacutegica dos dados Como os dados da ins-tituiccedilatildeo em questatildeo seratildeo protegidos Como garantir que natildeo haveraacute acesso loacutegicoindevido a dados Quais satildeo os dados mais importantes Os casos de invasotildeestem-se tornado cada vez mais frequumlentes e eacute imprescindiacutevel estar atento a isso

Privacidade o que fazer para proteger a privacidade dos usuaacuterios A instituiccedilatildeo iraacute pro-teger essa privacidade Observe que a instituiccedilatildeo deve estar atenta aos aspectoslegais dessa questatildeo

Legalidade de Software como garantir um bom uso dos recursos impedindo a piratariaA responsabilidade pelos aplicativos instalados eacute de quem da empresa do usuaacuterioIsso precisa estar claro

Em geral quando se trata de seguranccedila computacional deve-se adotar a poliacutetica domenor privileacutegio ou seja liberar apenas os recursos necessaacuterios ao usuaacuterio Observe queem alguns ambientes essa eacute uma questatildeo altamente subjetiva Mas deve-se sempre terem mente que o que natildeo eacute expressamente permitido deve ser proibido

Aleacutem disso eacute imprescindiacutevel que o administrador pratique vigilacircncia e perseveranccedilaassumindo sempre que os mal-intencionados sabem mais que ele Tenha em mente quea adoccedilatildeo de uma poliacutetica de seguranccedila iraacute na maioria das vezes implicar em perda deperformance ou conveniecircncia do usuaacuterio Alguns serviccedilos devem ser evitados e isso geraproblemas para usuaacuterios mais inexperientes Aleacutem disso o traacutefego criptografado ocupamaior largura de banda diminuindo a velocidade de transmissatildeo de dados Assim deve-sepesar os proacutes e contras de qualquer atitude envolvendo seguranccedila antes de implementaacute-la

Em termos praacuteticos como eacute expressa a poliacutetica de seguranccedila O leitor deve estarpensando em documentos impressos Entretanto natildeo se deve esquecer que a poliacutetica natildeoeacute apenas papel ela envolve leis regras e praacuteticas Dependendo do ambiente eacute oacutebvioa necessidade de documentaccedilatildeo mas isso natildeo eacute a uacutenica forma de criar uma poliacutetica deseguranccedila

Em geral a poliacutetica de seguranccedila documentada da maior parte das instituiccedilotildees con-siste das normas de uso dos recursos e uma poliacutetica de uso A poliacutetica de uso eacute um docu-mento que deixa claro o que o usuaacuterio pode e natildeo pode fazer com os recursos dentro da

12 EDITORA - UFLAFAEPE - Seguranccedila Computacional

instituiccedilatildeo Para garantir validade juriacutedica desse documento eacute imprescindiacutevel a sua valida-ccedilatildeo pela assinatura do usuaacuterio ou em contrato coletivo de trabalho

22 CRIME VIRTUAL

Outra questatildeo fundamental que estaacute relacionada agrave questatildeo da seguranccedila computacio-nal eacute o conceito de crime virtual Nesse sentido eacute imprescindiacutevel distinguir ao menos emtermos praacuteticos os conceitos de crime de computador e crime por computador Essadistinccedilatildeo permite compreender melhor quais tipos de crime satildeo cobertos pela lei e quaisnatildeo o satildeo

Assim crime por computadores satildeo os crimes tradicionais cometidos por meios com-putacionais Dessa maneira por exemplo tipificam-se o roubo ou o assassinato por compu-tador O leitor atento pode estar um pouco assustado agora imaginando como poderia serpossiacutevel um assassinato por computador esquecendo-se que o assassino poderia invadir osistema computacional de um hospital por exemplo e alterar a medicaccedilatildeo de um pacientepara doses fortes de substacircncias a que ele tenha alergia

Eacute comum portanto a ocorrecircncia de crimes tradicionais efetuados por computadorsem que o autor desses crimes esteja atento ao fato de estar cometendo um crime jaacuteprevisto na lei tradicional O envio de determinados tipos de SPAMs por exemplo jaacute estaacuteprevisto na lei e pode render detenccedilatildeo de 3 meses a 1 ano de detenccedilatildeo ou multa conformeo Art 146 do Coacutedigo Penal (BRASIL 1940) Enviar e-mail com ameaccedila de agressatildeo poderender pena de 1 a 6 meses de detenccedilatildeo ou multa de acordo com o Art 147 Assimobserve que apenas modificou-se o meio o crime continua tipificado De forma semelhantesatildeo tipificados crimes de invasatildeo de privacidade envio de viacuterus de computador pedofiliaou montagem de sites com receitas de bombas ou similares

Por outro lado existem aqueles crimes que soacute existem no ambiente computacionalnatildeo existindo equivalente no ambiente natildeo tecnoloacutegico satildeo os crimes de computadorNesse contexto por exemplo o Brasil natildeo tem uma legislaccedilatildeo contra invasatildeo de sitesQuando o invasor natildeo faz uso de informaccedilotildees obtidas com essa invasatildeo (o que poderiacaracterizar espionagem industrial) ou natildeo faz alteraccedilotildees dos dados (o que poderia carac-terizar crime de dano vandalismo ou pichaccedilatildeo) fica difiacutecil caracterizar a invasatildeo como umacontravenccedilatildeo penal

Alguns paiacuteses possuem legislaccedilatildeo forte a esse respeito como eacute o caso dos EUA eda China No Brasil paraiacuteso dos invasores essa discussatildeo estaacute apenas no iniacutecio Mesmoassim o administrador que teve seus sistemas invadidos deve verificar os mecanismoslegais a que pode recorrer de forma a punir os autores da faccedilanha

Nesse contexto inclusive cabe chamar a atenccedilatildeo para os movimentos Hackers e Ci-berativismo Cabe tambeacutem chamar a atenccedilatildeo para o fato que o termo hacker natildeo costuma

Conceitos Baacutesicos 13

ser utilizado com sentido negativo em meio tecnoloacutegico Nesse ambiente utiliza-se o termocracker para os hackers que invadem sistemas com finalidades iliacutecitas Na cultura geralentretanto o termo hacker eacute tomado de forma indistinta geralmente com significado pejo-rativo para invasor Para uma abordagem mais formal sobre essa discussatildeo ver (UCHOcircA2003)

23 ATAQUES MAIS COMUNS

Como um servidor encontra-se geralmente acessiacutevel via internet e em tempo integralele eacute mais suscetiacutevel a ataques de todos os tipos e formas que uma estaccedilatildeo de trabalhoDependendo de sua configuraccedilatildeo entretanto eacute possiacutevel tornaacute-lo tatildeo ou mais seguro queestaccedilotildees de trabalho com acesso miacutenimo agrave internet Com a finalidade de melhor situar oleitor segue-se uma relaccedilatildeo dos principais tipos de ataque e termos correlatos

Footprinting Por footprinting entende-se a tarefa de coletar informaccedilotildees sobre um sis-tema alvo Essa coleta eacute feita por vias tradicionais e puacuteblicas como uso do comandofinger leitura de paacuteginas do site para obter dados interessantes etc Geralmenteo invasor iraacute verificar quem eacute o responsaacutevel pela admnisitraccedilatildeo do sistema uma vezque invadida a conta desse usuaacuterio eacute possiacutevel obter dados mais significativos

Scanning Um scanner eacute um utilitaacuterio que verifica vulnerabilidades Pode ser um scannerde sistema quando checa vulnerabilidades na maacutequina local (erros no etcpasswdpermissatildeo incorreta de arquivos etc) ou pode ser um scanner de rede quando fazvarredura de portas de redes verificando quais estatildeo abertas e principalmente quaisestatildeo mais vulneraacuteveis O objetivo principal desse tipo de ataque eacute descobrir falhas deseguranccedila devido a bugs em serviccedilos de rede ou ausecircncia de proteccedilatildeo para serviccedilosinternos

Sniffers Principalmente dentro de uma rede fiacutesica onde eacute facilitada um ataque muito uti-lizado eacute a espionagem eletrocircnica com o uso de sniffer Um sniffer eacute um aplicativoque fica ldquoescutandordquo todos os pacotes de dados que trafegam por uma dada placa derede Eacute importante observar que em vaacuterias topologias de rede um pacote passa porvaacuterias placas entre a origem e o destino Aleacutem disso cabe observar que para queinterceptar mensagens destinadas agrave outras maacutequinas a estaccedilatildeo deve colocar suainterface de rede em ldquomodo promiacutescuordquo1 Esse ataque objetiva principalmente a cap-tura de senhas de usuaacuterios internos uma vez que isso facilita ao invasor a entrada nosistema para detecccedilatildeo de vulnerabilidades Outro objetivo desse ataque eacute a capturade informaccedilotildees confidenciais em tracircnsito na rede

1Por ldquomodo promiacutescuordquo entende-se a configuraccedilatildeo de uma interface de rede em que ela captura natildeoapenas os pacotes de rede direcionados a ela mas tambeacutem os destinados a outras estaccedilotildees em um mesmosegmento de rede

14 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Spoofing Por spoofing entende-se a tarefa de fazer uma maacutequina se passar por outraforjando por exemplo pacotes IPs Em geral o usuaacuterio iraacute tentar bloquear o enviode pacotes de dados de uma maacutequina tentando se passar por ela Uma conexatildeoSSH com um maacutequina usando spoof iria acusar o ataque do Man-In-The-Middle jaacutecomentado em (UCHOcircA SIMEONE SICA 2003) Caso o administrador use transportecriptografado de dados e senhas e esteja atento agraves chaves utilizadas esse ataquedificilmente iraacute comprometer a integridade dos dados e serviccedilos

Denial of Service (DoS) Pouca atenccedilatildeo tinha sido dado aos ataques de negaccedilatildeo de ser-viccedilo ateacute a derrubada de servidores importantes como Amazon Yahoo e mesmo UOLComo pode ser subentendido o DoS eacute um ataque que busca derrubar um serviccediloou mesmo um servidor inteiro Ultimamente tem sido utilizado do DDoS (DistributedDoS) onde um atacante utiliza vaacuterias maacutequinas ldquozumbisrdquo para enviar inuacutemeras requi-siccedilotildees ao mesmo tempo e de forma sincronizada a um dado servidor Isso acabapor ou consumir grande parte da largura de banda de rede ou sobrecarregar um dadodaemon derrubando-o Mais recentemente pode-se comentar o caso do viacuterus doApache que fazia com que um dado servidor Web ficasse enviando grande quanti-dade de dados pela rede conduzindo o traacutefego de rede a uma lentidatildeo insuportaacutevel

Coacutedigo Malicioso Coacutedigo malicioso como o nome jaacute sugere eacute um software criado com fi-nalidades mal intencionadas Nessa categoria incluem-se os coacutedigos natildeo autorizados(geralmente contidos dentro de um programa legiacutetimo) que efetuam accedilotildees desconhe-cidas e natildeo desejadas pelo usuaacuterio Tambeacutem satildeo incluiacutedos nessa categoria os pro-gramas legiacutetimos que foram alterados para efetuar accedilotildees natildeo desejadas pelo usuaacuterioOutro tipo de coacutedigo malicioso satildeo aqueles que destroem dados sem a intenccedilatildeo dousuaacuterio Alguns tipos de coacutedigo maliciosos merecem destaque

bull Cavalos de Troacuteia Um cavalo de troacuteia ou trojan horse ou apenas trojan eacute umprograma de computador alterado com finalidades iliacutecitas Por exemplo umatacante poderia substituir o binlogin para natildeo soacute autenticar usuaacuterioscomo tambeacutem armazenar essas senhas em um arquivo oculto

bull Viacuterus Viacuterus satildeo semelhantes a trojans dado que efetua accedilatildeo natildeo desejadapelo usuaacuterio Uma das diferenccedilas reside no fato que o viacuterus uma vez ativadoiraacute infectar outros arquivos locais A grosso modo viacuterus natildeo podem infectarmaacutequinas externas sem o auxiacutelio de uma pessoa

bull Vermes Um verme eacute um programa que pode infectar tanto a maacutequina localquanto maacutequinas remotas geralmente utilizando falhas de protocolos servi-ccedilos ou aplicativos

Como observado por (HATCH LEE KURTZ 2002) a maior parte dos programas per-niciosos existentes satildeo hiacutebridos dessas trecircs categorias Como exemplo tem-se oMelissa que era um cavalo de troacuteia (se passava por um e-mail que o usuaacuterio estivesse

Conceitos Baacutesicos 15

esperando) um viacuterus (infectava todos os arquivos locais de processamento de texto)e um verme (usava uma falha do Outlook para se propagar a todos os usuaacuterios naagenda de endereccedilos do usuaacuterio) Observe que no senso comum viacuterus e verme satildeogeralmente tomados com um uacutenico significado sendo usado apenas o termo ldquoviacuterusrdquoPor exemplo o viacuterus do Apache era a bem da verdade um verme (se propagavaa outras maacutequinas usando o Apache) mas como natildeo infectava outros arquivos noservidor natildeo poderia ser considerado necessariamente um viacuterusUm tipo de trojan extremamente perigoso satildeo os rootkits Como o nome sugereum rootkit eacute um aplicativo (ou um conjunto de aplicativos) com o objetivo de garantirpoderes de root ao invasor Geralmente consiste de aplicativos alterados a funcionarde forma especial pelo usuaacuterio ou versotildees alteradas do proacuteprio kernel

Exploits Exploits satildeo programas criados para explorar falhas advindas principalmente debugs nos daemons de serviccedilos Entre as falhas mais exploradas encontram-se bufferoverflow que consiste em estourar o buffer de entrada de um servidor forccedilando-o aestourar sua memoacuteria devolvendo um shell para o invasor

Ataques de Senhas Esse tipo de ataque consiste em tentar descobrir a senha de um oumais usuaacuterios por forccedila bruta ou usando teacutecnicas heuriacutesticas Em geral o invasor tentaobter uma coacutepia das senhas e efetuar um ataque de dicionaacuterio utilizando variaccedilotildeesde palavras em uma dada lista (o dicionaacuterio) tenta-se confrontar a senha do usuaacuteriocom essas variaccedilotildees ateacute descobrir uma que permita o acesso

Uma observaccedilatildeo final eacute que determinados ataques satildeo a bem da verdade tambeacutemferramentas de seguranccedila Assim por exemplo um scanner pode ser utilizado para verificarem que pontos um sistema estaacute vulneraacutevel Um programa de ataque de senha pode serutilizado para checar se os usuaacuterios natildeo estatildeo utilizando senhas faacuteceis o que facilitariauma invasatildeo Aleacutem disso alguns sistemas poderosos de detecccedilatildeo de intrusos satildeo tambeacutemsniffers Sniffers tambeacutem costumam ser utilizados para detectar problemas em uma rede

16 EDITORA - UFLAFAEPE - Seguranccedila Computacional

3USO DE CRIPTOGRAFIA

31 CONCEITOS BAacuteSICOS

A raacutepida evoluccedilatildeo das comunicaccedilotildees eletrocircnicas suscitou uma seacuterie de necessidadespara que se evitassem problemas de espionagem Entre essas necessidades destaca-seo uso de sistemas criptograacuteficos Mesmo em ambientes de telefonia celular por exemplo ouso de criptografia eacute cada vez mais utilizado

Como definido em (SCHNEIER 1996) a criptografia eacute a arte e ciecircncia de manter men-sagens seguras Ela envolve dois processos 1) criptografar (ou cifrar) uma mensagem Mtransformando-a em um texto cifrado C e 2) posteriormente decifrar (ou decriptografar) Cobtendo novamente a mensagem M como ilustrado na Figura 31

Decriptaccedilatildeoou

Decifragem

Encriptaccedilatildeoou

Cifragem

Mensagem (M) Mensagem (M)Texto Cifrado (C)

Figura 31 Processos Criptograacuteficos

A criptografia possui estrita relaccedilatildeo com a criptoanaacutelise arte e ciecircncia de quebrarmensagens cifradas O ramo da Matemaacutetica envolvendo criptografia e criptoanaacutelise eacute cha-mado de criptologia Como bem observado em (SCHNEIER 1996) modernos criptoloacutegosprecisam ter domiacutenio em Matemaacutetica Teoacuterica uma vez que eacute sobre ela que se sustenta acriptologia atual

O uso da criptografia eacute antigo sendo comuns o seu uso em guerras mesmo desde oimpeacuterio romano Esse uso era principalmente para manter a confidencialidade da mensa-gem garantindo que apenas emissor e receptor pudessem interpretaacute-la De certa maneiraa computaccedilatildeo foi fortemente financiada durante a Segunda Guerra Mundial para invenccedilatildeode dispositivos que pudessem decodificar as mensagens dos alematildees Desse esforccedilo in-clusive participou Alan Turing um dos mais importantes teoacutericos da Computaccedilatildeo e um dospais da Inteligecircncia Artificial

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 8: SEGURANÇA COMPUTACIONAL

2CONCEITOS BAacuteSICOS

21 COMENTAacuteRIOS INICIAIS

O que eacute seguranccedila computacional Esse termo eacute muito utilizado atualmente massem uma consciecircncia exata a que ele se refere Isso ocorre principalmente porque esseconceito eacute relativo ao ambiente em que eacute utilizado O que eacute seguro para uma instituiccedilatildeopode natildeo o ser para outra Assim eacute preciso estar atento a qual siginificado o termo estaacutesendo utilizado

Dada a relatividade do termo eacute preciso refletir sobre quais itens devem ser levados emconta ao se abordar a questatildeo da seguranccedila computacional Em geral eacute possiacutevel destacaros seguintes elementos de um ambiente computacional sob o ponto de vista da seguranccedila

Confianccedila eacute possiacutevel confiar na disponibilidade do sistema os dados armazenados vatildeoestar acessiacuteveis quando forem necessaacuterios os mecanismos de backups satildeo sufici-entes para garantir que as informaccedilotildees armazenadas possam ser recuperadas comfacilidade em caso de problemas

Integridade os dados recuperados satildeo confiaacuteveis como garantir que as informaccedilotildeesnatildeo foram alteradas na fonte ou no traacutefego de dados como garantir que o que foiacessado eacute idecircntico ao que foi armazenado

Confidencialidade como certificar que os dados soacute podem ser acessados por quem dedireito como garantir a privacidade dos usuaacuterios e dos dados como impedir aespionagem de informaccedilotildees

Essas questotildees iratildeo chamar a necessidade do administrador estar refletindo ldquoo queeacute seguranccedila computacional em meu ambienterdquo A essa questatildeo logo viraacute outra talvez demaior importacircncia qual o item mais importante para a seguranccedila computacional

bull firewalls

bull backups

bull anti-sniffers

bull tunelamento e criptografia

10 EDITORA - UFLAFAEPE - Seguranccedila Computacional

A resposta a essa pergunta eacute extremamente simples o elemento mais importantepara se garantir seguranccedila em uma rede de computadores eacute o estabelecimento de umapoliacutetica de seguranccedila Enquanto a instituiccedilatildeo natildeo define o que eacute mais importante para oestabelecimento da seguranccedila computacional em seu ambiente as atitudes satildeo tomadassem a devida consciecircncia e sem garantir um miacutenimo desejaacutevel de seguranccedila

Uma Poliacutetica de Seguranccedila incorpora os resultados de uma anaacutelise de riscoem um plano que providencia procedimentos para gerenciar um ambiente com-putacional Em particular ela fornece ao administrador do sistema linhas ope-racionais para o ambiente tais como regras para o gerenciamento de contas deusuaacuterios procedimentos de instalaccedilatildeo de sistemas

(MANN MITCHELL 2000)

Uma poliacutetica de seguranccedila eacute um conjunto de leis regras e praacuteticas que re-gulam como uma organizaccedilatildeo gerencia protege e distribui suas informaccedilotildees erecursos Um dado sistema eacute considerado seguro em relaccedilatildeo a uma poliacutetica deseguranccedila caso garanta o cumprimento das leis regras e praacuteticas definidas nessapoliacutetica

(SOARES LEMOS COLCHER 1995)

Eacute a poliacutetica de seguranccedila que vai deixar claro o que deve ter acesso restrito e o quepode ser liberado sem problemas Eacute ela que define quais satildeo os itens que precisam serpreservados bem como quais satildeo as pessoas que tem acesso a determinados recursosSem uma poliacutetica de seguranccedila clara natildeo se sabe o que vai se proteger nem porque ouqual a melhor forma

Uma boa poliacutetica de seguranccedila iraacute definir por exemplo como seraacute estabelecida apoliacutetica de uso Essa poliacutetica de uso eacute responsaacutevel por deixar claro o que o usuaacuterio podee natildeo pode fazer com determinados recursos Em geral tal poliacutetica eacute um documento a serassinado pelo usuaacuterio em questatildeo

211 Poliacuteticas de Seguranccedila e Poliacuteticas de Uso

Eacute inuacutetil elaborar uma poliacutetica de seguranccedila que sirva apenas de enfeite na paredeAssim uma poliacutetica de seguranccedila deve possuir as seguintes caracteriacutesticas

bull ser implementaacutevel atraveacutes de procedimentos de administraccedilatildeo de sistema regrasde uso ou outros meacutetodos apropriados

bull ser reforccedilada com ferramentas de seguranccedila e sanccedilotildees

bull definir claramente as aacutereas de responsabilidade para usuaacuterios e administradoresdo sistema

Conceitos Baacutesicos 11

Dessa maneira atentando-se para essas diretrizes eacute possiacutevel elaborar uma poliacuteticade seguranccedila vaacutelida para o ambiente em questatildeo Aleacutem disso eacute imprescindiacutevel que apoliacutetica de seguranccedila atente-se para os seguintes itens

Seguranccedila fiacutesica como os equipamentos da instituiccedilatildeo em questatildeo seratildeo protegidosComo garantir a integridade fiacutesica dos dados Como garantir que natildeo haveraacute acessofiacutesico a dados que deveriam estar protegidos Esse item eacute mais importante do que seimagina de nada adianta senhas de BIOS ou ultra-elaboradas se qualquer funcionaacute-rio receacutem demitido pode roubar o HD do servidor para vender ao concorrente

Seguranccedila loacutegica como garantir integridade loacutegica dos dados Como os dados da ins-tituiccedilatildeo em questatildeo seratildeo protegidos Como garantir que natildeo haveraacute acesso loacutegicoindevido a dados Quais satildeo os dados mais importantes Os casos de invasotildeestem-se tornado cada vez mais frequumlentes e eacute imprescindiacutevel estar atento a isso

Privacidade o que fazer para proteger a privacidade dos usuaacuterios A instituiccedilatildeo iraacute pro-teger essa privacidade Observe que a instituiccedilatildeo deve estar atenta aos aspectoslegais dessa questatildeo

Legalidade de Software como garantir um bom uso dos recursos impedindo a piratariaA responsabilidade pelos aplicativos instalados eacute de quem da empresa do usuaacuterioIsso precisa estar claro

Em geral quando se trata de seguranccedila computacional deve-se adotar a poliacutetica domenor privileacutegio ou seja liberar apenas os recursos necessaacuterios ao usuaacuterio Observe queem alguns ambientes essa eacute uma questatildeo altamente subjetiva Mas deve-se sempre terem mente que o que natildeo eacute expressamente permitido deve ser proibido

Aleacutem disso eacute imprescindiacutevel que o administrador pratique vigilacircncia e perseveranccedilaassumindo sempre que os mal-intencionados sabem mais que ele Tenha em mente quea adoccedilatildeo de uma poliacutetica de seguranccedila iraacute na maioria das vezes implicar em perda deperformance ou conveniecircncia do usuaacuterio Alguns serviccedilos devem ser evitados e isso geraproblemas para usuaacuterios mais inexperientes Aleacutem disso o traacutefego criptografado ocupamaior largura de banda diminuindo a velocidade de transmissatildeo de dados Assim deve-sepesar os proacutes e contras de qualquer atitude envolvendo seguranccedila antes de implementaacute-la

Em termos praacuteticos como eacute expressa a poliacutetica de seguranccedila O leitor deve estarpensando em documentos impressos Entretanto natildeo se deve esquecer que a poliacutetica natildeoeacute apenas papel ela envolve leis regras e praacuteticas Dependendo do ambiente eacute oacutebvioa necessidade de documentaccedilatildeo mas isso natildeo eacute a uacutenica forma de criar uma poliacutetica deseguranccedila

Em geral a poliacutetica de seguranccedila documentada da maior parte das instituiccedilotildees con-siste das normas de uso dos recursos e uma poliacutetica de uso A poliacutetica de uso eacute um docu-mento que deixa claro o que o usuaacuterio pode e natildeo pode fazer com os recursos dentro da

12 EDITORA - UFLAFAEPE - Seguranccedila Computacional

instituiccedilatildeo Para garantir validade juriacutedica desse documento eacute imprescindiacutevel a sua valida-ccedilatildeo pela assinatura do usuaacuterio ou em contrato coletivo de trabalho

22 CRIME VIRTUAL

Outra questatildeo fundamental que estaacute relacionada agrave questatildeo da seguranccedila computacio-nal eacute o conceito de crime virtual Nesse sentido eacute imprescindiacutevel distinguir ao menos emtermos praacuteticos os conceitos de crime de computador e crime por computador Essadistinccedilatildeo permite compreender melhor quais tipos de crime satildeo cobertos pela lei e quaisnatildeo o satildeo

Assim crime por computadores satildeo os crimes tradicionais cometidos por meios com-putacionais Dessa maneira por exemplo tipificam-se o roubo ou o assassinato por compu-tador O leitor atento pode estar um pouco assustado agora imaginando como poderia serpossiacutevel um assassinato por computador esquecendo-se que o assassino poderia invadir osistema computacional de um hospital por exemplo e alterar a medicaccedilatildeo de um pacientepara doses fortes de substacircncias a que ele tenha alergia

Eacute comum portanto a ocorrecircncia de crimes tradicionais efetuados por computadorsem que o autor desses crimes esteja atento ao fato de estar cometendo um crime jaacuteprevisto na lei tradicional O envio de determinados tipos de SPAMs por exemplo jaacute estaacuteprevisto na lei e pode render detenccedilatildeo de 3 meses a 1 ano de detenccedilatildeo ou multa conformeo Art 146 do Coacutedigo Penal (BRASIL 1940) Enviar e-mail com ameaccedila de agressatildeo poderender pena de 1 a 6 meses de detenccedilatildeo ou multa de acordo com o Art 147 Assimobserve que apenas modificou-se o meio o crime continua tipificado De forma semelhantesatildeo tipificados crimes de invasatildeo de privacidade envio de viacuterus de computador pedofiliaou montagem de sites com receitas de bombas ou similares

Por outro lado existem aqueles crimes que soacute existem no ambiente computacionalnatildeo existindo equivalente no ambiente natildeo tecnoloacutegico satildeo os crimes de computadorNesse contexto por exemplo o Brasil natildeo tem uma legislaccedilatildeo contra invasatildeo de sitesQuando o invasor natildeo faz uso de informaccedilotildees obtidas com essa invasatildeo (o que poderiacaracterizar espionagem industrial) ou natildeo faz alteraccedilotildees dos dados (o que poderia carac-terizar crime de dano vandalismo ou pichaccedilatildeo) fica difiacutecil caracterizar a invasatildeo como umacontravenccedilatildeo penal

Alguns paiacuteses possuem legislaccedilatildeo forte a esse respeito como eacute o caso dos EUA eda China No Brasil paraiacuteso dos invasores essa discussatildeo estaacute apenas no iniacutecio Mesmoassim o administrador que teve seus sistemas invadidos deve verificar os mecanismoslegais a que pode recorrer de forma a punir os autores da faccedilanha

Nesse contexto inclusive cabe chamar a atenccedilatildeo para os movimentos Hackers e Ci-berativismo Cabe tambeacutem chamar a atenccedilatildeo para o fato que o termo hacker natildeo costuma

Conceitos Baacutesicos 13

ser utilizado com sentido negativo em meio tecnoloacutegico Nesse ambiente utiliza-se o termocracker para os hackers que invadem sistemas com finalidades iliacutecitas Na cultura geralentretanto o termo hacker eacute tomado de forma indistinta geralmente com significado pejo-rativo para invasor Para uma abordagem mais formal sobre essa discussatildeo ver (UCHOcircA2003)

23 ATAQUES MAIS COMUNS

Como um servidor encontra-se geralmente acessiacutevel via internet e em tempo integralele eacute mais suscetiacutevel a ataques de todos os tipos e formas que uma estaccedilatildeo de trabalhoDependendo de sua configuraccedilatildeo entretanto eacute possiacutevel tornaacute-lo tatildeo ou mais seguro queestaccedilotildees de trabalho com acesso miacutenimo agrave internet Com a finalidade de melhor situar oleitor segue-se uma relaccedilatildeo dos principais tipos de ataque e termos correlatos

Footprinting Por footprinting entende-se a tarefa de coletar informaccedilotildees sobre um sis-tema alvo Essa coleta eacute feita por vias tradicionais e puacuteblicas como uso do comandofinger leitura de paacuteginas do site para obter dados interessantes etc Geralmenteo invasor iraacute verificar quem eacute o responsaacutevel pela admnisitraccedilatildeo do sistema uma vezque invadida a conta desse usuaacuterio eacute possiacutevel obter dados mais significativos

Scanning Um scanner eacute um utilitaacuterio que verifica vulnerabilidades Pode ser um scannerde sistema quando checa vulnerabilidades na maacutequina local (erros no etcpasswdpermissatildeo incorreta de arquivos etc) ou pode ser um scanner de rede quando fazvarredura de portas de redes verificando quais estatildeo abertas e principalmente quaisestatildeo mais vulneraacuteveis O objetivo principal desse tipo de ataque eacute descobrir falhas deseguranccedila devido a bugs em serviccedilos de rede ou ausecircncia de proteccedilatildeo para serviccedilosinternos

Sniffers Principalmente dentro de uma rede fiacutesica onde eacute facilitada um ataque muito uti-lizado eacute a espionagem eletrocircnica com o uso de sniffer Um sniffer eacute um aplicativoque fica ldquoescutandordquo todos os pacotes de dados que trafegam por uma dada placa derede Eacute importante observar que em vaacuterias topologias de rede um pacote passa porvaacuterias placas entre a origem e o destino Aleacutem disso cabe observar que para queinterceptar mensagens destinadas agrave outras maacutequinas a estaccedilatildeo deve colocar suainterface de rede em ldquomodo promiacutescuordquo1 Esse ataque objetiva principalmente a cap-tura de senhas de usuaacuterios internos uma vez que isso facilita ao invasor a entrada nosistema para detecccedilatildeo de vulnerabilidades Outro objetivo desse ataque eacute a capturade informaccedilotildees confidenciais em tracircnsito na rede

1Por ldquomodo promiacutescuordquo entende-se a configuraccedilatildeo de uma interface de rede em que ela captura natildeoapenas os pacotes de rede direcionados a ela mas tambeacutem os destinados a outras estaccedilotildees em um mesmosegmento de rede

14 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Spoofing Por spoofing entende-se a tarefa de fazer uma maacutequina se passar por outraforjando por exemplo pacotes IPs Em geral o usuaacuterio iraacute tentar bloquear o enviode pacotes de dados de uma maacutequina tentando se passar por ela Uma conexatildeoSSH com um maacutequina usando spoof iria acusar o ataque do Man-In-The-Middle jaacutecomentado em (UCHOcircA SIMEONE SICA 2003) Caso o administrador use transportecriptografado de dados e senhas e esteja atento agraves chaves utilizadas esse ataquedificilmente iraacute comprometer a integridade dos dados e serviccedilos

Denial of Service (DoS) Pouca atenccedilatildeo tinha sido dado aos ataques de negaccedilatildeo de ser-viccedilo ateacute a derrubada de servidores importantes como Amazon Yahoo e mesmo UOLComo pode ser subentendido o DoS eacute um ataque que busca derrubar um serviccediloou mesmo um servidor inteiro Ultimamente tem sido utilizado do DDoS (DistributedDoS) onde um atacante utiliza vaacuterias maacutequinas ldquozumbisrdquo para enviar inuacutemeras requi-siccedilotildees ao mesmo tempo e de forma sincronizada a um dado servidor Isso acabapor ou consumir grande parte da largura de banda de rede ou sobrecarregar um dadodaemon derrubando-o Mais recentemente pode-se comentar o caso do viacuterus doApache que fazia com que um dado servidor Web ficasse enviando grande quanti-dade de dados pela rede conduzindo o traacutefego de rede a uma lentidatildeo insuportaacutevel

Coacutedigo Malicioso Coacutedigo malicioso como o nome jaacute sugere eacute um software criado com fi-nalidades mal intencionadas Nessa categoria incluem-se os coacutedigos natildeo autorizados(geralmente contidos dentro de um programa legiacutetimo) que efetuam accedilotildees desconhe-cidas e natildeo desejadas pelo usuaacuterio Tambeacutem satildeo incluiacutedos nessa categoria os pro-gramas legiacutetimos que foram alterados para efetuar accedilotildees natildeo desejadas pelo usuaacuterioOutro tipo de coacutedigo malicioso satildeo aqueles que destroem dados sem a intenccedilatildeo dousuaacuterio Alguns tipos de coacutedigo maliciosos merecem destaque

bull Cavalos de Troacuteia Um cavalo de troacuteia ou trojan horse ou apenas trojan eacute umprograma de computador alterado com finalidades iliacutecitas Por exemplo umatacante poderia substituir o binlogin para natildeo soacute autenticar usuaacuterioscomo tambeacutem armazenar essas senhas em um arquivo oculto

bull Viacuterus Viacuterus satildeo semelhantes a trojans dado que efetua accedilatildeo natildeo desejadapelo usuaacuterio Uma das diferenccedilas reside no fato que o viacuterus uma vez ativadoiraacute infectar outros arquivos locais A grosso modo viacuterus natildeo podem infectarmaacutequinas externas sem o auxiacutelio de uma pessoa

bull Vermes Um verme eacute um programa que pode infectar tanto a maacutequina localquanto maacutequinas remotas geralmente utilizando falhas de protocolos servi-ccedilos ou aplicativos

Como observado por (HATCH LEE KURTZ 2002) a maior parte dos programas per-niciosos existentes satildeo hiacutebridos dessas trecircs categorias Como exemplo tem-se oMelissa que era um cavalo de troacuteia (se passava por um e-mail que o usuaacuterio estivesse

Conceitos Baacutesicos 15

esperando) um viacuterus (infectava todos os arquivos locais de processamento de texto)e um verme (usava uma falha do Outlook para se propagar a todos os usuaacuterios naagenda de endereccedilos do usuaacuterio) Observe que no senso comum viacuterus e verme satildeogeralmente tomados com um uacutenico significado sendo usado apenas o termo ldquoviacuterusrdquoPor exemplo o viacuterus do Apache era a bem da verdade um verme (se propagavaa outras maacutequinas usando o Apache) mas como natildeo infectava outros arquivos noservidor natildeo poderia ser considerado necessariamente um viacuterusUm tipo de trojan extremamente perigoso satildeo os rootkits Como o nome sugereum rootkit eacute um aplicativo (ou um conjunto de aplicativos) com o objetivo de garantirpoderes de root ao invasor Geralmente consiste de aplicativos alterados a funcionarde forma especial pelo usuaacuterio ou versotildees alteradas do proacuteprio kernel

Exploits Exploits satildeo programas criados para explorar falhas advindas principalmente debugs nos daemons de serviccedilos Entre as falhas mais exploradas encontram-se bufferoverflow que consiste em estourar o buffer de entrada de um servidor forccedilando-o aestourar sua memoacuteria devolvendo um shell para o invasor

Ataques de Senhas Esse tipo de ataque consiste em tentar descobrir a senha de um oumais usuaacuterios por forccedila bruta ou usando teacutecnicas heuriacutesticas Em geral o invasor tentaobter uma coacutepia das senhas e efetuar um ataque de dicionaacuterio utilizando variaccedilotildeesde palavras em uma dada lista (o dicionaacuterio) tenta-se confrontar a senha do usuaacuteriocom essas variaccedilotildees ateacute descobrir uma que permita o acesso

Uma observaccedilatildeo final eacute que determinados ataques satildeo a bem da verdade tambeacutemferramentas de seguranccedila Assim por exemplo um scanner pode ser utilizado para verificarem que pontos um sistema estaacute vulneraacutevel Um programa de ataque de senha pode serutilizado para checar se os usuaacuterios natildeo estatildeo utilizando senhas faacuteceis o que facilitariauma invasatildeo Aleacutem disso alguns sistemas poderosos de detecccedilatildeo de intrusos satildeo tambeacutemsniffers Sniffers tambeacutem costumam ser utilizados para detectar problemas em uma rede

16 EDITORA - UFLAFAEPE - Seguranccedila Computacional

3USO DE CRIPTOGRAFIA

31 CONCEITOS BAacuteSICOS

A raacutepida evoluccedilatildeo das comunicaccedilotildees eletrocircnicas suscitou uma seacuterie de necessidadespara que se evitassem problemas de espionagem Entre essas necessidades destaca-seo uso de sistemas criptograacuteficos Mesmo em ambientes de telefonia celular por exemplo ouso de criptografia eacute cada vez mais utilizado

Como definido em (SCHNEIER 1996) a criptografia eacute a arte e ciecircncia de manter men-sagens seguras Ela envolve dois processos 1) criptografar (ou cifrar) uma mensagem Mtransformando-a em um texto cifrado C e 2) posteriormente decifrar (ou decriptografar) Cobtendo novamente a mensagem M como ilustrado na Figura 31

Decriptaccedilatildeoou

Decifragem

Encriptaccedilatildeoou

Cifragem

Mensagem (M) Mensagem (M)Texto Cifrado (C)

Figura 31 Processos Criptograacuteficos

A criptografia possui estrita relaccedilatildeo com a criptoanaacutelise arte e ciecircncia de quebrarmensagens cifradas O ramo da Matemaacutetica envolvendo criptografia e criptoanaacutelise eacute cha-mado de criptologia Como bem observado em (SCHNEIER 1996) modernos criptoloacutegosprecisam ter domiacutenio em Matemaacutetica Teoacuterica uma vez que eacute sobre ela que se sustenta acriptologia atual

O uso da criptografia eacute antigo sendo comuns o seu uso em guerras mesmo desde oimpeacuterio romano Esse uso era principalmente para manter a confidencialidade da mensa-gem garantindo que apenas emissor e receptor pudessem interpretaacute-la De certa maneiraa computaccedilatildeo foi fortemente financiada durante a Segunda Guerra Mundial para invenccedilatildeode dispositivos que pudessem decodificar as mensagens dos alematildees Desse esforccedilo in-clusive participou Alan Turing um dos mais importantes teoacutericos da Computaccedilatildeo e um dospais da Inteligecircncia Artificial

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 9: SEGURANÇA COMPUTACIONAL

10 EDITORA - UFLAFAEPE - Seguranccedila Computacional

A resposta a essa pergunta eacute extremamente simples o elemento mais importantepara se garantir seguranccedila em uma rede de computadores eacute o estabelecimento de umapoliacutetica de seguranccedila Enquanto a instituiccedilatildeo natildeo define o que eacute mais importante para oestabelecimento da seguranccedila computacional em seu ambiente as atitudes satildeo tomadassem a devida consciecircncia e sem garantir um miacutenimo desejaacutevel de seguranccedila

Uma Poliacutetica de Seguranccedila incorpora os resultados de uma anaacutelise de riscoem um plano que providencia procedimentos para gerenciar um ambiente com-putacional Em particular ela fornece ao administrador do sistema linhas ope-racionais para o ambiente tais como regras para o gerenciamento de contas deusuaacuterios procedimentos de instalaccedilatildeo de sistemas

(MANN MITCHELL 2000)

Uma poliacutetica de seguranccedila eacute um conjunto de leis regras e praacuteticas que re-gulam como uma organizaccedilatildeo gerencia protege e distribui suas informaccedilotildees erecursos Um dado sistema eacute considerado seguro em relaccedilatildeo a uma poliacutetica deseguranccedila caso garanta o cumprimento das leis regras e praacuteticas definidas nessapoliacutetica

(SOARES LEMOS COLCHER 1995)

Eacute a poliacutetica de seguranccedila que vai deixar claro o que deve ter acesso restrito e o quepode ser liberado sem problemas Eacute ela que define quais satildeo os itens que precisam serpreservados bem como quais satildeo as pessoas que tem acesso a determinados recursosSem uma poliacutetica de seguranccedila clara natildeo se sabe o que vai se proteger nem porque ouqual a melhor forma

Uma boa poliacutetica de seguranccedila iraacute definir por exemplo como seraacute estabelecida apoliacutetica de uso Essa poliacutetica de uso eacute responsaacutevel por deixar claro o que o usuaacuterio podee natildeo pode fazer com determinados recursos Em geral tal poliacutetica eacute um documento a serassinado pelo usuaacuterio em questatildeo

211 Poliacuteticas de Seguranccedila e Poliacuteticas de Uso

Eacute inuacutetil elaborar uma poliacutetica de seguranccedila que sirva apenas de enfeite na paredeAssim uma poliacutetica de seguranccedila deve possuir as seguintes caracteriacutesticas

bull ser implementaacutevel atraveacutes de procedimentos de administraccedilatildeo de sistema regrasde uso ou outros meacutetodos apropriados

bull ser reforccedilada com ferramentas de seguranccedila e sanccedilotildees

bull definir claramente as aacutereas de responsabilidade para usuaacuterios e administradoresdo sistema

Conceitos Baacutesicos 11

Dessa maneira atentando-se para essas diretrizes eacute possiacutevel elaborar uma poliacuteticade seguranccedila vaacutelida para o ambiente em questatildeo Aleacutem disso eacute imprescindiacutevel que apoliacutetica de seguranccedila atente-se para os seguintes itens

Seguranccedila fiacutesica como os equipamentos da instituiccedilatildeo em questatildeo seratildeo protegidosComo garantir a integridade fiacutesica dos dados Como garantir que natildeo haveraacute acessofiacutesico a dados que deveriam estar protegidos Esse item eacute mais importante do que seimagina de nada adianta senhas de BIOS ou ultra-elaboradas se qualquer funcionaacute-rio receacutem demitido pode roubar o HD do servidor para vender ao concorrente

Seguranccedila loacutegica como garantir integridade loacutegica dos dados Como os dados da ins-tituiccedilatildeo em questatildeo seratildeo protegidos Como garantir que natildeo haveraacute acesso loacutegicoindevido a dados Quais satildeo os dados mais importantes Os casos de invasotildeestem-se tornado cada vez mais frequumlentes e eacute imprescindiacutevel estar atento a isso

Privacidade o que fazer para proteger a privacidade dos usuaacuterios A instituiccedilatildeo iraacute pro-teger essa privacidade Observe que a instituiccedilatildeo deve estar atenta aos aspectoslegais dessa questatildeo

Legalidade de Software como garantir um bom uso dos recursos impedindo a piratariaA responsabilidade pelos aplicativos instalados eacute de quem da empresa do usuaacuterioIsso precisa estar claro

Em geral quando se trata de seguranccedila computacional deve-se adotar a poliacutetica domenor privileacutegio ou seja liberar apenas os recursos necessaacuterios ao usuaacuterio Observe queem alguns ambientes essa eacute uma questatildeo altamente subjetiva Mas deve-se sempre terem mente que o que natildeo eacute expressamente permitido deve ser proibido

Aleacutem disso eacute imprescindiacutevel que o administrador pratique vigilacircncia e perseveranccedilaassumindo sempre que os mal-intencionados sabem mais que ele Tenha em mente quea adoccedilatildeo de uma poliacutetica de seguranccedila iraacute na maioria das vezes implicar em perda deperformance ou conveniecircncia do usuaacuterio Alguns serviccedilos devem ser evitados e isso geraproblemas para usuaacuterios mais inexperientes Aleacutem disso o traacutefego criptografado ocupamaior largura de banda diminuindo a velocidade de transmissatildeo de dados Assim deve-sepesar os proacutes e contras de qualquer atitude envolvendo seguranccedila antes de implementaacute-la

Em termos praacuteticos como eacute expressa a poliacutetica de seguranccedila O leitor deve estarpensando em documentos impressos Entretanto natildeo se deve esquecer que a poliacutetica natildeoeacute apenas papel ela envolve leis regras e praacuteticas Dependendo do ambiente eacute oacutebvioa necessidade de documentaccedilatildeo mas isso natildeo eacute a uacutenica forma de criar uma poliacutetica deseguranccedila

Em geral a poliacutetica de seguranccedila documentada da maior parte das instituiccedilotildees con-siste das normas de uso dos recursos e uma poliacutetica de uso A poliacutetica de uso eacute um docu-mento que deixa claro o que o usuaacuterio pode e natildeo pode fazer com os recursos dentro da

12 EDITORA - UFLAFAEPE - Seguranccedila Computacional

instituiccedilatildeo Para garantir validade juriacutedica desse documento eacute imprescindiacutevel a sua valida-ccedilatildeo pela assinatura do usuaacuterio ou em contrato coletivo de trabalho

22 CRIME VIRTUAL

Outra questatildeo fundamental que estaacute relacionada agrave questatildeo da seguranccedila computacio-nal eacute o conceito de crime virtual Nesse sentido eacute imprescindiacutevel distinguir ao menos emtermos praacuteticos os conceitos de crime de computador e crime por computador Essadistinccedilatildeo permite compreender melhor quais tipos de crime satildeo cobertos pela lei e quaisnatildeo o satildeo

Assim crime por computadores satildeo os crimes tradicionais cometidos por meios com-putacionais Dessa maneira por exemplo tipificam-se o roubo ou o assassinato por compu-tador O leitor atento pode estar um pouco assustado agora imaginando como poderia serpossiacutevel um assassinato por computador esquecendo-se que o assassino poderia invadir osistema computacional de um hospital por exemplo e alterar a medicaccedilatildeo de um pacientepara doses fortes de substacircncias a que ele tenha alergia

Eacute comum portanto a ocorrecircncia de crimes tradicionais efetuados por computadorsem que o autor desses crimes esteja atento ao fato de estar cometendo um crime jaacuteprevisto na lei tradicional O envio de determinados tipos de SPAMs por exemplo jaacute estaacuteprevisto na lei e pode render detenccedilatildeo de 3 meses a 1 ano de detenccedilatildeo ou multa conformeo Art 146 do Coacutedigo Penal (BRASIL 1940) Enviar e-mail com ameaccedila de agressatildeo poderender pena de 1 a 6 meses de detenccedilatildeo ou multa de acordo com o Art 147 Assimobserve que apenas modificou-se o meio o crime continua tipificado De forma semelhantesatildeo tipificados crimes de invasatildeo de privacidade envio de viacuterus de computador pedofiliaou montagem de sites com receitas de bombas ou similares

Por outro lado existem aqueles crimes que soacute existem no ambiente computacionalnatildeo existindo equivalente no ambiente natildeo tecnoloacutegico satildeo os crimes de computadorNesse contexto por exemplo o Brasil natildeo tem uma legislaccedilatildeo contra invasatildeo de sitesQuando o invasor natildeo faz uso de informaccedilotildees obtidas com essa invasatildeo (o que poderiacaracterizar espionagem industrial) ou natildeo faz alteraccedilotildees dos dados (o que poderia carac-terizar crime de dano vandalismo ou pichaccedilatildeo) fica difiacutecil caracterizar a invasatildeo como umacontravenccedilatildeo penal

Alguns paiacuteses possuem legislaccedilatildeo forte a esse respeito como eacute o caso dos EUA eda China No Brasil paraiacuteso dos invasores essa discussatildeo estaacute apenas no iniacutecio Mesmoassim o administrador que teve seus sistemas invadidos deve verificar os mecanismoslegais a que pode recorrer de forma a punir os autores da faccedilanha

Nesse contexto inclusive cabe chamar a atenccedilatildeo para os movimentos Hackers e Ci-berativismo Cabe tambeacutem chamar a atenccedilatildeo para o fato que o termo hacker natildeo costuma

Conceitos Baacutesicos 13

ser utilizado com sentido negativo em meio tecnoloacutegico Nesse ambiente utiliza-se o termocracker para os hackers que invadem sistemas com finalidades iliacutecitas Na cultura geralentretanto o termo hacker eacute tomado de forma indistinta geralmente com significado pejo-rativo para invasor Para uma abordagem mais formal sobre essa discussatildeo ver (UCHOcircA2003)

23 ATAQUES MAIS COMUNS

Como um servidor encontra-se geralmente acessiacutevel via internet e em tempo integralele eacute mais suscetiacutevel a ataques de todos os tipos e formas que uma estaccedilatildeo de trabalhoDependendo de sua configuraccedilatildeo entretanto eacute possiacutevel tornaacute-lo tatildeo ou mais seguro queestaccedilotildees de trabalho com acesso miacutenimo agrave internet Com a finalidade de melhor situar oleitor segue-se uma relaccedilatildeo dos principais tipos de ataque e termos correlatos

Footprinting Por footprinting entende-se a tarefa de coletar informaccedilotildees sobre um sis-tema alvo Essa coleta eacute feita por vias tradicionais e puacuteblicas como uso do comandofinger leitura de paacuteginas do site para obter dados interessantes etc Geralmenteo invasor iraacute verificar quem eacute o responsaacutevel pela admnisitraccedilatildeo do sistema uma vezque invadida a conta desse usuaacuterio eacute possiacutevel obter dados mais significativos

Scanning Um scanner eacute um utilitaacuterio que verifica vulnerabilidades Pode ser um scannerde sistema quando checa vulnerabilidades na maacutequina local (erros no etcpasswdpermissatildeo incorreta de arquivos etc) ou pode ser um scanner de rede quando fazvarredura de portas de redes verificando quais estatildeo abertas e principalmente quaisestatildeo mais vulneraacuteveis O objetivo principal desse tipo de ataque eacute descobrir falhas deseguranccedila devido a bugs em serviccedilos de rede ou ausecircncia de proteccedilatildeo para serviccedilosinternos

Sniffers Principalmente dentro de uma rede fiacutesica onde eacute facilitada um ataque muito uti-lizado eacute a espionagem eletrocircnica com o uso de sniffer Um sniffer eacute um aplicativoque fica ldquoescutandordquo todos os pacotes de dados que trafegam por uma dada placa derede Eacute importante observar que em vaacuterias topologias de rede um pacote passa porvaacuterias placas entre a origem e o destino Aleacutem disso cabe observar que para queinterceptar mensagens destinadas agrave outras maacutequinas a estaccedilatildeo deve colocar suainterface de rede em ldquomodo promiacutescuordquo1 Esse ataque objetiva principalmente a cap-tura de senhas de usuaacuterios internos uma vez que isso facilita ao invasor a entrada nosistema para detecccedilatildeo de vulnerabilidades Outro objetivo desse ataque eacute a capturade informaccedilotildees confidenciais em tracircnsito na rede

1Por ldquomodo promiacutescuordquo entende-se a configuraccedilatildeo de uma interface de rede em que ela captura natildeoapenas os pacotes de rede direcionados a ela mas tambeacutem os destinados a outras estaccedilotildees em um mesmosegmento de rede

14 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Spoofing Por spoofing entende-se a tarefa de fazer uma maacutequina se passar por outraforjando por exemplo pacotes IPs Em geral o usuaacuterio iraacute tentar bloquear o enviode pacotes de dados de uma maacutequina tentando se passar por ela Uma conexatildeoSSH com um maacutequina usando spoof iria acusar o ataque do Man-In-The-Middle jaacutecomentado em (UCHOcircA SIMEONE SICA 2003) Caso o administrador use transportecriptografado de dados e senhas e esteja atento agraves chaves utilizadas esse ataquedificilmente iraacute comprometer a integridade dos dados e serviccedilos

Denial of Service (DoS) Pouca atenccedilatildeo tinha sido dado aos ataques de negaccedilatildeo de ser-viccedilo ateacute a derrubada de servidores importantes como Amazon Yahoo e mesmo UOLComo pode ser subentendido o DoS eacute um ataque que busca derrubar um serviccediloou mesmo um servidor inteiro Ultimamente tem sido utilizado do DDoS (DistributedDoS) onde um atacante utiliza vaacuterias maacutequinas ldquozumbisrdquo para enviar inuacutemeras requi-siccedilotildees ao mesmo tempo e de forma sincronizada a um dado servidor Isso acabapor ou consumir grande parte da largura de banda de rede ou sobrecarregar um dadodaemon derrubando-o Mais recentemente pode-se comentar o caso do viacuterus doApache que fazia com que um dado servidor Web ficasse enviando grande quanti-dade de dados pela rede conduzindo o traacutefego de rede a uma lentidatildeo insuportaacutevel

Coacutedigo Malicioso Coacutedigo malicioso como o nome jaacute sugere eacute um software criado com fi-nalidades mal intencionadas Nessa categoria incluem-se os coacutedigos natildeo autorizados(geralmente contidos dentro de um programa legiacutetimo) que efetuam accedilotildees desconhe-cidas e natildeo desejadas pelo usuaacuterio Tambeacutem satildeo incluiacutedos nessa categoria os pro-gramas legiacutetimos que foram alterados para efetuar accedilotildees natildeo desejadas pelo usuaacuterioOutro tipo de coacutedigo malicioso satildeo aqueles que destroem dados sem a intenccedilatildeo dousuaacuterio Alguns tipos de coacutedigo maliciosos merecem destaque

bull Cavalos de Troacuteia Um cavalo de troacuteia ou trojan horse ou apenas trojan eacute umprograma de computador alterado com finalidades iliacutecitas Por exemplo umatacante poderia substituir o binlogin para natildeo soacute autenticar usuaacuterioscomo tambeacutem armazenar essas senhas em um arquivo oculto

bull Viacuterus Viacuterus satildeo semelhantes a trojans dado que efetua accedilatildeo natildeo desejadapelo usuaacuterio Uma das diferenccedilas reside no fato que o viacuterus uma vez ativadoiraacute infectar outros arquivos locais A grosso modo viacuterus natildeo podem infectarmaacutequinas externas sem o auxiacutelio de uma pessoa

bull Vermes Um verme eacute um programa que pode infectar tanto a maacutequina localquanto maacutequinas remotas geralmente utilizando falhas de protocolos servi-ccedilos ou aplicativos

Como observado por (HATCH LEE KURTZ 2002) a maior parte dos programas per-niciosos existentes satildeo hiacutebridos dessas trecircs categorias Como exemplo tem-se oMelissa que era um cavalo de troacuteia (se passava por um e-mail que o usuaacuterio estivesse

Conceitos Baacutesicos 15

esperando) um viacuterus (infectava todos os arquivos locais de processamento de texto)e um verme (usava uma falha do Outlook para se propagar a todos os usuaacuterios naagenda de endereccedilos do usuaacuterio) Observe que no senso comum viacuterus e verme satildeogeralmente tomados com um uacutenico significado sendo usado apenas o termo ldquoviacuterusrdquoPor exemplo o viacuterus do Apache era a bem da verdade um verme (se propagavaa outras maacutequinas usando o Apache) mas como natildeo infectava outros arquivos noservidor natildeo poderia ser considerado necessariamente um viacuterusUm tipo de trojan extremamente perigoso satildeo os rootkits Como o nome sugereum rootkit eacute um aplicativo (ou um conjunto de aplicativos) com o objetivo de garantirpoderes de root ao invasor Geralmente consiste de aplicativos alterados a funcionarde forma especial pelo usuaacuterio ou versotildees alteradas do proacuteprio kernel

Exploits Exploits satildeo programas criados para explorar falhas advindas principalmente debugs nos daemons de serviccedilos Entre as falhas mais exploradas encontram-se bufferoverflow que consiste em estourar o buffer de entrada de um servidor forccedilando-o aestourar sua memoacuteria devolvendo um shell para o invasor

Ataques de Senhas Esse tipo de ataque consiste em tentar descobrir a senha de um oumais usuaacuterios por forccedila bruta ou usando teacutecnicas heuriacutesticas Em geral o invasor tentaobter uma coacutepia das senhas e efetuar um ataque de dicionaacuterio utilizando variaccedilotildeesde palavras em uma dada lista (o dicionaacuterio) tenta-se confrontar a senha do usuaacuteriocom essas variaccedilotildees ateacute descobrir uma que permita o acesso

Uma observaccedilatildeo final eacute que determinados ataques satildeo a bem da verdade tambeacutemferramentas de seguranccedila Assim por exemplo um scanner pode ser utilizado para verificarem que pontos um sistema estaacute vulneraacutevel Um programa de ataque de senha pode serutilizado para checar se os usuaacuterios natildeo estatildeo utilizando senhas faacuteceis o que facilitariauma invasatildeo Aleacutem disso alguns sistemas poderosos de detecccedilatildeo de intrusos satildeo tambeacutemsniffers Sniffers tambeacutem costumam ser utilizados para detectar problemas em uma rede

16 EDITORA - UFLAFAEPE - Seguranccedila Computacional

3USO DE CRIPTOGRAFIA

31 CONCEITOS BAacuteSICOS

A raacutepida evoluccedilatildeo das comunicaccedilotildees eletrocircnicas suscitou uma seacuterie de necessidadespara que se evitassem problemas de espionagem Entre essas necessidades destaca-seo uso de sistemas criptograacuteficos Mesmo em ambientes de telefonia celular por exemplo ouso de criptografia eacute cada vez mais utilizado

Como definido em (SCHNEIER 1996) a criptografia eacute a arte e ciecircncia de manter men-sagens seguras Ela envolve dois processos 1) criptografar (ou cifrar) uma mensagem Mtransformando-a em um texto cifrado C e 2) posteriormente decifrar (ou decriptografar) Cobtendo novamente a mensagem M como ilustrado na Figura 31

Decriptaccedilatildeoou

Decifragem

Encriptaccedilatildeoou

Cifragem

Mensagem (M) Mensagem (M)Texto Cifrado (C)

Figura 31 Processos Criptograacuteficos

A criptografia possui estrita relaccedilatildeo com a criptoanaacutelise arte e ciecircncia de quebrarmensagens cifradas O ramo da Matemaacutetica envolvendo criptografia e criptoanaacutelise eacute cha-mado de criptologia Como bem observado em (SCHNEIER 1996) modernos criptoloacutegosprecisam ter domiacutenio em Matemaacutetica Teoacuterica uma vez que eacute sobre ela que se sustenta acriptologia atual

O uso da criptografia eacute antigo sendo comuns o seu uso em guerras mesmo desde oimpeacuterio romano Esse uso era principalmente para manter a confidencialidade da mensa-gem garantindo que apenas emissor e receptor pudessem interpretaacute-la De certa maneiraa computaccedilatildeo foi fortemente financiada durante a Segunda Guerra Mundial para invenccedilatildeode dispositivos que pudessem decodificar as mensagens dos alematildees Desse esforccedilo in-clusive participou Alan Turing um dos mais importantes teoacutericos da Computaccedilatildeo e um dospais da Inteligecircncia Artificial

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 10: SEGURANÇA COMPUTACIONAL

Conceitos Baacutesicos 11

Dessa maneira atentando-se para essas diretrizes eacute possiacutevel elaborar uma poliacuteticade seguranccedila vaacutelida para o ambiente em questatildeo Aleacutem disso eacute imprescindiacutevel que apoliacutetica de seguranccedila atente-se para os seguintes itens

Seguranccedila fiacutesica como os equipamentos da instituiccedilatildeo em questatildeo seratildeo protegidosComo garantir a integridade fiacutesica dos dados Como garantir que natildeo haveraacute acessofiacutesico a dados que deveriam estar protegidos Esse item eacute mais importante do que seimagina de nada adianta senhas de BIOS ou ultra-elaboradas se qualquer funcionaacute-rio receacutem demitido pode roubar o HD do servidor para vender ao concorrente

Seguranccedila loacutegica como garantir integridade loacutegica dos dados Como os dados da ins-tituiccedilatildeo em questatildeo seratildeo protegidos Como garantir que natildeo haveraacute acesso loacutegicoindevido a dados Quais satildeo os dados mais importantes Os casos de invasotildeestem-se tornado cada vez mais frequumlentes e eacute imprescindiacutevel estar atento a isso

Privacidade o que fazer para proteger a privacidade dos usuaacuterios A instituiccedilatildeo iraacute pro-teger essa privacidade Observe que a instituiccedilatildeo deve estar atenta aos aspectoslegais dessa questatildeo

Legalidade de Software como garantir um bom uso dos recursos impedindo a piratariaA responsabilidade pelos aplicativos instalados eacute de quem da empresa do usuaacuterioIsso precisa estar claro

Em geral quando se trata de seguranccedila computacional deve-se adotar a poliacutetica domenor privileacutegio ou seja liberar apenas os recursos necessaacuterios ao usuaacuterio Observe queem alguns ambientes essa eacute uma questatildeo altamente subjetiva Mas deve-se sempre terem mente que o que natildeo eacute expressamente permitido deve ser proibido

Aleacutem disso eacute imprescindiacutevel que o administrador pratique vigilacircncia e perseveranccedilaassumindo sempre que os mal-intencionados sabem mais que ele Tenha em mente quea adoccedilatildeo de uma poliacutetica de seguranccedila iraacute na maioria das vezes implicar em perda deperformance ou conveniecircncia do usuaacuterio Alguns serviccedilos devem ser evitados e isso geraproblemas para usuaacuterios mais inexperientes Aleacutem disso o traacutefego criptografado ocupamaior largura de banda diminuindo a velocidade de transmissatildeo de dados Assim deve-sepesar os proacutes e contras de qualquer atitude envolvendo seguranccedila antes de implementaacute-la

Em termos praacuteticos como eacute expressa a poliacutetica de seguranccedila O leitor deve estarpensando em documentos impressos Entretanto natildeo se deve esquecer que a poliacutetica natildeoeacute apenas papel ela envolve leis regras e praacuteticas Dependendo do ambiente eacute oacutebvioa necessidade de documentaccedilatildeo mas isso natildeo eacute a uacutenica forma de criar uma poliacutetica deseguranccedila

Em geral a poliacutetica de seguranccedila documentada da maior parte das instituiccedilotildees con-siste das normas de uso dos recursos e uma poliacutetica de uso A poliacutetica de uso eacute um docu-mento que deixa claro o que o usuaacuterio pode e natildeo pode fazer com os recursos dentro da

12 EDITORA - UFLAFAEPE - Seguranccedila Computacional

instituiccedilatildeo Para garantir validade juriacutedica desse documento eacute imprescindiacutevel a sua valida-ccedilatildeo pela assinatura do usuaacuterio ou em contrato coletivo de trabalho

22 CRIME VIRTUAL

Outra questatildeo fundamental que estaacute relacionada agrave questatildeo da seguranccedila computacio-nal eacute o conceito de crime virtual Nesse sentido eacute imprescindiacutevel distinguir ao menos emtermos praacuteticos os conceitos de crime de computador e crime por computador Essadistinccedilatildeo permite compreender melhor quais tipos de crime satildeo cobertos pela lei e quaisnatildeo o satildeo

Assim crime por computadores satildeo os crimes tradicionais cometidos por meios com-putacionais Dessa maneira por exemplo tipificam-se o roubo ou o assassinato por compu-tador O leitor atento pode estar um pouco assustado agora imaginando como poderia serpossiacutevel um assassinato por computador esquecendo-se que o assassino poderia invadir osistema computacional de um hospital por exemplo e alterar a medicaccedilatildeo de um pacientepara doses fortes de substacircncias a que ele tenha alergia

Eacute comum portanto a ocorrecircncia de crimes tradicionais efetuados por computadorsem que o autor desses crimes esteja atento ao fato de estar cometendo um crime jaacuteprevisto na lei tradicional O envio de determinados tipos de SPAMs por exemplo jaacute estaacuteprevisto na lei e pode render detenccedilatildeo de 3 meses a 1 ano de detenccedilatildeo ou multa conformeo Art 146 do Coacutedigo Penal (BRASIL 1940) Enviar e-mail com ameaccedila de agressatildeo poderender pena de 1 a 6 meses de detenccedilatildeo ou multa de acordo com o Art 147 Assimobserve que apenas modificou-se o meio o crime continua tipificado De forma semelhantesatildeo tipificados crimes de invasatildeo de privacidade envio de viacuterus de computador pedofiliaou montagem de sites com receitas de bombas ou similares

Por outro lado existem aqueles crimes que soacute existem no ambiente computacionalnatildeo existindo equivalente no ambiente natildeo tecnoloacutegico satildeo os crimes de computadorNesse contexto por exemplo o Brasil natildeo tem uma legislaccedilatildeo contra invasatildeo de sitesQuando o invasor natildeo faz uso de informaccedilotildees obtidas com essa invasatildeo (o que poderiacaracterizar espionagem industrial) ou natildeo faz alteraccedilotildees dos dados (o que poderia carac-terizar crime de dano vandalismo ou pichaccedilatildeo) fica difiacutecil caracterizar a invasatildeo como umacontravenccedilatildeo penal

Alguns paiacuteses possuem legislaccedilatildeo forte a esse respeito como eacute o caso dos EUA eda China No Brasil paraiacuteso dos invasores essa discussatildeo estaacute apenas no iniacutecio Mesmoassim o administrador que teve seus sistemas invadidos deve verificar os mecanismoslegais a que pode recorrer de forma a punir os autores da faccedilanha

Nesse contexto inclusive cabe chamar a atenccedilatildeo para os movimentos Hackers e Ci-berativismo Cabe tambeacutem chamar a atenccedilatildeo para o fato que o termo hacker natildeo costuma

Conceitos Baacutesicos 13

ser utilizado com sentido negativo em meio tecnoloacutegico Nesse ambiente utiliza-se o termocracker para os hackers que invadem sistemas com finalidades iliacutecitas Na cultura geralentretanto o termo hacker eacute tomado de forma indistinta geralmente com significado pejo-rativo para invasor Para uma abordagem mais formal sobre essa discussatildeo ver (UCHOcircA2003)

23 ATAQUES MAIS COMUNS

Como um servidor encontra-se geralmente acessiacutevel via internet e em tempo integralele eacute mais suscetiacutevel a ataques de todos os tipos e formas que uma estaccedilatildeo de trabalhoDependendo de sua configuraccedilatildeo entretanto eacute possiacutevel tornaacute-lo tatildeo ou mais seguro queestaccedilotildees de trabalho com acesso miacutenimo agrave internet Com a finalidade de melhor situar oleitor segue-se uma relaccedilatildeo dos principais tipos de ataque e termos correlatos

Footprinting Por footprinting entende-se a tarefa de coletar informaccedilotildees sobre um sis-tema alvo Essa coleta eacute feita por vias tradicionais e puacuteblicas como uso do comandofinger leitura de paacuteginas do site para obter dados interessantes etc Geralmenteo invasor iraacute verificar quem eacute o responsaacutevel pela admnisitraccedilatildeo do sistema uma vezque invadida a conta desse usuaacuterio eacute possiacutevel obter dados mais significativos

Scanning Um scanner eacute um utilitaacuterio que verifica vulnerabilidades Pode ser um scannerde sistema quando checa vulnerabilidades na maacutequina local (erros no etcpasswdpermissatildeo incorreta de arquivos etc) ou pode ser um scanner de rede quando fazvarredura de portas de redes verificando quais estatildeo abertas e principalmente quaisestatildeo mais vulneraacuteveis O objetivo principal desse tipo de ataque eacute descobrir falhas deseguranccedila devido a bugs em serviccedilos de rede ou ausecircncia de proteccedilatildeo para serviccedilosinternos

Sniffers Principalmente dentro de uma rede fiacutesica onde eacute facilitada um ataque muito uti-lizado eacute a espionagem eletrocircnica com o uso de sniffer Um sniffer eacute um aplicativoque fica ldquoescutandordquo todos os pacotes de dados que trafegam por uma dada placa derede Eacute importante observar que em vaacuterias topologias de rede um pacote passa porvaacuterias placas entre a origem e o destino Aleacutem disso cabe observar que para queinterceptar mensagens destinadas agrave outras maacutequinas a estaccedilatildeo deve colocar suainterface de rede em ldquomodo promiacutescuordquo1 Esse ataque objetiva principalmente a cap-tura de senhas de usuaacuterios internos uma vez que isso facilita ao invasor a entrada nosistema para detecccedilatildeo de vulnerabilidades Outro objetivo desse ataque eacute a capturade informaccedilotildees confidenciais em tracircnsito na rede

1Por ldquomodo promiacutescuordquo entende-se a configuraccedilatildeo de uma interface de rede em que ela captura natildeoapenas os pacotes de rede direcionados a ela mas tambeacutem os destinados a outras estaccedilotildees em um mesmosegmento de rede

14 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Spoofing Por spoofing entende-se a tarefa de fazer uma maacutequina se passar por outraforjando por exemplo pacotes IPs Em geral o usuaacuterio iraacute tentar bloquear o enviode pacotes de dados de uma maacutequina tentando se passar por ela Uma conexatildeoSSH com um maacutequina usando spoof iria acusar o ataque do Man-In-The-Middle jaacutecomentado em (UCHOcircA SIMEONE SICA 2003) Caso o administrador use transportecriptografado de dados e senhas e esteja atento agraves chaves utilizadas esse ataquedificilmente iraacute comprometer a integridade dos dados e serviccedilos

Denial of Service (DoS) Pouca atenccedilatildeo tinha sido dado aos ataques de negaccedilatildeo de ser-viccedilo ateacute a derrubada de servidores importantes como Amazon Yahoo e mesmo UOLComo pode ser subentendido o DoS eacute um ataque que busca derrubar um serviccediloou mesmo um servidor inteiro Ultimamente tem sido utilizado do DDoS (DistributedDoS) onde um atacante utiliza vaacuterias maacutequinas ldquozumbisrdquo para enviar inuacutemeras requi-siccedilotildees ao mesmo tempo e de forma sincronizada a um dado servidor Isso acabapor ou consumir grande parte da largura de banda de rede ou sobrecarregar um dadodaemon derrubando-o Mais recentemente pode-se comentar o caso do viacuterus doApache que fazia com que um dado servidor Web ficasse enviando grande quanti-dade de dados pela rede conduzindo o traacutefego de rede a uma lentidatildeo insuportaacutevel

Coacutedigo Malicioso Coacutedigo malicioso como o nome jaacute sugere eacute um software criado com fi-nalidades mal intencionadas Nessa categoria incluem-se os coacutedigos natildeo autorizados(geralmente contidos dentro de um programa legiacutetimo) que efetuam accedilotildees desconhe-cidas e natildeo desejadas pelo usuaacuterio Tambeacutem satildeo incluiacutedos nessa categoria os pro-gramas legiacutetimos que foram alterados para efetuar accedilotildees natildeo desejadas pelo usuaacuterioOutro tipo de coacutedigo malicioso satildeo aqueles que destroem dados sem a intenccedilatildeo dousuaacuterio Alguns tipos de coacutedigo maliciosos merecem destaque

bull Cavalos de Troacuteia Um cavalo de troacuteia ou trojan horse ou apenas trojan eacute umprograma de computador alterado com finalidades iliacutecitas Por exemplo umatacante poderia substituir o binlogin para natildeo soacute autenticar usuaacuterioscomo tambeacutem armazenar essas senhas em um arquivo oculto

bull Viacuterus Viacuterus satildeo semelhantes a trojans dado que efetua accedilatildeo natildeo desejadapelo usuaacuterio Uma das diferenccedilas reside no fato que o viacuterus uma vez ativadoiraacute infectar outros arquivos locais A grosso modo viacuterus natildeo podem infectarmaacutequinas externas sem o auxiacutelio de uma pessoa

bull Vermes Um verme eacute um programa que pode infectar tanto a maacutequina localquanto maacutequinas remotas geralmente utilizando falhas de protocolos servi-ccedilos ou aplicativos

Como observado por (HATCH LEE KURTZ 2002) a maior parte dos programas per-niciosos existentes satildeo hiacutebridos dessas trecircs categorias Como exemplo tem-se oMelissa que era um cavalo de troacuteia (se passava por um e-mail que o usuaacuterio estivesse

Conceitos Baacutesicos 15

esperando) um viacuterus (infectava todos os arquivos locais de processamento de texto)e um verme (usava uma falha do Outlook para se propagar a todos os usuaacuterios naagenda de endereccedilos do usuaacuterio) Observe que no senso comum viacuterus e verme satildeogeralmente tomados com um uacutenico significado sendo usado apenas o termo ldquoviacuterusrdquoPor exemplo o viacuterus do Apache era a bem da verdade um verme (se propagavaa outras maacutequinas usando o Apache) mas como natildeo infectava outros arquivos noservidor natildeo poderia ser considerado necessariamente um viacuterusUm tipo de trojan extremamente perigoso satildeo os rootkits Como o nome sugereum rootkit eacute um aplicativo (ou um conjunto de aplicativos) com o objetivo de garantirpoderes de root ao invasor Geralmente consiste de aplicativos alterados a funcionarde forma especial pelo usuaacuterio ou versotildees alteradas do proacuteprio kernel

Exploits Exploits satildeo programas criados para explorar falhas advindas principalmente debugs nos daemons de serviccedilos Entre as falhas mais exploradas encontram-se bufferoverflow que consiste em estourar o buffer de entrada de um servidor forccedilando-o aestourar sua memoacuteria devolvendo um shell para o invasor

Ataques de Senhas Esse tipo de ataque consiste em tentar descobrir a senha de um oumais usuaacuterios por forccedila bruta ou usando teacutecnicas heuriacutesticas Em geral o invasor tentaobter uma coacutepia das senhas e efetuar um ataque de dicionaacuterio utilizando variaccedilotildeesde palavras em uma dada lista (o dicionaacuterio) tenta-se confrontar a senha do usuaacuteriocom essas variaccedilotildees ateacute descobrir uma que permita o acesso

Uma observaccedilatildeo final eacute que determinados ataques satildeo a bem da verdade tambeacutemferramentas de seguranccedila Assim por exemplo um scanner pode ser utilizado para verificarem que pontos um sistema estaacute vulneraacutevel Um programa de ataque de senha pode serutilizado para checar se os usuaacuterios natildeo estatildeo utilizando senhas faacuteceis o que facilitariauma invasatildeo Aleacutem disso alguns sistemas poderosos de detecccedilatildeo de intrusos satildeo tambeacutemsniffers Sniffers tambeacutem costumam ser utilizados para detectar problemas em uma rede

16 EDITORA - UFLAFAEPE - Seguranccedila Computacional

3USO DE CRIPTOGRAFIA

31 CONCEITOS BAacuteSICOS

A raacutepida evoluccedilatildeo das comunicaccedilotildees eletrocircnicas suscitou uma seacuterie de necessidadespara que se evitassem problemas de espionagem Entre essas necessidades destaca-seo uso de sistemas criptograacuteficos Mesmo em ambientes de telefonia celular por exemplo ouso de criptografia eacute cada vez mais utilizado

Como definido em (SCHNEIER 1996) a criptografia eacute a arte e ciecircncia de manter men-sagens seguras Ela envolve dois processos 1) criptografar (ou cifrar) uma mensagem Mtransformando-a em um texto cifrado C e 2) posteriormente decifrar (ou decriptografar) Cobtendo novamente a mensagem M como ilustrado na Figura 31

Decriptaccedilatildeoou

Decifragem

Encriptaccedilatildeoou

Cifragem

Mensagem (M) Mensagem (M)Texto Cifrado (C)

Figura 31 Processos Criptograacuteficos

A criptografia possui estrita relaccedilatildeo com a criptoanaacutelise arte e ciecircncia de quebrarmensagens cifradas O ramo da Matemaacutetica envolvendo criptografia e criptoanaacutelise eacute cha-mado de criptologia Como bem observado em (SCHNEIER 1996) modernos criptoloacutegosprecisam ter domiacutenio em Matemaacutetica Teoacuterica uma vez que eacute sobre ela que se sustenta acriptologia atual

O uso da criptografia eacute antigo sendo comuns o seu uso em guerras mesmo desde oimpeacuterio romano Esse uso era principalmente para manter a confidencialidade da mensa-gem garantindo que apenas emissor e receptor pudessem interpretaacute-la De certa maneiraa computaccedilatildeo foi fortemente financiada durante a Segunda Guerra Mundial para invenccedilatildeode dispositivos que pudessem decodificar as mensagens dos alematildees Desse esforccedilo in-clusive participou Alan Turing um dos mais importantes teoacutericos da Computaccedilatildeo e um dospais da Inteligecircncia Artificial

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 11: SEGURANÇA COMPUTACIONAL

12 EDITORA - UFLAFAEPE - Seguranccedila Computacional

instituiccedilatildeo Para garantir validade juriacutedica desse documento eacute imprescindiacutevel a sua valida-ccedilatildeo pela assinatura do usuaacuterio ou em contrato coletivo de trabalho

22 CRIME VIRTUAL

Outra questatildeo fundamental que estaacute relacionada agrave questatildeo da seguranccedila computacio-nal eacute o conceito de crime virtual Nesse sentido eacute imprescindiacutevel distinguir ao menos emtermos praacuteticos os conceitos de crime de computador e crime por computador Essadistinccedilatildeo permite compreender melhor quais tipos de crime satildeo cobertos pela lei e quaisnatildeo o satildeo

Assim crime por computadores satildeo os crimes tradicionais cometidos por meios com-putacionais Dessa maneira por exemplo tipificam-se o roubo ou o assassinato por compu-tador O leitor atento pode estar um pouco assustado agora imaginando como poderia serpossiacutevel um assassinato por computador esquecendo-se que o assassino poderia invadir osistema computacional de um hospital por exemplo e alterar a medicaccedilatildeo de um pacientepara doses fortes de substacircncias a que ele tenha alergia

Eacute comum portanto a ocorrecircncia de crimes tradicionais efetuados por computadorsem que o autor desses crimes esteja atento ao fato de estar cometendo um crime jaacuteprevisto na lei tradicional O envio de determinados tipos de SPAMs por exemplo jaacute estaacuteprevisto na lei e pode render detenccedilatildeo de 3 meses a 1 ano de detenccedilatildeo ou multa conformeo Art 146 do Coacutedigo Penal (BRASIL 1940) Enviar e-mail com ameaccedila de agressatildeo poderender pena de 1 a 6 meses de detenccedilatildeo ou multa de acordo com o Art 147 Assimobserve que apenas modificou-se o meio o crime continua tipificado De forma semelhantesatildeo tipificados crimes de invasatildeo de privacidade envio de viacuterus de computador pedofiliaou montagem de sites com receitas de bombas ou similares

Por outro lado existem aqueles crimes que soacute existem no ambiente computacionalnatildeo existindo equivalente no ambiente natildeo tecnoloacutegico satildeo os crimes de computadorNesse contexto por exemplo o Brasil natildeo tem uma legislaccedilatildeo contra invasatildeo de sitesQuando o invasor natildeo faz uso de informaccedilotildees obtidas com essa invasatildeo (o que poderiacaracterizar espionagem industrial) ou natildeo faz alteraccedilotildees dos dados (o que poderia carac-terizar crime de dano vandalismo ou pichaccedilatildeo) fica difiacutecil caracterizar a invasatildeo como umacontravenccedilatildeo penal

Alguns paiacuteses possuem legislaccedilatildeo forte a esse respeito como eacute o caso dos EUA eda China No Brasil paraiacuteso dos invasores essa discussatildeo estaacute apenas no iniacutecio Mesmoassim o administrador que teve seus sistemas invadidos deve verificar os mecanismoslegais a que pode recorrer de forma a punir os autores da faccedilanha

Nesse contexto inclusive cabe chamar a atenccedilatildeo para os movimentos Hackers e Ci-berativismo Cabe tambeacutem chamar a atenccedilatildeo para o fato que o termo hacker natildeo costuma

Conceitos Baacutesicos 13

ser utilizado com sentido negativo em meio tecnoloacutegico Nesse ambiente utiliza-se o termocracker para os hackers que invadem sistemas com finalidades iliacutecitas Na cultura geralentretanto o termo hacker eacute tomado de forma indistinta geralmente com significado pejo-rativo para invasor Para uma abordagem mais formal sobre essa discussatildeo ver (UCHOcircA2003)

23 ATAQUES MAIS COMUNS

Como um servidor encontra-se geralmente acessiacutevel via internet e em tempo integralele eacute mais suscetiacutevel a ataques de todos os tipos e formas que uma estaccedilatildeo de trabalhoDependendo de sua configuraccedilatildeo entretanto eacute possiacutevel tornaacute-lo tatildeo ou mais seguro queestaccedilotildees de trabalho com acesso miacutenimo agrave internet Com a finalidade de melhor situar oleitor segue-se uma relaccedilatildeo dos principais tipos de ataque e termos correlatos

Footprinting Por footprinting entende-se a tarefa de coletar informaccedilotildees sobre um sis-tema alvo Essa coleta eacute feita por vias tradicionais e puacuteblicas como uso do comandofinger leitura de paacuteginas do site para obter dados interessantes etc Geralmenteo invasor iraacute verificar quem eacute o responsaacutevel pela admnisitraccedilatildeo do sistema uma vezque invadida a conta desse usuaacuterio eacute possiacutevel obter dados mais significativos

Scanning Um scanner eacute um utilitaacuterio que verifica vulnerabilidades Pode ser um scannerde sistema quando checa vulnerabilidades na maacutequina local (erros no etcpasswdpermissatildeo incorreta de arquivos etc) ou pode ser um scanner de rede quando fazvarredura de portas de redes verificando quais estatildeo abertas e principalmente quaisestatildeo mais vulneraacuteveis O objetivo principal desse tipo de ataque eacute descobrir falhas deseguranccedila devido a bugs em serviccedilos de rede ou ausecircncia de proteccedilatildeo para serviccedilosinternos

Sniffers Principalmente dentro de uma rede fiacutesica onde eacute facilitada um ataque muito uti-lizado eacute a espionagem eletrocircnica com o uso de sniffer Um sniffer eacute um aplicativoque fica ldquoescutandordquo todos os pacotes de dados que trafegam por uma dada placa derede Eacute importante observar que em vaacuterias topologias de rede um pacote passa porvaacuterias placas entre a origem e o destino Aleacutem disso cabe observar que para queinterceptar mensagens destinadas agrave outras maacutequinas a estaccedilatildeo deve colocar suainterface de rede em ldquomodo promiacutescuordquo1 Esse ataque objetiva principalmente a cap-tura de senhas de usuaacuterios internos uma vez que isso facilita ao invasor a entrada nosistema para detecccedilatildeo de vulnerabilidades Outro objetivo desse ataque eacute a capturade informaccedilotildees confidenciais em tracircnsito na rede

1Por ldquomodo promiacutescuordquo entende-se a configuraccedilatildeo de uma interface de rede em que ela captura natildeoapenas os pacotes de rede direcionados a ela mas tambeacutem os destinados a outras estaccedilotildees em um mesmosegmento de rede

14 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Spoofing Por spoofing entende-se a tarefa de fazer uma maacutequina se passar por outraforjando por exemplo pacotes IPs Em geral o usuaacuterio iraacute tentar bloquear o enviode pacotes de dados de uma maacutequina tentando se passar por ela Uma conexatildeoSSH com um maacutequina usando spoof iria acusar o ataque do Man-In-The-Middle jaacutecomentado em (UCHOcircA SIMEONE SICA 2003) Caso o administrador use transportecriptografado de dados e senhas e esteja atento agraves chaves utilizadas esse ataquedificilmente iraacute comprometer a integridade dos dados e serviccedilos

Denial of Service (DoS) Pouca atenccedilatildeo tinha sido dado aos ataques de negaccedilatildeo de ser-viccedilo ateacute a derrubada de servidores importantes como Amazon Yahoo e mesmo UOLComo pode ser subentendido o DoS eacute um ataque que busca derrubar um serviccediloou mesmo um servidor inteiro Ultimamente tem sido utilizado do DDoS (DistributedDoS) onde um atacante utiliza vaacuterias maacutequinas ldquozumbisrdquo para enviar inuacutemeras requi-siccedilotildees ao mesmo tempo e de forma sincronizada a um dado servidor Isso acabapor ou consumir grande parte da largura de banda de rede ou sobrecarregar um dadodaemon derrubando-o Mais recentemente pode-se comentar o caso do viacuterus doApache que fazia com que um dado servidor Web ficasse enviando grande quanti-dade de dados pela rede conduzindo o traacutefego de rede a uma lentidatildeo insuportaacutevel

Coacutedigo Malicioso Coacutedigo malicioso como o nome jaacute sugere eacute um software criado com fi-nalidades mal intencionadas Nessa categoria incluem-se os coacutedigos natildeo autorizados(geralmente contidos dentro de um programa legiacutetimo) que efetuam accedilotildees desconhe-cidas e natildeo desejadas pelo usuaacuterio Tambeacutem satildeo incluiacutedos nessa categoria os pro-gramas legiacutetimos que foram alterados para efetuar accedilotildees natildeo desejadas pelo usuaacuterioOutro tipo de coacutedigo malicioso satildeo aqueles que destroem dados sem a intenccedilatildeo dousuaacuterio Alguns tipos de coacutedigo maliciosos merecem destaque

bull Cavalos de Troacuteia Um cavalo de troacuteia ou trojan horse ou apenas trojan eacute umprograma de computador alterado com finalidades iliacutecitas Por exemplo umatacante poderia substituir o binlogin para natildeo soacute autenticar usuaacuterioscomo tambeacutem armazenar essas senhas em um arquivo oculto

bull Viacuterus Viacuterus satildeo semelhantes a trojans dado que efetua accedilatildeo natildeo desejadapelo usuaacuterio Uma das diferenccedilas reside no fato que o viacuterus uma vez ativadoiraacute infectar outros arquivos locais A grosso modo viacuterus natildeo podem infectarmaacutequinas externas sem o auxiacutelio de uma pessoa

bull Vermes Um verme eacute um programa que pode infectar tanto a maacutequina localquanto maacutequinas remotas geralmente utilizando falhas de protocolos servi-ccedilos ou aplicativos

Como observado por (HATCH LEE KURTZ 2002) a maior parte dos programas per-niciosos existentes satildeo hiacutebridos dessas trecircs categorias Como exemplo tem-se oMelissa que era um cavalo de troacuteia (se passava por um e-mail que o usuaacuterio estivesse

Conceitos Baacutesicos 15

esperando) um viacuterus (infectava todos os arquivos locais de processamento de texto)e um verme (usava uma falha do Outlook para se propagar a todos os usuaacuterios naagenda de endereccedilos do usuaacuterio) Observe que no senso comum viacuterus e verme satildeogeralmente tomados com um uacutenico significado sendo usado apenas o termo ldquoviacuterusrdquoPor exemplo o viacuterus do Apache era a bem da verdade um verme (se propagavaa outras maacutequinas usando o Apache) mas como natildeo infectava outros arquivos noservidor natildeo poderia ser considerado necessariamente um viacuterusUm tipo de trojan extremamente perigoso satildeo os rootkits Como o nome sugereum rootkit eacute um aplicativo (ou um conjunto de aplicativos) com o objetivo de garantirpoderes de root ao invasor Geralmente consiste de aplicativos alterados a funcionarde forma especial pelo usuaacuterio ou versotildees alteradas do proacuteprio kernel

Exploits Exploits satildeo programas criados para explorar falhas advindas principalmente debugs nos daemons de serviccedilos Entre as falhas mais exploradas encontram-se bufferoverflow que consiste em estourar o buffer de entrada de um servidor forccedilando-o aestourar sua memoacuteria devolvendo um shell para o invasor

Ataques de Senhas Esse tipo de ataque consiste em tentar descobrir a senha de um oumais usuaacuterios por forccedila bruta ou usando teacutecnicas heuriacutesticas Em geral o invasor tentaobter uma coacutepia das senhas e efetuar um ataque de dicionaacuterio utilizando variaccedilotildeesde palavras em uma dada lista (o dicionaacuterio) tenta-se confrontar a senha do usuaacuteriocom essas variaccedilotildees ateacute descobrir uma que permita o acesso

Uma observaccedilatildeo final eacute que determinados ataques satildeo a bem da verdade tambeacutemferramentas de seguranccedila Assim por exemplo um scanner pode ser utilizado para verificarem que pontos um sistema estaacute vulneraacutevel Um programa de ataque de senha pode serutilizado para checar se os usuaacuterios natildeo estatildeo utilizando senhas faacuteceis o que facilitariauma invasatildeo Aleacutem disso alguns sistemas poderosos de detecccedilatildeo de intrusos satildeo tambeacutemsniffers Sniffers tambeacutem costumam ser utilizados para detectar problemas em uma rede

16 EDITORA - UFLAFAEPE - Seguranccedila Computacional

3USO DE CRIPTOGRAFIA

31 CONCEITOS BAacuteSICOS

A raacutepida evoluccedilatildeo das comunicaccedilotildees eletrocircnicas suscitou uma seacuterie de necessidadespara que se evitassem problemas de espionagem Entre essas necessidades destaca-seo uso de sistemas criptograacuteficos Mesmo em ambientes de telefonia celular por exemplo ouso de criptografia eacute cada vez mais utilizado

Como definido em (SCHNEIER 1996) a criptografia eacute a arte e ciecircncia de manter men-sagens seguras Ela envolve dois processos 1) criptografar (ou cifrar) uma mensagem Mtransformando-a em um texto cifrado C e 2) posteriormente decifrar (ou decriptografar) Cobtendo novamente a mensagem M como ilustrado na Figura 31

Decriptaccedilatildeoou

Decifragem

Encriptaccedilatildeoou

Cifragem

Mensagem (M) Mensagem (M)Texto Cifrado (C)

Figura 31 Processos Criptograacuteficos

A criptografia possui estrita relaccedilatildeo com a criptoanaacutelise arte e ciecircncia de quebrarmensagens cifradas O ramo da Matemaacutetica envolvendo criptografia e criptoanaacutelise eacute cha-mado de criptologia Como bem observado em (SCHNEIER 1996) modernos criptoloacutegosprecisam ter domiacutenio em Matemaacutetica Teoacuterica uma vez que eacute sobre ela que se sustenta acriptologia atual

O uso da criptografia eacute antigo sendo comuns o seu uso em guerras mesmo desde oimpeacuterio romano Esse uso era principalmente para manter a confidencialidade da mensa-gem garantindo que apenas emissor e receptor pudessem interpretaacute-la De certa maneiraa computaccedilatildeo foi fortemente financiada durante a Segunda Guerra Mundial para invenccedilatildeode dispositivos que pudessem decodificar as mensagens dos alematildees Desse esforccedilo in-clusive participou Alan Turing um dos mais importantes teoacutericos da Computaccedilatildeo e um dospais da Inteligecircncia Artificial

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 12: SEGURANÇA COMPUTACIONAL

Conceitos Baacutesicos 13

ser utilizado com sentido negativo em meio tecnoloacutegico Nesse ambiente utiliza-se o termocracker para os hackers que invadem sistemas com finalidades iliacutecitas Na cultura geralentretanto o termo hacker eacute tomado de forma indistinta geralmente com significado pejo-rativo para invasor Para uma abordagem mais formal sobre essa discussatildeo ver (UCHOcircA2003)

23 ATAQUES MAIS COMUNS

Como um servidor encontra-se geralmente acessiacutevel via internet e em tempo integralele eacute mais suscetiacutevel a ataques de todos os tipos e formas que uma estaccedilatildeo de trabalhoDependendo de sua configuraccedilatildeo entretanto eacute possiacutevel tornaacute-lo tatildeo ou mais seguro queestaccedilotildees de trabalho com acesso miacutenimo agrave internet Com a finalidade de melhor situar oleitor segue-se uma relaccedilatildeo dos principais tipos de ataque e termos correlatos

Footprinting Por footprinting entende-se a tarefa de coletar informaccedilotildees sobre um sis-tema alvo Essa coleta eacute feita por vias tradicionais e puacuteblicas como uso do comandofinger leitura de paacuteginas do site para obter dados interessantes etc Geralmenteo invasor iraacute verificar quem eacute o responsaacutevel pela admnisitraccedilatildeo do sistema uma vezque invadida a conta desse usuaacuterio eacute possiacutevel obter dados mais significativos

Scanning Um scanner eacute um utilitaacuterio que verifica vulnerabilidades Pode ser um scannerde sistema quando checa vulnerabilidades na maacutequina local (erros no etcpasswdpermissatildeo incorreta de arquivos etc) ou pode ser um scanner de rede quando fazvarredura de portas de redes verificando quais estatildeo abertas e principalmente quaisestatildeo mais vulneraacuteveis O objetivo principal desse tipo de ataque eacute descobrir falhas deseguranccedila devido a bugs em serviccedilos de rede ou ausecircncia de proteccedilatildeo para serviccedilosinternos

Sniffers Principalmente dentro de uma rede fiacutesica onde eacute facilitada um ataque muito uti-lizado eacute a espionagem eletrocircnica com o uso de sniffer Um sniffer eacute um aplicativoque fica ldquoescutandordquo todos os pacotes de dados que trafegam por uma dada placa derede Eacute importante observar que em vaacuterias topologias de rede um pacote passa porvaacuterias placas entre a origem e o destino Aleacutem disso cabe observar que para queinterceptar mensagens destinadas agrave outras maacutequinas a estaccedilatildeo deve colocar suainterface de rede em ldquomodo promiacutescuordquo1 Esse ataque objetiva principalmente a cap-tura de senhas de usuaacuterios internos uma vez que isso facilita ao invasor a entrada nosistema para detecccedilatildeo de vulnerabilidades Outro objetivo desse ataque eacute a capturade informaccedilotildees confidenciais em tracircnsito na rede

1Por ldquomodo promiacutescuordquo entende-se a configuraccedilatildeo de uma interface de rede em que ela captura natildeoapenas os pacotes de rede direcionados a ela mas tambeacutem os destinados a outras estaccedilotildees em um mesmosegmento de rede

14 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Spoofing Por spoofing entende-se a tarefa de fazer uma maacutequina se passar por outraforjando por exemplo pacotes IPs Em geral o usuaacuterio iraacute tentar bloquear o enviode pacotes de dados de uma maacutequina tentando se passar por ela Uma conexatildeoSSH com um maacutequina usando spoof iria acusar o ataque do Man-In-The-Middle jaacutecomentado em (UCHOcircA SIMEONE SICA 2003) Caso o administrador use transportecriptografado de dados e senhas e esteja atento agraves chaves utilizadas esse ataquedificilmente iraacute comprometer a integridade dos dados e serviccedilos

Denial of Service (DoS) Pouca atenccedilatildeo tinha sido dado aos ataques de negaccedilatildeo de ser-viccedilo ateacute a derrubada de servidores importantes como Amazon Yahoo e mesmo UOLComo pode ser subentendido o DoS eacute um ataque que busca derrubar um serviccediloou mesmo um servidor inteiro Ultimamente tem sido utilizado do DDoS (DistributedDoS) onde um atacante utiliza vaacuterias maacutequinas ldquozumbisrdquo para enviar inuacutemeras requi-siccedilotildees ao mesmo tempo e de forma sincronizada a um dado servidor Isso acabapor ou consumir grande parte da largura de banda de rede ou sobrecarregar um dadodaemon derrubando-o Mais recentemente pode-se comentar o caso do viacuterus doApache que fazia com que um dado servidor Web ficasse enviando grande quanti-dade de dados pela rede conduzindo o traacutefego de rede a uma lentidatildeo insuportaacutevel

Coacutedigo Malicioso Coacutedigo malicioso como o nome jaacute sugere eacute um software criado com fi-nalidades mal intencionadas Nessa categoria incluem-se os coacutedigos natildeo autorizados(geralmente contidos dentro de um programa legiacutetimo) que efetuam accedilotildees desconhe-cidas e natildeo desejadas pelo usuaacuterio Tambeacutem satildeo incluiacutedos nessa categoria os pro-gramas legiacutetimos que foram alterados para efetuar accedilotildees natildeo desejadas pelo usuaacuterioOutro tipo de coacutedigo malicioso satildeo aqueles que destroem dados sem a intenccedilatildeo dousuaacuterio Alguns tipos de coacutedigo maliciosos merecem destaque

bull Cavalos de Troacuteia Um cavalo de troacuteia ou trojan horse ou apenas trojan eacute umprograma de computador alterado com finalidades iliacutecitas Por exemplo umatacante poderia substituir o binlogin para natildeo soacute autenticar usuaacuterioscomo tambeacutem armazenar essas senhas em um arquivo oculto

bull Viacuterus Viacuterus satildeo semelhantes a trojans dado que efetua accedilatildeo natildeo desejadapelo usuaacuterio Uma das diferenccedilas reside no fato que o viacuterus uma vez ativadoiraacute infectar outros arquivos locais A grosso modo viacuterus natildeo podem infectarmaacutequinas externas sem o auxiacutelio de uma pessoa

bull Vermes Um verme eacute um programa que pode infectar tanto a maacutequina localquanto maacutequinas remotas geralmente utilizando falhas de protocolos servi-ccedilos ou aplicativos

Como observado por (HATCH LEE KURTZ 2002) a maior parte dos programas per-niciosos existentes satildeo hiacutebridos dessas trecircs categorias Como exemplo tem-se oMelissa que era um cavalo de troacuteia (se passava por um e-mail que o usuaacuterio estivesse

Conceitos Baacutesicos 15

esperando) um viacuterus (infectava todos os arquivos locais de processamento de texto)e um verme (usava uma falha do Outlook para se propagar a todos os usuaacuterios naagenda de endereccedilos do usuaacuterio) Observe que no senso comum viacuterus e verme satildeogeralmente tomados com um uacutenico significado sendo usado apenas o termo ldquoviacuterusrdquoPor exemplo o viacuterus do Apache era a bem da verdade um verme (se propagavaa outras maacutequinas usando o Apache) mas como natildeo infectava outros arquivos noservidor natildeo poderia ser considerado necessariamente um viacuterusUm tipo de trojan extremamente perigoso satildeo os rootkits Como o nome sugereum rootkit eacute um aplicativo (ou um conjunto de aplicativos) com o objetivo de garantirpoderes de root ao invasor Geralmente consiste de aplicativos alterados a funcionarde forma especial pelo usuaacuterio ou versotildees alteradas do proacuteprio kernel

Exploits Exploits satildeo programas criados para explorar falhas advindas principalmente debugs nos daemons de serviccedilos Entre as falhas mais exploradas encontram-se bufferoverflow que consiste em estourar o buffer de entrada de um servidor forccedilando-o aestourar sua memoacuteria devolvendo um shell para o invasor

Ataques de Senhas Esse tipo de ataque consiste em tentar descobrir a senha de um oumais usuaacuterios por forccedila bruta ou usando teacutecnicas heuriacutesticas Em geral o invasor tentaobter uma coacutepia das senhas e efetuar um ataque de dicionaacuterio utilizando variaccedilotildeesde palavras em uma dada lista (o dicionaacuterio) tenta-se confrontar a senha do usuaacuteriocom essas variaccedilotildees ateacute descobrir uma que permita o acesso

Uma observaccedilatildeo final eacute que determinados ataques satildeo a bem da verdade tambeacutemferramentas de seguranccedila Assim por exemplo um scanner pode ser utilizado para verificarem que pontos um sistema estaacute vulneraacutevel Um programa de ataque de senha pode serutilizado para checar se os usuaacuterios natildeo estatildeo utilizando senhas faacuteceis o que facilitariauma invasatildeo Aleacutem disso alguns sistemas poderosos de detecccedilatildeo de intrusos satildeo tambeacutemsniffers Sniffers tambeacutem costumam ser utilizados para detectar problemas em uma rede

16 EDITORA - UFLAFAEPE - Seguranccedila Computacional

3USO DE CRIPTOGRAFIA

31 CONCEITOS BAacuteSICOS

A raacutepida evoluccedilatildeo das comunicaccedilotildees eletrocircnicas suscitou uma seacuterie de necessidadespara que se evitassem problemas de espionagem Entre essas necessidades destaca-seo uso de sistemas criptograacuteficos Mesmo em ambientes de telefonia celular por exemplo ouso de criptografia eacute cada vez mais utilizado

Como definido em (SCHNEIER 1996) a criptografia eacute a arte e ciecircncia de manter men-sagens seguras Ela envolve dois processos 1) criptografar (ou cifrar) uma mensagem Mtransformando-a em um texto cifrado C e 2) posteriormente decifrar (ou decriptografar) Cobtendo novamente a mensagem M como ilustrado na Figura 31

Decriptaccedilatildeoou

Decifragem

Encriptaccedilatildeoou

Cifragem

Mensagem (M) Mensagem (M)Texto Cifrado (C)

Figura 31 Processos Criptograacuteficos

A criptografia possui estrita relaccedilatildeo com a criptoanaacutelise arte e ciecircncia de quebrarmensagens cifradas O ramo da Matemaacutetica envolvendo criptografia e criptoanaacutelise eacute cha-mado de criptologia Como bem observado em (SCHNEIER 1996) modernos criptoloacutegosprecisam ter domiacutenio em Matemaacutetica Teoacuterica uma vez que eacute sobre ela que se sustenta acriptologia atual

O uso da criptografia eacute antigo sendo comuns o seu uso em guerras mesmo desde oimpeacuterio romano Esse uso era principalmente para manter a confidencialidade da mensa-gem garantindo que apenas emissor e receptor pudessem interpretaacute-la De certa maneiraa computaccedilatildeo foi fortemente financiada durante a Segunda Guerra Mundial para invenccedilatildeode dispositivos que pudessem decodificar as mensagens dos alematildees Desse esforccedilo in-clusive participou Alan Turing um dos mais importantes teoacutericos da Computaccedilatildeo e um dospais da Inteligecircncia Artificial

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 13: SEGURANÇA COMPUTACIONAL

14 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Spoofing Por spoofing entende-se a tarefa de fazer uma maacutequina se passar por outraforjando por exemplo pacotes IPs Em geral o usuaacuterio iraacute tentar bloquear o enviode pacotes de dados de uma maacutequina tentando se passar por ela Uma conexatildeoSSH com um maacutequina usando spoof iria acusar o ataque do Man-In-The-Middle jaacutecomentado em (UCHOcircA SIMEONE SICA 2003) Caso o administrador use transportecriptografado de dados e senhas e esteja atento agraves chaves utilizadas esse ataquedificilmente iraacute comprometer a integridade dos dados e serviccedilos

Denial of Service (DoS) Pouca atenccedilatildeo tinha sido dado aos ataques de negaccedilatildeo de ser-viccedilo ateacute a derrubada de servidores importantes como Amazon Yahoo e mesmo UOLComo pode ser subentendido o DoS eacute um ataque que busca derrubar um serviccediloou mesmo um servidor inteiro Ultimamente tem sido utilizado do DDoS (DistributedDoS) onde um atacante utiliza vaacuterias maacutequinas ldquozumbisrdquo para enviar inuacutemeras requi-siccedilotildees ao mesmo tempo e de forma sincronizada a um dado servidor Isso acabapor ou consumir grande parte da largura de banda de rede ou sobrecarregar um dadodaemon derrubando-o Mais recentemente pode-se comentar o caso do viacuterus doApache que fazia com que um dado servidor Web ficasse enviando grande quanti-dade de dados pela rede conduzindo o traacutefego de rede a uma lentidatildeo insuportaacutevel

Coacutedigo Malicioso Coacutedigo malicioso como o nome jaacute sugere eacute um software criado com fi-nalidades mal intencionadas Nessa categoria incluem-se os coacutedigos natildeo autorizados(geralmente contidos dentro de um programa legiacutetimo) que efetuam accedilotildees desconhe-cidas e natildeo desejadas pelo usuaacuterio Tambeacutem satildeo incluiacutedos nessa categoria os pro-gramas legiacutetimos que foram alterados para efetuar accedilotildees natildeo desejadas pelo usuaacuterioOutro tipo de coacutedigo malicioso satildeo aqueles que destroem dados sem a intenccedilatildeo dousuaacuterio Alguns tipos de coacutedigo maliciosos merecem destaque

bull Cavalos de Troacuteia Um cavalo de troacuteia ou trojan horse ou apenas trojan eacute umprograma de computador alterado com finalidades iliacutecitas Por exemplo umatacante poderia substituir o binlogin para natildeo soacute autenticar usuaacuterioscomo tambeacutem armazenar essas senhas em um arquivo oculto

bull Viacuterus Viacuterus satildeo semelhantes a trojans dado que efetua accedilatildeo natildeo desejadapelo usuaacuterio Uma das diferenccedilas reside no fato que o viacuterus uma vez ativadoiraacute infectar outros arquivos locais A grosso modo viacuterus natildeo podem infectarmaacutequinas externas sem o auxiacutelio de uma pessoa

bull Vermes Um verme eacute um programa que pode infectar tanto a maacutequina localquanto maacutequinas remotas geralmente utilizando falhas de protocolos servi-ccedilos ou aplicativos

Como observado por (HATCH LEE KURTZ 2002) a maior parte dos programas per-niciosos existentes satildeo hiacutebridos dessas trecircs categorias Como exemplo tem-se oMelissa que era um cavalo de troacuteia (se passava por um e-mail que o usuaacuterio estivesse

Conceitos Baacutesicos 15

esperando) um viacuterus (infectava todos os arquivos locais de processamento de texto)e um verme (usava uma falha do Outlook para se propagar a todos os usuaacuterios naagenda de endereccedilos do usuaacuterio) Observe que no senso comum viacuterus e verme satildeogeralmente tomados com um uacutenico significado sendo usado apenas o termo ldquoviacuterusrdquoPor exemplo o viacuterus do Apache era a bem da verdade um verme (se propagavaa outras maacutequinas usando o Apache) mas como natildeo infectava outros arquivos noservidor natildeo poderia ser considerado necessariamente um viacuterusUm tipo de trojan extremamente perigoso satildeo os rootkits Como o nome sugereum rootkit eacute um aplicativo (ou um conjunto de aplicativos) com o objetivo de garantirpoderes de root ao invasor Geralmente consiste de aplicativos alterados a funcionarde forma especial pelo usuaacuterio ou versotildees alteradas do proacuteprio kernel

Exploits Exploits satildeo programas criados para explorar falhas advindas principalmente debugs nos daemons de serviccedilos Entre as falhas mais exploradas encontram-se bufferoverflow que consiste em estourar o buffer de entrada de um servidor forccedilando-o aestourar sua memoacuteria devolvendo um shell para o invasor

Ataques de Senhas Esse tipo de ataque consiste em tentar descobrir a senha de um oumais usuaacuterios por forccedila bruta ou usando teacutecnicas heuriacutesticas Em geral o invasor tentaobter uma coacutepia das senhas e efetuar um ataque de dicionaacuterio utilizando variaccedilotildeesde palavras em uma dada lista (o dicionaacuterio) tenta-se confrontar a senha do usuaacuteriocom essas variaccedilotildees ateacute descobrir uma que permita o acesso

Uma observaccedilatildeo final eacute que determinados ataques satildeo a bem da verdade tambeacutemferramentas de seguranccedila Assim por exemplo um scanner pode ser utilizado para verificarem que pontos um sistema estaacute vulneraacutevel Um programa de ataque de senha pode serutilizado para checar se os usuaacuterios natildeo estatildeo utilizando senhas faacuteceis o que facilitariauma invasatildeo Aleacutem disso alguns sistemas poderosos de detecccedilatildeo de intrusos satildeo tambeacutemsniffers Sniffers tambeacutem costumam ser utilizados para detectar problemas em uma rede

16 EDITORA - UFLAFAEPE - Seguranccedila Computacional

3USO DE CRIPTOGRAFIA

31 CONCEITOS BAacuteSICOS

A raacutepida evoluccedilatildeo das comunicaccedilotildees eletrocircnicas suscitou uma seacuterie de necessidadespara que se evitassem problemas de espionagem Entre essas necessidades destaca-seo uso de sistemas criptograacuteficos Mesmo em ambientes de telefonia celular por exemplo ouso de criptografia eacute cada vez mais utilizado

Como definido em (SCHNEIER 1996) a criptografia eacute a arte e ciecircncia de manter men-sagens seguras Ela envolve dois processos 1) criptografar (ou cifrar) uma mensagem Mtransformando-a em um texto cifrado C e 2) posteriormente decifrar (ou decriptografar) Cobtendo novamente a mensagem M como ilustrado na Figura 31

Decriptaccedilatildeoou

Decifragem

Encriptaccedilatildeoou

Cifragem

Mensagem (M) Mensagem (M)Texto Cifrado (C)

Figura 31 Processos Criptograacuteficos

A criptografia possui estrita relaccedilatildeo com a criptoanaacutelise arte e ciecircncia de quebrarmensagens cifradas O ramo da Matemaacutetica envolvendo criptografia e criptoanaacutelise eacute cha-mado de criptologia Como bem observado em (SCHNEIER 1996) modernos criptoloacutegosprecisam ter domiacutenio em Matemaacutetica Teoacuterica uma vez que eacute sobre ela que se sustenta acriptologia atual

O uso da criptografia eacute antigo sendo comuns o seu uso em guerras mesmo desde oimpeacuterio romano Esse uso era principalmente para manter a confidencialidade da mensa-gem garantindo que apenas emissor e receptor pudessem interpretaacute-la De certa maneiraa computaccedilatildeo foi fortemente financiada durante a Segunda Guerra Mundial para invenccedilatildeode dispositivos que pudessem decodificar as mensagens dos alematildees Desse esforccedilo in-clusive participou Alan Turing um dos mais importantes teoacutericos da Computaccedilatildeo e um dospais da Inteligecircncia Artificial

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 14: SEGURANÇA COMPUTACIONAL

Conceitos Baacutesicos 15

esperando) um viacuterus (infectava todos os arquivos locais de processamento de texto)e um verme (usava uma falha do Outlook para se propagar a todos os usuaacuterios naagenda de endereccedilos do usuaacuterio) Observe que no senso comum viacuterus e verme satildeogeralmente tomados com um uacutenico significado sendo usado apenas o termo ldquoviacuterusrdquoPor exemplo o viacuterus do Apache era a bem da verdade um verme (se propagavaa outras maacutequinas usando o Apache) mas como natildeo infectava outros arquivos noservidor natildeo poderia ser considerado necessariamente um viacuterusUm tipo de trojan extremamente perigoso satildeo os rootkits Como o nome sugereum rootkit eacute um aplicativo (ou um conjunto de aplicativos) com o objetivo de garantirpoderes de root ao invasor Geralmente consiste de aplicativos alterados a funcionarde forma especial pelo usuaacuterio ou versotildees alteradas do proacuteprio kernel

Exploits Exploits satildeo programas criados para explorar falhas advindas principalmente debugs nos daemons de serviccedilos Entre as falhas mais exploradas encontram-se bufferoverflow que consiste em estourar o buffer de entrada de um servidor forccedilando-o aestourar sua memoacuteria devolvendo um shell para o invasor

Ataques de Senhas Esse tipo de ataque consiste em tentar descobrir a senha de um oumais usuaacuterios por forccedila bruta ou usando teacutecnicas heuriacutesticas Em geral o invasor tentaobter uma coacutepia das senhas e efetuar um ataque de dicionaacuterio utilizando variaccedilotildeesde palavras em uma dada lista (o dicionaacuterio) tenta-se confrontar a senha do usuaacuteriocom essas variaccedilotildees ateacute descobrir uma que permita o acesso

Uma observaccedilatildeo final eacute que determinados ataques satildeo a bem da verdade tambeacutemferramentas de seguranccedila Assim por exemplo um scanner pode ser utilizado para verificarem que pontos um sistema estaacute vulneraacutevel Um programa de ataque de senha pode serutilizado para checar se os usuaacuterios natildeo estatildeo utilizando senhas faacuteceis o que facilitariauma invasatildeo Aleacutem disso alguns sistemas poderosos de detecccedilatildeo de intrusos satildeo tambeacutemsniffers Sniffers tambeacutem costumam ser utilizados para detectar problemas em uma rede

16 EDITORA - UFLAFAEPE - Seguranccedila Computacional

3USO DE CRIPTOGRAFIA

31 CONCEITOS BAacuteSICOS

A raacutepida evoluccedilatildeo das comunicaccedilotildees eletrocircnicas suscitou uma seacuterie de necessidadespara que se evitassem problemas de espionagem Entre essas necessidades destaca-seo uso de sistemas criptograacuteficos Mesmo em ambientes de telefonia celular por exemplo ouso de criptografia eacute cada vez mais utilizado

Como definido em (SCHNEIER 1996) a criptografia eacute a arte e ciecircncia de manter men-sagens seguras Ela envolve dois processos 1) criptografar (ou cifrar) uma mensagem Mtransformando-a em um texto cifrado C e 2) posteriormente decifrar (ou decriptografar) Cobtendo novamente a mensagem M como ilustrado na Figura 31

Decriptaccedilatildeoou

Decifragem

Encriptaccedilatildeoou

Cifragem

Mensagem (M) Mensagem (M)Texto Cifrado (C)

Figura 31 Processos Criptograacuteficos

A criptografia possui estrita relaccedilatildeo com a criptoanaacutelise arte e ciecircncia de quebrarmensagens cifradas O ramo da Matemaacutetica envolvendo criptografia e criptoanaacutelise eacute cha-mado de criptologia Como bem observado em (SCHNEIER 1996) modernos criptoloacutegosprecisam ter domiacutenio em Matemaacutetica Teoacuterica uma vez que eacute sobre ela que se sustenta acriptologia atual

O uso da criptografia eacute antigo sendo comuns o seu uso em guerras mesmo desde oimpeacuterio romano Esse uso era principalmente para manter a confidencialidade da mensa-gem garantindo que apenas emissor e receptor pudessem interpretaacute-la De certa maneiraa computaccedilatildeo foi fortemente financiada durante a Segunda Guerra Mundial para invenccedilatildeode dispositivos que pudessem decodificar as mensagens dos alematildees Desse esforccedilo in-clusive participou Alan Turing um dos mais importantes teoacutericos da Computaccedilatildeo e um dospais da Inteligecircncia Artificial

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 15: SEGURANÇA COMPUTACIONAL

16 EDITORA - UFLAFAEPE - Seguranccedila Computacional

3USO DE CRIPTOGRAFIA

31 CONCEITOS BAacuteSICOS

A raacutepida evoluccedilatildeo das comunicaccedilotildees eletrocircnicas suscitou uma seacuterie de necessidadespara que se evitassem problemas de espionagem Entre essas necessidades destaca-seo uso de sistemas criptograacuteficos Mesmo em ambientes de telefonia celular por exemplo ouso de criptografia eacute cada vez mais utilizado

Como definido em (SCHNEIER 1996) a criptografia eacute a arte e ciecircncia de manter men-sagens seguras Ela envolve dois processos 1) criptografar (ou cifrar) uma mensagem Mtransformando-a em um texto cifrado C e 2) posteriormente decifrar (ou decriptografar) Cobtendo novamente a mensagem M como ilustrado na Figura 31

Decriptaccedilatildeoou

Decifragem

Encriptaccedilatildeoou

Cifragem

Mensagem (M) Mensagem (M)Texto Cifrado (C)

Figura 31 Processos Criptograacuteficos

A criptografia possui estrita relaccedilatildeo com a criptoanaacutelise arte e ciecircncia de quebrarmensagens cifradas O ramo da Matemaacutetica envolvendo criptografia e criptoanaacutelise eacute cha-mado de criptologia Como bem observado em (SCHNEIER 1996) modernos criptoloacutegosprecisam ter domiacutenio em Matemaacutetica Teoacuterica uma vez que eacute sobre ela que se sustenta acriptologia atual

O uso da criptografia eacute antigo sendo comuns o seu uso em guerras mesmo desde oimpeacuterio romano Esse uso era principalmente para manter a confidencialidade da mensa-gem garantindo que apenas emissor e receptor pudessem interpretaacute-la De certa maneiraa computaccedilatildeo foi fortemente financiada durante a Segunda Guerra Mundial para invenccedilatildeode dispositivos que pudessem decodificar as mensagens dos alematildees Desse esforccedilo in-clusive participou Alan Turing um dos mais importantes teoacutericos da Computaccedilatildeo e um dospais da Inteligecircncia Artificial

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 16: SEGURANÇA COMPUTACIONAL

3USO DE CRIPTOGRAFIA

31 CONCEITOS BAacuteSICOS

A raacutepida evoluccedilatildeo das comunicaccedilotildees eletrocircnicas suscitou uma seacuterie de necessidadespara que se evitassem problemas de espionagem Entre essas necessidades destaca-seo uso de sistemas criptograacuteficos Mesmo em ambientes de telefonia celular por exemplo ouso de criptografia eacute cada vez mais utilizado

Como definido em (SCHNEIER 1996) a criptografia eacute a arte e ciecircncia de manter men-sagens seguras Ela envolve dois processos 1) criptografar (ou cifrar) uma mensagem Mtransformando-a em um texto cifrado C e 2) posteriormente decifrar (ou decriptografar) Cobtendo novamente a mensagem M como ilustrado na Figura 31

Decriptaccedilatildeoou

Decifragem

Encriptaccedilatildeoou

Cifragem

Mensagem (M) Mensagem (M)Texto Cifrado (C)

Figura 31 Processos Criptograacuteficos

A criptografia possui estrita relaccedilatildeo com a criptoanaacutelise arte e ciecircncia de quebrarmensagens cifradas O ramo da Matemaacutetica envolvendo criptografia e criptoanaacutelise eacute cha-mado de criptologia Como bem observado em (SCHNEIER 1996) modernos criptoloacutegosprecisam ter domiacutenio em Matemaacutetica Teoacuterica uma vez que eacute sobre ela que se sustenta acriptologia atual

O uso da criptografia eacute antigo sendo comuns o seu uso em guerras mesmo desde oimpeacuterio romano Esse uso era principalmente para manter a confidencialidade da mensa-gem garantindo que apenas emissor e receptor pudessem interpretaacute-la De certa maneiraa computaccedilatildeo foi fortemente financiada durante a Segunda Guerra Mundial para invenccedilatildeode dispositivos que pudessem decodificar as mensagens dos alematildees Desse esforccedilo in-clusive participou Alan Turing um dos mais importantes teoacutericos da Computaccedilatildeo e um dospais da Inteligecircncia Artificial

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 17: SEGURANÇA COMPUTACIONAL

18 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Mas o uso da criptografia natildeo se restringiu agrave confidencialidade Cada vez mais novosusos da criptografia se fazem necessaacuterio sendo essencial para o comeacutercio eletrocircnico Entreos usos da criptografia aleacutem da confidencialidade destacam-se (SCHNEIER 1996)

Autenticaccedilatildeo eacute importante para o receptor da mensagem ter certeza que o autor da men-sagem eacute quem diz secirc-lo dessa maneira um invasor natildeo pode se passar por outrapessoa

Integridade eacute essencial garantir que a mensagem natildeo foi alterada durante seu tracircnsitodessa maneira um invasor natildeo pode substituir uma mensagem legiacutetima por uma falsa

Autoria em determinadas mensagens como o uso de dinheiro eletrocircnico eacute essencialgarantir que quem envia a mensagem natildeo possa negar que tenha feito isso em ummomento posterior ao envio

32 ALGORITMOS CRIPTOGRAacuteFICOS

Um algoritmo criptograacutefico tambeacutem denominado cifra eacute uma funccedilatildeo matemaacutetica usadapara criptografar ou decriptografar uma mensagem Em geral satildeo utilizadas duas funccedilotildeesrelacionadas uma no processo de cifragem (E) e outra na decifragem (D) de uma mensa-gem M

E(M) = C

D(C) = M

Agraves vezes a uacutenica seguranccedila de um algoritmo criptograacutefico reside em sua obscuridadeou seja o desconhecimento de seu teor por terceiros Essa seguranccedila eacute restrita e deve serevitada para usos mais seacuterios da criptografia O motivo eacute que teacutecnicas natildeo avanccediladas decriptoanaacutelise e engenharia reversa podem quebrar facilmente essa seguranccedila Para evitaresse problema a criptografia moderna faz o uso de chaves Assim utilizando-se uma chaveK o processo de cifragem e decifragem de uma mensagem torna-se

EK(M) = C

DK(C) = M

Quando a chave utilizada na encriptaccedilatildeo da mensagem eacute idecircntica agrave utilizada na de-criptaccedilatildeo diz-se que o algoritmo utiliza chaves privadas ou que eacute um algoritmo simeacutetricoObserve que isso exige que o receptor da mensagem conheccedila a chave utilizada pelo emis-sor Isso pode complicar o processo criptograacutefico uma vez que se a chave for descobertapor um invasor a confianccedila na mensagem eacute perdida

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 18: SEGURANÇA COMPUTACIONAL

Uso de Criptografia 19

Entre os algoritmos simeacutetricos mais conhecidos e utilizados merecem destaque o DES(Data Encryption Standard) o Blowfish e o IDEA (International Data Encryption Algorithm)O IDEA eacute patenteado mas pode ser utilizado sem restriccedilatildeo para uso natildeo-comercial sendoutilizado no PGP Jaacute o DES e o Blowfish satildeo algoritmos de domiacutenio puacuteblico O DES eacutemuito utilizado em uma versatildeo alternativa que utiliza trecircs chaves o 3DES O OpenSSHutiliza principalmente 3DES ou Blowfish para criptografar o tracircnsito de dados Blowfishfoi desenvolvido por Bruce Schneier que descreve em detalhes esses e outros algoritmossimeacutetricos em (SCHNEIER 1996)

Jaacute nos algoritmos assimeacutetricos tambeacutem chamados de algoritmos de chave puacuteblicasatildeo utilizadas duas chaves uma para criptografar e outra para decriptografar a mensagemGraccedilas a processos matemaacuteticos eacute possiacutevel escolher chaves de tal forma que o conheci-mento de uma natildeo signifique que a outra chave possa ser descoberta ao menos em termospraacuteticos

Assim a chave para criptografar eacute posta em puacuteblico sem nenhum problema e somenteo possuidor da chave privada pode ler a mensagem Outra forma de uso desse algoritmoeacute tornar a chave de decifragem puacuteblica e a chave de cifragem eacute mantida em segredo Comisso tem-se a garantia que somente aquela pessoa poderia ter criptografado determinadamensagem o que corresponde a um processo de assinatura digital

Entre os algoritmos de chave puacuteblica o mais conhecido eacute com certeza o RSA quecaiu em domiacutenio puacuteblico em setembro de 2000 Entre as alternativas mais conhecidasencontram-se o ElGamal e o DSA que satildeo utilizados pelo GnuPG um aplicativo para crip-tografia e assinatura digital de uso pessoal

33 PROTOCOLOS CRIPTOGRAacuteFICOS

Um protocolo eacute uma seacuterie de passos envolvendo duas ou mais partes designado paraa realizaccedilatildeo de uma tarefa (SCHNEIER 1996) Um protocolo criptograacutefico eacute um protocoloque usa criptografia Um protocolo criptograacutefico envolve o uso de algoritmos criptograacutefi-cos mas natildeo se restringe a isso Um protocolo pode envolver vaacuterios outros passos comomecaniscos de contato entre emissor e receptor e troca de chaves

Um exemplo conhecido de protocolo criptograacutefico eacute o protocolo de rede SSL (SecureSocket Layer) Esse protocolo foi criado pela Netscape para disponibilizaccedilatildeo de sites pro-tegidos tendo seu uso estendido a outras agravereas Eacute talvez o protocolo criptograacutefico maisutilizado atualmente

Uma implementaccedilatildeo bastante conhecida do SSL no contexto do software livre eacute aOpenSSL (httpwwwopensslorg) Essa biblioteca implementa as versotildees 2 e 3 doSSL bem como a versatildeo 1 do TLS (Transport Layer Security) O TLS eacute um protocolo criadorecentemente para substituir o SSL ampliando seu uso e funcionalidade sendo descrito

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 19: SEGURANÇA COMPUTACIONAL

20 EDITORA - UFLAFAEPE - Seguranccedila Computacional

em (DIERKS ALLEN 1999) O uso do SSL em serviccedilos WEB eacute detalhado no Capiacutetulo 5 de(UCHOcircA SIMEONE SICA 2003)

Outro protocolo criptograacutefico muito utilizado no mundo UNIX eacute o SSH utilizado paraconexotildees remotas seguras O SSH possui vaacuterias implementaccedilotildees algumas comerciaisEntre as de coacutedigo aberto merece destaque a OpenSSH (httpwwwopensshorg)A OpenSSH permite a substituiccedilatildeo do Telnet com vantagens aleacutem de oferecer outros ser-viccedilos como o sFTP (Secure FTP) um FTP seguro O uso da OpenSSH foi descrito noCapiacutetulo 8 de (UCHOcircA SIMEONE SICA 2003)

Os protocolos SSH e SSL funcionam de uma maneira parecida inicialmente eacute feitauma conexatildeo usando algoritmos de chave puacuteblica Apoacutes isso satildeo trocadas chaves criadasaleatoriamente usando esses algoritmos Apoacutes a troca dessas chaves o traacutefego eacute feitoutilizando algoritmos de chave privada uma vez que exigem menor esforccedilo computacional

34 CRIPTOGRAFIA E SEGURANCcedilA COMPUTACIONAL

A criptografia exerce papel essencial na seguranccedila computacional Isso porque elapode auxiliar significativamente na garantia de confidencialidade e integridade de dadosNo contexto do Linux a criptografia pode ser utilizada de vaacuterias formas desde o aspectode uso pessoal ateacute a implementaccedilatildeo de VPNs (Virtual Private Networks - Redes PrivadasVirtuais)

No campo da criptografia pessoal merece destaque o GnuPG (GNU Privacy Guard)uma versatildeo aberta do PGP (Pretty Good Privacy) O GnuPG implementa mecanismos de ci-fragem de dados e assinaturas digitais estando em conformidade com o padratildeo OpenPGPdescrito em (CALLAS et al 1998) Eacute importante ressaltar que o GnuPG implementa apenasalgoritmos natildeo patenteados ao contraacuterio do PGP Isso garante a total liberdade do projeto

O GnuPG possui uso extremamente simples sendo que a maioria dos clientes de e-mail possuem integraccedilatildeo direta com ele O principal utilitaacuterio disponibilizado pelo GnuPG eacuteo gpg sendo que suas opccedilotildees mais usadas satildeo listadas na Tabela 31 Mais detalhes sobreo GnuPG podem ser encontrados na documentaccedilatildeo do pacote executando-se o comandoldquogpg -helprdquo ou em (MOLLARD 2002)

Um uso importante da assinatura digital eacute a garantia de fonte de um dado aplicativoOs gerenciadores de pacotes rpm ou deb possuem opccedilotildees para conferir se o autor de umpacote eacute quem afirma ser Isso eacute extremamente importante para garantir a integridade deum aplicativo sendo instalado evitando que se instale trojans ou rootkits inocentementeEm geral as distribuiccedilotildees disponibilizam chaves puacuteblicas para conferir a autenticidade dospacotes distribuiacutedos por elas

Caso se pretenda criptografar natildeo soacute um arquivo mas todo um diretoacuterio entatildeo o usode sistemas de arquivos criptografados pode ser uma oacutetima escolha Existem vaacuterios pro-

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 20: SEGURANÇA COMPUTACIONAL

Uso de Criptografia 21

Tabela 31 Opccedilotildees Mais Usadas do gpg

Opccedilatildeo Descriccedilatildeo

--sign assina um arquivo--encrypt criptografa dados--decrypt descriptografa dados--edit-key assina ou edita uma chave armazenada--genkey gera um novo par de chaves--list-key lista chaves armazenadas--list-sigs lista chaves e assinaturas armazenadas--sign-key assina uma chave armazenada--import importa uma chave--export exporta uma chave--armor forccedila exportaccedilatildeo de chaves em modo texto

jetos nessa filosofia merecendo destaque o CFS disponiacutevel em httpwwwcrypto

comsoftware e o TCFS disponiacutevel em httpwwwtcfsit Detalhes de uso des-ses aplicativos podem ser encontrados na documentaccedilatildeo desses pacotes e em (MANN

MITCHELL 2000)

Quanto ao transporte de dados a criptografia tem sido usada sob a forma de tuacuteneiscriptograacuteficos Satildeo exemplos desses tuacuteneis os protocolos SSL e SSH Vaacuterios serviccedilospodem ser tunelados utilizando esses protocolos A documentaccedilatildeo do SGBD PostgreSQL(em especial o manual do administrador) por exemplo apresenta exemplos de tunelamentousando SSL ou SSH

Um aplicativo extremamente uacutetil no contexto de tuacuteneis criptograacuteficos eacute o stunneldisponiacutevel em httpstunnelmirtnet O stunnel foi projetado para trabalharcomo um tuacutenel criptograacutefico usando SSL entre clientes e servidores de serviccedilos padrotildeesDessa maneira o stunnel pode ser usado para adicionar funcionalidade SSL a aplicaccedilotildeescomuns que sejam gerenciadas pelo inetd ou xinetd Eacute dessa maneira que costumamser implementados IMAP e POP seguro em Linux

O conceito extremo de tunelamento criptograacutefico eacute utilizado pelas VPNs Uma redeprivada virtual consiste em um tuacutenel criptograacutefico entre duas ou mais redes tendo o traacutefegoem ambiente puacuteblico como ilustrado na Figura 32 Nesse caso praticamente quase todoo traacutefego entre as duas redes eacute criptografado

Para se implementar uma VPN vaacuterias alternativas satildeo possiacuteveis Eacute possiacutevel utilizar-se apenas de PPP e SSH como ilustrado em (WILSON 1999) Mas tambeacutem eacute possiacutevelutilizar-se do protocolo IPSec implementado no FreeSWAN (httpwwwfreeswan

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 21: SEGURANÇA COMPUTACIONAL

22 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Internet

Tuacutenel Criptograacutefico

Figura 32 Conceito de VPN

org) Nesse caso todo o traacutefego IP entre duas redes eacute criptografado Outra alternativa coma mesma filosofia do IPSec eacute o CIPE disponiacutevel em httpsitesinkadesites

bigreddevelcipehtml Consulte as paacuteginas desses projetos para maiores detalhes

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 22: SEGURANÇA COMPUTACIONAL

4SEGURANCcedilA POR CONTROLE DE

ACESSO

41 COMENTAacuteRIOS INICIAIS

Ateacute pouco tempo atraacutes a seguranccedila de redes era baseada principalmente em controlede acesso Definir as permissotildees para cada usuaacuterio estabelecer uma rede de confianccedila en-tre maacutequinas e usuaacuterios usar serviccedilos autenticados por senha eram atitudes que tornavamredes suficientemente seguras

Atualmente as redes de confianccedila jaacute natildeo garantem seguranccedila pois o traacutefego natildeo-criptografado facilita a escuta de dados (sniffing) que tornou-se comum Dessa formahouve um crescente uso da criptografia em especial o uso de tuacuteneis criptograacuteficos abor-dados no Capiacutetulo 3

Entretanto novos mecanismos de seguranccedila por controle de acesso surgiram com oobjetivo de proteger natildeo os dados em si mas sim o servidor evitando invasotildees Incluem-senesses novos mecanismos o desenvolvimento crescente de novas ferramentas de firewallpor exemplo Dessa maneira este capiacutetulo aborda as principais teacutecnicas e ferramentas parauma adequada seguranccedila por controle de acesso

42 SEGURANCcedilA FIacuteSICA E BACKUPS

Seguranccedila fiacutesica eacute muitas vezes menosprezada Entretanto ainda eacute um item essencialpara um ambiente computacional Afinal de nada adianta um servidor estar utilizandomecanismos poderosos de firewall se um visitante qualquer pode roubar seu disco riacutegidoou mesmo o servidor inteiro Assim uma sala protegida eacute muito melhor que senhas deBIOS ou de boot loaders como LILO ou GRUB

O motivo de natildeo se confiar em senhas de BIOS ou de boot loaders eacute que esses meca-nismos natildeo impedem o acesso aos dados do servidor Senhas de BIOS podem ser burladascom relativa facilidade ou mesmo apagadas Por outro lado eacute possiacutevel iniciar uma maacutequinaa partir de outro dispositivo (um disquete CD-ROM outro disco riacutegido etc) e acessar osdados armazenados Sistemas de arquivo criptografados dificultariam o acesso a esses

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 23: SEGURANÇA COMPUTACIONAL

24 EDITORA - UFLAFAEPE - Seguranccedila Computacional

dados mas satildeo mais lentos que os tradicionais e ainda natildeo encontram-se difundidos acontento

Outra questatildeo importante nesse mesmo contexto eacute a necessidade de uma poliacuteticaefetiva de coacutepias de seguranccedila Sem backups perioacutedicos um sistema natildeo atende aoscriteacuterios miacutenimos de disponibilidade dos dados Em determinados ambientes por exemploesse eacute um item extremamente criacutetico na administraccedilatildeo de servidores

Projetos recentes tecircm inclusive surgido no contexto extremo de coacutepias de seguranccedilaCada vez mais surgem estrateacutegias de ldquoAlta Disponibilidaderdquo que consistem em mecanis-mos para fazer com que um dado serviccedilo esteja online o maior tempo possiacutevel Nessecaso satildeo utilizados servidores redundantes sincronizaccedilatildeo de dados online entre outrasteacutecnicas

Uma pergunta deve estar rondando a cabeccedila do leitor qual a melhor ferramenta eestrateacutegia de backup A resposta clara e efetiva eacute depende Natildeo existe uma ferramentaadequada a todas as situaccedilotildees e muito menos uma estrateacutegia funcional para todas asinstituiccedilotildees Dessa maneira o administrador teraacute que natildeo soacute escolher a ferramenta comotambeacutem escolher o procedimento que seraacute utilizado nesse processo

Para definir essa ferramenta e a estrateacutegia algumas perguntas devem ser respon-dida quatildeo importantes satildeo os dados armazenados a perda deles implicaria em quantotempo de prejuiacutezo para serem restaurados As respostas a essas perguntas podem indicarclaramente as necessidades em termos de coacutepia de seguranccedila por parte da instituiccedilatildeo

43 O USO DE TCP-WRAPPERS

Vaacuterios daemons ao inveacutes de serem inicializados por seus proacuteprios meios satildeo gerenci-ados pelo tcpd Nesse caso eacute possiacutevel filtrar os pacotes direcionados aos serviccedilos ofereci-dos por esses daemons usando os TCP-Wrappers Esses filtros consistem de duas frentescomo ilustrado na Figura 41 os arquivos etchostsallow e etchostsdeny e aconfiguraccedilatildeo do inetd ou do xinetd

O xinetd eacute um substituto poderoso do inetd Dessa maneira este texto natildeo iraacuteabordar o uso do inetd Eacute importante observar que nem todas as aplicaccedilotildees podem serinicializadas via xinetd ou inetd Aleacutem disso algumas poucas aplicaccedilotildees que natildeo satildeocontroladas por esses serviccedilos podem ser filtradas pelo uso dos arquivos hostsallow

e hostsdeny no diretoacuterio etc Mas em geral utiliza-se esses arquivos apenas paraessas aplicaccedilotildees Com o xinetd inclusive eacute possiacutevel natildeo utilizar esses arquivos paraobter os mesmos resultados

Observe que de certa forma os serviccedilos oferecidos pelos TCP-Wrappers equivalem-se a um tipo de firewall Entretanto existe o fato de que esse firewall eacute restrito agraves aplicaccedilotildeescom suporte agrave biblioteca libwrap Ainda em geral eacute possiacutevel obter os mesmos efeitos

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 24: SEGURANÇA COMPUTACIONAL

Seguranccedila por Controle de Acesso 25

inetd

xinetdou

configuraccedilatildeo doxinetd ou inetd

tcpd

hostsallow

hostsdenye

telnet

finger

imap

ftp

rsync

syslogd

intelnetd

inimapd

infingerd

inftpd

inpopd

ServidorClientes

Figura 41 Uso de TCP-Wrappers

obtidos com os TCP-Wrappers utilizando-se ferramentas de firewall integradas ao kernelcomo iptables ou ipchains Mesmo assim seu uso eacute recomendado por fornecer umacamada extra de proteccedilatildeo aos serviccedilos

Como jaacute comentados os TCP-Wrappers satildeo implementados pelo servidor tcpd Elescontrolam o acesso baseado em IP estando portanto sujeitos a spoofing O acesso a umcliente eacute feito da seguinte forma

1 o acesso eacute garantido quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsallow

2 o acesso eacute negado quando um par (serviccedilo cliente) casa uma entrada no arquivoetchostsdeny

3 caso natildeo esteja permitido ou negado nos passos anteriores o acesso eacute garantido

Dessa maneira eacute possiacutevel filtrar efetivamente os serviccedilos gerenciados via tcpdEm geral dada essa sequumlecircncia de passos adotada pelo tcpd eacute costume negar todos

os serviccedilos no arquivo etchostsdeny como ilustra a Figura 42 Dessa forma so-mente obteratildeo acesso aos serviccedilos os clientes habilitados no arquivo etchostsallowexemplificado na Figura 43 Uma observaccedilatildeo a ser feita eacute que os dois arquivos satildeo confi-gurados de forma semelhante usando a mesma sintaxe

Note que na Figura 43 eacute possiacutevel habilitar uma mensagem inicial de login (um ban-ner) para serviccedilos habilitados aos TCP-Wrappers Dessa maneira de acordo com o exem-

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 25: SEGURANÇA COMPUTACIONAL

26 EDITORA - UFLAFAEPE - Seguranccedila Computacional

arquivo hostsdeny

nega-se tudo (ALL indica todos os serviccedilos ou todos os clientes)

ALL ALL

Figura 42 Exemplo de Arquivo etchostsdeny

arquivo hostsallow

habilitando acesso ftp a determinadas redes

inftpd 192168 211221110255255255128 meudominiocom

habilitanto finger a maacutequinas especiacuteficas

infingerd tom jerry frajola pernalonga patolino

habilitando acesso ftp mas exibindo um banner antes

inftpd ALL banners etcsecurityftpbanner

habilita telnet com exceccedilatildeo da maacutequina superman

intelnetd ALL EXCEPT superman

Figura 43 Exemplo de Arquivo etchostsallow

plo dessa figura eacute possiacutevel editar o arquivo etcsecurityftpbanner para imprimiruma mensagem de alerta quando iniciar uma conexatildeo FTP

O xinetd e o inetd podem ser entendidos como superservidores que chamam ou-tros servidores atraveacutes do tcpd Assim aleacutem dos arquivos etchostsallow e etc

hostsdeny eacute possiacutevel efetuar filtragem de serviccedilos na configuraccedilatildeo desses superser-vidores A configuraccedilatildeo do xinetd eacute feita inicialmente no arquivo etcxinetdconfexemplificado na Figura 44

Em geral como mostra a Figura 44 o arquivo etcxinetdconf conteacutem apenasas configuraccedilotildees padrotildees do xinetd (tipo de log etc) e uma diretiva para incluir os ar-quivos no diretoacuterio etcxinetdd Dessa maneira para facilitar a configuraccedilatildeo cadaserviccedilo eacute configurado em um arquivo especiacutefico nesse diretoacuterio A Figura 45 mostra umexemplo de serviccedilo configurado dessa forma

No caso da Figura 45 eacute possiacutevel perceber o uso da diretiva only_from para limitaro acesso a determinados serviccedilos para determinadas maacutequinas ou redes Dessa maneiraestabelece-se mais uma barreira para impedir acesso natildeo autorizado a determinados ser-viccedilos

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 26: SEGURANÇA COMPUTACIONAL

Seguranccedila por Controle de Acesso 27

xinetdconf

configuraccedilotildees padrotildees

defaults

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

inclui configuraccedilotildees no diretoacuterio etcxinetdd

includedir etcxinetdd

Figura 44 Exemplo de Arquivo etcxinetdconf

etcxinetddfinger

service finger

disable = no

socket_type = stream

wait = no

usuaacuterio com o qual o servidor eacute inicializado

user = nobody

server = usrsbininfingerd

quais IPs podem conectar (todos iniciando com 192168)

ou na rede 2001001002552552550

only_from = 19216800 2001001002552552550

Figura 45 Exemplo de Arquivo etcxinetddfinger

44 USO DE FIREWALLS OU PROXIES

Uma das formas mais conhecidos para implementar seguranccedila por controle de acessoeacute o uso de firewall Chega a se dar tamanha importacircncia aos firewalls que eacute muito comumencontrar administradores que se esquecem dos outros elementos necessaacuterios a um ambi-

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 27: SEGURANÇA COMPUTACIONAL

28 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ente seguro Nesse sentido eacute importante alertar que um bom firewall tem grande potencialpara a seguranccedila mas natildeo eacute seu elemento uacutenico e muito menos o mais importante Emdeterminadas situaccedilotildees inclusive seu uso pode nem ser necessaacuterio

Existem vaacuterias definiccedilotildees possiacuteveis para o termo firewall O conceito mais aceito ilus-trado na Figura 46 eacute a de uma ferramenta de software ou hardware situada entre duas redes(uma interna e outra externa) responsaacutevel por filtrar os pacotes evitando o acesso externoa determinados serviccedilos Nesse sentido pode-se dizer que os TCP-Wrappers constituem-se num mini-firewall

Rede Externa Rede Interna

Firewall

131313131313131313131313131313131313131313131313131313131313

Figura 46 Uso de Firewall

Outra questatildeo importante nesse contexto eacute o conceito de proxy Um proxy eacute umsoftware que atua como ponto entre duas redes controlando o traacutefego de acordo com seuconteuacutedo Em geral um proxy eacute utilizado para servir como cache WWW ou FTP mas podeser utilizado para filtrar a rede de forma que pode ser usado como firewall

Por outro lado uma ferramenta de firewall pode ser configurada para funcionar comoproxy Isso eacute o que acontece quando se utiliza o iptables ou o ipchains para fazermascaramento de pacotes ou NAT o que equivale a um proxy transparente O proxy maisconhecido e utilizado eacute o Squid Para NAT geralmente se utiliza o iptables

O iptables eacute inclusive a ferramenta de firewall mais utilizada atualmente no LinuxEle substitui o ipchains acrescentando inuacutemeras funcionalidades O uso do iptables

foi ilustrado no Capiacutetulo 3 de (UCHOcircA SIMEONE SICA 2003) No site de desenvolvimentodo iptables httpwwwnetfilterorg podem ser encontrados excelentes tuto-riais sobre seu uso inclusive em bom portuguecircs Em especial recomenda-se a leitura de(RUSSEL 2001)

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 28: SEGURANÇA COMPUTACIONAL

Seguranccedila por Controle de Acesso 29

Dado que jaacute eacute considerado que o leitor tenha conhecimentos de uso do iptablesresta apenas abordar o seu uso como ferramenta de firewall Nesse sentido o administra-dor deve estar atento a quais portas de serviccedilos ele iraacute permitir acesso A poliacutetica do menorprivileacutegio eacute a recomendada liberar apenas as portas essenciais Um arquivo extremamenteuacutetil para o administrador eacute o etcservices Esse arquivo lista as portas padrotildees utiliza-das pelos serviccedilos mais comuns bem como qual o protocolo utilizado se TCP ou UDP AFigura 47 mostra um trecho desse arquivo

Each line describes one service and is of the form

service-name portprotocol [aliases ] [ comment]

tcpmux 1tcp TCP port service multiplexer

tcpmux 1udp TCP port service multiplexer

rje 5tcp Remote Job Entry

rje 5udp Remote Job Entry

echo 7tcp

echo 7udp

discard 9tcp sink null

discard 9udp sink null

systat 11tcp users

systat 11udp users

daytime 13tcp

daytime 13udp

qotd 17tcp quote

qotd 17udp quote

msp 18tcp message send protocol

msp 18udp message send protocol

chargen 19tcp ttytst source

chargen 19udp ttytst source

Figura 47 Trecho do Arquivo etcservices

Baseando-se em portas padrotildees apresentadas no arquivo etcservices a Fi-gura 48 mostra um exemplo comentado de configuraccedilatildeo salva pelo utilitaacuterio iptables-saveEssa configuraccedilatildeo foi extraiacuteda de uma estaccedilatildeo de trabalho Para um servidor outras por-tas deveriam ser abertas O administrador deveraacute fazer a configuraccedilatildeo de acordo com arealidade local

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 29: SEGURANÇA COMPUTACIONAL

30 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Generated by iptables-save v125 on Sat Apr 19 170110 2003

filter

canal INPUT aceita tudo inicialmente

INPUT ACCEPT

aceita novas entradas desde que relacionadas agrave uma conexatildeo jaacute estabelecida

-A INPUT -m state --state RELATEDESTABLISHED -j ACCEPT

aceita todas as conexotildees locais (internas agrave maacutequina)

-A INPUT -s 127001 -j ACCEPT

aceita todas as conexotildees da proacutepria maacutequina (IP local = 192168050)

-A INPUT -s 192168050 -j ACCEPT

aceita conexotildees ICMP (ping etc) da proacutepria rede

-A INPUT -s 192168002552552550 -p icmp -m state --state NEW -j ACCEPT

aceita conexotildees SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

aceita comunicaccedilatildeo graacutefica via SSH de qualquer lugar

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6010 -j ACCEPT

nega qualquer outra entrada

-A INPUT -j REJECT --reject-with icmp-port-unreachable

nega qualquer tentativa de usar o micro como roteador

FORWARD ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable

aceita qualquer saiacuteda (isso deve ser modificado em servidores)

OUTPUT ACCEPT

COMMIT

Completed on Sat Apr 19 170110 2003

Figura 48 Exemplo de Configuraccedilatildeo do iptables

45 CONFIGURACcedilAtildeO SEGURA DE SERVICcedilOS

Aleacutem do uso de teacutecnicas de filtragem de pacotes alguns aplicativos permitem configu-raccedilotildees extras que tornam o seu uso mais seguro tanto para o cliente como para o servidorUma primeira configuraccedilatildeo a ser feita pelo administrador eacute verificar qual o usuaacuterio utilizadopara inicializar o servidor A inicializaccedilatildeo de serviccedilos sob a eacutegide do superusuaacuterio deve serevitada ao maacuteximo possiacutevel Em geral versotildees mais recentes dos aplicativos jaacute fazem issoautomaticamente para o administrador

O uso de aplicativos que trafegam senhas em claro deve ser evitado ao maacuteximo poisestatildeo sujeitos agrave escuta eletrocircnica (sniffers) Assim o telnet deve ser substituiacutedo por SSHAleacutem disso o uso do POP comum (natildeo seguro) tambeacutem deve ser substituiacutedo pelo POPseguro (natildeo suportado por todos os clientes) por IMAP seguro (tambeacutem natildeo suportado portodos os clientes) ou por serviccedilos de WebMail via HTTPS O FTP natildeo-anocircnimo tambeacutemdeve ser substituiacutedo pelo SFTP

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 30: SEGURANÇA COMPUTACIONAL

Seguranccedila por Controle de Acesso 31

Observe que a adoccedilatildeo dessas medidas iraacute na maioria das vezes implicar em perdade performance ou conveniecircncia do usuaacuterio Ainda natildeo existem muitos clientes graacuteficoscom suporte ao SFTP O uso de POP seguro tambeacutem natildeo eacute trivial sendo que a maioriados clientes de e-mail da Microsoft natildeo suportam esse tipo de transporte de e-mail O usode WebMails eacute uma alternativa mais interessante mas pode dificultar o uso por usuaacuteriosiniciantes e tende a aumentar o traacutefego na rede

Quanto aos serviccedilos de e-mail eacute necessaacuterio configurar os servidores para evitar ouso por qualquer estaccedilatildeo No sendmail isso pode ser feito habilitando-se o uso doaccess_db e utilizando o arquivo etcmailaccess para listar as estaccedilotildees que po-dem utilizar o servidor para envio de correio eletrocircnico Aleacutem disso eacute recomendaacutevel queseja configurado o tamanho maacuteximo de arquivo a ser recebido ou enviado

O uso de NIS por sua vez deve ser totalmente evitado Sugere-se a coacutepia de dadospor meios criptograacuteficos ou a substituiccedilatildeo do NIS por LDAP (que suporta tunelamento porTLS a partir de versotildees mais recentes - como o OpenLDAP 2) Um exemplo de uso doLDAP para autenticaccedilatildeo de usuaacuterios pode ser encontrado em (DOMINGUES SCHNEIDER

UCHOcircA 2001)Uma regra fundamental de seguranccedila eacute usar sempre servidores atualizados ou segu-

ros Sempre que houver opccedilatildeo de escolha para um dado serviccedilo o servidor mais segurodeve ser escolhido Assim natildeo se usa POP mas POPS ou IMAP ou mesmo Webmail sobHTTPS Aleacutem disso o administrador deve sempre verificar se natildeo existem atualizaccedilotildees deseguranccedila dos servidores e bibliotecas instalados Aleacutem disso deve-se sempre verificar aseguranccedila dos servidores utilizando-se ferramentas de verificaccedilatildeo (como SARA SATANou nessus) Essas ferramentas seratildeo abordadas com mais detalhes no Capiacutetulo 6

Um projeto muito interessante nesse sentido eacute o Bastille Linux disponibilizado em(httpbastille-linuxsourceforgenet) Ele tem por objetivo configurar umamaacutequina de forma a aumentar o seu niacutevel de seguranccedila Para isso ele altera configura-ccedilotildees de sistema e de servidores aleacutem de alterar as regras de firewall Na opiniatildeo desteautor o uso dessa ferramenta eacute desnecessaacuterio para o administrador experiente que prefe-riraacute efetuar suas proacuteprias configuraccedilotildees Mesmo para esse usuaacuterio e principalmente parausuaacuterios menos experientes entretanto pode ser uma ferramenta de grande auxiacutelo

Uma recomendaccedilatildeo final a ser feita eacute que serviccedilos que natildeo satildeo usados devem serdesabilitados Se os usuaacuterios natildeo iratildeo precisar de serviccedilos internos de FTP entatildeo o ser-vidor FTP deveraacute estar desabilitado Uma forma praacutetica de listar os serviccedilos habilitados eacuteexecutar o comando

chkconfig --list

Esse comando iraacute informar para cada initlevel se um dado serviccedilo estaacute ou natildeo habilitado

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 31: SEGURANÇA COMPUTACIONAL

32 EDITORA - UFLAFAEPE - Seguranccedila Computacional

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 32: SEGURANÇA COMPUTACIONAL

5ADMINISTRACcedilAtildeO SEGURA DE USUAacuteRIOS

51 USO DO PAM (PLUGGABLE AUTHENTICATION MODULES)

Boa parte das distribuiccedilotildees Linux (e mesmo outras variantes do UNIX) utilizam o PAM(Plugabble Authentication Module) para implementar a autenticaccedilatildeo de usuaacuterios de formaaltamente configuraacutevel como visto em (SICA UCHOcircA 2004) Isso permite que a autentica-ccedilatildeo possa atender agraves mais diversas necessidades de uma instituiccedilatildeo qualquer

Utilizando o PAM o administrador pode escolher o sistema de autenticaccedilatildeo que maislhe convier e natildeo se preocupar em como as aplicaccedilotildees iratildeo interpretar isso O PAM permiteainda que se controle vaacuterios outros itens de usuaacuterios entre eles limites de recursos usode senha escondida (shadow) limite de acesso shell restrito etc

As configuraccedilotildees do PAM propriamente dito satildeo efetuadas no diretoacuterio etcpamdRecomenda-se a leitura de (SICA UCHOcircA 2004) e (MORGAN 2002) para maiores detalhessobre o processo de configuraccedilatildeo Uma descriccedilatildeo mais formal do PAM pode ser encontradaem (MORGAN 2001) e (SAMAR SCHEMERS 1995)

Como o processo de autenticaccedilatildeo do usuaacuterio eacute crucial para a seguranccedila de um dadosistema existem alguns moacutedulos PAM1 que podem se utilizados para incrementar essaseguranccedila Entre eles merecem destaque pam_limits pam_listfile pam_accesspam_time pam_cracklib e pam_wheel

O moacutedulo pam_cracklib do tipo password eacute responsaacutevel por fazer uma checagemmiacutenima de seguranccedila e tamanho de uma senha sendo trocada Ele utiliza a bibliotecaCrackLib uma versatildeo resumida e em biblioteca do Crack um programa para ataquesde dicionaacuterios o que seraacute visto na Seccedilatildeo 52 Ao usar essa biblioteca o pam_cracklib

dificulta a escolha de senhas baseadas em senhas de dicionaacuteriosO moacutedulo pam_cracklib permite ainda que se defina o tamanho miacutenimo de uma se-

nha e incentivar por mecanismos de creacutedito o uso de maiuacutesculas e minuacutesculas bem comosiacutembolos e nuacutemeros Consulte a documentaccedilatildeo do PAM para detalhes de implementaccedilatildeoe uso desse moacutedulo

1Observe que o termo ldquomoacutedulo PAMrdquo que seria traduzido como ldquomoacutedulo de moacutedulos plugaacuteveis de autenti-caccedilatildeordquo eacute um produto do Departamento Organizacional de Redundacircncia Repetida

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 33: SEGURANÇA COMPUTACIONAL

34 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Com o uso do moacutedulo pam_wheel eacute possiacutevel limitar quem pode executar o comandosu Na Figura 51 eacute apresentado um exemplo de arquivo etcpamdsu configuradopara usar esse moacutedulo Nesse exemplo eacute possiacutevel verificar que a configuraccedilatildeo geral docomando su seraacute copiada do arquivo etcpamdsystem-auth As uacutenicas exceccedilotildeessatildeo os moacutedulos pam_rootok e pam_wheel Com o uso de pam_rootok o usuaacuterio root

pode usar o su sem necessidade de autenticaccedilatildeo

auth sufficient libsecuritypam_rootokso

auth sufficient libsecuritypam_wheelso trust

auth required libsecuritypam_wheelso group=super

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 51 Exemplo de Arquivo etcpamdsu

Utilizando-se a configuraccedilatildeo apresentada na Figura 51 com o uso do pam_wheel osusuaacuterios do grupo wheel podem usar o su sem necessidade de digitar a senha do usuaacuterioIsso eacute possiacutevel pelo paracircmetro trust utilizado Observe que essa opccedilatildeo eacute altamentedesrecomendada na grande maioria dos casos Na sequecircncia da Figura 51 caso o usuaacuterionatildeo seja root ou esteja no grupo wheel o PAM iraacute verificar se o usuaacuterio faz parte do gruposuper Em caso negativo o acesso ao su seraacute negado Em caso positivo seraacute exigido asenha do usuaacuterio a que se pretende acessar

Uma forma semelhante de limitar esse acesso eacute utilizar o pam_listfile Nessecaso o pam_listfile foi criado para ser utilizado por qualquer programa com suporteao PAM Na Figura 52 eacute mostrado um exemplo de configuraccedilatildeo do arquivo etcpamd

chsh para impedir que os usuaacuterios listados no arquivo etcsecuritynochsh possamutilizar o comando chsh Com isso eacute possiacutevel que o administrador possa escolher shellsrestritos para determinados usuaacuterios (como o rsh) e evitar que eles alterem esse shell paraum outro qualquer

No caso da Figura 52 os paracircmetros do moacutedulo pam_listfile indicam como eledeve agir na autenticaccedilatildeo do usuaacuterio O paracircmetro onerr especifica o que deve ser feitoem caso de falha (erro de leitura do arquivo etc) Esse paracircmetro pode receber os valoresfail ou succeed O paracircmetro item por sua vez especifica o que estaacute contido na listaEle pode receber os valores user e group entre outros O paracircmetro file especificaonde estaacute o arquivo com a lista Jaacute o paracircmetro sense especifica se eacute para negar (deny)ou permitir (allow) acesso aos membros da lista

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 34: SEGURANÇA COMPUTACIONAL

Administraccedilatildeo Segura de Usuaacuterios 35

auth sufficient libsecuritypam_rootokso

auth required libsecuritypam_listfileso onerr=fail

item=user sense=deny file=etcsecuritynochsh

auth required libsecuritypam_stackso service=system-auth

account required libsecuritypam_stackso service=system-auth

password required libsecuritypam_stackso service=system-auth

session required libsecuritypam_stackso service=system-auth

Figura 52 Exemplo de Arquivo etcpamdchsh

Outro moacutedulo PAM de controle de acesso eacute o pam_access Esse moacutedulo do tipoaccount permite a configuraccedilatildeo de acesso por local Assim por exemplo eacute possiacutevelrestringir o acesso de usuaacuterios a partir de determinadas maacutequinas Para isso basta habilitaresse moacutedulo na aplicaccedilatildeo desejada e editar o arquivo etcsecurityaccessconfcomo exemplificado na Figura 53

SINTAXE eacute dada por permissatildeo (+ permite - nega) usuaacuterios origem

pode-se usar LOCAL para acesso de console e ALL para todos

EXCEPT indica exceccedilatildeo

Impedindo acesso de console com exceccedilatildeo de algumas contas

observe que pode ser usado grupo ou usuaacuterio

-ALL EXCEPT wheel shutdown sync rootLOCAL

Impede acesso remoto do usuaacuterio root

-rootALL EXCEPT LOCAL

usuaacuterio lennon soacute pode logar da rede beatlescom

-lennonALL EXCEPT beatlescom

usuaacuterio harrison soacute pode logar da rede 110220

-harrisonALL EXCEPT 110220

negando acesso a todos os outros usuaacuterios

-ALLALL

Figura 53 Exemplo de Arquivo etcsecurityaccessconf

Limitaccedilatildeo de acesso por tempo eacute feito com o uso do moacutedulo pam_time Esse moacute-dulo do tipo account permite restringir o acesso de serviccedilos PAM a uma faixa de horaacuterio

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 35: SEGURANÇA COMPUTACIONAL

36 EDITORA - UFLAFAEPE - Seguranccedila Computacional

por usuaacuterios Para tanto eacute utilizado um arquivo de configuraccedilatildeo localizado em etc

securitytimeconf exemplificado na Figura 54 Consulte a documentaccedilatildeo do PAMpara maiores detalhes

SINTAXE eacute dada por serviccedilosterminaisusuaacuteriostempo

tempo eacute dado por uma lista de diasfaixa horaacuteria

Mo = segunda Tu = terccedila We = quarta Th = quinta

Fr = sexta Sa = saacutebado Su = domingo Wk = finais de semana

Wd = segunda agrave sexta Al = todos os dias

Se o dia for repetido entatildeo ele eacute desconfigurado

Assim AlMo significa todos os dias exceto segunda

amp = e loacutegico | = ou loacutegico = negaccedilatildeo

root acessa qualquer serviccedilo a qualquer hora do terminal tty1

tty1rootAl0000-2400

paul e ringo soacute logam-se via login e ssh das 800 agraves 1800

login amp ssh paul|ringoAl0800-1800

soacute aceita conexotildees ao servidor ftp nos finais de semana

ftpWk0000-24000

Figura 54 Exemplo de Arquivo etcsecuritytimeconf

O limite de uso de recursos via PAM eacute feito utilizando-se o moacutedulo pam_limitsEsse moacutedulo do tipo session permite limite de uso dos recursos da maacutequina A Ta-bela 51 apresenta os tipos de limites que satildeo limitados com uso desse moacutedulo Utilizandoas informaccedilotildees da Tabela 51 a Figura 55 apresenta um exemplo de configuraccedilatildeo do moacute-dulo pam_limits Essa configuraccedilatildeo fica localizada no arquivo limitsconf no diretoacuterioetcsecurity

Observe que o usuaacuterio root natildeo eacute afetado pela maioria dos limites impostos pelomoacutedulo pam_limits Outra observaccedilatildeo importante eacute que como esse eacute um moacutedulo desessatildeo ele estipula o limite por sessatildeo do usuaacuterio Assim uma configuraccedilatildeo global develevar em conta a configuraccedilatildeo do recurso maxlogins

Como pocircde ser percebido nesta seccedilatildeo o PAM eacute uma ferramenta poderosa para segu-ranccedila de usuaacuterios Aleacutem dos moacutedulos aqui apresentados moacutedulos PAM adicionais podemser utilizados para implementar outros controles e limites Recomenda-se a leitura de (MOR-

GAN 2002) e (MORGAN 2003) para maiores detalhes

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 36: SEGURANÇA COMPUTACIONAL

Administraccedilatildeo Segura de Usuaacuterios 37

Tabela 51 Recursos Limitados pelo pam_limits

Recurso Descriccedilatildeo

core limita o tamanho (em KB) de arquivos coredata tamanho maacuteximo de dados (em KB)fsize tamanho maacuteximo de arquivo (em KB)memlock espaccedilo maacuteximo (em KB) de endereccedilamento de memoacuteria reservadanofile nuacutemero maacuteximo de arquivos abertosrss tamanho maacuteximo (em KB) de memoacuteria residentestack tamanho maacuteximo (em KB) de pilha de memoacuteriacpu tempo maacuteximo (em minutos) de uso da CPUnproc nuacutemero maacuteximo de processosas limite de espaccedilos de endereccedilamentomaxlogins nuacutemero maacuteximo de loginspriority prioridade com a qual satildeo rodadas as aplicaccedilotildeeslocks nuacutemero maacuteximo de arquivos aos quais eacute possiacutevel fazer lock

SINTAXE eacute dada por usuaacuterios terminais tipo recurso valor

tipo pode ser

hard (para limites riacutegidos)

soft (para limites leves)

grupo pode ser indicado por

limita arquivos core em tamanho 0

hard core 0

limita uso da memoacuteria em 10Mb

hard rss 10000

limita nuacutemero de processos para o grupo student

student soft nproc 30

student hard nproc 60

limita o nuacutemero de logins do grupo student

student - maxlogins 4

Figura 55 Exemplo de Arquivo etcsecuritylimitsconf

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 37: SEGURANÇA COMPUTACIONAL

38 EDITORA - UFLAFAEPE - Seguranccedila Computacional

52 PROTEGENDO CONTAS DE USUAacuteRIOS

O superusuaacuterio eacute o administrador do sistema O acesso de superusuaacuterio deve serevitado sempre que possiacutevel Nesse sentido o aplicativo sudo permite que o acesso comosuperuaacuterio seja evitado permitindo maior restriccedilatildeo em divulgar a senha do administradorem um ambiente onde existam vaacuterias pessoas administrando serviccedilos de rede

Geralmente o aplicativo sudo eacute disponibilizado com a maioria das distribuiccedilotildees Apoacutesa instalaccedilatildeo deve-se editar o arquivo etcsudoers especificando quem pode utilizaacute-lo ecom quais poderes Esse arquivo eacute de faacutecil ediccedilatildeo possuindo vaacuterios exemplos comentadosAleacutem disso as paacuteginas de manual do sudo e do sudoers satildeo bastante instrutivas sendorecomendada a leitura desse material

Outra questatildeo importante no que se refere ao gerenciamento seguro de usuaacuterios eacutegarantir que as senhas de usuaacuterio estatildeo protegidas e foram escolhidas de forma corretaIsso ocorre porque uma das estrateacutegias de invasatildeo utilizada pelos hackers eacute atraveacutes daobtenccedilatildeo de acesso autorizado utilizando a senha de um usuaacuterio comum do sistema Umavez obtido o acesso de um usuaacuterio eacute muito mais faacutecil descobrir vulnerabilidades e falhasde seguranccedila

Assim eacute importante garantir que as senhas dos usuaacuterios trafeguem de forma segurae sejam escolhidas de forma segura Para o primeiro iacutetem o uso de tunelamento eacute re-comendado Para o segundo iacutetem utiliza-se a taacutetica do hacker programas de quebra desenha para detectar senhas fracas Essa quebra eacute baseada em dicionaacuterio de palavras Doisaplicativos se destacam nessa tarefa o John The Ripper e o Crack

Eacute extramente recomendaacutevel que o administrador faccedila verificaccedilotildees perioacutedicas usandoaplicativos tipo o John ou o Crack Pode ser o caso inclusive de se bloquear o acesso decontas com senhas extremamente faacuteceis (sobrenome ou palavras simples) Obviamenteisso natildeo descarta a necessidade de orientar os usuaacuterios para uma boa escolha de senhascomo jaacute alertado em (SICA UCHOcircA 2004)

Outra observaccedilatildeo importante eacute que eacute extremamente necessaacuterio fazer checagens pe-rioacutedicas no arquivo etcpasswd procurando entradas incorretas ou estranhas Em geralinvasores costumam criar contas extras com poderes de root (com UID 0) Aleacutem dissocontas inativas devem ter acesso bloqueado ou ateacute mesmo serem removidas do sistema

Tambeacutem eacute essencial que se configure os limites de recursos aos usuaacuterios Como jaacutecomentado no Capiacutetulo 2 uma medida recomendada de seguranccedila eacute a estrateacutegia do menorprivileacutegio liberar ao usuaacuterio apenas aquilo que ele precisa para desempenhar suas ativi-dades Nesse caso alguns limites precisam ser impostos ao usuaacuterio de forma automaacuteticaAlguns desses limites podem ser impostos via uso do PAM como mostrado na Seccedilatildeo 51Outros limites podem ser impostos de vaacuterias maneiras

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 38: SEGURANÇA COMPUTACIONAL

Administraccedilatildeo Segura de Usuaacuterios 39

Um limite extremamente uacutetil eacute o uso de quotas de usuaacuterio Isso pode ajudar a manteros usuaacuterios menos vorazes em termos de uso de espaccedilo em disco e limitar tentativas deinvasatildeo interna O uso e configuraccedilatildeo de quotas foi abordado em detalhes no Capiacutetulo 6de (SICA UCHOcircA 2004) Consulte esse material bem como (DOOREN 2002) para maisdetalhes

Uma outra forma de impocircr limites eacute utilizar o comando interno ulimit do bash Essecomando permite configurar vaacuterios limites de recursos de forma semelhante ao pam_limitsA uacutenica desvantagem desse comando eacute que ele eacute restrito ao bash A Figura 56 mostra umexemplo de uso desse comando (a opccedilatildeo ldquo-ardquo eacute usada para imprimir os limites atuais) Asaiacuteda do comando eacute instrutiva mostrando o que pode ser limitado com seu uso

ulimit -a

core file size (blocks -c) 0

data seg size (kbytes -d) unlimited

file size (blocks -f) unlimited

max locked memory (kbytes -l) unlimited

max memory size (kbytes -m) unlimited

open files (-n) 1024

pipe size (512 bytes -p) 8

stack size (kbytes -s) 8192

cpu time (seconds -t) unlimited

max user processes (-u) 4095

virtual memory (kbytes -v) unlimited

Figura 56 Execuccedilatildeo do Comando ulimit-a

53 SEGURANCcedilA NO SISTEMA DE ARQUIVOS

A seguranccedila dos usuaacuterios tambeacutem passa por uma configuraccedilatildeo adequada dos siste-mas de arquivos Vaacuterias opccedilotildees de montagens de dispositivos por exemplo podem serutilizadas para incrementar a seguranccedila do sistema como um todo Sobre montagem dedispositivos recomenda-se a leitura de (SICA UCHOcircA 2004)

Em geral as observaccedilotildees a serem feitas sobre montagens de dispositivos referem-seagraves opccedilotildees de montagem nosuid nodev e noexec Como os dispositivos confiaacuteveis satildeocriados no diretoacuterio dev somente a particcedilatildeo contendo esse diretoacuterio deve possuir per-missatildeo para criaccedilatildeo e uso de arquivos de dispositivos Todas as outras particcedilotildees devem sermontadas com a opccedilatildeo nodev Por motivos semelhantes arquivos com SUID natildeo devem

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 39: SEGURANÇA COMPUTACIONAL

40 EDITORA - UFLAFAEPE - Seguranccedila Computacional

ser permitidos no diretoacuterio tmp ou home Donde esses diretoacuterios devem ser montadoscom a opccedilatildeo nosuid

Em diretoacuterios onde natildeo se pretende que sejam executados aplicativos (como o tmp

ou home em algumas instituiccedilotildees) deve-se usar opccedilatildeo de montagem noexec O diretoacuteriovar eacute outro candidato para essas opccedilotildees de montagem Entretanto alguns gerenciadoresde listas satildeo instalados no var ou no home Assim eacute preciso estar atento e checar osistema apoacutes essas modificaccedilotildees

Permissotildees tambeacutem satildeo outro ponto problemaacutetico O administrador deve estar extre-mamente atento sobre quais aplicaccedilotildes satildeo executadas com permissotildees de administrador(com uso de SUID) Para encontrar todas as aplicaccedilotildees com SUID ou SGID no sistemabasta executar o comando

find -type f ( -perm 04000 -o -perm -02000 )

Apoacutes feita essa verificaccedilatildeo eacute necessaacuterio checar se os aplicativos realmente precisam deSUIDSGID e se natildeo houve alteraccedilatildeo inconveniente na lista retornada

Outro problema grave satildeo os arquivos com permissatildeo de escrita global especial-mente arquivos de sistema Mas mesmo para arquivos comuns de usuaacuterios esse tipo depermissatildeo eacute totalmente inconveniente Para localizar arquivos desse tipo basta executar

find -perm -2 -type l

Outra verificaccedilatildeo a ser feita eacute a detecccedilatildeo de arquivos sem proprietaacuterio Eles tantopodem ser ldquorestosrdquo de usuaacuterios excluiacutedos do sistema resultados de software mal instaladoou arquivos criados por um invasor Assim periodicamente deve-se executar o comando

find ( -nouser -o -nogroup )

Ainda no que diz respeito agrave questatildeo das permissotildees pode ser interessante configurara permissatildeo padratildeo dos arquivos criados pelos usuaacuterios Isso eacute feito com o uso do comandoumask cuja chamada pode ser inserida no etcprofile Uma chamada do tipo ldquoumask077rdquo iraacute fazer com que os arquivos criados soacute possam ser lidos pelo usuaacuterio criador O valoreacute calculado subtraindo-se a permissatildeo desejada de 777 Assim caso fosse interessanteque os arquivos tambeacutem pudessem ser lidos por outros membros do grupo poderia serusado a chamada ldquoumask 027rdquo

Outro recurso importante para seguranccedila no sistema eacute o uso de atributos de arquivosIsso eacute feito com o uso do comando chattr Esse comando pode ser usado da seguinteforma

chattr [-RV] +-=[ASacdisju] arquivos

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 40: SEGURANÇA COMPUTACIONAL

Administraccedilatildeo Segura de Usuaacuterios 41

Quando chamado com a opccedilao ldquo-Vrdquo chattr iraacute imprimir informaccedilotildees extras sobre a accedilatildeosendo executada Com a opccedilatildeo ldquo-Rrdquo ele iraacute atuar de forma recursiva alterando dados dediretoacuterios e seus conteuacutedos

Qualquer atributo seguinte a um sinal de ldquo+rdquo iraacute ser adicionado ao arquivo Atributosseguintes a um sinal de ldquo-rdquo iratildeo ser removidos do arquivo Caso pretenda-se exatamenteum determinado conjunto de atributos entatildeo eacute utilizado o sinal ldquo=rdquo Assim para adicionar osatributos ldquoardquo e ldquocrdquo e remover os atributos ldquoirdquo e ldquojrdquo do arquivo teste executa-se o comando

chattr +ac -ij teste

Para se listar os atributos de um arquivo basta-se executar o comando lsattr Sechamado sem nenhum paracircmetro em um diretoacuterio ele iraacute informar os atributos de todos osarquivos aiacute contidos Para saber o atributo de um conjunto de arquivos basta chamaacute-lo naforma

lsattr arquivos

Os atributos satildeo dependentes do sistema de arquivos Assim a Tabela 52 apresentauma listagem dos atributos existentes ou previstos para uso no sistema de arquivos ext2Nessa tabela todos os atributos jaacute encontram-se implementados nesse sistema de arqui-vos no kernel 22 com exceccedilatildeo dos atributos ldquocrdquo ldquosrdquo e ldquourdquo

Tabela 52 Atributos de Arquivos

Atributo Descriccedilatildeo

A natildeo modificar data e hora que arquivo foi acessado (atime)S atualizaccedilatildeo siacutencrona com o disco (natildeo usa buffer)a arquivo eacute aberto no modo append ou seja somente pode receber novas

informaccedilotildees em seu finalc arquivo eacute comprimido automaticamente pelo kerneld arquivo natildeo permite coacutepia de seguranccedila usando dump

i arquivo natildeo pode ser modificado nem removido ndash tambeacutem natildeo eacute possiacutevelfazer links natildeo simboacutelicos para o arquivo

j o arquivo com esse atributo escreve todos os seus dados no journal antesde escrever no proacuteprio arquivo ndash esse atributo soacute eacute vaacutelido para o ext3

s deleccedilatildeo segura (arquivo eacute preenchido com zeros quando apagado)u quando o arquivo eacute apagado seu conteuacutedo eacute salvo e o arquivo pode ser

recuperado com facilidade

Alguns dos atributos da Tabela 52 soacute podem ser atribuiacutedos pelo superusuaacuterio Satildeoeles ldquoardquo e ldquoirdquo Isso ocorre porque um arquivo com o atributo ldquoirdquo natildeo pode ser apagado nem

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 41: SEGURANÇA COMPUTACIONAL

42 EDITORA - UFLAFAEPE - Seguranccedila Computacional

pelo usuaacuterio root Antes de apagaacute-lo eacute necessaacuterio remover o atributo do arquivo Noteque esses atributos ldquoardquo e ldquoirdquo satildeo os mais importantes do ponto de vista da seguranccedilajunto com o atributo ldquosrdquo

Como o atributo ldquosrdquo pode natildeo estar implementado na versatildeo do kernel utilizada pelousuaacuterio pode-se lanccedilar matildeo de outros mecanismos para deleccedilatildeo segura de arquivos Dele-ccedilatildeo segura eacute extremamente recomendaacutevel ao apagar arquivos confidenciais Uma alterna-tiva viaacutevel eacute utilizar-se do srm um utilitaacuterio que preenche o arquivo com o valor nulo (ASCIIldquo0rdquo) antes de apagaacute-lo O srm pode ser obtido em seu site httpsrmsourceforgenet O RedHat tambeacutem disponibiliza o shred Consulte a paacutegina de manual desse co-mando para mais detalhes

54 COMENTAacuteRIOS FINAIS

Este capiacutetulo objetivou apresentar ao leitor um conjunto de teacutecnicas praacuteticas e eficien-tes para uma administraccedilatildeo segura de usuaacuterios Com o uso do PAM dos utilitaacuterio find esudo eacute possiacutevel incrementar sensivelmente a seguranccedila do sistema Essas teacutecnicas as-sociadas ao processo de montagem segura de dispositivos e uso adequado de atributos dearquivos pode tornar um sistema altamente inconveniente para um processo de invasatildeo

O administrador deve estar consciente que o usuaacuterio pode ser a porta de entradapara um hacker facilitando a invasatildeo Daiacute sua preocupaccedilatildeo em garantir a seguranccedila dosmesmos Outra preocupaccedilatildeo do administrador eacute que vaacuterios casos de invasatildeo provecircm do in-terior da instituiccedilatildeo dos proacuteprios usuaacuterios Assim o administrador deve limitar os recursosadotando a poliacutetica do menor privileacutegio e periodicamente fazer checagem de seguranccedila dosistema

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 42: SEGURANÇA COMPUTACIONAL

6PREVENCcedilAtildeO E DETECCcedilAtildeO DE INTRUSOS

61 COMENTAacuteRIOS INICIAIS

Seguranccedila total eacute ficccedilatildeo e ficccedilatildeo de baixa qualidade Vulnerabilidades satildeo descober-tas com frequumlecircncia e eacute possiacutevel falar com absoluta tranquumlilidade que natildeo existem servidores99 seguros O que se pode pretender eacute um servidor que ofereccedila tanta dificuldade que eledesestimule os invasores

Mas mesmo com esse niacutevel de dificuldade natildeo eacute possiacutevel confiar cegamente no sis-tema Dessa maneira o administrador deve estar utilizando ferramentas de detecccedilatildeo eprevenccedilatildeo de intrusos para monitorar o sistema de sua responsabilidade Dessa maneirao administrador pode vir a ter condiccedilotildees de impedir que ataques em fase inicial consigamchegar a um niacutevel indesejado de intrusatildeo no sistema

Parte do serviccedilo de prevenccedilatildeo de intrusos eacute feito com uma implementaccedilatildeo de umapoliacutetica de seguranccedila adequada Obviamente essa poliacutetica deve estar baseada em serviccediloscriptograacuteficos uma correta configuraccedilatildeo de serviccedilos e firewall entre outros Dessa maneiraa dificuldade gerada serviraacute como uma prevenccedilatildeo adequada de intrusos Mas isso natildeo eacutesuficiente

O processo de detecccedilatildeo de intrusos envolve inuacutemeras estrateacutegias Geralmente satildeoutilizados ferramentas IDS (Intrusion Detection System - Sistema de Detecccedilatildeo de Intrusos)Eacute importante notar que esse termo pode ser usado de vaacuterias formas de forma mais amplaou mais restrita

Em sua forma mais restrita refere-se apenas aos aplicativos capazes de alertar quandouma tentativa de invasatildeo encontra-se em accedilatildeo Nesse sentido constituem-se principal-mente em programas de monitoramento de conexotildees de rede como o Snort Em umavisatildeo mais ampla utilizada neste trabalho tambeacutem satildeo IDS as ferramentas utilizadas paramonitorar a integridade do sistema Nesse caso tambeacutem podem ser definidos claramentecomo IDS os verificadores de integridade de arquivos como o AIDE ou o Tripwire

Teacutecnicas de Detecccedilatildeo de Intrusos se aproximam bastante daquelas usadas emFirewalls e sistemas de Log e o seu objetivo principal eacute reagir a uma invasatildeo(ou suspeita de invasatildeo) no menor intervalo de tempo possiacutevel Isto pode ser

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 43: SEGURANÇA COMPUTACIONAL

44 EDITORA - UFLAFAEPE - Seguranccedila Computacional

feito por exemplo monitorando-se continuamente o traacutefego de rede agrave procurade qualquer anomalia ou entatildeo analisando-se continuamente as uacuteltimas entradasdos arquivos de log agrave procura de accedilotildees suspeitas

(WEBER 17 a 21 de julho de 2000)

Assim antes de abordar os IDS propriamente dito este capiacutetulo introduz o leitor emoutras teacutecnicas importantes nesse processo como a monitoraccedilatildeo dos arquivos de registrose uso de ferramentas de varreduras Essas teacutecnicas iratildeo auxiliar o administrador a descobrire evitar vulnerabilidades corrigindo-as antes de uma possiacutevel invasatildeo

62 VERIFICACcedilAtildeO DOS REGISTROS (LOGS)

Uma invasatildeo geralmente deixa rastros Talvez inclusive seja possiacutevel dizer que damesma forma que natildeo existe um sistema totalmente seguro natildeo existe uma invasatildeo per-feita Assim a verificaccedilatildeo perioacutedica dos arquivos de registros pode evitar surpresas extre-mamente desagradaacuteveis ao mostrar a tentativa de invasatildeo desde o seu iniacutecio

Uma esclarecimento inicial eacute que em um sistema medianamente seguro uma invasatildeoeacute um procedimento relativamente demorado Assim o leitor deve excluir de sua imaginaccedilatildeoa imagem romacircntica de um hacker que consegue penetrar em um sistema em poucosminutos A menos que o sistema seja uma peneira de vulnerabilidades uma invasatildeo iraacuteexigir esforccedilo e paciecircncia do intruso que teraacute que fazer inuacutemeras tentativas para conseguirseu intento Caso haja uma verificaccedilatildeo perioacutedica dos logs essa invasatildeo pode ser bloqueadaem seu iniacutecio

Aleacutem disso os arquivos de registros podem indicar falhas em serviccedilos o que poderiacomprometer natildeo soacute a seguranccedila mas a qualidade do sistema Outro motivo para a veri-ficaccedilatildeo perioacutedica dos logs eacute a possibilidade de verificaccedilatildeo de accedilotildees anormais no sistemacomo logins fora do padratildeo ou tentativas de execuccedilatildeo de aplicaccedilotildees restritas

Um acesso de um usuaacuterio fora do horaacuterio normal por exemplo pode indicar que uminvasor esteja usando a conta do usuaacuterio para encobrir a invasatildeo Pode ser tambeacutem queesse usuaacuterio esteja acessando fora do horaacuterio com finalidades iliacutecitas ou seja ele eacute o inva-sor Natildeo se deve esquecer que apesar do nuacutemero de invasotildees externas estarem crescendoassustadoramente nos uacuteltimos anos as invasotildees internas costumam causar ainda o maiorprejuiacutezo

Os arquivos de log satildeo localizados geralmente no diretoacuterio varlogs Merecemespecial atenccedilatildeo sob o ponto de vista da seguranccedila quatro arquivos nesse diretoacuteriomessages secure wtmp e lastlog O messages eacute um arquivo de registro geneacutericocom informaccedilotildees de login uso do comando su conexotildees SSH entre outros O arquivosecure armazena informaccedilotildees restritas agrave seguranccedila do sistema como uso do sudo einicializaccedilatildeo do servidor SSH

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 44: SEGURANÇA COMPUTACIONAL

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 45

O arquivo wtmp natildeo pode ser lido diretamente pois armazena informaccedilotildees de login noformato binaacuterio A leitura dos dados nesse arquivo eacute feito via comando last O comandolast exibe todas as conexotildees efetuadas no sistema desde a data de iniacutecio do arquivo NaFigura 61 eacute apresentada uma forma de uso desse comando para filtrar os uacuteltimos logins dosuperusuaacuterio A partir da saiacuteda do comando eacute possiacutevel verificar de onde foi feita a conexatildeoe o tempo de duraccedilatildeo da mesma

last | grep root

root tty3 Sat Apr 19 1640 - 1748 (0108)

root tty2 Sat Apr 19 1639 - 1653 (0013)

root tty1 Thu Apr 10 1510 - 1511 (0000)

Figura 61 Exemplo de Uso do Comando last

Jaacute o arquivo lastlog tambeacutem binaacuterio eacute utilizado pelo comando de mesmo nomecomo ilustrado na Figura 62 Ele aponta para cada usuaacuterio do sistema qual foi o uacuteltimologin efetuado Isso pode ser uacutetil para verificar se determinadas contas de sistema natildeoestatildeo sendo usadas de forma incorreta

Observando a Figura 62 eacute possiacutevel verificar que o comando lastlog informa deonde e quando foi o uacuteltimo login de cada usuaacuterio do sistema Nesse sentido eacute importanteverificar se contas de sistema estatildeo com acesso bloqueado no etcshadow uma vezque ningueacutem iraacute fazer login direto nessas contas Essa eacute a configuraccedilatildeo padratildeo mas issodeve ser verificado periodicamente

Ainda com respeito aos arquivos de registros natildeo podem ser esquecidos os arquivosde log do Apache geralmente no diretoacuterio varloghttpd e o arquivo de log do servidorde e-mail o arquivo varlogmaillog Atraveacutes de anaacutelises do maillog eacute possiacuteveldetectar quem satildeo os usuaacuterios que mais recebem e enviam e-mail Tambeacutem eacute possiacutevelverificar de onde vem a maioria dos e-mails externos facilitando o bloqueio a sites quepermitem o envio de SPAM

Eacute importante verificar que os registros satildeo em geral configuraacuteveis Assim eacute possiacutevelhabilitar um niacutevel extra de informaccedilotildees Isso pode possuir duas forccedilas contraacuterias quantomais informaccedilotildees mais espaccedilo eacute necessaacuterio em disco aleacutem disso determinadas informa-ccedilotildees extras podem ferir a privacidade dos usuaacuterios Dessa maneira o usuaacuterio precisa estarciente que determinados tipos de monitoramento estatildeo sendo efetuados na instituiccedilatildeo paraevitar problemas legais

Um exemplo desse tipo de monitoramento eacute possiacutevel configurar o iptables paraarmazenar informaccedilotildees de conexotildees Dessa forma eacute possiacutevel saber quem estaacute acessandoquem numa dada rede Tambeacutem eacute possiacutevel aumentar o niacutevel de informaccedilotildees do servi-

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 45: SEGURANÇA COMPUTACIONAL

46 EDITORA - UFLAFAEPE - Seguranccedila Computacional

lastlog

==gt lastlog

Username Port From Latest

root tty3 Saacuteb Abr 19 164006 -0300 2003

bin Never logged in

daemon Never logged in

lp Never logged in

sync Never logged in

shutdown Never logged in

halt Never logged in

mail Never logged in

operator Never logged in

nobody Never logged in

rpm Never logged in

ntp Never logged in

rpc Never logged in

xfs Never logged in

gdm Never logged in

rpcuser Never logged in

nfsnobody Never logged in

nscd Never logged in

ident Never logged in

radvd Never logged in

pcap Never logged in

massive pts16 poseidon Seg Abr 21 191429 -0300 2003

mazzy pts0 hades Qui Abr 10 151221 -0300 2003

apache Never logged in

Figura 62 Exemplo de Uso do Comando lastlog

dor de e-mail aumentando o niacutevel de monitoraccedilatildeo do envio e recebimento de mensagenseletrocircnicas

Outro tipo de monitoramento que pode ser feito eacute o uso de contabilidade de processosIsso eacute feito com o uso do comando psacct disponiacutevel na maioria das distribuiccedilotildees Umavez instalado o pacote deve-se habilitar o serviccedilo com o comando

accton varlogpsacct

Uma vez habilitada a contabilidade de processos pode-se usar os comandos sa oulastcomm para saber os uacuteltimos comandos emitidos pelos usuaacuterios Eacute importante observar

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 46: SEGURANÇA COMPUTACIONAL

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 47

que se natildeo claro na poliacutetica de uso esse tipo de monitoramento pode ser interpretado comoilegal e causar dores de cabeccedila ao administrador

Um utilitaacuterio extremamente uacutetil no que se refere agrave monitoraccedilatildeo de arquivos de registroseacute o logwatch tambeacutem disponiacutevel na maioria das distribuiccedilotildees Em geral jaacute vem com umscript executado diariamente para informar ao superusuaacuterio por e-mail sobre registrosligados agrave seguranccedila do sistema como ilustra a Figura 63 Nesse exemplo o logwatch

alerta para usos do sudo e conexotildees ssh do usuaacuterio root aleacutem do uso do sendmail

para envio de correio eletrocircnico

---------------- Connections (secure-log) Begin -------------------

Unmatched Entries

sudo joukim TTY=pts3 PWD=homejoukim USER=root

COMMAND=etcrcdinitdsendmail restart

----------------- Connections (secure-log) End --------------------

--------------------- sendmail Begin ------------------------

917 bytes transferred

1 messages sent

---------------------- sendmail End -------------------------

--------------------- SSHD Begin ------------------------

Users logging in through sshd

root logged in from cpp (127001) using password 1 Times(s)

---------------------- SSHD End -------------------------

Figura 63 Exemplo de Alerta do logwatch

63 EVITANDO EXPLOITS

A maioria das invasotildees externas aproveitam-se de bugs nos daemons Assim utilizando-se desses bugs criam exploits para explorar essas falhas e tentar obter acesso ao sistema

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 47: SEGURANÇA COMPUTACIONAL

48 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Quando bem sucedidos os invasores conseguem um terminal de root agrave sua inteira dispo-siccedilatildeo Para evitar a accedilatildeo dos exploits duas accedilotildees satildeo as mais eficazes

1 Verificar com frequumlecircncia sites de seguranccedila sobre anuacutencios de falhas em serviccedilos Emgeral as distribuiccedilotildees manteacutem paacuteginas a esse respeito mas esse tipo de informaccedilatildeotambeacutem pode ser obtida na Freshmeat (httpwwwfreshmeatnet) na CERT(httpwwwcertorg) no SANS Institute (httpwwwsansorg) ou nal0pht (httpwwwl0phtcom)

2 Atualizar os servidores periodicamente tatildeo logo sejam descobertas falhas de segu-ranccedila e sejam disponibilizadas atualizaccedilotildees corrigindo esses bugs

Eacute preciso chamar a atenccedilatildeo para o fato que a maioria das invasotildees ocorrem em maacute-quinas haacute muito desatualizadas e com furos enormes de seguranccedila Assim a constantevigilacircncia eacute essencial para evitar esse tipo de problema

64 USO DE FERRAMENTAS DE VARREDURA

Como jaacute comentado neste texto algumas ferramentas de seguranccedila podem se trans-formar em ferramentas de invasatildeo e vice-versa Esse eacute o caso tiacutepico das ferramentas devarredura Essas ferramentas tem o objetivo expliacutecito de verificar um sistema em busca defalhas de seguranccedila Se utilizadas pelo administrador pode auxiliaacute-lo a fechar as brechasencontradas em seu ambiente computacional

Os scanners como tambeacutem satildeo conhecidas essas ferramentas tanto podem investi-gar falhas locais como nos serviccedilos de rede Os mais conhecidos satildeo o nessus o TARA oSARA o SAINT e o SATAN mas existem vaacuterios outros Eacute importante observar que mesmoferramentas usuais como o netstat ou o nmap podem ser utilizados com essa finalidade

O SATAN foi uma das primeiras ferramentas de varredura criadas tendo influenciadoo surgimento do SAINT e do SARA Os trecircs iniciam um navegador a partir do qual satildeo vas-culhados os serviccedilos de rede de um dado servidor ou um conjunto de maacutequinas O SATAN

natildeo eacute mantido mais atualmente encontrando-se desatualizado Assim recomenda-se ouso do SARA e do nessus uma vez que o SAINT eacute comercial soacute liberando gratuitamenteversotildees mais antigas

O SARA (Security Auditorrsquos Research Assistant) eacute desenvolvido pela Advanced Rese-arch Computing (httpwww-arccom) e faz parte de um conjunto de programas paraverificaccedilatildeo de seguranccedila Entre eles encontra-se o TARA um utilitaacuterio para verificaccedilatildeo lo-cal de seguranccedila comentado mais agrave frente A Figura 64 mostra um exemplo de checagemde seguranccedila efetuada pelo SARA onde foram encontradas vaacuterias vulnerabilidades

O SARA pode ser executado para checar vulnerabilidades em uma uacutenica maacutequinaou em toda uma rede Obviamente checagens locais conseguem coletar mais informa-

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 48: SEGURANÇA COMPUTACIONAL

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 49

Figura 64 Vulnerabilidades Encontradas pelo SARA

ccedilotildees Aleacutem de detectar as vulnerabilidades o SARA detalha a vulnerabilidade encontradadocumentando-a e apresentando alternativas para correccedilatildeo dessa vulnerabilidade A Fi-gura 65 mostra um exemplo disso para a vulnerabilidade do Apache apresentada na Fi-gura 64

O TARA eacute baseado num conjunto de scripts chamado Tiger desenvolvido pelo cam-pus AampM da Texas University Depois da versatildeo 224 em 1994 o desenvolvimento doTiger foi interrompido As paacuteginas originais do projeto ainda podem ser encontradas emhttpwwwnettamuedunetworktoolstigerhtml O TARA (Tiger AnalyticalResearch Assistant) foi um dos esforccedilos para manter o Tiger atualizado

Mais recentemente esses esforccedilos foram unificados (apesar do TARA ainda ser atu-alizado independentemente) numa nova versatildeo do Tiger disponiacutevel em httpwww

tigersecurityorg Observe que as versotildees do TARA ainda satildeo mais estaacuteveis queo Tiger mas isso deve mudar num futuro proacuteximo Esses aplicativos fazem verificaccedilotildeeslocais por exemplo checagem de seguranccedila nos arquivos de contas de usuaacuterios (passwdshadow e group) O uso desses dois aplicativos eacute altamente recomendado

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 49: SEGURANÇA COMPUTACIONAL

50 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Figura 65 Deltalhamento da Vulnerabilidade no SARA

Um outro aplicativo que natildeo pode faltar nas ferramentas do administrador de redes eacuteo nessus tambeacutem na mesma filosofia do SARA A experiecircncia da equipe do ARL eacute maiorcom o SARA mas o nessus tambeacutem eacute uma excelente escolha A bem da verdade depen-dendo do ambiente recomenda-se o uso das duas ferramentas alternadamente Observeque o uso desses aplicativos eacute extremamente simples natildeo exigindo uma explanaccedilatildeo maiorneste texto

Mas o leitor jaacute deve ter percebido que mesmo ferramentas de uso corriqueiro po-dem ser usado com o objetivo de varredura do sistema em busca de vulnerabilidadesO netstat por exemplo eacute utilizado para informar a situaccedilatildeo da conexatildeo de rede localO nmap estende essa funcionalidade permitindo efetuar varreduras em outras maacutequinasDessa maneira esses dois aplicativos podem ser utilizados para checar as portas aber-tas em uma dada maacutequina bem como as conexotildees de rede ativas Com isso eacute possiacutevelmelhorar a arquitetura do firewall e detectar uso incorreto da rede local

Outro aplicativo na mesma filosofia do nmap eacute o ntop disponiacutevel em httpwww

ntoporg O ntop entre outros pode ser utilizado para medida e monitoramento de

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 50: SEGURANÇA COMPUTACIONAL

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 51

traacutefego Se implementado em um gateway pode ser usado para verificar o fluxo da redeinclusive com graacuteficos estatiacutesticos se utilizado atraveacutes de sua interface WWW

65 VERIFICADORES DE INTEGRIDADE DE ARQUIVOS

Uma questatildeo criacutetica no que se refere agrave seguranccedila eacute a garantia de confianccedila no sis-tema Em geral tatildeo logo o invasor obteacutem acesso ao sistema sua primeira providecircncia eacutea de garantir continuidade desse acesso Uma das estrateacutegias utilizadas para isso eacute o usode rootkits Esses programas consistem em versotildees modificadas de aplicativos comuns oumesmo do kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novoaplicativo que lhe decirc acesso privilegiado

Assim o administrador deve verificar periodicamente a integridade dos arquivos ins-talados no sistema Para isso vaacuterias ferramentas podem ser utilizadas Em geral todassatildeo baseadas em se fazer um checksum dos arquivos para posterior comparaccedilatildeo Se osarquivos forem alterados o checksum do arquivo iraacute diferir daquele feito anteriormente

Como o uacutenico momento em que se pode ldquoconfiarrdquo na maacutequina eacute o momento de suainstalaccedilatildeo esse deve ser o momento tambeacutem de se criar o checksum inicial Essa reco-mendaccedilatildeo eacute independende do aplicativo utilizado para fazer essa checagem Assim tatildeologo tenha instalado o sistema os checksums iniciais devem ser criados Natildeo que isso natildeopossa ser feito apoacutes a instalaccedilatildeo mas daiacute natildeo haveraacute garantias de alteraccedilatildeo do periacuteodo deinstalaccedilatildeo ateacute esse processo inicial

Entre os aplicativos utilizados para calcular checksums talvez o mais usado seja omd5sum disponiacutevel na maioria das distribuiccedilotildees Entretanto dependendo da complexidadedo sistema pode ser mais interessante utilizar-se do AIDE (httpwwwcstutfi~rammeraidehtml) ou do Tripwire (httpwwwtripwireorg) dois aplicativosespeciacuteficos para verificaccedilatildeo de integridade de arquivos Exemplos de instalaccedilatildeo e usodesses dois uacuteltimos aplicativos podem ser obtidos em (VILELA 2001)

Merece ainda um especial destaque o chkrootkit um kit de aplicativos para a de-tecccedilatildeo de rootkits instalados na maacutequina Esse kit pode ser obtido em httpwww

chkrootkitorg e conteacutem a colaboraccedilatildeo ativa de desenvolvedores brasileiros Umadescriccedilatildeo detalhada do chkrootkit pode ser obtida em (MURILO STEDING-JESSEN 2001)

66 DETECTORES ATIVOS DE INTRUSAtildeO

Nesta seccedilatildeo o interesse recai sobre o processo de detecccedilatildeo de intrusatildeo ativa Esseprocesso refere-se principalmente ao uso de ferramentas que monitoram o sistema ouprincipalmente a rede efetuando accedilotildees preacute-estabelecidas tatildeo logo algo estranho seja de-tectado A filosofia de certa forma eacute extremamente simples o IDS analisa continuamente

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 51: SEGURANÇA COMPUTACIONAL

52 EDITORA - UFLAFAEPE - Seguranccedila Computacional

o sistema ou a rede e tatildeo logo reconheccedila um padratildeo estranho algum mecanismo de alertaou de defesa eacute acionado dependendo do caso

Nesse sentido eacute possiacutevel dizer que sistemas IDS funcionam de forma semelhanteaos sistemas anti-viacuterus ativos que continuamente ficam analisando arquivos inseridos nocomputador ou que chegam via rede Uma tentativa de invasatildeo assim como um viacuterus podeser detectada por um padratildeo Natildeo seraacute de estranhar se num futuro proacuteximo as empresasdesenvolvedoras de anti-viacuterus acabem por inserir ferramentas IDS em seus produtos outransformar seus produtos em IDS

Entre as ferramentas IDS mais conhecidos no contexto do Linux merecem especialdestaque o Snort o PortSentry e o Hostsentry Eacute interessante observar que existem inuacuteme-ros outros aplicativos nessa filosofia inclusive alguns projetos de origem nacional podemser descobertos na Freshmeat (httpwwwfreshmeatnet) utilizando-se o termode busca ldquoIntrusion Detection Systemrdquo O autor deste trabalho inclusive encontra-se emestaacutegio inicial de desenvolvimento de uma ferramenta IDS baseada em modelos bioloacutegicos

O Snort (httpwwwsnortorg) eacute um dos IDS ativos mais utilizados em ambi-ente UNIX Ele possui um arquivo de assinaturas bastante completo e exige pouco esforccedilocomputacional da maacutequina onde eacute instalado O Snort eacute a princiacutepio um sniffer que filtrapacotes a que tem acesso Dessa maneira qualquer traacutefego estranho iraacute gerar uma accedilatildeodo Snort

As accedilotildees do Snort podem ir desde alerta em terminal de root envio de e-mails ousimples armazenamento em arquivo de registros Essas accedilotildees podem ser configuradas noarquivo etcsnortconf de acordo com o tipo de padratildeo detectado Assim padrotildeesconsiderados mais perigosos iratildeo gerar accedilotildees mais imediatas A Figura 66 apresenta umexemplo de registro efetuado pelo Snort mostrando o uso de scanner de seguranccedila e umataque ao servidor WWW

O Portsentry e Hostsentry fazem parte do Projeto Abacus que ainda inclui o Logsen-try uma alternativa ao LogWatch abordado na Seccedilatildeo 62 Esses aplicativos natildeo possuemcoacutedigo aberto mas podem ser distribuiacutedos e utilizados gratuitamente Nesse projeto o Port-sentry verifica as conexotildees de rede enquanto o Hostsentry fica atento aos logins efetuadosna maacutequina Assim ele emite alertas para logins em horaacuterios feitos em horaacuterios natildeo costu-meiros ou logins por usuaacuterio que natildeo possuem frequumlecircncia de acesso ao servidor podendoindicar uso dessa conta numa invasatildeo

O Projeto Abacus era desenvolvido pela Psionic (httpwwwpsioniccom) quefoi adquirida recentemente pela Cisco Assim natildeo eacute possiacutevel obter os programas dire-tamente do site da Cisco (pelo menos ateacute o momento de ediccedilatildeo dessa apostila) Masesses programas podem ser obtidos em vaacuterios outros sites como por exemplo a RPMFind(httpwwwrpmfindnet)

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 52: SEGURANÇA COMPUTACIONAL

Prevenccedilatildeo e Detecccedilatildeo de Intrusos 53

0425-094626111024 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094629156434 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094632160706 [] [119173] SCAN UPNP service discover attempt

[] [Classification Detection of a Network Scan] [Priority 3]

UDP 1921681501471044 -gt 2392552552501900

0425-094817409438 [] [112438] WEB-IIS ISAPI ida attempt

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

0425-094817479919 [] [110025] WEB-IIS cmdexe access

[] [Classification Web Application Attack] [Priority 1]

TCP 2002061841154567 -gt 200131251780

Figura 66 Exemplo de Registro do Snort

Ainda quanto agrave detecccedilatildeo de intrusos merece especial atenccedilatildeo o LIDS (Linux IntrusionDetection System ndash Sistema de Detecccedilatildeo de Intrusos para Linux) Esse aplicativo consistena verdade em um patch para o kernel adicionando novas funcionalidades ao Linux paradetecccedilatildeo de intrusos De certa maneira essa abordagem pode ser a mais interessantepara uma maior seguranccedila Entretanto possui a necessidade de recompilaccedilatildeo do kernel oque traz inconveniecircncias para seu uso

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 53: SEGURANÇA COMPUTACIONAL

54 EDITORA - UFLAFAEPE - Seguranccedila Computacional

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 54: SEGURANÇA COMPUTACIONAL

7CONCLUSAtildeO

Natildeo existem soluccedilotildees maacutegicas para seguranccedila computacional que deve ser enten-dida como um processo e natildeo como um objetivo Aleacutem disso a forma como esse conceito eacuteutilizado depende do ambiente em questatildeo o que implica que cada instituiccedilatildeo precisa de-finir sua proacutepria poliacutetica de seguranccedila Alguns procedimentos entretanto podem ser tidoscomo baacutesicos e devem ser verificados com especial atenccedilatildeo

1 tomar excessivo zelo e cuidado com o uso da conta do superusuaacuterio

2 manter os aplicativos atualizados com relaccedilatildeo agraves falhas de seguranccedilas

3 checar a origem de um aplicativo antes de instalaacute-lo

4 cuidar para que os usuaacuterios escolham boas senhas

5 evitar ao maacuteximo disponibilizar aplicativos e serviccedilos que requerem senhas em textopuro como telnet ou POP simples

6 usar serviccedilos criptografados sempre que for trafegar dados importantes usando SSLou SSH por exemplo

7 configurar adequadamente a autenticaccedilatildeo dos usuaacuterios fazendo uso inteligente doPAM

8 desabilitar serviccedilos natildeo utilizados

9 configurar adequadamente o iptables para um firewall seguro para o sistema

10 utilizar periodicamente ferramentas de verificaccedilatildeo bem como analisar os arquivos deregistros para checar a seguranccedila do sistema

11 manter um sistema adequado de backup

12 garantir seguranccedila fiacutesica para os equipamentos principalmente servidores

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 55: SEGURANÇA COMPUTACIONAL

56 EDITORA - UFLAFAEPE - Seguranccedila Computacional

Esses procedimentos se implementados corretamente natildeo iratildeo garantir um site 100seguro um caso para ficccedilatildeo cientiacutefica Mas dificultaratildeo em muito a accedilatildeo do invasor des-motivando sua accedilatildeo Nesse sentido o administrador deve estar atento para o fato queseguranccedila computacional eacute uma filosofia de trabalho diaacuterio e natildeo algo para se conseguirapoacutes uma sequumlecircncia de passos

Outro ponto importante que precisa ficar claro eacute que sistemas de firewall natildeo represen-tam a melhor parte das accedilotildees de seguranccedila muitas vezes a invasatildeo eacute feita por um usuaacuteriolegiacutetimo do sistema ou algueacutem utilizando sua conta Um firewall nesse caso natildeo seriade tatildeo grande valia assim Nesse sentido o administrador precisa estar atento e imple-mentando outras accedilotildees como as listadas anteriormente de forma a melhorar a seguranccedilacomputacional das maacutequinas que eacute responsaacutevel

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 56: SEGURANÇA COMPUTACIONAL

REFEREcircNCIAS BIBLIOGRAacuteFICAS

ANONYMOUS Maximum Linux Security A Hackerrsquos Guide to Protecting Your Linux Serverand Workstation Indianapolis Sams 2000

BRASIL Decreto-Lei No 2848 de 7 de Dezembro de 1940 Coacutedigo Penal Diaacuterio Oficialda Uniatildeo 31 dez 1940 Disponiacutevel em lthttpwwwpresidenciagovbrccivil 03Decreto-LeiDel2848htmgt

BURGISS H Security Quick-Start HOWTO for Linux v12 2002-07-21 2002 The LinuxDocumentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-HOWTO

BURGISS H Security Quick-Start HOWTO for Red Hat Linux v12 2002-07-21 2002The Linux Documentation Project [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-Quickstart-Redhat-HOWTO

CALLAS J DONNERHACKE L FINNEY H THAYER R OpenPGP Message FormatInternet Engineering Task Force (IETF) Novembro 1998 (Request for Comments 2440)URL httpwwwietforg

DIERKS T ALLEN C The TLS protocol version 10 Internet Engineering Task Force(IETF) Janeiro 1999 (Request for Comments 2246) URL httpwwwietforg

DOMINGUES M A SCHNEIDER B de O UCHOcircA J Q Autenticaccedilatildeo em sistemasLinux usando OpenLDAP In Semac2001 - XII Semana da Computaccedilatildeo - IV Workshopem Linux Internet e Aplicaccedilotildees Satildeo Joseacute do Rio Preto UNESP 2001 URLhttpwwwcompuflabr~joukimextensao

DOOREN R van Quota mini-HOWTO v03 April 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOminiQuota

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 57: SEGURANÇA COMPUTACIONAL

58 EDITORA - UFLAFAEPE - Seguranccedila Computacional

FENZI K Linux Security HOWTO v20 11 June 2002 2002 The Linux DocumentationProject [WWW] URL httpwwwibiblioorgpubLinuxdocsHOWTOSecurity-HOWTO

FRAMPTON S Linux Administration Made Easy [Sl] The Linux Documentation Project1999 URL httpwwwtldporgguideshtml

HATCH B LEE J KURTZ G Hacker Expostos Linux Segredos e Soluccedilotildees para aSeguranccedila do Linux Satildeo Paulo Makron-Books 2002

KIRCH O DAWSON T The Linux Network Administratorrsquos Guide Version 11 2 ed [Sl]The Linux Documentation Project 2000 URL httpwwwtldporgguideshtml

MANN S MITCHELL E L Linux System Security An Administratorrsquos Guide to OpenSource Security Tools New Jersey Prentice-Hall 2000

MOLLARD M F v GNU Privacy Guard (GnuPG) Mini Howto Version 013 The GNUPrivacy Guard ndash GnuPGorg 17 de Maio 2002 URL httpwwwgnupgorg [Umatraduccedilatildeo brasileira pode ser encontrada em httpwwwcipsgaorg]

MORGAN A G Pluggable Authentication Modules (PAM) Open-PAM working groupDecember 2001 (Internet Draft) URL httpgandalfnearkorgpublinuxlibspampredoccurrent-drafttxt

MORGAN A G The Linux PAM System Administratorsrsquo Guide Draft v076 [Sl]Linux-PAM 2002 URL httpwwwuskernelorgpublinuxlibspam

MORGAN A G 2003 URL httpwwwkernelorgpublinuxlibspam

MURILO N STEDING-JESSEN K Meacutetodos para detecccedilatildeo local de rootkits e moacutedulosde kernel maliciosos em sistemas Unix In Anais do 3 Simpoacutesio Sobre Seguranccedila emInformaacutetica ndash SSI 2001 Satildeo Joseacute dos Campos CTAITAIEC 2001 p 133ndash139

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 2 ed New Jersey Prentice-Hall 1995

NEMETH E SNYDER G SEEBASS S HEIN T R UNIX System AdministrationHandbook 3 ed New Jersey Prentice-Hall 2001

RUSSEL R Linux 24 Packet Filtering HOWTO v119 20010526 2001 TheNetfilterIptables Project [WWW] URL httpwwwnetfilterorg

SAMAR V SCHEMERS R Unified login with Pluggable Authentication Modules(PAM) Open Software Foundation October 1995 (Request For Comments 860) URLhttpgandalfnearkorgpublinuxlibspampredocrfc860txtgz

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo
Page 58: SEGURANÇA COMPUTACIONAL

Referecircncias Bibliograacuteficas 59

SCHNEIER B Applied Cryptography New York John Wisley Inc 1996

SICA F C UCHOcircA J Q Gerenciamento de Sistemas Linux 2 ed Lavras UFLAFAEPE2004 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia emAdministraccedilatildeo em Redes Linux)

SOARES L F G LEMOS G COLCHER S Redes de Computadores das LANs MANse WANs agraves Redes ATM 2 ed Rio de Janeiro Campus 1995

STANFIELD V SMITH R W Linux System Administration San Francisco Sybex 2001(Craig Hunt Linux Library)

UCHOcircA J Q Seguranccedila em Redes e Criptografia Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

UCHOcircA J Q SIMEONE L E SICA F C Administraccedilatildeo de Redes Linux LavrasUFLAFAEPE 2003 (Curso de Poacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircnciaem Administraccedilatildeo em Redes Linux)

UCHOcircA K C A Introduccedilatildeo agrave Cibercultura 3 ed Lavras UFLAFAEPE 2003 (Curso dePoacutes Graduaccedilatildeo ldquoLato Sensurdquo (Especializaccedilatildeo) a Distacircncia em Administraccedilatildeo em RedesLinux)

VILELA A V Estudos de Teacutecnicas de Prevenccedilatildeo e Detecccedilatildeo de Intrusos [Sl]DCCUFLA 2001 (Monografias de Graduaccedilatildeo DCCUFLA) httpwwwcompuflabr~joukimextensaointrusopdf

WEBER R F Seguranccedila na internet In Anais da XIX JAI - Jornada de Atualizaccedilatildeo emInformaacutetica Curitiba PUCPR 17 a 21 de julho de 2000

WILSON M D VPN HOWTO Revision 20 The Linux Documentation Project 30 de Maio1999 URL httpwwwibiblioorgpubLinuxdocsHOWTOModule-HOWTO

WIRZENIUS L OJA J STAFFORD S The Linux System Administratorrsquos Guide Version07 [Sl] The Linux Documentation Project 2001 URL httpwwwtldporgguideshtml

  • Introduccedilatildeo
  • Conceitos Baacutesicos
    • Comentaacuterios Iniciais
      • Poliacuteticas de Seguranccedila e Poliacuteticas de Uso
        • Crime Virtual
        • Ataques Mais Comuns
          • Uso de Criptografia
            • Conceitos Baacutesicos
            • Algoritmos Criptograacuteficos
            • Protocolos Criptograacuteficos
            • Criptografia e Seguranccedila Computacional
              • Seguranccedila por Controle de Acesso
                • Comentaacuterios Iniciais
                • Seguranccedila Fiacutesica e Backups
                • O Uso de TCP-Wrappers
                • Uso de Firewalls ou Proxies
                • Configuraccedilatildeo Segura de Serviccedilos
                  • Administraccedilatildeo Segura de Usuaacuterios
                    • Uso do PAM (Pluggable Authentication Modules)
                    • Protegendo Contas de Usuaacuterios
                    • Seguranccedila no Sistema de Arquivos
                    • Comentaacuterios Finais
                      • Prevenccedilatildeo e Detecccedilatildeo de Intrusos
                        • Comentaacuterios Iniciais
                        • Verificaccedilatildeo dos Registros (Logs)
                        • Evitando Exploits
                        • Uso de Ferramentas de Varredura
                        • Verificadores de Integridade de Arquivos
                        • Detectores Ativos de Intrusatildeo
                          • Conclusatildeo