6.0 Ferramentas de Segurança no DI
De acordo com informações obtidas com a administração da rede, Sra. Nadja Maria Soares Lins, o Departamento de Informática da UFPE utiliza apenas duas ferramentas de segurança:< /P>
Por se tratar de uma rede heterogênea (suporta diferentes plataformas - AIX, Solaris, SunOs), os administradores encontram dificuldades em utilizar outros softwares para o controle da segurança, que sejam aplicáveis a todas as plataformas. O AIX, por exemplo, possui algumas ferramentas de controle da segurança, como forçar o usuário a trocar a password, de tempos em tempos. Entretanto, essas ferramentas não podem ser utilizadas em má ;quinas que rodam o Solaris ou SunOs.
A seguir, descreveremos cada uma das ferramentas utilizadas e, ao final dessa sessão, apresentaremos algumas sugestões para melhorar a segurança do departamento.
6.1 AMANDA - Software para Realização de Backups
AMANDA - Advanced Maryland Automatic Network Disk Archiver - é um software desenvolvido na Universidade Maryland - EUA, que utiliza a tecnologia cliente/servidor para automatizar os backups de sistemas em rede. Este software perm ite que o administrador da rede configure um servidor de backup que faz o backup de múltiplos hosts em um único drive de fita magnética de alta capacidade de armazenamento, de uma maneira simples e eficiente e para diversas vers&otild e;es do Unix.
Dentre as vantagens do AMANDA podemos citar:
Para a sua utilização é necessário um tape driver de 4 ou 8mm, um "holding disk" cujo tamanho ideal é que seja pelo menos do tamanho da maior partição a ser backupeada, um s ervidor central com o tape driver e o holding disk conectados e o software AMANDA instalado e configurado.
O Amanda trabalha da seguinte forma: antes de realizar os backups (geralmente no período noturno quando provavelmente pouca gente estará utilizando a rede) o ideal é que seja rodado uma rotina de checkup ainda d urante o dia enquanto o administrador ainda estará na empresa, essa rotina de verificação é o comando amcheck, ela verifica se o servidor de backup tem espaço suficiente no holding disk, se o tape correto está no tape driver e se cada cliente está respondendo e possui as permissões de read/write adequadas, caso ocorra algum problema um mail é enviado ao operador.
Para a realização dos backups é utilizado o comando amdump que inicializa o processo de backup. O servidor verifica os clientes e determina a quantidade de dados a ser "backupeada" e ajusta o backup sc hedule baseado nas requisições dos usuários, nas prioridades do file system e na data do último bakcup. Finalmente ele começa a operação de backup copiando as partições dos clientes para o hol ding disk, e do holding disk para o tape. Se ocorrer algum erro, os dados permanecem no holding disk até o operador verificar o erro e rodar o comando amflush. Ao final de todas as partições "backupeadas" um relatório detalhado é enviado ao operador.
Na realização da recuperação de dados o operador utiliza o comando amadmin para determinar qual tape de onde será realizado a recuperação dos dados. Após o tape correto ser col ocado no tape driver o comando amrestore para iniciar o processo de recuperação do file system todo ou apenas parte dele.
Após devidamente configurado ,com sorte, a única manutenção a ser efetuada é a troca periódica dos tapes no tape driver.
Abaixo temos mais alguns comandos utilizados pelo Amanda:
O endereço onde podemos conseguir o software amanda é o seguinte:
ftp://ftp.cs.umd.edu/pub/amanda
No Departamento de Informática da Universidade Federal de Pernambuco os backups são realizados diariamente, menos nos finais de semanas e feriados, no período da madrugada, e são guardados em fita os back ups dos últimos 03 (três) meses, mas está sendo estudado um aumento desse período de backups armazenados em fita.
6.2 TCP Wrapper
O TCP Wrapper é uma ferramenta simples, que monitora e controla a entrada de tráfego na rede. Essa ferramenta tem sido usada, com sucesso, para "blindar" sistemas e detectar atividades de crackers. Ela n&ati lde;o produz nenhum impacto nos computadores de usuários e não requer nenhuma mudança nos softwares existentes do sistema ou nos arquivos de configuração. A ferramenta tem sido instalada em todo o mundo, em vários sistemas UNIX, sem nenhuma modificação do código fonte.
Essa ferramenta foi desenvolvida pela Univesidade Tecnologia de Eindhoven, na Holanda, que estava sofrendo diversos ataques de um cracker, que, vez por outra, conseguia adquirir o privilégio de
root. Isso não passaria de um aborrecimento, se o indivíduo não fosse tão hábil em digitar o comando rm -rf /, que, quando executado com privilégio de r oot, pode ser tão destrutivo quanto o comando format do MS-DOS. Usualmente, o estrago era reparado pelas fitas de backups, mas, aqui ou ali, alguém perdia uma grande quantidade de trabalho. Al& eacute;m disso, o rm -rf removia qualquer pista, o que dificultava a tarefa de descobrir o que estava acontecendo. Um outro comando utilizado, por ele, era o finger, que fornece informações sobre os usuários, não requer passwords e quase nunca deixa rastros do seu uso.
Os releases mais recentes da ferramenta estão disponíveis nos sites:
ftp.uu.net:/comp.sources.misc/volumexx/log_tcp;
cert.org:/pub/tools/tcp_wrappers/tcp_wrappers.*;
ftp.win.tue.nl:/pub/security/log_tcp.shar.Z.
6.2.1 Uma Implementação Típica em Redes UNIX TCP/IP
Quase toda aplicação dos protocolos TCP/IP é baseada no modelo cliente-servidor. Por exemplo, quando alguém usa o comando
telnet para se conectar a um ho st, um processo no servidor telnet é "startado" no host alvo. O processo do servidor conecta o usuário ao processo de login. Alguns exemplos são mostrados na tabela 1.
|
Cliente |
servidor |
aplicação |
|
telnet |
telnetd |
login remoto |
|
ftp |
ftpd |
transferência de arquivo |
|
finger |
fingerd |
mostra os usuários |
|
systat |
systatd |
mostra os usuários |
Tabela 1.
Exemplos de pares cliente-servidor do TCP/IP e suas aplicações
6.2.2 O Truque do TCP Wrapper
De volta ao problema original: como pegar o nome do host do qual o cracker está espionando? A primeira vista, isso iria requerer mudanças no software existente na rede. Felizmente, existe uma solução que não necessita de nenhuma mudança e que funciona em todos os sistemas UNIX testados. A saída é fazer uma permuta: mover os programas do servidor da rede para um outro local e instalar um programa trivial no lugar daqueles. Sempr e que uma conexão for feita, esse programa simplesmente grava o nome do host remoto e então, roda o programa original do servidor da rede.
A primeira versão do TCP Wrapper era apenas algumas linhas de código, copiadas cuidadosamente de uma fonte antiga de um daemon da rede. Como ele não troca nenhuma informação com os processos do servido r e do cliente, o mesmo TCP Wrapper poderia ser usado por vários tipos de serviços da rede.
A seguir, vemos um exemplo do arquivo gerado pela ferramenta:
|
May 21 14:06:53 |
tuegate: |
systatd: |
connect from monk.rutgers.edu |
|
May 21 16:08:45 |
tuegate: |
systatd: |
connect from monk.rutgers.edu |
|
May 21 16:13:58 |
trf.urc: |
systatd: |
connect from monk.rutgers.edu |
|
May 21 18:38:17 |
tuegate: |
systatd: |
connect from ap1.eeb.ele.tue.nl |
|
May 21 23:41:12 |
tuegate: |
systatd: |
connect from mc12.utcs.utoronto.ca |
|
May 21 23:48:14 |
tuegate: |
systatd: |
connect from monk.rutgers.edu |
|
May 22 01:08:28 |
tuegate: |
systatd: |
connect from HAWAII-EMH1.PACOM.MIL |
|
May 22 01:14:46 |
tuewsd |
fingerd |
connect from HAWAII-EMH1.PACOM.MIL |
|
May 22 01:15:32 |
tuewso |
fingerd |
connect from HAWAII-EMH1.PACOM.MIL |
|
May 22 01:55:46 |
tuegate: |
systatd: |
connect from monk.rutgers.edu |
|
May 22 01:58:33 |
tuegate: |
systatd: |
connect from monk.rutgers.edu |
|
May 22 02:00:14 |
tuewsd |
fingerd |
connect from monk.rutgers.edu |
|
May 22 02:14:51 |
tuegate: |
systatd: |
connect from RICHARKF-TCA.ARMY.MIL |
|
May 22 02:19:45 |
tuewsd |
fingerd |
connect from RICHARKF-TCA.ARMY.MIL |
|
May 22 02:20:24 |
tuewso |
fingerd |
connect from RICHARKF-TCA.ARMY.MIL |
Figura 8.
Logfile gerado pelo TCP Wrapper
6.2.3 Primeira Extensão: Controle do Acesso
Uma outra tentativa de minimizar ataques de crackers é recusar conexões de servidores de terminais abertos, de forma que eles penetrem na rede somente se entrarem em uma conta regular de usuário.
Um mecanismo de controle de acesso simples foi construído dentro do TCP Wrapper. Sempre que uma conexão de um servidor de terminais aparecesse nos arquivos de logs, todo o tráfego daquele sistema seria bloqueado no nosso lado e pediríamos que os administradores responsáveis fizessem o mesmo, no lado deles. A figura 6 dá uma idéia do arquivo de controle de acesso.
/etc/hosts.allow:
in.ftpd: ALL
/etc/hosts.deny:
ALL:terminus.lcs.mit.edu hilltop.rutgers.edu monk.rutgers.edu
ALL:comserv.princeton.edu lewis-sri-gw.army.mil
ALL:ruut.cc.ruu.nl 131.211.112.44
ALL:tip-gsbi.stanford.edu
ALL:tip-quada.stanford.edu
ALL:s101-x25.stanford.edu
ALL:tip-cdr.stanford.edu
ALL:tip-cromemaa.stanford.edu
ALL:tip-cromembb.stanford.edu
ALL:tip-forsythe.stanford.edu
Figura 9.
Amostras de arquivos de controle de acesso
O arquivo
/etc/hosts.allow descreve que combinações (serviços, hosts) são permitidas. Neste exemplo, o serviço de transferência de arquivos ftp é permitido para todos os sistemas. O arquivo /etc/hosts.deny descreve quais das combinações (serviços, hosts) remanescentes nã ;o são permitidas.
Agora, como um intruso não pode mais acessar a rede de servidores de terminais de acesso público, somente através de contas de usuários, é preciso saber que contas estão sendo envolvidas. Da&iac ute;, criou-se um mecanismo que fosse capaz de consultar uma tabela de sites "suspeitos" e enviasse um
finger ou um systat probe, sempre que algu&eac ute;m se conectar à rede.
|
Jan 30 04:55:09 |
tuegate: |
telnetd |
connect from guzzle.Stanford.EDU |
|
Jan 30 05:10:02 |
svin01: |
fingerd |
connect from guzzle.Stanford.EDU |
|
Jan 30 05:17:57 |
svin01: |
fingerd |
connect from guzzle.Stanford.EDU |
|
Jan 30 05:18:24 |
svin01: |
fingerd |
connect from guzzle.Stanford.EDU |
|
Jan 30 05:18:34 |
svin01: |
fingerd |
connect from guzzle.Stanford.EDU |
|
Jan 30 05:18:38 |
svin01: |
fingerd |
connect from guzzle.Stanford.EDU |
|
Jan 30 05:18:44 |
svin01: |
fingerd |
connect from guzzle.Stanford.EDU |
|
Jan 30 05:21:03 |
svin01: |
fingerd |
connect from guzzle.Stanford.EDU |
|
Jan 30 05:24:46 |
tuegate: |
systatd |
connect from guzzle.Stanford.EDU |
|
Jan 30 05:27:20 |
svin01: |
fingerd |
connect from gloworm.Stanford.EDU |
|
Jan 30 05:33:33 |
svin01: |
telnetd |
connect from guzzle.Stanford.EDU |
|
Jan 30 05:33:38 |
svin01: |
telnetd |
connect from guzzle.Stanford.EDU |
|
Jan 30 05:33:41 |
svin01: |
telnetd |
connect from guzzle.Stanford.EDU |
|
Jan 30 05:33:50 |
svin01: |
ftpd |
connect from guzzle.Stanford.EDU |
|
Jan 30 05:33:58 |
svin01: |
fingerd |
connect from math.uchicago.edu |
|
Jan 30 05:34:08 |
svin01: |
fingerd |
connect from math.uchicago.edu |
|
Jan 30 05:34:54 |
svin01: |
fingerd |
connect from math.uchicago.edu |
|
Jan 30 05:35:16 |
svin01: |
fingerd |
connect from guzzle.Stanford.EDU |
|
Jan 30 05:35:36 |
svin01: |
fingerd |
connect from guzzle.Stanford.EDU |
Figura 10. Uma rajada de atividades na rede, a maioria delas de Stanford
Wed Jan 30 05:10:08 MET 1991
[guzzle.stanford.edu]
Login name: adrian In real life: Adrian Cooper
Directory: /u0/adrian Shell: /phys/bin/tcsh
On since Jan 29 19:30:18 on ttyp0 from tip-forsythe.Sta
No Plan.
Figura 11. Resultado de um finger reverso, mostrando que apenas um usuário estava logado naquela hora.
Os exemplos nas figuras 7 e 8 mostram a atividade de um único usuário, que estava logado no sistema
guzzle.stanford.edu. O nome da conta é adrian e o login vem de um servidor de terminais tip.forsythe.Stanford.EDU.
6.2.4 Segunda Extensão: booby traps
O finger reverso automático provou ser um mecanismo útil, por isso ele foi colocado também no TCP Wrapper. Então, o código do controle de acesso foi estendido, para que comandos arbitrários da shell pudessem ser especificados. Logo, como a execução dos comandos foi baseada, tanto no lado do serviço, quanto do servidor, é possível detectar automaticamente tráfegos "suspeitos". Por exemplo , acesso remoto aos serviços da rede, que devem ser acessados apenas de sistemas locais.
Pode-se também, estabelecer que requisições do tipo
tftp (trivial file transfer protocol) sejam manipuladas da maneira usual, evitando seu acesso remoto. A figura 9 il ustra como isso pode ser feito.
/etc/hosts.allow:
in.tftpd: LOCAL, .win.tue.nl
/etc/hosts.deny:
in.tftpd: ALL: /usr/ucb/finger -l @%h 2>&1 | /usr/ucb/mail wswietse
Figura 12. Exemplo de um booby trap para o serviço
tftpd.
A entrada no arquivo
/etc/hosts.allow diz que conexões tftpd de hosts dentro do próprio domínio são permitidas. A entrada no arquivo /etc/hosts.deny faz com que o TCP Wrapper execute um finger reverso, para todos os outros casos. A seqüência %h & eacute; alterada pelo nome do host remoto atual. O resultado é enviado, via E-Mail, para o usuário "wswietse". Devido a natureza do protocolo tftpd e, como o intervalo entre uma tent ativa e outra depende da implementação, pode-se encontrar algumas pistas sobre o tipo do sistema remoto.
O exemplo mostrado dá apenas uma ilustração limitada do uso de booby traps. Entretanto, eles podem ser ainda mais úteis, quando instalados em sistemas com firewalls, cujo principal propósito &ea cute; separar a rede de uma organização do resto do mundo. Um sistema de firewall típico proporciona apenas um conjunto limitado de serviços de rede, com o mundo externo, por exemplo,
telnet FONT> e smtp. Colocando booby traps nas portas de serviço remanescentes da rede, pode-se implementar um sistema de alarme efetivo.
6.2.5 Considerações Finais
Recapitulando, as principais características do TCP Wrapper são:
7.0 Conclusão
Fazer com que os usuários se preocupem com a segurança toma tempo e esforço. No final, um sistema é apenas tão seguro quanto a sua parte mais vulnerável e os seus usuário s são a parte mais importante, que não deve ser esquecida, nem negligenciada. Quando os usuários causam problemas de segurança, existem três razões principais: ignorância, preguiça e malícia.
A ignorância é a mais fácil de atacar. Desenvolver táticas formais e procedimentos de treinamento de informação é algo que funciona. Os usuários também precisam ser lembrados de coisas que eles já sabem, de tempos em tempos.
A preguiça será sempre uma tentação - tanto para o administrador de sistemas quanto para os usuários - mas isso nem sempre será um problema, quando os usuários tiverem sendo beneficiados pelas metas de segurança do sistema. Isso requer tanto suporte da gerência, quanto da organização como um todo, bem como um comprometimento formal e individual dos usuários. Além disso, uma atmosfera voltada para e ncontrar soluções e não para a atribuição de culpas tem, geralmente, mais sucesso que intimidações e coerções.
Uma consideração sobre a terceira causa terá de esperar. Criar uma cultura cooperativa, que encoraje e alimente a lealdade de seus funcionários e que seja aberta a diálogos ao invés de fraudes e traições são formas de reconhecer e neutralizar os malfeitores.
A Segurança é de extrema importância em qualquer sistema, mesmo num PC stand alone, pois aquilo que parece impossível pode acontecer, então as políticas de segurança das empresas e institu ições deve ser um ponto importantíssimo a ser levado em conta na administração dos seus sistemas de informações.
Quanto a Segurança no DI vale salientar alguns pontos:
8.0 Referências:
[Dij96] B. L. Dijker. Short Topics in System Administration - A Guide to Developing Computing Policy Documents. SAGE - The System Administrators Guild, 1996.
[Fri95] A. Frisch. Essential System Administration. O’Reillly & Associates, Inc., 1995.
[Hun94] C. Hunt. TCP/IP Network Administration. O’Reillly & Associates, Inc., 1994.
[KPS95] C. Kaufman, R. Perlman, and M. Specinen. Network Security - PRIVATE Communication in a PUBLIC World. PTR - Prentice Hall, 1995.
[NSSH95] E. Nemeth, G. Snyder, S. Seebass and T. R. Hein. Unix System Administration Handbook. Prentice Hall, 1995.
[RG91] D.Russel and G. T. Gangemi Sr. Computer Security Basics. O’Reilly & Associates, Inc., 1991.
[Sta95] W. Stallings. Network and Internetwork Security - Priniples and Practice. Prentice Hall, 1995.
[Ven94] W. Venema. TCP WRAPPER - Network monitoring, access control, and booby traps. 1994.
ftp://ftp.win.tue.nl/pub/security/index.html