O documento discute ferramentas de segurança open source. Ele descreve o iptables como um firewall poderoso no Linux e o PF como um firewall no OpenBSD. Também menciona o OSSEC-HIDS como um sistema de detecção de intrusão de código aberto.
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
Palestra - Fitem 2009 - Ferramentas de segurança OpenSource
1. Luiz Arthur Feitosa dos Santos
e-mail: luiz-arthur@unipar.br - luiz.santos.cesumar.br
Ferramentas de Segurança Open Source
1
2. Ferramentas de Segurança Open Source
1. Segurança
A segurança no âmbito da informática define-se como:
Processo de proteção de informações e ativos digitais armazenados em
computadores e redes de processamento de dados.
A intensificação do uso da Internet pelas empresas tornou a segurança um assunto que
vem exigindo maiores cuidados do que aqueles até então existentes. Embora existam
pessoas que ainda não dão o devido valor a informação presentes nos computadores.
Como a informação é um dos bens mais valiosos da sociedade atual, muitas das
medidas de segurança são dadas pensando-se na segurança da informação. Então a
norma ISO/IEC 27002:2005, define os elementos básicos da segurança da informação, que
são:
● Confidencialidade: Proteger as informações confidencias contra revelações não
autorizadas ou captação compreensível;
● Disponibilidade: Garantir que informações e serviços vitais estejam disponíveis
quando requeridos;
● Integridade: Manter informações e sistemas computadorizados, dentre outros, ativos,
exatos e completos.
Luiz Arthur Feitosa dos Santos 2
3. Ferramentas de Segurança Open Source
2. Open Source
Antes de falar sobre Open Source, é necessário comentar sobre a filosofia do Software
Livre que encontra suas raízes na idéia da livre troca de conhecimentos e de pensamentos
que podem tradicionalmente ser encontrada no campo científico.
No início dos anos 80, Richard M. Stallman foi o primeiro a formalizar esta maneira de
tratar software e apresentou as quatro liberdades:
● A liberdade de executar o software, para qualquer uso;
● A liberdade de estudar o funcionamento de um programa e de adaptá-lo às suas
necessidades;
● A liberdade de redistribuir cópias;
● A liberdade de melhorar o programa e de tornar as modificações públicas de modo
que a comunidade inteira beneficie da melhoria.
A "Definição do Open Source" é derivada das "Linhas Diretoras do Software Livre Debian",
que derivam das quatro liberdades mencionadas anteriormente. Conseqüentemente, as
definições descrevem as mesmas licenças que a "Licença Pública Geral - GNU" (GPL).
Ao lado da GPL existem outras licenças que concedem essas liberdades, o que as
qualifica de licenças de Software Livre. Uma delas, a licença FreeBSD, que merece uma
menção particular. A principal diferença com a GPL é que ela não procura proteger a
liberdade.
Luiz Arthur Feitosa dos Santos 3
4. Ferramentas de Segurança Open Source
3. Antes das Ferramentas a Educação
Para que seja possível obter um nível aceitável de segurança, não basta reunir um
conjunto de ferramentas de software e implementá-las. Os resultados tornam-se mais
eficazes quando sua utilização está dentro do contexto de um Plano de Segurança,
elaborado em conjunto pelos níveis estratégicos, tático e operacional da organização. Desta
forma, segurança não é só uma questão técnica, mas de política e educação.
A segurança não é uma tecnologia. Não é possível comprar dispositivos que torne a rede
segura, assim como não é possível comprar ou criar um software capaz de tornar seu
computador 100% seguro. O que é possível fazer é administrar um nível aceitável de risco.
A segurança é um processo. Pode-se aplicar o processo seguidamente à rede e à
empresa que a mantêm e dessa maneira, melhorar a segurança dos sistemas. “É como
subir uma escada rolante que desce”.
Alguns itens de segurança a serem mantidos que não são necessariamente software:
● Analise de Riscos: Consiste em um processo de identificação, avaliação dos fatores
de risco presentes, possibilitando uma visão do impacto negativo causado aos
negócios;
● Políticas de Segurança: A política de segurança pode ser entendida como sendo um
conjunto de normas e diretrizes destinadas a proteção dos ativos da Organização.
Luiz Arthur Feitosa dos Santos 4
5. Ferramentas de Segurança Open Source
4. Segurança em Sistemas Operacionais Open Source
A grande maioria dos Sistemas Operacionais Open Source são tidos como muito seguros,
porém é importante ter-se em mente que não existe um sistema 100% seguro.
Quando se fala de sistemas proprietários versus sistemas open source, algumas questões
entram em discussão:
● 1) Qual é mais seguro o Sistema Operacional Microsoft Windows ou o GNU/Linux?
● 2) O que é mais seguro um sistema “fechado” (proprietário) ou um sistema aberto
(Open Source)?
● 2) Quanto aos erros de segurança, é melhor esconde-los ou divulgá-los?
As respostas das perguntas anteriores são mais filosóficas do que práticas, talvez sejam até
impossíveis de serem respondidas.
Mas, é importante saber que mesmo os Sistemas Open Source tem problemas de
segurança, tais sistemas são tão seguros quanto qualquer Sistema Operacional dito
“proprietário”, tudo depende de quem está mantendo a segurança.
Os Sistemas Operacionais Open Source, tal como o Linux, podem não ser 100%
seguros! Mas são ditos seguros devido ao conjunto de ferramentas (principalmente
nativas) de gerenciamento e segurança que ajudam a manter um alto nível de segurança.
Luiz Arthur Feitosa dos Santos 5
6. Ferramentas de Segurança Open Source
5. Ferramentas de segurança Open Source
O assunto de segurança de computadores é bem vasto, e por isto fascinante e
complexo. Desta forma poderíamos discutir por exemplo, práticas para programar de forma
segura, qual é o melhor anti-vírus, como usar melhor o Sistema Operacional, dentre outros.
Como as opções de segurança e de ferramentas de segurança são muitas, nós iremos
nos concentrar em apenas algumas ferramentas de segurança Open Source,
principalmente as relacionadas as redes de computadores, e as já consagradas pela
comunidade Open Source.
5.1 Firewall com iptables do Linux
A palavra Firewall em sua tradução literal quer dizer parede de fogo, mas na verdade o
termo Firewall vem da construção civil e quer dizer parede corta-fogo ou anti-chamas, no
qual existe uma parede que é resistente ao fogo e permite em caso de incêndio que as
pessoa possam fugir através de escadas que ficam guardadas pela parede anti-chamas que
evita a propagação do calor e fumaça. É justamente assim que um Firewall trabalha,
mantendo-se no meio de duas redes, e bloqueando o perigo (fogo) de uma rede (Internet
por exemplo) de outra rede (uma rede privada, por exemplo).
O tipo de Firewall mais tradicional é o de filtro de pacote, que analisa pacotes de redes e
usando regras permite ou bloqueia pacotes em redes ou máquinas.
Luiz Arthur Feitosa dos Santos 6
7. Ferramentas de Segurança Open Source
Iptables é o nome da ferramenta Front-End, que permite à criação de regras no netfilter,
sendo o netfilter parte do kernel do Sistema Operacional GNU/Linux que dá a função de
Firewall ao sistema.
O Firewall do Linux faz parte do Kernel.
SO SO
(a) TCP/IP Firewall (b) TCP/IP Firewall
O iptables evoluiu do ipwadm (Kernel 2.0) e ipchains (Kernel 2.2) foi concebido por Rusty
Russel juntamente com Michel Neuling e incluído no Kernel versão 2.4.
Então, o iptables é uma ferramenta que manipula o netfilter. O iptables tem basicamente
três funções básicas:
● NAT – Tabela responsável por funções de NAT, conhecidas como mascaramento e
redirecionamento de pacotes que atravessam o Firewall;
● Filter – Tabela responsável pela função básica do Firewall de filtragem de pacotes de
redes;
● Mangle – Tabela que tem como função tratar os pacotes de forma especial, tal como
alterando o campo ToS (Type of Service) do protocolo IP (Internet Protocol) para alterar
a prioridade de tratamento de pacotes no Firewall.
Luiz Arthur Feitosa dos Santos 7
8. Ferramentas de Segurança Open Source
O iptables em um ambiente host screened, com política de negar tudo:
10.0.0.1 10.0.0.2 200.1.1.1
Host eth0 eth1 Roteador Internet
Firewall
A ADSL
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A FORWARD -i eth1 -d 10.0.0.1 -m state --state NEW,INVALID -j DROP
iptables -A FORWARD -o eth1 -s 10.0.0.1 -p tcp --dport http -j ACCEPT
iptables -A FORWARD -i eth1 -d 10.0.0.1 -p tcp --sport http -j ACCEPT
iptables -A FORWARD -o eth1 -s 10.0.0.1 -p udp --dport domain -j ACCEPT
iptables -A FORWARD -i eth1 -d 10.0.0.1 -p udp --sport domain -j ACCEPT
iptables -A INPUT -i eth0 -s 10.0.0.1 -p tcp --dport ssh -j ACCEPT
iptables -A OUTPUT -o eth0 -d 10.0.0.1 -p tcp --sport ssh -j ACCEPT
Luiz Arthur Feitosa dos Santos 8
9. Ferramentas de Segurança Open Source
O iptables em um ambiente host bastion, com política de negar tudo:
10.0.0.1 10.0.0.2 200.1.1.1
Host eth0 eth1 Roteador Internet
Firewall
A ADSL
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 10.0.0.1
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A FORWARD -d 10.0.0.1 -p tcp --dport http -m state
--state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -s 10.0.0.1 -p tcp --sport http -m state
--state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -s 10.0.0.1 -p udp --dport domain -j ACCEPT
iptables -A FORWARD -d 10.0.0.1 -p udp --sport domain -j ACCEPT
iptables -A INPUT -i eth0 -s 10.0.0.1 -p tcp --dport ssh -j ACCEPT
iptables -A OUTPUT -o eth0 -d 10.0.0.1 -p tcp --sport ssh -j ACCEPT
Luiz Arthur Feitosa dos Santos 9
10. Ferramentas de Segurança Open Source
5.2 Firewall com o PF do OpenBSD
O PF é o Firewall do Sistema Operacional OpenBSD, sendo que o OpenBSD é
considerado um dos Sistemas Operacionais mais seguros do mundo, mantendo a incrível
marca de apenas dois erros de segurança remotos em mais de 10 anos (na instalação
básica).
O código-fonte do OpenBSD passa por auditoria constante e sempre esta na
vanguarda quando o assunto é segurança, incorporando várias ferramentas de
segurança. Por exemplo: O OpenBSD foi o primeiro a implementar IPSec; A equipe
OpenBSD também ajudou a desenvolver o OpenSSH, o que torna o OpenBSD um
sistema voltado a segurança por natureza.
PF então é o Firewall de um dos Sistemas Operacionais mais seguros do mundo e é
responsável pelas seguintes funcionalidades:
● Filtragem de pacotes (Firewall) bem como controle de estados das conexões
TCP/IP;
● Monitorar e rearranjar fragmentos de pacotes de diversas formas fazendo
normalização e condicionando tráfego TCP/IP;
● Fazer tradução de Endereços de Rede (NAT), bem como redirecionar conexões;
● Realizar controle de banda e priorização de pacotes;
● Autenticação de usuários.
Luiz Arthur Feitosa dos Santos 10
11. Ferramentas de Segurança Open Source
O pf em um ambiente host screened, com política de negar tudo:
10.0.0.1 10.0.0.2 200.1.1.1
Host vic1 vic0 Roteador Internet
Firewall
A ADSL
ext_if="vic0"
int_if="vic1"
scrub in on $ext_if
nat pass on $ext_if from $int_if:network -> ($ext_if)
block all
pass in quick on $int_if inet proto tcp from 10.0.0.1 to ($int_if) port ssh
pass in on $int_if inet proto tcp from 10.0.0.1 to any port http flags S/SA
pass in on $int_if inet proto udp from 10.0.0.1 to any port domain
Luiz Arthur Feitosa dos Santos 11
12. Ferramentas de Segurança Open Source
O pf em um ambiente host bastion, com política de negar tudo:
10.0.0.1 10.0.0.2 200.1.1.1
Host vic1 vic0 Roteador Internet
Firewall
A ADSL
ext_if="vic0"
int_if="vic1"
set skip on lo
scrub in on $ext_if
nat pass on $ext_if from $int_if:network -> ($ext_if)
rdr pass on $ext_if proto tcp from any to any port http -> 10.0.0.1
block all
pass in quick on $int_if inet proto tcp from 10.0.0.1 to ($int_if) port ssh
pass out on $int_if inet proto tcp from any to any port http flags S/SA
pass in on $int_if inet proto udp from any to any port domain
Luiz Arthur Feitosa dos Santos 12
13. Ferramentas de Segurança Open Source
5.3 Sistemas de Detecção de Intrusão - IDS
Um IDS ou em português SDI é basicamente um sistema capaz de analisar o tráfego da
rede ou o conteúdo de um computador e procurar possíveis tentativas de ataques a
segurança.
5.3.1 OSSEC-HIDS
O OSSEC HIDS é um sistema de detecção de intrusão baseado em Host de código
fonte aberto que possui como desenvolvedor principal o brasileiro Daniel Cid.
O OSSEC HIDS realiza operações de analise de Logs, integridade de sistemas,
monitoração de registros do Windows, detecção de rootkits, alertas e resposta
ativa (regras no firewall).
É possível instalar o OSSEC localmente, para monitorar uma única máquina, mas se
for necessário monitorar várias máquinas é possível configurar uma como servidor e
as demais como agentes, sendo que as agentes iram enviar informações para o
gerente que fica responsável por analisar e apresentar as informações geradas pelos
IDS, isto dá uma alta escalabilidade ao IDS. O OSSEC pode ser instalado nos
seguintes Sistemas Operacionais: OpenBSD, Linux, FreeBSD, Solaris, Windows
XP/2000 ( no caso do Windows é somente o agente).
Luiz Arthur Feitosa dos Santos 13
14. Ferramentas de Segurança Open Source
Tela principal do OSSEC HIDS, um resumo dos principais itens monitorados:
Luiz Arthur Feitosa dos Santos 14
15. Ferramentas de Segurança Open Source
5.3.2 Snort
Desenvolvido por Marty Roesch em 1998, o Snort é um NIDS, de código fonte aberto, que
utiliza o método de detecção baseado em assinaturas. O Snort possui suporte para vários
tipos de Sistemas Operacionais Linux e até mesmo para Windows.
O Snort é uma ferramenta muita poderosa, possui vários recursos como:
● Farejamento de pacotes (sniffer, tal como o Wireshark);
● Registro de pacotes;
● Detecção de invasão.
Para se entender melhor estes recursos deve-se primeiramente entender a arquitetura do
Snort, esta arquitetura do Snort consiste em quatro componentes básicos, são eles: O
farejador(sniffer), o pré-processador, o mecanismo de detecção e a saída
Luiz Arthur Feitosa dos Santos 15
16. Ferramentas de Segurança Open Source
5.4 VPN com o OpenVPN
OpenVPN é uma ferramenta utilizada para criar redes privadas virtuais, ou seja, criar redes
privadas dentro de redes públicas como a Internet, sua segurança é baseada na biblioteca
OpenSSL que utiliza os protocolos de segurança SSL e o TSL. Tanto o SSL quanto o TSL
são protocolos criptográficos que provêem comunicação segura pela Internet para serviços
como e-mail, navegação por sites e outros tipos de transferência de dados.
O OpenVPN pode operar de três maneiras: Criando apenas o túnel VPN, ou seja, realizar
apenas o encapsulamento dos dados sem utilizar criptografia; Utilizar criptografia por
chave estática; Ou utilizar criptografia por chave dinâmica em que as chaves são
trocadas periodicamente
O OpenVPN é um software open source, licenciado pela GPL (General Public License) e
possui ótima portabilidade do OpenVPN é bastante satisfatória, funcional em várias
plataformas como Windows 2000/XP/2003 Server, Linux, Mac OS X, OpenBSD, FreeBSD,
NetBSD e Solaris.
O OpenVPN trabalha muito bem com NAT (Network Address Translation), ou seja, não
existe problema quando o NAT faz a troca (tradução) do IP da máquina requisitante com o
IP do servidor válido para ser usado na Internet, ao contrário do que ocorre na maioria das
vezes com o IPSec no OpenSwan.
Luiz Arthur Feitosa dos Santos 16
17. Ferramentas de Segurança Open Source
Um exemplo de cenário de VPN com o OpenVPN:
10.0.0.1 10.0.0.2 200.1.1.1 64.0.0.1
Host vic1 vic0 Roteador Host
Firewall Internet B
A ADSL
# 2048 bit OpenVPN static key
# vi openvpn.conf.servidor -----BEGIN OpenVPN Static key V1
c11e591c06a7e2042a679ee4e9c066a7
e7038efcfdd7dba4fd5a2638d03df750
dev tun 1f7dc9e827be9f5f4b770d83be1c19e3
ifconfig 192.168.0.1 192.168.0.2 e20d3ac83c5e0bb575aaef87e19753ec
secret static.key eeb9700f7a90f9bb54c3f1b864dbc803
c093d2e3ea3e4ccba64cd306e901a49c
6de812961bae75b25ac4b3a47f50c3c9
4aec8b8a4d0cb42cd458018ca72f6894
88f6316d12ad03b9e5c90f93d42948b3
# vi openvpn.conf.cliente 0b50fe1e8a4405aafa01d06602de9e4e
bfb6b83069ec11965977db57b3a450e6
remote 200.1.1.1 3838792c6e11aa538831c3cbea7247ba
4fb23888490b3df975751e51f251179c
dev tun fb4b83b5eb87d46f422de3e742152d21
ifconfig 192.168.0.2 192.168.0.1 f1100b6ed3b9d147d2fe2b25f630da55
secret static.key 073841781904d90bb2cd7c486ee4cae8
-----END OpenVPN Static key V1-
Luiz Arthur Feitosa dos Santos 17
18. Ferramentas de Segurança Open Source
Monitorando interface de rede sem VPN, é possível observar os dados do usuário:
Luiz Arthur Feitosa dos Santos 18
19. Ferramentas de Segurança Open Source
Monitorando interface de rede com o VPN, não é possível observar dados do usuário:
Luiz Arthur Feitosa dos Santos 19
20. Ferramentas de Segurança Open Source
Existem várias outras ferramentas de segurança Open Source, que merecem destaque:
● Squid - Web proxy, com funções de cache, autenticação, controle de acesso, dentre
outras funções, muito usado em conjunto com Firewalls;
● Wireshark – Sniffer de rede usado para monitorar redes de computadores;
● Nmap – ferramenta para mapeamento de redes (IP's, Portas, Sistemas Operacionais) ;
● SpamAssassim – Ferramenta de controle/filtragem de spam;
● Cacti – Ferramento para gerenciamento/monitoramento de rede;
● Nessus – Scanner de vulnerabilidades, verificando mais de 10.000 vulnerabilidades
nos mais diversos Sistemas Operacionais, usa licença GPL e mas não tem código fonte
aberto;
● Kismet – Analisador de redes sem fio, usado para prevenir ou realizar wardrivers;
● OpenSSH – Software para administração remota, que pode substituir o TELNET e FTP,
além de permitir a criação de VPN's de forma bem simples;
● John the Ripper – Usado para descobrir senhas dos Sistemas Operacionais, útil para
descobrir senhas fracas no sistema;
Existem várias ferramentas que ajudam a manter a segurança, tanto Open Source quanto
proprietárias, mas uma coisa é certa de nada adianta ferramentas de segurança, sem um
bom profissional e um plano de segurança.
Luiz Arthur Feitosa dos Santos 20
21. Ferramentas de Segurança Open Source
Bibliografia:
TANENBAUM, Andrew S. Redes de Computadores. Editora Campus, 4 Edição.
2003.
COMER, Douglas E. Interligação de Redes com TCP/IP, volume 1. Editora
Campus, 5 Edição. 2006.
BURNS, Bryan; et al. Security Power Tools. Editora O'Reilly. 2007.
SONNENREICH, Wes; YATES, Tom. Building Linux and OpenBSD Firewalls. Editora
Wiley. 2000.
FEILNER, Markus. OpenVPN Building and Integrating Virtual Private Networks. Editora
Packt. 2006.
ARTYMIAK, Jacek. Building Firewalls with OpenBSD and PF. 2 Edição. 2003.
OPENBSD. OpenBSD Packet Filter. Disponível em:
www.openbsd.org/faq/pf/pt/index.html. Acessado em: 2007.
Luiz Arthur Feitosa dos Santos 21