Liber 000 - Astrum Argentum
Liber 000 - Astrum Argentum Liber 000 - Astrum Argentum
A N E C E S S I D A D E D E U M F I R E W A L L Por Adriano Carvalho (ch0wn) - acarvalho@netnix.com.br Introdução Não é de hoje que todos têm a necessidade de utilizar um firewall, e mais que uma necessidade, se torna uma obrigação, ainda mais se tratando de servidores, roteadores, e no ponto que estamos, nos desktops também. O conceito de firewall é simples: análise com o objetivo de se descobrir o que é interessante para o sistema ou não, determinar o que é aceito ou descartado, e em vários casos, tentar “esconder” o sistema da rede. Basicamente, podemos através dele reduzir ataques, forjar uma rede, retransmitir pacotes, derrubálos e até mesmo verificálos internamente (por que não ??). Plataformas para esta execução Um firewall nada mais é do que um conceito. Para isso, há atualmente na internet vários softwares capazes de fazer esta análise, tornando o trabalho do administrador mais fácil. Softwares são encontrados em qualquer lugar para qualquer plataforma, seja ela proprietária ou não, mas aqui o foco principal será o GNU/Linux, e também alguns outros sistemas do mundo opensource. Começando por 2 sistemas BSD, temos: PF (Packet Filter) : é o firewall do OpenBSD, um dos sistemas Unix mais conhecidos do mundo, pela sua estabilidade e segurança, e por ter um firewall tão robusto. O PF é muito simples de ser utilizado, capaz de fazer vários tipos de análises e traduções (NAT) tranqüilamente. Tem um grande poder; 104
IPTables : é o atual firewall do GNU/Linux 2.4.X e 2.6.X . O IPTables é muito poderoso, com muitos recursos e vários que são acrescentados sempre pela comunidade. É um firewall muito robusto, capaz de fazer praticamente tudo se tratando de pacotes, desde simplesmente derrubar o pacote até mesmo fazer uma contagem deles, buscar por strings (caracteres, palavras) dentro dos pacotes e checar número de conexões... Ipchains : é o antigo firewall do GNU/Linux, série 2.2.X , ou seja, o antecessor do IPTables. A diferença é a falta de alguns recursos, bem como da verificação de estado de conexões entre outros. Porém, ainda é muito utilizado em servidores atuais na internet. Poderia ficar aqui dando uma lista, até mesmo antiga de outros softwares, mas considerei aqui os 3 principais no meu ponto de vista, se tratando do mundo opensource. Não entrei em detalhes sobre o FreeBSD por exemplo por não ter informações precisas sobre. O que posso adiantar aqui é que as opções como ipfw e IPFilter são disponíveis para ele. Uma comparação estará disponível nos links no final do artigo. Aplicações de um firewall Para se entender alguns dos motivos para se utilizar um firewall, vamos criar várias situações, e nestas situações, tentarei ser o mais claro possível para conseguir passar as informações necessárias. Começando por uma situação simples, temos: 1° Caso Uma máquina Desktop (um usuário comum) Por que alguém que tem uma máquina em casa, utilizando apenas uma suíte de escritório (Office), um cliente de email e um navegador deveria utilizar um sistema de firewall ? Simples: para um usuário comum, cerca de 85% dos ataques são gerados INICIALMENTE em um navegador e um cliente de email. Isso nos diz que, após este ataque, o modo de invasão ou até mesmo a tentativa se dá por uma outra “entrada”, uma outra porta ou um outro método. É aí que o firewall entra, na análise de pacotes que circulam pelo “outro lado da máquina” . Assim, podemos obter informações e chegar a conclusões que podem ser maliciosas ao usuário. 2° Caso - Um servidor comum, oferecendo Web, FTP e SMTP Agora eu tenho um servidor que oferece Web, FTP e SMTP !!! Isso é muito bom, poderei enviar emails, hospedar minha página e manter alguns arquivos na internet...Bom demais. Pensando agora na segurança, vamos perceber que nosso servidor utilizará nada além de: FTP - porta 21 e 20 protocolo TCP 105
- Page 53 and 54: ip_origem = inet_addr("127.0.0.1");
- Page 55 and 56: if (envia == -1) { perror("sendto()
- Page 57 and 58: Por Frater Q.V.I.F. 196 O E Q U I N
- Page 59 and 60: de Crowley, não exatamente a tradu
- Page 61 and 62: shellcodes, mas não quer dizer que
- Page 63 and 64: } shellcode/cwrite.c OBS: Sempre d
- Page 65 and 66: Vamos analisar o que fizemos e comp
- Page 67 and 68: da próxima instrução que no caso
- Page 69 and 70: Provavelmente você verá uma mensa
- Page 71 and 72: Type "show copying" to see the cond
- Page 73 and 74: oot@motdlabs:~/IP_FIX/shellcode# gc
- Page 75 and 76: * MotdLabs . * Compilação: # gcc
- Page 77 and 78: oot@motdlabs:~/IP_FIX/shellcode# gc
- Page 79 and 80: * Criamos um ponteiro para uma fun
- Page 81 and 82: 0x8048317 : sub $0x8,%esp 0x804831a
- Page 83 and 84: in/sh; */ (0). */ main() { "\x89\xe
- Page 85 and 86: Lembre-se: Se você tiver alguma d
- Page 87 and 88: */ "push $0x6E69622F \n" /* ...a ou
- Page 89 and 90: main() { "\x89\xe1" /* mov %esp,%ec
- Page 91 and 92: */ "push $0x722F3A3A \n" /* ...nova
- Page 93 and 94: main() { "\x68\x3a\x30\x3a\x30" /*
- Page 95 and 96: "mov $0x66, %al \n" "int $0x80 \n"
- Page 97 and 98: Y O G A D I G I T A L Por Frater Ar
- Page 99 and 100: Preparação da Mente: Pratyahara -
- Page 101 and 102: 1a. Invocação : access denied for
- Page 103: Comando Url: http://www.google.com/
- Page 107 and 108: extremamente útil ao administrador
- Page 109 and 110: Por: N E T F I L T E R + L K M S I
- Page 111 and 112: pacote não-promiscuo, etc), e ante
- Page 113 and 114: ... /* Network layer header */ unio
- Page 115 and 116: Blz, agora conhecemos o segundo arg
- Page 117 and 118: int hoknum; Blz quase terminada nos
- Page 119 and 120: substituida pelas flags -DMODULE e
- Page 121 and 122: Mãos a obra!! #define __KERNEL__ #
- Page 123 and 124: #include #include #include #incl
- Page 125 and 126: Por Frater Deny M A N I F E S T O F
- Page 127 and 128: No Novo Aeon, o Hacking emerge como
A N E C E S S I D A D E D E U M F I R E W A L L<br />
Por Adriano Carvalho (ch0wn) - acarvalho@netnix.com.br<br />
Introdução<br />
Não é de hoje que todos têm a necessidade de utilizar um firewall, e mais<br />
que uma necessidade, se torna uma obrigação, ainda mais se tratando de<br />
servidores, roteadores, e no ponto que estamos, nos desktops também.<br />
O conceito de firewall é simples: análise com o objetivo de se descobrir o<br />
que é interessante para o sistema ou não, determinar o que é aceito ou<br />
descartado, e em vários casos, tentar “esconder” o sistema da rede.<br />
Basicamente, podemos através dele reduzir ataques, forjar uma rede,<br />
retransmitir pacotes, derrubálos e até mesmo verificálos internamente<br />
(por que não ??).<br />
Plataformas para esta execução<br />
Um firewall nada mais é do que um conceito. Para isso, há atualmente na<br />
internet vários softwares capazes de fazer esta análise, tornando o<br />
trabalho do administrador mais fácil.<br />
Softwares são encontrados em qualquer lugar para qualquer plataforma,<br />
seja ela proprietária ou não, mas aqui o foco principal será o GNU/Linux,<br />
e também alguns outros sistemas do mundo opensource.<br />
Começando por 2 sistemas BSD, temos:<br />
PF (Packet Filter) : é o firewall do OpenBSD, um dos sistemas Unix mais<br />
conhecidos do mundo, pela sua estabilidade e segurança, e por ter um<br />
firewall tão robusto. O PF é muito simples de ser utilizado, capaz de<br />
fazer vários tipos de análises e traduções (NAT) tranqüilamente. Tem um<br />
grande poder;<br />
104