palestra - fitem 2009 - ferramentas de segurança opensource

21
Ferramentas de Segurança Open Source e-mail: [email protected] - luiz.santos.cesumar.br 1 Luiz Arthur Feitosa dos Santos

Upload: luiz-arthur

Post on 06-Jun-2015

2.536 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

e-mail: [email protected] - luiz.santos.cesumar.br

1

Luiz Arthur Feitosa dos Santos

Page 2: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 2

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.

Page 3: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 3

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.

Page 4: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 4

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.

Page 5: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 5

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õesentram 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.

Page 6: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 6

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.

Page 7: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

SO

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 7

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.

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.

TCP/IP Firewall

SO

TCP/IP Firewall(b)(a)

Page 8: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 8

O iptables em um ambiente host screened, com política de negar tudo:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

iptables -P INPUT DROPiptables -P OUTPUT DROPiptables -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 ACCEPTiptables -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 ACCEPTiptables -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 ACCEPTiptables -A OUTPUT -o eth0 -d 10.0.0.1 -p tcp --sport ssh -j ACCEPT

HostA

FirewallRoteador

ADSLInternet

10.0.0.1 10.0.0.2 eth0

200.1.1.1 eth1

Page 9: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 9

O iptables em um ambiente host bastion, com política de negar tudo:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADEiptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 10.0.0.1

iptables -P INPUT DROPiptables -P OUTPUT DROPiptables -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 ACCEPTiptables -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 ACCEPTiptables -A OUTPUT -o eth0 -d 10.0.0.1 -p tcp --sport ssh -j ACCEPT

HostA

FirewallRoteador

ADSLInternet

10.0.0.1 10.0.0.2 eth0

200.1.1.1 eth1

Page 10: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 10

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.

Page 11: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 11

O pf em um ambiente host screened, com política de negar tudo:

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

HostA

FirewallRoteador

ADSLInternet

10.0.0.1 10.0.0.2 vic1

200.1.1.1 vic0

Page 12: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 12

O pf em um ambiente host bastion, com política de negar tudo:

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

HostA

FirewallRoteador

ADSLInternet

10.0.0.1 10.0.0.2 vic1

200.1.1.1 vic0

Page 13: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 13

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).

Page 14: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 14

Tela principal do OSSEC HIDS, um resumo dos principais itens monitorados:

Page 15: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 15

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

Page 16: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 16

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.

Page 17: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 17

Um exemplo de cenário de VPN com o OpenVPN:

HostA

FirewallRoteador

ADSLInternet

10.0.0.1 10.0.0.2 vic1

200.1.1.1 vic0 Host

B

64.0.0.1

# vi openvpn.conf.servidor

dev tunifconfig 192.168.0.1 192.168.0.2secret static.key

# vi openvpn.conf.cliente

remote 200.1.1.1dev tunifconfig 192.168.0.2 192.168.0.1secret static.key

# 2048 bit OpenVPN static key-----BEGIN OpenVPN Static key V1c11e591c06a7e2042a679ee4e9c066a7e7038efcfdd7dba4fd5a2638d03df7501f7dc9e827be9f5f4b770d83be1c19e3e20d3ac83c5e0bb575aaef87e19753eceeb9700f7a90f9bb54c3f1b864dbc803c093d2e3ea3e4ccba64cd306e901a49c6de812961bae75b25ac4b3a47f50c3c94aec8b8a4d0cb42cd458018ca72f689488f6316d12ad03b9e5c90f93d42948b30b50fe1e8a4405aafa01d06602de9e4ebfb6b83069ec11965977db57b3a450e63838792c6e11aa538831c3cbea7247ba4fb23888490b3df975751e51f251179cfb4b83b5eb87d46f422de3e742152d21f1100b6ed3b9d147d2fe2b25f630da55073841781904d90bb2cd7c486ee4cae8-----END OpenVPN Static key V1-

Page 18: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 18

Monitorando interface de rede sem VPN, é possível observar os dados do usuário:

Page 19: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 19

Monitorando interface de rede com o VPN, não é possível observar dados do usuário:

Page 20: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 20

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.

Page 21: Palestra - Fitem 2009 - Ferramentas de segurança OpenSource

Ferramentas de Segurança Open Source

Luiz Arthur Feitosa dos Santos 21

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. EditoraCampus, 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.