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
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
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
Edição
Lincoln da Mata
Revisão técnica
Felipe Brant Scarel
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
ISBN 978-85-63630-13-1
CDD 658.4012
Sumário
A metodologia da ESR xi
A quem se destina xii
Permissões de uso xiii
Sobre o autor xiv
1. Fundamentos de segurança
Introdução 1
Confidencialidade 3
Integridade 4
Disponibilidade 4
Normas ISO/ABNT 11
Políticas de segurança 13
iii
2. Explorando vulnerabilidades em redes
Introdução 17
Penetration Test 18
Testes de penetração 18
Packet Sniffing 20
Nmap 21
Hping 23
ARP Spoofing 24
IP Spoofing 24
Ataque Smurf 28
Varredura 29
Msfvenom 37
Kali Linux 38
Firewall 42
Tecnologias de firewall 42
Topologias de firewall 46
Implementação de firewalls 49
Netfilter (Iptables) 49
iv
Implementação do Netfilter 50
Tradução de IP (NAT) 55
SNAT 55
DNAT 55
Ativação 56
Controle 56
Configuração 57
pfSense 57
Endian 59
Gerenciamento de logs 64
Syslog-ng 64
Source 64
Destination 64
Filter 64
Logs do Windows 68
Correlacionamento de eventos 68
Serviço de hora 70
Monitoramento de serviços 72
Nagios 72
Zabbix 73
Cacti 74
v
Ntop 75
Vantagens do Cacti 77
Snort 83
Instalação do Snort 85
Configuração do Snort 86
Regras do Snort 87
Pulledpork 89
Barnyard2 90
Sistema AAA 91
Autenticação 92
Autorização 92
Auditoria 92
Criptografia 93
Criptografia simétrica 94
Criptografia assimétrica 94
vi
Algoritmos de Hash 96
Certificados digitais 97
Autoridades certificadoras 98
Gerenciamento de senhas 99
Valor do SALT 100
Administrando as senhas 102
OTP 103
S/Key 103
Smart Card 104
Serviço de diretório 105
Tipos de informação 106
Kerberos no Windows 108
Benefícios do Kerberos 109
Organização do Kerberos 110
Criptomoedas 112
Características centrais 113
Blockchain 113
vii
7. Redes Privadas Virtuais
Exercício de nivelamento 1 — Redes Privadas Virtuais 115
VPN 115
VPN PPTP 118
L2TP 119
IPSec 119
Protocolos IPSec 122
VPN SSL 124
Análise de vulnerabilidades 130
Instalação do Nessus 131
Iniciando a varredura 132
Arquitetura do firewal 134
Testando o firewall 135
Alertas e registros 139
viii
Check-list 142
WMIC 150
Sysinternals 151
WSUS 152
MBSA 154
Heranças de GPO 161
Diretiva de senhas 163
Diretiva de auditoria 164
Opções de segurança 165
Instalação do Linux 168
Pacotes e programas 172
Chroot 174
ix
Acessos administrativos 175
Pacotes compilados 178
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 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.
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.
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.
Indica comandos e suas opções, variáveis e atributos, conteúdo de arquivos e resultado da saída
de comandos.
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.
xiv
1
Fundamentos de segurança
objetivos
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?
11 Servidor de aplicação.
11 Servidor HTTP.
11 Aplicação web.
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.
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 de aplicações.
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.
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.
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 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.
É 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.
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 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 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.
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.
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.
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).
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).
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.
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.
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.
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.
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.
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
9
Qualidade de serviços de segurança
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.
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.
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.
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
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.
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 27006: Requirements for bodies providing audit and certification of information
security management systems.
11 ISO/IEC 15408-1: Evaluation criteria for IT security – Part 1: Introduction and general model.
11 ISO/IEC 15443-1: A framework for IT Security assurance – Part 1: Overview and framework.
12
11 ISO/IEC 15443-3: A framework for IT Security assurance – Part 2: Analysis of
Assurance Methods.
11 ISO/IEC 27034-1: Guidelines for Application Security – Part 1: Overview and Concepts.
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 Senhas.
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.
13
Normas DSIC/GSIPR:
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:
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.
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).
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?
No planejamento, deve ser definida uma série de questões, como por exemplo:
11 Acesso remoto.
11 Tecnologias de segurança.
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.
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.
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.
Testes de penetração
Existem três tipos de abordagens para teste de penetração:
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
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 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.
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.
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
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 -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 -s<tipo> – tipo de varredura utilizada. Algumas varreduras procuram evitar que o sistema
destino registre as tentativas de acesso.
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.
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 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 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.
22
Técnica Explicação Exemplo
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”?
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.
23
11 Teste de rede, usando diferentes protocolos e fragmentação.
11 OS Fingerprinting.
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
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
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.
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.
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.
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).
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.
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.
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.
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.
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.
Figura 2.7
Técnica da
varredura Zenmap.
29
11 Comparar varreduras salvas e verificar suas diferenças.
Além dessas opções, o Zenmap disponibiliza todas as varreduras em uma base de dados
totalmente pesquisável.
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.
Onde:
-V = modo monitor.
Ou5
Onde:
-i = indica que cada ping deve ser realizado em um intervalo de um milésimo de segundo.
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:
Por fim, você deve digitar o seguinte comando para iniciar o ataque:
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).
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:
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.
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:
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.
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.
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.
33
Exercício de fixação 5 e
Alguns tipos de ataque
Explique o que vem a ser um exploit.
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.
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
# msfconsole
msf >
Neste ponto, devemos informar o tipo de exploit que usaremos com o comando use:
Dentro do exploit, podemos ver seus atributos exigidos com o comando show options:
Neste caso, o exploit aceita as opções de Remote Host, Remote port e SMBPIPE.
Para configurar essas opções, utilize o comando set:
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
Com o comando show payloads verificamos os payloads suportados pelo exploit selecionado:
36
Com o comando show targets podemos visualizar quais sistemas operacionais são
vulneráveis a esse exploit:
Neste caso podemos verificar que os sistemas operacionais Windows XP SP2 e SP3 de
diversos idiomas são vulneráveis a esse exploit:
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.
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.
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:
Exploitation Tools
Ferramentas para exploração de vulnerabilidades em redes, sistemas web, banco de dados,
sistemas wireless e ferramentas de engenharia social. Exemplos:
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:
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:
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 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 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 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:
40
3
Firewall – Conceitos
e implementação
objetivos
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.
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:
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 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:
42
11 Porta de origem (nível de transporte).
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:
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.
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.
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 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).
Exercício de fixação 1 e
Filtros de pacotes
Explique o que são filtros de pacotes dinâmicos.
Exercício de fixação 2 e
Servidores proxy
O que são servidores proxy?
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).
11 Permitir que o bastião acesse a internet, utilizando os serviços permitidos pela política de
segurança da organização.
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.
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
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 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).
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 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 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).
Input Output
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.
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:
Os comandos são parâmetros passados para o Iptables durante a configuração das regras.
Principais parâmetros do Iptables:
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
iptables –L
iptables –t nat –F
man iptables
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:
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.
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.
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:
56
Configuração
A sintaxe do PF pode ser resumida da seguinte forma:
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 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.
22 != (diferente de)
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 Divide suas interfaces em nomenclaturas como GREEN, RED, ORANGE e BLUE, permitindo
segmentação de tráfego de forma conveniente.
22 Traffic shaping.
22 Antispam.
22 IDS e IPS.
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 BLUE: rede sem fio isolada, na qual dispositivos wireless podem ser conectados.
Essa rede é segmentada na rede GREEN, aumentando a segurança da topologia.
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?
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.
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:
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
Conforme já mencionado, além das facilidades, temos ainda as severidades, que indicam o
Capítulo 4 - Serviços básicos de segurança
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.
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.
66
Origem 1 Destino 1
Filtro
Origem 2 Destino 2
As facilidades podem ser configuradas no syslog-ng através dos filtros, como no exemplo
de configuração:
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.
l
sistema de syslog Unix, como o syslog-ng.
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.
11 Existência de ilhas de defesa, onde cada solução específica trabalha de forma isolada.
11 Alta taxa de falsos positivos, decorrente das análises isoladas pelas soluções, sem visão
de todo o ambiente.
Com base nesses problemas, uma solução SIEM atende com as seguintes características:
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.
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.
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):
# outros servidores
Segurança de Redes e Sistemas
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
# 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
#
11 when: quantos segundos se passaram desde a última consulta a essa fonte de tempo.
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.
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.
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
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.
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 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 Protocolos (UDP/SNMP).
Investigador do pacote
Figura 4.6
Arquitetura
Cabo Ethernet do 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.
76
Características Nagios Zabbix Cacti Ntop
Vantagens do Cacti
Entre as opções apresentadas, o Cacti foi escolhido para ser a ferramenta usada neste curso
pelas seguintes razões:
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.
77
78
Segurança de Redes e Sistemas
5
Detecção e prevenção de intrusos
objetivos
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
79
11 Centralizados x Distribuídos.
Classificações:
22 Detectores de anomalias.
22 Reativos.
22 Passivos.
22 Ativos (IPS).
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.
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 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.
81
IPS
Exercício de fixação 2 e
IPS
O que é um IPS?
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 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.
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
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:
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.
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.
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 -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.
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]
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).
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.
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>).
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.
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.
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ã:
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.
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:
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.
11 Batch.
11 Contínuo.
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.
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
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.
Exercício de nivelamento 1 e
Autenticação e autorização
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:
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.
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.
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.
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
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.
11 1024 bits
11 2048 bits
11 128 bits
11 256 bits
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.
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.
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 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).
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.
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.
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?
97
Autoridades certificadoras
Existem várias implementações de Infraestrutura de Chave Pública (PKI) comerciais e de
software livre:
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.
4. Certificado assinado: recipiente pode verificar a assinatura usando a chave pública da AC.
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:
99
Salt Password Password File
User id salt E (pwd, [salt, 0])
12 bits 56 bits
Load
crypt (3)
11 characters
Salt
Select Password
crypt (3)
hashed password
Compare
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
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.
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?
Hash LM
2. Preenche a senha com caracteres nulos até que ela tenha exatamente 14 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.
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.
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
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.
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
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.
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.
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-
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.
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
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.
Ba
nco de Dados
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:
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.
6. Cliente/Server session
Segurança de Redes e Sistemas
108
1. Ao tentar acessar um serviço em um servidor, o cliente Kerberos envia duas mensagens
ao TGS.
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:
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.
Benefícios do Kerberos
Dentre os principais benefícios de se utilizar o Kerberos em redes de computadores,
podemos destacar:
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.
11 Related Requests For CommentsRFC 4120 – The Kerberos Network Authentication Service (V5).
11 RFC 4752 – The Kerberos V5 (GSSAPI) Simple Authentication and Security Layer (SASL)
Mechanism.
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.
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.
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.
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 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 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
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:
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?
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 Autenticação da mensagem.
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.
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
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.
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).
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.
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.
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 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.
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
Algoritmo de Algoritmo de
criptografia autenticação
Domínio de
interpretação
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.
11 Counter (CTR).
11 RC4.
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
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.
Criptografado
Autenticado
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
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.
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.
Sequence number
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 Número sequencial.
123
0-7 bit 8-15 bit 16-23 bit 24-31 bit
Sequence number
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 Navegador web.
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
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.
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.
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.
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
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.
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
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:
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
ACK ServerHello
Certificate
ClienteHello
ServerHello Done
TLS ClientKeyExchange
100ms ChangeCipherSpec
ChangeCipherSpec
Finished
Finished
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
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.
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.
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
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.
2. Instale o pacote com o comando dpkg –i <nome do pacote>. A instalação pode demorar
um pouco, seja paciente.
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 Iniciar o Nessus.
Auditoria:
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:
Figura 8.3
Visualizando
resultados do scan.
133
Figura 8.4
Investigando
vulnerabilidades
específicas.
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.
11 Arquitetura do firewall.
11 Testando o 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 Existem hubs sendo usados na rede? (Hubs podem ter todo o tráfego que passa
por ele monitorado).
134
11 A segmentação realizada é suficiente?
Testando o firewall
Existem recursos de segurança específicos para a plataforma que está sendo auditada?
Eles estão bem configurados?
11 Quais serviços estão executando no firewall? Eles são necessários? Eles são seguros?
11 Existem recursos de segurança específicos para a plataforma que está sendo auditada?
Eles estão bem configurados?
135
11 Documentar as regras.
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.
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 -s<tipo> – tipo de varredura utilizada; algumas varreduras procuram evitar que o sistema
destino registre as tentativas de acesso.
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:
root# nc -l 3500
Em outra estação, podemos realizar uma conexão com o servidor, na porta 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:
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
Por fim, vamos enviar pacotes UDP na porta 53, alterando o endereço de origem para o
endereço 192.168.1.150:
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.
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 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.
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.
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?
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 Transportadores de e-mail.
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
142
11 Configurar adequadamente os registros de log do sistema para que possam identificar
possíveis ataques ou atividade suspeita.
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.
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.
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).
5. Selecione as portas que deseja incluir nesta regra, separadas por vírgula.
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.
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.
11 Liberar exceções nos filtros de pacotes nas interfaces de rede que forem necessárias.
147
Figura 9.4
Regras de
configuração do
Windows 2008
Server.
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
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.
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.
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.
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.
151
Figura 9.10
Exemplo de uso
do psinfo.
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.
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.
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.
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.
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.”
5. Na página referente ao SQL Server Express, escolha a opção “Download and Install”.
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.
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.
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.
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.
O documento “Threats and Countermeasures: Security Settings in Windows Server 2008 and
Windows Vista” apresenta recomendações importantes para configurar um bastion host.
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.
158
Com o GPO podemos:
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:
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 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).
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
11 User Configuration.
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 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 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
161
GPO1
Site
GPO2
Domínio
GPO3
ou Figura 9.19
Heranças de GPO.
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.
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.
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.
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.
22 Perda de eventos que passaram por auditoria devido a falha no sistema de auditoria.
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.
11 Alterar a hora do sistema: permite informar quais usuários têm permissão para alterar
a data e a hora do computador.
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 Controles DCOM.
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.
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
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.
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.
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.
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 lsof –i <protocolo>:<porta>
11 ps aux | more
11 man <serviço>
Passos:
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
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:
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.
# ls -l /lib/systemd/system/default.target
lrwxrwxrwx 1 root root 16 Jun 13 17:20 /lib/systemd/system/default.target -> graphical.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
└─...
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.
Deixe para desabilitar pacotes ao final da configuração do servidor, pois você pode precisar
deles para alguma tarefa administrativa:
11 Ambiente gráfico (X11): devem ser utilizados os ambientes gráficos das estações para
realizar tarefas de configuração.
11 Caso seja indispensável, considere filtrar as portas do XWindows (X11) no seu firewall
11 de borda.
172
Figura 10.1
Execução do
comando tasksel.
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*
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
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):
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 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
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”.
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.
Exercício de fixação 3 e
Acessos administrativos
Quais são os cuidados básicos ao tratar de acessos administrativos?
11 Instalação separada.
11 Facilitar a remoção.
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:
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.
179
Segurança de Redes e Sistemas
180
Bibliografia
11 http://technet.microsoft.com/pt-br/library/cc668545.aspx
11 http://www.kerberos.org/software/adminkerberos.pdf
11 http://technet.microsoft.com/en-us/library/bb742516.aspx
181
11 Norma ABNT NBR ISO/IEC 27001:2006
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
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